| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501 | 
							- unit rmWeiWuZjjlGatherDm;
 
- interface
 
- uses
 
-   SysUtils, Classes, ProjectData, DB, sdDB, DBClient, sdIDTree, BillsTree;
 
- type
 
-   TZjjl = class
 
-   private
 
-     FCode: string;
 
-     FCertificateCode: string;
 
-     FBGLCode: string;
 
-     FPegName: string;
 
-     FBeginPeg: string;
 
-     FEndPeg: string;
 
-     FFBFXName: string;
 
-     FUnitName: string;
 
-     FDrawingCode: string;
 
-     FFormulaMemo: string;
 
-     FRelaFile: string;
 
-     FBillsCode: string;
 
-     FBillsName: string;
 
-     FBillsUnits: string;
 
-     FBillsPrice: Double;
 
-     FFilterDrawingCode: string;
 
-     FBillsCurDealQuantity: Double;
 
-     FBillsCurDealTotalPrice: Double;
 
-     FBillsCurQcQuantity: Double;
 
-     FBillsCurQcTotalPrice: Double;
 
-     FBillsCurGatherQuantity: Double;
 
-     FBillsCurGatherTotalPrice: Double;
 
-     FBillsEndDealQuantity: Double;
 
-     FBillsEndDealTotalPrice: Double;
 
-     FBillsEndQcQuantity: Double;
 
-     FBillsEndQcTotalPrice: Double;
 
-     FBillsEndGatherQuantity: Double;
 
-     FBillsEndGatherTotalPrice: Double;
 
-     FBillsOrgQuantity: Double;
 
-     FBillsOrgTotalPrice: Double;
 
-     FBillsMisQuantity: Double;
 
-     FBillsMisTotalPrice: Double;
 
-     FBillsOthQuantity: Double;
 
-     FBillsOthTotalPrice: Double;
 
-     FBillsQuantity: Double;
 
-     FBillsTotalPrice: Double;
 
-     FFenBuName: string;
 
-     FDanWeiName: string;
 
-     FIndexCode: string;
 
-     FSerialNo: Integer;
 
-     function MergeStr(AStr1, AStr2: string): string;
 
-   public
 
-     constructor Create(ARec, AStageRec: TsdDataRecord; ANode: TBillsIDTreeNode);
 
-     procedure Merge(ARec, AStageRec: TsdDataRecord; ANode: TBillsIDTreeNode);
 
-   end;
 
-   TrmWeiWuZjjlGatherData = class(TDataModule)
 
-     cdsZjjl: TClientDataSet;
 
-     cdsZjjlCode: TWideStringField;
 
-     cdsZjjlCertificateCode: TWideStringField;
 
-     cdsZjjlBGLCode: TMemoField;
 
-     cdsZjjlPegName: TWideStringField;
 
-     cdsZjjlBeginPeg: TWideStringField;
 
-     cdsZjjlEndPeg: TWideStringField;
 
-     cdsZjjlFBFXName: TWideStringField;
 
-     cdsZjjlUnitName: TWideStringField;
 
-     cdsZjjlDrawingCode: TWideStringField;
 
-     cdsZjjlFormulaMemo: TMemoField;
 
-     cdsZjjlRelaFile: TMemoField;
 
-     cdsZjjlBillsCode: TStringField;
 
-     cdsZjjlBillsName: TWideStringField;
 
-     cdsZjjlBillsUnits: TWideStringField;
 
-     cdsZjjlBillsPrice: TFloatField;
 
-     cdsZjjlFilterDrawingCode: TWideStringField;
 
-     cdsZjjlBillsCurDealQuantity: TFloatField;
 
-     cdsZjjlBillsCurDealTotalPrice: TFloatField;
 
-     cdsZjjlBillsCurQcQuantity: TFloatField;
 
-     cdsZjjlBillsCurQcTotalPrice: TFloatField;
 
-     cdsZjjlBillsCurGatherQuantity: TFloatField;
 
-     cdsZjjlBillsCurGatherTotalPrice: TFloatField;
 
-     cdsZjjlBillsEndDealQuantity: TFloatField;
 
