| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 | 
							- unit PhaseCompareDm;
 
- interface
 
- uses
 
-   SysUtils, Classes, sdDB, sdIDTree, DB, DBClient, Provider, ADODB,
 
-   sdProvider;
 
- {const
 
-   PhaseSelect0 = 'Select R.BillsID, R.GatherQuantity As Quantity0, R.GatherTotalPrice As TotalPrice0' +
 
-                  '  From Refer As R';
 
-   PhaseSelect1 = 'Select A1.BillsID, A1.GatherQuantity As Quantity1, A1.GatherTotalPrice As TotalPrice1,' +
 
-                  '       R.GatherQuantity As Quantity0, R.GatherTotalPrice As TotalPrice0' +
 
-                  '  From Audit1 As A1 Left Join Refer As R on A1.BillsID = R.BillsID';
 
-   PhaseSelect2 = 'Select A2.BillsID, A2.GatherQuantity As Quantity2, A2.GatherTotalPrice As TotalPrice2,' +
 
-                  '       A1.GatherQuantity As Quantity1, A1.GatherTotalPrice As TotalPrice1' +
 
-                  '       R.GatherQuantity As Quantity0, R.GatherTotalPrice As TotalPrice0' +
 
-                  '  From' +
 
-                  '    (Audit2 As A2 Left Join Audit1 As A1 on A2.BillsID = A1.BillsID)'+
 
-                  '    Left Join Refer As R on A2.BillsID = R.BillsID';
 
-   PhaseSelect3 = 'Select A3.BillsID, A3.GatherQuantity As Quantity3, A3.GatherTotalPrice As TotalPrice3,' +
 
-                  '       A2.GatherQuantity As Quantity2, A2.GatherTotalPrice As TotalPrice2' +
 
-                  '       A1.GatherQuantity As Quantity1, A1.GatherTotalPrice As TotalPrice1' +
 
-                  '       R.GatherQuantity As Quantity0, R.GatherTotalPrice As TotalPrice0' +
 
-                  '  From' +
 
-                  '    ((Audit3 As A3 Left Join Audit2 As A2 on A3.BillsID = A2.BillsID)'+
 
-                  '     Left Join Audit1 As A1 on A3.BillsID = A1.BillsID)'+
 
-                  '    Left Join Refer As R on A3.BillsID = R.BillsID';
 
-   PhaseSelect4 = 'Select A4.BillsID, A4.GatherQuantity As Quantity4, A4.GatherTotalPrice As TotalPrice4,' +
 
-                  '       A3.GatherQuantity As Quantity3, A3.GatherTotalPrice As TotalPrice3' +
 
-                  '       A2.GatherQuantity As Quantity2, A2.GatherTotalPrice As TotalPrice2' +
 
-                  '       A1.GatherQuantity As Quantity1, A1.GatherTotalPrice As TotalPrice1' +
 
-                  '       R.GatherQuantity As Quantity0, R.GatherTotalPrice As TotalPrice0' +
 
-                  '  From' +
 
-                  '    (((Audit4 As A4 Left Join Audit3 As A3 on A4.BillsID = A3.BillsID)'+
 
-                  '      Left Join Audit2 As A2 on A4.BillsID = A2.BillsID)'+
 
-                  '     Left Join Audit1 As A1 on A4.BillsID = A1.BillsID)'+
 
-                  '    Left Join Refer As R on A4.BillsID = R.BillsID';
 
-   PhaseSelect14 = 'Select A14.BillsID, A14.GatherQuantity As Quantity14, A14.GatherTotalPrice As TotalPrice14,' +
 
-                   '       A13.GatherQuantity As Quantity13, A13.GatherTotalPrice As TotalPrice13' +
 
-                   '       A12.GatherQuantity As Quantity12, A12.GatherTotalPrice As TotalPrice12' +
 
-                   '       A11.GatherQuantity As Quantity11, A11.GatherTotalPrice As TotalPrice11' +
 
-                   '       A10.GatherQuantity As Quantity10, A10.GatherTotalPrice As TotalPrice10' +
 
-                   '       A9.GatherQuantity As Quantity9,   A9.GatherTotalPrice As TotalPrice9' +
 
-                   '       A8.GatherQuantity As Quantity8,   A8.GatherTotalPrice As TotalPrice8' +
 
-                   '       A7.GatherQuantity As Quantity7,   A7.GatherTotalPrice As TotalPrice7' +
 
-                   '       A6.GatherQuantity As Quantity6,   A6.GatherTotalPrice As TotalPrice6' +
 
-                   '       A5.GatherQuantity As Quantity5,   A5.GatherTotalPrice As TotalPrice5' +
 
-                   '       A4.GatherQuantity As Quantity4,   A4.GatherTotalPrice As TotalPrice4' +
 
-                   '       A3.GatherQuantity As Quantity3,   A3.GatherTotalPrice As TotalPrice3' +
 
-                   '       A2.GatherQuantity As Quantity2,   A2.GatherTotalPrice As TotalPrice2' +
 
-                   '       A1.GatherQuantity As Quantity1,   A1.GatherTotalPrice As TotalPrice1' +
 
-                   '       R.GatherQuantity As Quantity0,    R.GatherTotalPrice As TotalPrice0' +
 
-                   '  From' +
 
-                   '    (((((((((((((Audit14 As A14 Left Join Audit13 As A13 on A14.BillsID = A13.BillsID)'+
 
-                   '                Left Join Audit12 As A12 on A14.BillsID = A12.BillsID)'+
 
-                   '               Left Join Audit11 As A11 on A14.BillsID = A11.BillsID)'+
 
-                   '              Left Join Audit20 As A10 on A14.BillsID = A10.BillsID)'+
 
-                   '             Left Join Audit9 As A9 on A14.BillsID = A9.BillsID)'+
 
-                   '            Left Join Audit8 As A8 on A14.BillsID = A8.BillsID)'+
 
-                   '           Left Join Audit7 As A7 on A14.BillsID = A7.BillsID)'+
 
-                   '          Left Join Audit6 As A6 on A14.BillsID = A6.BillsID)'+
 
-                   '         Left Join Audit5 As A5 on A14.BillsID = A5.BillsID)'+
 
-                   '        Left Join Audit4 As A4 on A14.BillsID = A4.BillsID)'+
 
-                   '       Left Join Audit3 As A3 on A14.BillsID = A3.BillsID)'+
 
-                   '      Left Join Audit2 As A2 on A4.BillsID = A2.BillsID)'+
 
-                   '     Left Join Audit1 As A1 on A4.BillsID = A1.BillsID)'+
 
-                   '    Left Join Refer As R on A4.BillsID = R.BillsID'; }
 
