rmWeiWuZjjlGatherDm.pas 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486
  1. unit rmWeiWuZjjlGatherDm;
  2. interface
  3. uses
  4. SysUtils, Classes, ProjectData, DB, sdDB, DBClient, sdIDTree, BillsTree;
  5. type
  6. TZjjl = class
  7. private
  8. FCode: string;
  9. FCertificateCode: string;
  10. FBGLCode: string;
  11. FPegName: string;
  12. FBeginPeg: string;
  13. FEndPeg: string;
  14. FFBFXName: string;
  15. FUnitName: string;
  16. FDrawingCode: string;
  17. FFormulaMemo: string;
  18. FRelaFile: string;
  19. FBillsCode: string;
  20. FBillsName: string;
  21. FBillsUnits: string;
  22. FBillsPrice: Double;
  23. FFilterDrawingCode: string;
  24. FBillsCurDealQuantity: Double;
  25. FBillsCurDealTotalPrice: Double;
  26. FBillsCurQcQuantity: Double;
  27. FBillsCurQcTotalPrice: Double;
  28. FBillsCurGatherQuantity: Double;
  29. FBillsCurGatherTotalPrice: Double;
  30. FBillsEndDealQuantity: Double;
  31. FBillsEndDealTotalPrice: Double;
  32. FBillsEndQcQuantity: Double;
  33. FBillsEndQcTotalPrice: Double;
  34. FBillsEndGatherQuantity: Double;
  35. FBillsEndGatherTotalPrice: Double;
  36. FBillsOrgQuantity: Double;
  37. FBillsOrgTotalPrice: Double;
  38. FBillsMisQuantity: Double;
  39. FBillsMisTotalPrice: Double;
  40. FBillsOthQuantity: Double;
  41. FBillsOthTotalPrice: Double;
  42. FBillsQuantity: Double;
  43. FBillsTotalPrice: Double;
  44. FFenBuName: string;
  45. FDanWeiName: string;
  46. FIndexCode: string;
  47. FSerialNo: Integer;
  48. function MergeStr(AStr1, AStr2: string): string;
  49. public
  50. constructor Create(ARec, AStageRec: TsdDataRecord; ANode: TBillsIDTreeNode);
  51. procedure Merge(ARec, AStageRec: TsdDataRecord; ANode: TBillsIDTreeNode);
  52. end;
  53. TrmWeiWuZjjlGatherData = class(TDataModule)
  54. cdsZjjl: TClientDataSet;
  55. cdsZjjlCode: TWideStringField;
  56. cdsZjjlCertificateCode: TWideStringField;
  57. cdsZjjlBGLCode: TMemoField;
  58. cdsZjjlPegName: TWideStringField;
  59. cdsZjjlBeginPeg: TWideStringField;
  60. cdsZjjlEndPeg: TWideStringField;
  61. cdsZjjlFBFXName: TWideStringField;
  62. cdsZjjlUnitName: TWideStringField;
  63. cdsZjjlDrawingCode: TWideStringField;
  64. cdsZjjlFormulaMemo: TMemoField;
  65. cdsZjjlRelaFile: TMemoField;
  66. cdsZjjlBillsCode: TStringField;
  67. cdsZjjlBillsName: TWideStringField;
  68. cdsZjjlBillsUnits: TWideStringField;
  69. cdsZjjlBillsPrice: TFloatField;
  70. cdsZjjlFilterDrawingCode: TWideStringField;
  71. cdsZjjlBillsCurDealQuantity: TFloatField;
  72. cdsZjjlBillsCurDealTotalPrice: TFloatField;
  73. cdsZjjlBillsCurQcQuantity: TFloatField;
  74. cdsZjjlBillsCurQcTotalPrice: TFloatField;
  75. cdsZjjlBillsCurGatherQuantity: TFloatField;
  76. cdsZjjlBillsCurGatherTotalPrice: TFloatField;
  77. cdsZjjlBillsEndDealQuantity: TFloatField;
  78. cdsZjjlBillsEndDealTotalPrice: TFloatField;
  79. cdsZjjlBillsEndQcQuantity: TFloatField;
  80. cdsZjjlBillsEndQcTotalPrice: TFloatField;
  81. cdsZjjlBillsEndGatherQuantity: TFloatField;
  82. cdsZjjlBillsEndGatherTotalPrice: TFloatField;
  83. cdsZjjlBillsOrgQuantity: TFloatField;
  84. cdsZjjlBillsOrgTotalPrice: TFloatField;
  85. cdsZjjlBillsMisQuantity: TFloatField;
  86. cdsZjjlBillsMisTotalPrice: TFloatField;
  87. cdsZjjlBillsOthQuantity: TFloatField;
  88. cdsZjjlBillsOthTotalPrice: TFloatField;
  89. cdsZjjlBillsQuantity: TFloatField;
  90. cdsZjjlBillsTotalPrice: TFloatField;
  91. cdsZjjlFenBuName: TWideStringField;
  92. cdsZjjlDanWeiName: TWideStringField;
  93. private
  94. FZjjlList: TList;
  95. FPreText: string;
  96. FPhaseIndex: Integer;
  97. function FindZjjl(ARec: TsdDataRecord; ANode: TBillsIDTreeNode): TZjjl;
  98. procedure GatherZjjl(AProjectData: TProjectData);
  99. procedure WriteData;
  100. public
  101. function AssignData(AProjectData: TProjectData): TDataSet;
  102. end;
  103. implementation
  104. uses
  105. ZhAPI, PhaseData, UtilMethods, BillsMeasureDm;
  106. {$R *.dfm}
  107. function GetThirdPartString(const AStr: string; AFilter: Char = '-'): string;
  108. var
  109. sgs: TStringList;
  110. begin
  111. sgs := TStringList.Create;
  112. try
  113. sgs.Delimiter := AFilter;
  114. sgs.DelimitedText := AStr;
  115. while sgs.Count > 3 do
  116. sgs.Delete(sgs.Count - 1);
  117. Result := sgs.DelimitedText;
  118. finally
  119. sgs.Free;
  120. end;
  121. end;
  122. function GetLeafXmj(ANode: TBillsIDTreeNode): TBillsIDTreeNode;
  123. begin
  124. Result := ANode;
  125. while Assigned(Result) and (Result.Rec.B_Code.AsString <> '') do
  126. Result := TBillsIDTreeNode(Result.Parent);
  127. end;
  128. function GetLeafXmjDrawingCode(ANode: TBillsIDTreeNode): String;
  129. var
  130. vLeafXmj: TsdIDTreeNode;
  131. begin
  132. Result := '';
  133. vLeafXmj := GetLeafXmj(ANode);
  134. if Assigned(vLeafXmj) then
  135. Result := vLeafXmj.Rec.ValueByName('DrawingCode').AsString;
  136. end;
  137. { TZjjl }
  138. constructor TZjjl.Create(ARec, AStageRec: TsdDataRecord; ANode: TBillsIDTreeNode);
  139. // 取树结构的第ALevel层节点的名称(level从0开始)
  140. function GetNameByLevel(ANode: TBillsIDTreeNode; ALevel: Integer): string;
  141. begin
  142. Result := '';
  143. if not Assigned(ANode) then Exit;
  144. if ANode.Level = ALevel then
  145. Result := ANode.Rec.Name.AsString
  146. else if ANode.Level > ALevel then
  147. Result := GetNameByLevel(TBillsIDTreeNode(ANode.Parent), ALevel);
  148. end;
  149. function GetNameDanWei(ANode: TBillsIDTreeNode): string;
  150. begin
  151. // 取树结构的第二层节点的名称
  152. Result := GetNameByLevel(ANode, 1);
  153. end;
  154. // ANode为计量单元节点,APegNode为桩号节点
  155. function GetNameFenBu(ANode, APegNode: TBillsIDTreeNode): string;
  156. var
  157. vCurNode: TBillsIDTreeNode;
  158. begin
  159. // 如果计量单元节点的名称为桩号(转化为判断计量单元节点与桩号节点为同一个)
  160. if not Assigned(APegNode) or (ANode.ID = APegNode.ID) then
  161. // 取树结构的第三层节点的名称
  162. Result := GetNameByLevel(ANode, 2)
  163. // 否则,取桩号节点的子节点的名称
  164. else
  165. begin
  166. vCurNode := ANode;
  167. while vCurNode.Level > APegNode.Level + 1 do
  168. vCurNode := TBillsIDTreeNode(vCurNode.Parent);
  169. Result := vCurNode.Rec.Name.AsString;
  170. end;
  171. end;
  172. function GetPegNode(ANode: TBillsIDTreeNode): TBillsIDTreeNode;
  173. begin
  174. Result := nil;
  175. if not Assigned(ANode) then Exit;
  176. if CheckPeg(ANode.Rec.Name.AsString) then
  177. Result := ANode
  178. else
  179. Result := GetPegNode(TBillsIDTreeNode(ANode.Parent));
  180. end;
  181. var
  182. vLeafXmj, vPegNode: TBillsIDTreeNode;
  183. begin
  184. FCode := ARec.ValueByName('Code').AsString;
  185. FCertificateCode := ARec.ValueByName('CertificateCode').AsString;
  186. FBGLCode := ARec.ValueByName('BGLCode').AsString;
  187. FPegName := ARec.ValueByName('PegName').AsString;
  188. FBeginPeg := ARec.ValueByName('BeginPeg').AsString;
  189. FEndPeg := ARec.ValueByName('EndPeg').AsString;
  190. FFBFXName := ARec.ValueByName('FBFXName').AsString;
  191. FUnitName := ARec.ValueByName('UnitName').AsString;
  192. FDrawingCode := ARec.ValueByName('DrawingCode').AsString;
  193. FFormulaMemo := ARec.ValueByName('FormulaMemo').AsString;
  194. FRelaFile := ARec.ValueByName('RelaFile').AsString;
  195. FBillsCode := ANode.Rec.ValueByName('B_Code').AsString;
  196. FBillsName := ANode.Rec.ValueByName('Name').AsString;
  197. FBillsUnits := ANode.Rec.ValueByName('Units').AsString;
  198. FBillsPrice := ANode.Rec.ValueByName('Price').AsFloat;
  199. FFilterDrawingCode := GetThirdPartString(GetLeafXmjDrawingCode(ANode));
  200. if Assigned(AStageRec) then
  201. begin
  202. FBillsCurDealQuantity := AStageRec.ValueByName('DealQuantity').AsFloat;
  203. FBillsCurDealTotalPrice := AStageRec.ValueByName('DealTotalPrice').AsFloat;
  204. FBillsCurQcQuantity := AStageRec.ValueByName('QcQuantity').AsFloat;
  205. FBillsCurQcTotalPrice := AStageRec.ValueByName('QcTotalPrice').AsFloat;
  206. FBillsCurGatherQuantity := AStageRec.ValueByName('GatherQuantity').AsFloat;
  207. FBillsCurGatherTotalPrice := AStageRec.ValueByName('GatherTotalPrice').AsFloat;
  208. FBillsEndDealQuantity := AStageRec.ValueByName('DealQuantity').AsFloat;
  209. FBillsEndDealTotalPrice := AStageRec.ValueByName('DealTotalPrice').AsFloat;
  210. FBillsEndQcQuantity := AStageRec.ValueByName('QcQuantity').AsFloat;
  211. FBillsEndQcTotalPrice := AStageRec.ValueByName('QcTotalPrice').AsFloat;
  212. FBillsEndGatherQuantity := AStageRec.ValueByName('GatherQuantity').AsFloat;
  213. FBillsEndGatherTotalPrice := AStageRec.ValueByName('GatherTotalPrice').AsFloat;
  214. end;
  215. FBillsOrgQuantity := ANode.Rec.OrgQuantity.AsFloat;
  216. FBillsOrgTotalPrice := ANode.Rec.OrgTotalPrice.AsFloat;
  217. FBillsMisQuantity := ANode.Rec.MisQuantity.AsFloat;
  218. FBillsMisTotalPrice := ANode.Rec.MisTotalPrice.AsFloat;
  219. FBillsOthQuantity := ANode.Rec.OthQuantity.AsFloat;
  220. FBillsOthTotalPrice := ANode.Rec.OthTotalPrice.AsFloat;
  221. FBillsQuantity := ANode.Rec.Quantity.AsFloat;
  222. FBillsTotalPrice := ANode.Rec.TotalPrice.AsFloat;
  223. vLeafXmj := GetLeafXmj(ANode);
  224. vPegNode := GetPegNode(ANode);
  225. FFenBuName := GetNameFenBu(vLeafXmj, vPegNode);
  226. FDanWeiName := GetNameDanWei(vLeafXmj);
  227. FIndexCode := B_CodeToIndexCode(FBillsCode);
  228. FSerialNo := ANode.MajorIndex;
  229. end;
  230. procedure TZjjl.Merge(ARec, AStageRec: TsdDataRecord; ANode: TBillsIDTreeNode);
  231. begin
  232. FCertificateCode := MergeStr(FCertificateCode, ARec.ValueByName('CertificateCode').AsString);
  233. FBGLCode := MergeRelaBGL(FBGLCode, ARec.ValueByName('BGLCode').AsString);
  234. FDrawingCode := MergeStr(FDrawingCode, ARec.ValueByName('DrawingCode').AsString);
  235. FFormulaMemo := MergeStr(FFormulaMemo, ARec.ValueByName('FormulaMemo').AsString);
  236. FRelaFile := MergeStr(FRelaFile, ARec.ValueByName('RelaFile').AsString);
  237. if Assigned(AStageRec) then
  238. begin
  239. FBillsCurDealQuantity := FBillsCurDealQuantity + AStageRec.ValueByName('DealQuantity').AsFloat;
  240. FBillsCurDealTotalPrice := FBillsCurDealTotalPrice + AStageRec.ValueByName('DealTotalPrice').AsFloat;
  241. FBillsCurQcQuantity := FBillsCurQcQuantity + AStageRec.ValueByName('QcQuantity').AsFloat;
  242. FBillsCurQcTotalPrice := FBillsCurQcTotalPrice + AStageRec.ValueByName('QcTotalPrice').AsFloat;
  243. FBillsCurGatherQuantity := FBillsCurGatherQuantity + AStageRec.ValueByName('GatherQuantity').AsFloat;
  244. FBillsCurGatherTotalPrice := FBillsCurGatherTotalPrice + AStageRec.ValueByName('GatherTotalPrice').AsFloat;
  245. FBillsEndDealQuantity := FBillsEndDealQuantity + AStageRec.ValueByName('DealQuantity').AsFloat;
  246. FBillsEndDealTotalPrice := FBillsEndDealTotalPrice + AStageRec.ValueByName('DealTotalPrice').AsFloat;
  247. FBillsEndQcQuantity := FBillsEndQcQuantity + AStageRec.ValueByName('QcQuantity').AsFloat;
  248. FBillsEndQcTotalPrice := FBillsEndQcTotalPrice + AStageRec.ValueByName('QcTotalPrice').AsFloat;
  249. FBillsEndGatherQuantity := FBillsEndGatherQuantity + AStageRec.ValueByName('GatherQuantity').AsFloat;
  250. FBillsEndGatherTotalPrice := FBillsEndGatherTotalPrice + AStageRec.ValueByName('GatherTotalPrice').AsFloat;
  251. end;
  252. FBillsOrgQuantity := FBillsOrgQuantity + ANode.Rec.OrgQuantity.AsFloat;
  253. FBillsOrgTotalPrice := FBillsOrgTotalPrice + ANode.Rec.OrgTotalPrice.AsFloat;
  254. FBillsMisQuantity := FBillsMisQuantity + ANode.Rec.MisQuantity.AsFloat;
  255. FBillsMisTotalPrice := FBillsMisTotalPrice + ANode.Rec.MisTotalPrice.AsFloat;
  256. FBillsOthQuantity := FBillsOthQuantity + ANode.Rec.OthQuantity.AsFloat;
  257. FBillsOthTotalPrice := FBillsOthTotalPrice + ANode.Rec.OthTotalPrice.AsFloat;
  258. FBillsQuantity := FBillsQuantity + ANode.Rec.Quantity.AsFloat;
  259. FBillsTotalPrice := FBillsTotalPrice + ANode.Rec.TotalPrice.AsFloat;
  260. if ANode.MajorIndex < FSerialNo then
  261. FSerialNo := ANode.MajorIndex;
  262. end;
  263. function TZjjl.MergeStr(AStr1, AStr2: string): string;
  264. begin
  265. if (AStr1 <> '') then
  266. begin
  267. if (AStr2 <> '') then
  268. Result := AStr1 + ';' + AStr2
  269. else
  270. Result := AStr1;
  271. end
  272. else
  273. begin
  274. if (AStr2 <> '') then
  275. Result := AStr2
  276. else
  277. Result := '';
  278. end;
  279. end;
  280. { TrmWeiWuZjjlGatherData }
  281. function TrmWeiWuZjjlGatherData.AssignData(
  282. AProjectData: TProjectData): TDataSet;
  283. function IndexCodeCompare(Item1, Item2: Pointer): Integer;
  284. var
  285. vZjjl1, vZjjl2: TZjjl;
  286. begin
  287. vZjjl1 := TZjjl(Item1);
  288. vZjjl2 := TZjjl(Item2);
  289. Result := CompareStr(vZjjl1.FIndexCode, vZjjl2.FIndexCode);
  290. if Result = 0 then
  291. Result := vZjjl1.FSerialNo - vZjjl2.FSerialNo;
  292. end;
  293. begin
  294. FZjjlList := TList.Create;
  295. try
  296. if AProjectData.PhaseData.Active then
  297. begin
  298. FPreText := AProjectData.PhaseData.PhaseProperty.ZJJLPreText;
  299. FPhaseIndex := AProjectData.PhaseIndex;
  300. GatherZjjl(AProjectData);
  301. FZjjlList.Sort(@IndexCodeCompare);
  302. WriteData;
  303. end;
  304. Result := cdsZjjl;
  305. finally
  306. ClearObjects(FZjjlList);
  307. FZjjlList.Free;
  308. end;
  309. end;
  310. function TrmWeiWuZjjlGatherData.FindZjjl(ARec: TsdDataRecord; ANode: TBillsIDTreeNode): TZjjl;
  311. var
  312. sCode, sName, sUnits, sDrawingCode: string;
  313. fPrice: Double;
  314. i: Integer;
  315. vZ: TZjjl;
  316. begin
  317. sCode := ANode.Rec.ValueByName('B_Code').AsString;
  318. sName := ANode.Rec.ValueByName('Name').AsString;
  319. sUnits := ANode.Rec.ValueByName('Units').AsString;
  320. sDrawingCode := GetThirdPartString(GetLeafXmjDrawingCode(ANode));
  321. fPrice := ANode.Rec.valueByName('Price').AsFloat;
  322. Result := nil;
  323. for i := 0 to FZjjlList.Count - 1 do
  324. begin
  325. vZ := TZjjl(FZjjlList.Items[i]);
  326. if SameText(vZ.FBillsCode, sCode) and SameText(vZ.FBillsName, sName) and SameText(vZ.FBillsUnits, sUnits) and
  327. (PriceRoundTo(fPrice - vZ.FBillsPrice) < 0.00001) and
  328. SameText(sDrawingCode, vZ.FFilterDrawingCode) then
  329. begin
  330. Result := vZ;
  331. Break;
  332. end;
  333. end;
  334. end;
  335. procedure TrmWeiWuZjjlGatherData.GatherZjjl(AProjectData: TProjectData);
  336. var
  337. i: Integer;
  338. vNode: TBillsIDTreeNode;
  339. Rec, BillsRec, StageRec: TsdDataRecord;
  340. vZ: TZjjl;
  341. begin
  342. for i := 0 to AProjectData.PhaseData.ZJJLData.sddZJJL.RecordCount - 1 do
  343. begin
  344. Rec := AProjectData.PhaseData.ZJJLData.sddZJJL.Records[I];
  345. vNode := TBillsIDTreeNode(AProjectData.BillsMeasureData.BillsMeasureTree.FindNode(Rec.ValueByName('BillsID').AsInteger));
  346. StageRec := AProjectData.PhaseData.StageData.StageRecord(Rec.ValueByName('BillsID').AsInteger);
  347. if Assigned(Rec) and Assigned(vNode) then
  348. begin
  349. vZ := FindZjjl(Rec, vNode);
  350. if not Assigned(vZ) then
  351. begin
  352. vZ := TZjjl.Create(Rec, StageRec, vNode);
  353. FZjjlList.Add(vZ);
  354. end
  355. else
  356. vZ.Merge(Rec, StageRec, vNode);
  357. end;
  358. end;
  359. end;
  360. procedure TrmWeiWuZjjlGatherData.WriteData;
  361. function GetCodeFormat(ACount: Integer): string;
  362. begin
  363. if ACount < 10 then
  364. Result := '-%d'
  365. else if ACount < 100 then
  366. REsult := '-%.2d'
  367. else if ACount < 1000 then
  368. Result := '-%.3d'
  369. else if ACount < 10000 then
  370. Result := '-%.4d'
  371. else if ACount < 100000 then
  372. Result := '-%.5d';
  373. end;
  374. var
  375. i: Integer;
  376. vZ: TZjjl;
  377. sFormat: String;
  378. begin
  379. cdsZjjl.Active := True;
  380. cdsZjjl.EmptyDataSet;
  381. if FPreText <> '' then
  382. sFormat := FPreText + Format('-%.2d', [FPhaseIndex]) + GetCodeFormat(FZjjlList.Count)
  383. else
  384. sFormat := FPreText + Format('%.2d', [FPhaseIndex]) + GetCodeFormat(FZjjlList.Count);
  385. for i := 0 to FZjjlList.Count - 1 do
  386. begin
  387. vZ := TZjjl(FZjjlList.Items[i]);
  388. cdsZjjl.Append;
  389. cdsZjjlCode.AsString := Format(sFormat, [i+1]);
  390. cdsZjjlCertificateCode.AsString := vZ.FCertificateCode;
  391. cdsZjjlBGLCode.AsString := vZ.FBGLCode;
  392. cdsZjjlPegName.AsString := vZ.FPegName;
  393. cdsZjjlBeginPeg.AsString := vZ.FBeginPeg;
  394. cdsZjjlEndPeg.AsString := vZ.FEndPeg;
  395. cdsZjjlFBFXName.AsString := vZ.FFBFXName;
  396. cdsZjjlUnitName.AsString := vZ.FUnitName;
  397. cdsZjjlDrawingCode.AsString := vZ.FDrawingCode;
  398. cdsZjjlFormulaMemo.AsString := vZ.FFormulaMemo;
  399. cdsZjjlRelaFile.AsString := vZ.FRelaFile;
  400. cdsZjjlBillsCode.AsString := vZ.FBillsCode;
  401. cdsZjjlBillsName.AsString := vZ.FBillsName;
  402. cdsZjjlBillsUnits.AsString := vZ.FBillsUnits;
  403. cdsZjjlBillsPrice.AsFloat := vZ.FBillsPrice;
  404. cdsZjjlFilterDrawingCode.AsString := vZ.FFilterDrawingCode;
  405. cdsZjjlBillsCurDealQuantity.AsFloat := vZ.FBillsCurDealQuantity;
  406. cdsZjjlBillsCurDealTotalPrice.AsFloat := vZ.FBillsCurDealTotalPrice;
  407. cdsZjjlBillsCurQcQuantity.AsFloat := vZ.FBillsCurQcQuantity;
  408. cdsZjjlBillsCurQcTotalPrice.AsFloat := vZ.FBillsCurQcTotalPrice;
  409. cdsZjjlBillsCurGatherQuantity.AsFloat := vZ.FBillsCurGatherQuantity;
  410. cdsZjjlBillsCurGatherTotalPrice.AsFloat := vZ.FBillsCurGatherTotalPrice;
  411. cdsZjjlBillsEndDealQuantity.AsFloat := vZ.FBillsEndDealQuantity;
  412. cdsZjjlBillsEndDealTotalPrice.AsFloat := vZ.FBillsEndDealTotalPrice;
  413. cdsZjjlBillsEndQcQuantity.AsFloat := vZ.FBillsEndQcQuantity;
  414. cdsZjjlBillsEndQcTotalPrice.AsFloat := vZ.FBillsEndQcTotalPrice;
  415. cdsZjjlBillsEndGatherQuantity.AsFloat := vZ.FBillsEndGatherQuantity;
  416. cdsZjjlBillsEndGatherTotalPrice.AsFloat := vZ.FBillsEndGatherTotalPrice;
  417. cdsZjjlBillsOrgQuantity.AsFloat := vZ.FBillsOrgQuantity;
  418. cdsZjjlBillsOrgTotalPrice.AsFloat := vZ.FBillsOrgTotalPrice;
  419. cdsZjjlBillsMisQuantity.AsFloat := vZ.FBillsMisQuantity;
  420. cdsZjjlBillsMisTotalPrice.AsFloat := vZ.FBillsMisTotalPrice;
  421. cdsZjjlBillsOthQuantity.AsFloat := vZ.FBillsOthQuantity;
  422. cdsZjjlBillsOthTotalPrice.AsFloat := vZ.FBillsOthTotalPrice;
  423. cdsZjjlBillsQuantity.AsFloat := vZ.FBillsQuantity;
  424. cdsZjjlBillsTotalPrice.AsFloat := vZ.FBillsTotalPrice;
  425. cdsZjjlFenBuName.AsString := vZ.FFenBuName;
  426. cdsZjjlDanWeiName.AsString := vZ.FDanWeiName;
  427. cdsZjjl.Post;
  428. end;
  429. end;
  430. end.