-     cdsZjjlBillsEndDealTotalPrice: TFloatField;
 
-     cdsZjjlBillsEndQcQuantity: TFloatField;
 
-     cdsZjjlBillsEndQcTotalPrice: TFloatField;
 
-     cdsZjjlBillsEndGatherQuantity: TFloatField;
 
-     cdsZjjlBillsEndGatherTotalPrice: TFloatField;
 
-     cdsZjjlBillsOrgQuantity: TFloatField;
 
-     cdsZjjlBillsOrgTotalPrice: TFloatField;
 
-     cdsZjjlBillsMisQuantity: TFloatField;
 
-     cdsZjjlBillsMisTotalPrice: TFloatField;
 
-     cdsZjjlBillsOthQuantity: TFloatField;
 
-     cdsZjjlBillsOthTotalPrice: TFloatField;
 
-     cdsZjjlBillsQuantity: TFloatField;
 
-     cdsZjjlBillsTotalPrice: TFloatField;
 
-     cdsZjjlFenBuName: TWideStringField;
 
-     cdsZjjlDanWeiName: TWideStringField;
 
-     cdsZjjlProjectName: TWideStringField;
 
-     cdsZjjlDealCode: TWideStringField;
 
-     cdsZjjlCName: TWideStringField;
 
-     cdsZjjlSName: TWideStringField;
 
-     cdsZjjlPhaseIndex: TWideStringField;
 
-     cdsZjjlDealName: TWideStringField;
 
-     cdsZjjlFlowIndex: TIntegerField;
 
-   private
 
-     FZjjlList: TList;
 
-     FPreText: string;
 
-     FPhaseIndex: Integer;
 
-     function FindZjjl(ARec: TsdDataRecord; ANode: TBillsIDTreeNode): TZjjl;
 
-     procedure GatherZjjl(AProjectData: TProjectData);
 
-     procedure WriteData(AProjectData: TProjectData);
 
-   public
 
-     function AssignData(AProjectData: TProjectData): TDataSet;
 
-   end;
 
- implementation
 
- uses
 
-   ZhAPI, PhaseData, UtilMethods, BillsMeasureDm;
 
- {$R *.dfm}
 
- function GetThirdPartString(const AStr: string; AFilter: Char = '-'): string;
 
- var
 
-   sgs: TStringList;
 
- begin
 
-   sgs := TStringList.Create;
 
-   try
 
-     sgs.Delimiter := AFilter;
 
-     sgs.DelimitedText := AStr;
 
-     while sgs.Count > 3 do
 
-       sgs.Delete(sgs.Count - 1);
 
-     Result := sgs.DelimitedText;
 
-   finally
 
-     sgs.Free;
 
-   end;
 
- end;
 
- function GetLeafXmj(ANode: TBillsIDTreeNode): TBillsIDTreeNode;
 
- begin
 
-   Result := ANode;
 
-   while Assigned(Result) and (Result.Rec.B_Code.AsString <> '') do
 
-     Result := TBillsIDTreeNode(Result.Parent);
 
- end;
 
- function GetLeafXmjDrawingCode(ANode: TBillsIDTreeNode): String;
 
- var
 
-   vLeafXmj: TsdIDTreeNode;
 
- begin
 
-   Result := '';
 
-   vLeafXmj := GetLeafXmj(ANode);
 
-   if Assigned(vLeafXmj) then
 
-     Result := vLeafXmj.Rec.ValueByName('DrawingCode').AsString;
 
- end;
 
- { TZjjl }
 
- constructor TZjjl.Create(ARec, AStageRec: TsdDataRecord; ANode: TBillsIDTreeNode);
 
-   // 取树结构的第ALevel层节点的名称(level从0开始)
 
-   function GetNameByLevel(ANode: TBillsIDTreeNode; ALevel: Integer): string;
 
-   begin
 
-     Result := '';
 
-     if not Assigned(ANode) then Exit;
 
-     if ANode.Level = ALevel then
 
-       Result := ANode.Rec.Name.AsString
 
-     else if ANode.Level > ALevel then
 