- type
 
-   TPhaseCompareData = class(TDataModule)
 
-     sdvPhaseCompare: TsdDataView;
 
-     procedure sdvPhaseCompareGetText(var Text: String;
 
-       ARecord: TsdDataRecord; AValue: TsdValue; AColumn: TsdViewColumn;
 
-       DisplayText: Boolean);
 
-   private
 
-     FProjectData: TObject;
 
-     FCompareTree: TsdIDTree;
 
-     FStageCount: Integer;
 
-     procedure AddStageColumn(AStageIndex: Integer);
 
-     procedure ClearStageColumn;
 
-     procedure InitCompareColumns;
 
-     procedure CreateCompareTree;
 
-   public
 
-     constructor Create(AProjectData: TObject);
 
-     destructor Destroy; override;
 
-     procedure Open;
 
-     procedure Close;
 
-     procedure ReConnectTree;
 
-     procedure ExpandNodeTo(ALevel: Integer);
 
-     procedure ExpandXmjNode;
 
-     procedure ExpandCurPhase;
 
-     property ProjectData: TObject read FProjectData;
 
-     property CompareTree: TsdIDTree read FCompareTree;
 
-   end;
 
- implementation
 
- uses
 
-   ProjectData, PhaseData, StageDm, StageCompareDm, UtilMethods,
 
-   ProjectProperty;
 
- {$R *.dfm}
 
- { TPhaseCompareData }
 
- procedure TPhaseCompareData.AddStageColumn(AStageIndex: Integer);
 
- var
 
-   vColumn: TsdViewColumn;
 
- begin
 
-   vColumn := sdvPhaseCompare.Columns.Add;
 
-   vColumn.FieldName := Format('Quantity%d', [AStageIndex]);
 
-   vColumn.KeyFields := 'ID';
 
-   vColumn.LookupKeyFields := 'BillsID';
 
-   vColumn.LookupResultField := Format('Quantity%d', [AStageIndex]);
 
-   vColumn.LookupDataSet := TProjectData(FProjectData).PhaseData.StageCompareData.sddStageCompare;
 
-   vColumn.DisplayFormat := TProjectData(FProjectData).ProjProperties.QuantityFormat;
 
-   vColumn := sdvPhaseCompare.Columns.Add;
 
-   vColumn.FieldName := Format('TotalPrice%d', [AStageIndex]);
 
-   vColumn.KeyFields := 'ID';
 
-   vColumn.LookupKeyFields := 'BillsID';
 
-   vColumn.LookupResultField := Format('TotalPrice%d', [AStageIndex]);
 
-   vColumn.LookupDataSet := TProjectData(FProjectData).PhaseData.StageCompareData.sddStageCompare;
 