-       Result := GetNameByLevel(TBillsIDTreeNode(ANode.Parent), ALevel);
 
-   end;
 
-   function GetNameDanWei(ANode: TBillsIDTreeNode): string;
 
-   begin
 
-     // 取树结构的第二层节点的名称
 
-     Result := GetNameByLevel(ANode, 1);
 
-   end;
 
-   // ANode为计量单元节点,APegNode为桩号节点
 
-   function GetNameFenBu(ANode, APegNode: TBillsIDTreeNode): string;
 
-   var
 
-     vCurNode: TBillsIDTreeNode;
 
-   begin
 
-     // 如果计量单元节点的名称为桩号(转化为判断计量单元节点与桩号节点为同一个)
 
-     if not Assigned(APegNode) or (ANode.ID = APegNode.ID) then
 
-       // 取树结构的第三层节点的名称
 
-       Result := GetNameByLevel(ANode, 2)
 
-     // 否则,取桩号节点的子节点的名称
 
-     else
 
-     begin
 
-       vCurNode := ANode;
 
-       while vCurNode.Level > APegNode.Level + 1 do
 
-         vCurNode := TBillsIDTreeNode(vCurNode.Parent);
 
-       Result := vCurNode.Rec.Name.AsString;
 
-     end;
 
-   end;
 
-   function GetPegNode(ANode: TBillsIDTreeNode): TBillsIDTreeNode;
 
-   begin
 
-     Result := nil;
 
-     if not Assigned(ANode) then Exit;
 
-     if CheckPeg(ANode.Rec.Name.AsString) then
 
-       Result := ANode
 
-     else
 
-       Result := GetPegNode(TBillsIDTreeNode(ANode.Parent));
 
-   end;
 
- var
 
-   vLeafXmj, vPegNode: TBillsIDTreeNode;
 
- begin
 
-   FCode := ARec.ValueByName('Code').AsString;
 
-   FCertificateCode := ARec.ValueByName('CertificateCode').AsString;
 
-   FBGLCode := ARec.ValueByName('BGLCode').AsString;
 
-   FPegName := ARec.ValueByName('PegName').AsString;
 
-   FBeginPeg := ARec.ValueByName('BeginPeg').AsString;
 
-   FEndPeg := ARec.ValueByName('EndPeg').AsString;
 
-   FFBFXName := ARec.ValueByName('FBFXName').AsString;
 
-   FUnitName := ARec.ValueByName('UnitName').AsString;
 
-   FDrawingCode := ARec.ValueByName('DrawingCode').AsString;
 
-   FFormulaMemo := ARec.ValueByName('FormulaMemo').AsString;
 
-   FRelaFile := ARec.ValueByName('RelaFile').AsString;
 
-   FBillsCode := ANode.Rec.ValueByName('B_Code').AsString;
 
-   FBillsName := ANode.Rec.ValueByName('Name').AsString;
 
-   FBillsUnits := ANode.Rec.ValueByName('Units').AsString;
 
-   FBillsPrice := ANode.Rec.ValueByName('Price').AsFloat;
 
-   FFilterDrawingCode := GetThirdPartString(GetLeafXmjDrawingCode(ANode));
 
-   if Assigned(AStageRec) then
 
-   begin
 
-     FBillsCurDealQuantity := AStageRec.ValueByName('DealQuantity').AsFloat;
 
-     FBillsCurDealTotalPrice := AStageRec.ValueByName('DealTotalPrice').AsFloat;
 
-     FBillsCurQcQuantity := AStageRec.ValueByName('QcQuantity').AsFloat;
 
-     FBillsCurQcTotalPrice := AStageRec.ValueByName('QcTotalPrice').AsFloat;
 
-     FBillsCurGatherQuantity := AStageRec.ValueByName('GatherQuantity').AsFloat;
 
-     FBillsCurGatherTotalPrice := AStageRec.ValueByName('GatherTotalPrice').AsFloat;
 
-     FBillsEndDealQuantity := AStageRec.ValueByName('DealQuantity').AsFloat;
 