-   vColumn.DisplayFormat := TProjectData(FProjectData).ProjProperties.TotalPriceFormat;
 
- end;
 
- procedure TPhaseCompareData.ClearStageColumn;
 
- var
 
-   iStage: Integer;
 
-   vCol: TsdViewColumn;
 
- begin
 
-   for iStage := 0 to FStageCount - 1 do
 
-   begin
 
-     vCol := sdvPhaseCompare.Columns.FindColumn('Quantity' + IntToStr(iStage));
 
-     if Assigned(vCol) then
 
-       sdvPhaseCompare.Columns.Delete(vCol.Index);
 
-     vCol := sdvPhaseCompare.Columns.FindColumn('TotalPrice' + IntToStr(iStage));
 
-     if Assigned(vCol) then
 
-       sdvPhaseCompare.Columns.Delete(vCol.Index);
 
-   end;
 
- end;
 
- procedure TPhaseCompareData.Close;
 
- begin
 
-   sdvPhaseCompare.Close;
 
- end;
 
- constructor TPhaseCompareData.Create(AProjectData: TObject);
 
- begin
 
-   inherited Create(nil);
 
-   FProjectData := AProjectData;
 
-   FStageCount := 0;
 
- end;
 
- procedure TPhaseCompareData.CreateCompareTree;
 
- begin
 
-   FCompareTree := TsdIDTree.Create;
 
-   FCompareTree.KeyFieldName := 'ID';
 
-   FCompareTree.ParentFieldName := 'ParentID';
 
-   FCompareTree.NextSiblingFieldName := 'NextSiblingID';
 
-   FCompareTree.AutoExpand := True;
 
-   FCompareTree.DataView := sdvPhaseCompare;
 
- end;
 
- destructor TPhaseCompareData.Destroy;
 
- begin
 
-   FCompareTree.Free;
 
-   inherited;
 
- end;
 
- procedure TPhaseCompareData.ExpandCurPhase;
 
- var
 
-   iIndex: Integer;
 
-   stnNode: TsdIDTreeNode;
 
- begin
 
-   for iIndex := 0 to CompareTree.Count - 1 do
 
-   begin
 
-     stnNode := CompareTree.Items[iIndex];
 
-     with TProjectData(FProjectData).PhaseData.StageCompareData do
 
-       if (stnNode.ParentID <> -1) then
 
-         stnNode.Expanded := HasPhaseData(stnNode.ID);
 
-   end;
 
- end;
 
- procedure TPhaseCompareData.ExpandNodeTo(ALevel: Integer);
 
- begin
 
-   CompareTree.ExpandLevel := ALevel;
 
- end;
 
- procedure TPhaseCompareData.ExpandXmjNode;
 
- var
 
-   iIndex: Integer;
 
-   stnNode: TsdIDTreeNode;
 
- begin
 
-   for iIndex := 0 to CompareTree.Count - 1 do
 
-   begin
 
-     stnNode := CompareTree.Items[iIndex];
 
-     if (stnNode.ParentID <> -1) then
 
-       stnNode.Parent.Expanded := stnNode.Rec.ValueByName('B_Code').AsString = '';
 
-   end;
 
- end;
 
- procedure TPhaseCompareData.InitCompareColumns;
 
- var
 
-   iStage: Integer;
 
- begin
 
-   ClearStageColumn;
 
-   if TProjectData(FProjectData).PhaseData.Active then
 
-     for iStage := 0 to TProjectData(FProjectData).PhaseData.AuditCount do
 
-       AddStageColumn(iStage);
 
-   FStageCount := TProjectData(FProjectData).PhaseData.StageCount;
 
- end;
 
- procedure TPhaseCompareData.Open;
 
- begin
 
-   sdvPhaseCompare.DataSet := TProjectData(FProjectData).BillsData.sddBills;
 
-   InitCompareColumns;
 
-   sdvPhaseCompare.Open;
 
-   CreateCompareTree;
 
- end;
 
- procedure TPhaseCompareData.ReConnectTree;
 
- begin
 
-   FCompareTree.DataView := nil;
 
-   FCompareTree.DataView := sdvPhaseCompare;
 
-   FCompareTree.Link(TProjectData(FProjectData).BillsCompileData.BillsCompileTree, True);
 
- end;
 
- procedure TPhaseCompareData.sdvPhaseCompareGetText(var Text: String;
 
-   ARecord: TsdDataRecord; AValue: TsdValue; AColumn: TsdViewColumn;
 
-   DisplayText: Boolean);
 
- begin
 
-   if Assigned(AValue) and (AValue.DataType = ftFloat) and (AValue.AsFloat = 0) then
 
-     Text := '';
 
- end;
 
- end.
 
 
  |