-     FBillsEndDealTotalPrice := AStageRec.ValueByName('DealTotalPrice').AsFloat;
 
-     FBillsEndQcQuantity := AStageRec.ValueByName('QcQuantity').AsFloat;
 
-     FBillsEndQcTotalPrice := AStageRec.ValueByName('QcTotalPrice').AsFloat;
 
-     FBillsEndGatherQuantity := AStageRec.ValueByName('GatherQuantity').AsFloat;
 
-     FBillsEndGatherTotalPrice := AStageRec.ValueByName('GatherTotalPrice').AsFloat;
 
-   end;
 
-   FBillsOrgQuantity := ANode.Rec.OrgQuantity.AsFloat;
 
-   FBillsOrgTotalPrice := ANode.Rec.OrgTotalPrice.AsFloat;
 
-   FBillsMisQuantity := ANode.Rec.MisQuantity.AsFloat;
 
-   FBillsMisTotalPrice := ANode.Rec.MisTotalPrice.AsFloat;
 
-   FBillsOthQuantity := ANode.Rec.OthQuantity.AsFloat;
 
-   FBillsOthTotalPrice := ANode.Rec.OthTotalPrice.AsFloat;
 
-   FBillsQuantity := ANode.Rec.Quantity.AsFloat;
 
-   FBillsTotalPrice := ANode.Rec.TotalPrice.AsFloat;
 
-   vLeafXmj := GetLeafXmj(ANode);
 
-   vPegNode := GetPegNode(ANode);
 
-   FFenBuName := GetNameFenBu(vLeafXmj, vPegNode);
 
-   FDanWeiName := GetNameDanWei(vLeafXmj);
 
-   FIndexCode := B_CodeToIndexCode(FBillsCode);
 
-   FSerialNo := ANode.MajorIndex;
 
- end;
 
- procedure TZjjl.Merge(ARec, AStageRec: TsdDataRecord; ANode: TBillsIDTreeNode);
 
- begin
 
-   FCertificateCode := MergeStr(FCertificateCode, ARec.ValueByName('CertificateCode').AsString);
 
-   FBGLCode := MergeRelaBGL(FBGLCode, ARec.ValueByName('BGLCode').AsString);
 
-   FDrawingCode := MergeStr(FDrawingCode, ARec.ValueByName('DrawingCode').AsString);
 
-   FFormulaMemo := MergeStr(FFormulaMemo, ARec.ValueByName('FormulaMemo').AsString);
 
-   FRelaFile := MergeStr(FRelaFile, ARec.ValueByName('RelaFile').AsString);
 
-   if Assigned(AStageRec) then
 
-   begin
 
-     FBillsCurDealQuantity := FBillsCurDealQuantity + AStageRec.ValueByName('DealQuantity').AsFloat;
 
-     FBillsCurDealTotalPrice := FBillsCurDealTotalPrice + AStageRec.ValueByName('DealTotalPrice').AsFloat;
 
-     FBillsCurQcQuantity := FBillsCurQcQuantity + AStageRec.ValueByName('QcQuantity').AsFloat;
 
-     FBillsCurQcTotalPrice := FBillsCurQcTotalPrice + AStageRec.ValueByName('QcTotalPrice').AsFloat;
 
-     FBillsCurGatherQuantity := FBillsCurGatherQuantity + AStageRec.ValueByName('GatherQuantity').AsFloat;
 
-     FBillsCurGatherTotalPrice := FBillsCurGatherTotalPrice + AStageRec.ValueByName('GatherTotalPrice').AsFloat;
 
-     FBillsEndDealQuantity := FBillsEndDealQuantity + AStageRec.ValueByName('DealQuantity').AsFloat;
 
-     FBillsEndDealTotalPrice := FBillsEndDealTotalPrice + AStageRec.ValueByName('DealTotalPrice').AsFloat;
 
-     FBillsEndQcQuantity := FBillsEndQcQuantity + AStageRec.ValueByName('QcQuantity').AsFloat;
 
-     FBillsEndQcTotalPrice := FBillsEndQcTotalPrice + AStageRec.ValueByName('QcTotalPrice').AsFloat;
 
-     FBillsEndGatherQuantity := FBillsEndGatherQuantity + AStageRec.ValueByName('GatherQuantity').AsFloat;
 
-     FBillsEndGatherTotalPrice := FBillsEndGatherTotalPrice + AStageRec.ValueByName('GatherTotalPrice').AsFloat;
 
-   end;
 
-   FBillsOrgQuantity := FBillsOrgQuantity + ANode.Rec.OrgQuantity.AsFloat;
 
-   FBillsOrgTotalPrice := FBillsOrgTotalPrice + ANode.Rec.OrgTotalPrice.AsFloat;
 
-   FBillsMisQuantity := FBillsMisQuantity + ANode.Rec.MisQuantity.AsFloat;
 
-   FBillsMisTotalPrice := FBillsMisTotalPrice + ANode.Rec.MisTotalPrice.AsFloat;
 
-   FBillsOthQuantity := FBillsOthQuantity + ANode.Rec.OthQuantity.AsFloat;
 
-   FBillsOthTotalPrice := FBillsOthTotalPrice + ANode.Rec.OthTotalPrice.AsFloat;
 
-   FBillsQuantity := FBillsQuantity + ANode.Rec.Quantity.AsFloat;
 
-   FBillsTotalPrice := FBillsTotalPrice + ANode.Rec.TotalPrice.AsFloat;
 
-   if ANode.MajorIndex < FSerialNo then
 
-     FSerialNo := ANode.MajorIndex;
 
- end;
 
- function TZjjl.MergeStr(AStr1, AStr2: string): string;
 
- begin
 
-   if (AStr1 <> '') then
 
-   begin
 
-     if (AStr2 <> '') then
 
-       Result := AStr1 + ';' + AStr2
 
-     else
 
-       Result := AStr1;
 
-   end
 
-   else
 
-   begin
 
-     if (AStr2 <> '') then
 
-       Result := AStr2
 
-     else
 
-       Result := '';
 
-   end;
 
- end;
 
- { TrmWeiWuZjjlGatherData }
 
- function TrmWeiWuZjjlGatherData.AssignData(
 
-   AProjectData: TProjectData): TDataSet;
 
-   function IndexCodeCompare(Item1, Item2: Pointer): Integer;
 
-   var
 
-     vZjjl1, vZjjl2: TZjjl;
 
-   begin
 
-     vZjjl1 := TZjjl(Item1);
 
-     vZjjl2 := TZjjl(Item2);
 
-     Result := CompareStr(vZjjl1.FIndexCode, vZjjl2.FIndexCode);
 
-     if Result = 0 then
 
-       Result := vZjjl1.FSerialNo - vZjjl2.FSerialNo;
 
-   end;
 
- begin
 
-   FZjjlList := TList.Create;
 
-   try
 
-     if AProjectData.PhaseData.Active then
 
-     begin
 
-       FPreText := AProjectData.PhaseData.PhaseProperty.ZJJLPreText;
 
-       FPhaseIndex := AProjectData.PhaseIndex;
 
-       GatherZjjl(AProjectData);
 
-       FZjjlList.Sort(@IndexCodeCompare);
 
-       WriteData(AProjectData);
 
-     end;
 
-     Result := cdsZjjl;
 
-   finally
 
-     ClearObjects(FZjjlList);
 
-     FZjjlList.Free;
 
-   end;
 
- end;
 
- function TrmWeiWuZjjlGatherData.FindZjjl(ARec: TsdDataRecord; ANode: TBillsIDTreeNode): TZjjl;
 
- var
 
-   sCode, sName, sUnits, sDrawingCode: string;
 
-   fPrice: Double;
 
-   i: Integer;
 
-   vZ: TZjjl;
 
- begin
 
-   sCode := ANode.Rec.ValueByName('B_Code').AsString;
 
-   sName := ANode.Rec.ValueByName('Name').AsString;
 
-   sUnits := ANode.Rec.ValueByName('Units').AsString;
 
-   sDrawingCode := GetThirdPartString(GetLeafXmjDrawingCode(ANode));
 
-   fPrice := ANode.Rec.valueByName('Price').AsFloat;
 
-   Result := nil;
 
-   for i := 0 to FZjjlList.Count - 1 do
 
-   begin
 
-     vZ := TZjjl(FZjjlList.Items[i]);
 
-     if SameText(vZ.FBillsCode, sCode) and SameText(vZ.FBillsName, sName) and SameText(vZ.FBillsUnits, sUnits) and
 
-        (PriceRoundTo(fPrice - vZ.FBillsPrice) < 0.00001) and
 
-        SameText(sDrawingCode, vZ.FFilterDrawingCode) then
 
-     begin
 
-       Result := vZ;
 
-       Break;
 
-     end;
 
-   end;
 
- end;
 
- procedure TrmWeiWuZjjlGatherData.GatherZjjl(AProjectData: TProjectData);
 
- var
 
-   i: Integer;
 
-   vNode: TBillsIDTreeNode;
 
-   Rec, BillsRec, StageRec: TsdDataRecord;
 
-   vZ: TZjjl;
 
- begin
 
-   for i := 0 to AProjectData.PhaseData.ZJJLData.sddZJJL.RecordCount - 1 do
 
-   begin
 
-     Rec := AProjectData.PhaseData.ZJJLData.sddZJJL.Records[I];
 
-     vNode := TBillsIDTreeNode(AProjectData.BillsMeasureData.BillsMeasureTree.FindNode(Rec.ValueByName('BillsID').AsInteger));
 
-     StageRec := AProjectData.PhaseData.StageData.StageRecord(Rec.ValueByName('BillsID').AsInteger);
 
-     if Assigned(Rec) and Assigned(vNode) then
 
-     begin
 
-       vZ := FindZjjl(Rec, vNode);
 
-       if not Assigned(vZ) then
 
-       begin
 
-         vZ := TZjjl.Create(Rec, StageRec, vNode);
 
-         FZjjlList.Add(vZ);
 
-       end
 
-       else
 
-         vZ.Merge(Rec, StageRec, vNode);
 
-     end;
 
-   end;
 
- end;
 
- procedure TrmWeiWuZjjlGatherData.WriteData;
 
-   function GetCodeFormat(ACount: Integer): string;
 
-   begin
 
-     if ACount < 10 then
 
-       Result := '-%d'
 
-     else if ACount < 100 then
 
-       REsult := '-%.2d'
 
-     else if ACount < 1000 then
 
-       Result := '-%.3d'
 
-     else if ACount < 10000 then
 
-       Result := '-%.4d'
 
-     else if ACount < 100000 then
 
-       Result := '-%.5d';
 
-   end;
 
- var
 
-   i: Integer;
 
-   vZ: TZjjl;
 
-   sFormat: String;
 
- begin
 
-   cdsZjjl.Active := True;
 
-   cdsZjjl.EmptyDataSet;
 
-   if FPreText <> '' then
 
-     sFormat := FPreText + Format('-%.2d', [FPhaseIndex]) + GetCodeFormat(FZjjlList.Count)
 
-   else
 
-     sFormat := FPreText + Format('%.2d', [FPhaseIndex]) + GetCodeFormat(FZjjlList.Count);
 
-   for i := 0 to FZjjlList.Count - 1 do
 
-   begin
 
-     vZ := TZjjl(FZjjlList.Items[i]);
 
-     cdsZjjl.Append;
 
-     cdsZjjlCode.AsString := Format(sFormat, [i+1]);
 
-     cdsZjjlCertificateCode.AsString := vZ.FCertificateCode;
 
-     cdsZjjlBGLCode.AsString := vZ.FBGLCode;
 
-     cdsZjjlPegName.AsString := vZ.FPegName;
 
-     cdsZjjlBeginPeg.AsString := vZ.FBeginPeg;
 
-     cdsZjjlEndPeg.AsString := vZ.FEndPeg;
 
-     cdsZjjlFBFXName.AsString := vZ.FFBFXName;
 
-     cdsZjjlUnitName.AsString := vZ.FUnitName;
 
-     cdsZjjlDrawingCode.AsString := vZ.FDrawingCode;
 
-     cdsZjjlFormulaMemo.AsString := vZ.FFormulaMemo;
 
-     cdsZjjlRelaFile.AsString := vZ.FRelaFile;
 
-     cdsZjjlBillsCode.AsString := vZ.FBillsCode;
 
-     cdsZjjlBillsName.AsString := vZ.FBillsName;
 
-     cdsZjjlBillsUnits.AsString := vZ.FBillsUnits;
 
-     cdsZjjlBillsPrice.AsFloat := vZ.FBillsPrice;
 
-     cdsZjjlFilterDrawingCode.AsString := vZ.FFilterDrawingCode;
 
-     cdsZjjlBillsCurDealQuantity.AsFloat := vZ.FBillsCurDealQuantity;
 
-     cdsZjjlBillsCurDealTotalPrice.AsFloat := vZ.FBillsCurDealTotalPrice;
 
-     cdsZjjlBillsCurQcQuantity.AsFloat := vZ.FBillsCurQcQuantity;
 
-     cdsZjjlBillsCurQcTotalPrice.AsFloat := vZ.FBillsCurQcTotalPrice;
 
-     cdsZjjlBillsCurGatherQuantity.AsFloat := vZ.FBillsCurGatherQuantity;
 
-     cdsZjjlBillsCurGatherTotalPrice.AsFloat := vZ.FBillsCurGatherTotalPrice;
 
-     cdsZjjlBillsEndDealQuantity.AsFloat := vZ.FBillsEndDealQuantity;
 
-     cdsZjjlBillsEndDealTotalPrice.AsFloat := vZ.FBillsEndDealTotalPrice;
 
-     cdsZjjlBillsEndQcQuantity.AsFloat := vZ.FBillsEndQcQuantity;
 
-     cdsZjjlBillsEndQcTotalPrice.AsFloat := vZ.FBillsEndQcTotalPrice;
 
-     cdsZjjlBillsEndGatherQuantity.AsFloat := vZ.FBillsEndGatherQuantity;
 
-     cdsZjjlBillsEndGatherTotalPrice.AsFloat := vZ.FBillsEndGatherTotalPrice;
 
-     cdsZjjlBillsOrgQuantity.AsFloat := vZ.FBillsOrgQuantity;
 
-     cdsZjjlBillsOrgTotalPrice.AsFloat := vZ.FBillsOrgTotalPrice;
 
-     cdsZjjlBillsMisQuantity.AsFloat := vZ.FBillsMisQuantity;
 
-     cdsZjjlBillsMisTotalPrice.AsFloat := vZ.FBillsMisTotalPrice;
 
-     cdsZjjlBillsOthQuantity.AsFloat := vZ.FBillsOthQuantity;
 
-     cdsZjjlBillsOthTotalPrice.AsFloat := vZ.FBillsOthTotalPrice;
 
-     cdsZjjlBillsQuantity.AsFloat := vZ.FBillsQuantity;
 
-     cdsZjjlBillsTotalPrice.AsFloat := vZ.FBillsTotalPrice;
 
-     cdsZjjlFenBuName.AsString := vZ.FFenBuName;
 
-     cdsZjjlDanWeiName.AsString := vZ.FDanWeiName;
 
-     cdsZjjlProjectName.AsString := AProjectData.ProjProperties.ProjectName;
 
-     cdsZjjlDealCode.AsString := AProjectData.ProjProperties.DealIndex;
 
-     cdsZjjlCName.AsString := AProjectData.ProjProperties.CName;
 
-     cdsZjjlSName.AsString := AProjectData.ProjProperties.SName;
 
-     cdsZjjlPhaseIndex.AsString := Format('%d 期', [AProjectData.PhaseIndex]);
 
-     cdsZjjlDealName.AsString := AProjectData.ProjProperties.DealName;
 
-     cdsZjjlFlowIndex.AsInteger := 0;
 
-     cdsZjjl.Post;
 
-   end;
 
- end;
 
- end.
 
 
  |