123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929 |
- unit rmSelectProjectFrm;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, sdGridDBA, sdGridTreeDBA, sdIDTree, ZJGrid;
- type
- // 初步设计 Preliminary Design
- // 施工图设计 Construction Drawing Design
- // 批准概算 Approved Budget
- // 多合同 Deal
- // 甘肃高管局定制 Mental1
- // 导则 造价台账汇总
- TMultiSelectType = (mstCommon, mstE_PCD, mstE_A, mstDeal, mstMental1, mstZjtz,
- mstQgcZj);
- // 所选项目
- TSelectProject = class
- private
- FProjectID: Integer;
- FIsTender: Boolean;
- FIsPAS: Boolean;
- FIsPD: Boolean;
- FIsCDD: Boolean;
- FIsAB: Boolean;
- FIsDeal: Boolean;
- FIsCddSc: Boolean;
- FIsCddHt: Boolean;
- public
- property ProjectID: Integer read FProjectID write FProjectID;
- property IsTender: Boolean read FIsTender write FIsTender;
- // 工程可行性研究
- property IsPAS: Boolean read FIsPAS write FIsPAS;
- // 初步设计(概算)项目
- property IsPD: Boolean read FIsPD write FIsPD;
- // 施工图设计(预算)项目
- property IsCDD: Boolean read FIsCDD write FIsCDD;
- // 批准概算项目
- property IsAB: Boolean read FIsAB write FIsAB;
- // 多合同项目(二三部分,土地征拆、监理等)
- property IsDeal: Boolean read FIsDeal write FIsDeal;
- // 施工图设计审查预算
- property IsCddSc: Boolean read FIsCddSc write FIsCddSc;
- // 施工图设计合同费用
- property IsCddHt: Boolean read FIsCddHt write FIsCddHt;
- end;
- TProjectSelectForm = class(TForm)
- zgSelectProject: TZJGrid;
- stdSelectProject: TsdGridTreeDBA;
- btnOk: TButton;
- btnCancel: TButton;
- lblProjectList: TLabel;
- lblResult: TLabel;
- zgResult: TZJGrid;
- procedure zgSelectProjectCellTextChanged(Sender: TObject; Col,
- Row: Integer);
- procedure btnOkClick(Sender: TObject);
- procedure zgSelectProjectDrawCellText(ACanvas: TCanvas;
- const ARect: TRect; const ACoord: TPoint; AGrid: TZJGrid;
- const Text: String; var ADefaultDraw: Boolean);
- procedure zgSelectProjectCellTextChanging(Sender: TObject;
- const ACoord: TPoint; var NewValue: String; var Accept: Boolean);
- procedure zgSelectProjectSetCellText(Sender: TObject;
- const ACoord: TPoint; var Value: String; DisplayText: Boolean);
- procedure zgSelectProjectGetCellText(Sender: TObject;
- const ACoord: TPoint; var Value: String; DisplayText: Boolean);
- procedure zgResultGetCellText(Sender: TObject; const ACoord: TPoint;
- var Value: String; DisplayText: Boolean);
- procedure zgResultSetCellText(Sender: TObject; const ACoord: TPoint;
- var Value: String; DisplayText: Boolean);
- private
- FMultiSelect: Boolean;
- FMultiSelectType: TMultiSelectType;
- // 记录可选项目列表的勾选情况
- FSelectProjects: TList;
- FOnAssignResult: Boolean;
- procedure AssignResult;
- function FindSelectProject(AProjectID: Integer): TSelectProject;
- function CreateSelectProject(ANode: TsdIDTreeNode): TSelectProject;
- procedure AddRows(ANode: TsdIDTreeNode);
- procedure RemoveRows(ANode: TsdIDTreeNode);
- procedure SetPASProject(AProjecID: Integer);
- procedure SetPDProject(AProjecID: Integer);
- procedure SetCDDProject(AProjectID: Integer);
- procedure SetABProject(AProjectID: Integer);
- procedure SetCddScProject(AProjectID: Integer);
- procedure SetCddHtProject(AProjectID: Integer);
- function HasPASProject: Boolean;
- function HasPDProject: Boolean;
- function HasCDDProject: Boolean;
- function HasABProject: Boolean;
- function HasCddScProject: Boolean;
- function HasCddHtProject: Boolean;
- procedure InitForm;
- procedure InitResultGrid;
- procedure SetMultiSelectType(const Value: TMultiSelectType);
- public
- constructor Create(AMultiSelect: Boolean; AProjectID: Integer; AProjects: TList);
- destructor Destroy; override;
- procedure SelectResult(var AProjectID: Integer); overload;
- procedure SelectResult(AProjects: TList); overload;
- // 可选多个
- property MultiSelect: Boolean read FMultiSelect;
- property MultiSelectType: TMultiSelectType read FMultiSelectType write SetMultiSelectType;
- end;
- implementation
- uses
- Globals, MainFrm, ZhAPI, ZjCells;
- {$R *.dfm}
- { TProjectSelectForm }
- procedure TProjectSelectForm.AssignResult;
- var
- iRow: Integer;
- stnNode: TsdIDTreeNode;
- i: Integer;
- SelectProject: TSelectProject;
- begin
- FOnAssignResult := True;
- zgSelectProject.Invalidate;
- InitResultGrid;
- for i := 0 to FSelectProjects.Count - 1 do
- begin
- SelectProject := TSelectProject(FSelectProjects.Items[i]);
- if SelectProject.IsTender then
- begin
- zgResult.RowCount := zgResult.RowCount + 1;
- stnNode := stdSelectProject.IDTree.FindNode(SelectProject.ProjectID);
- zgResult.Cells[1, zgResult.RowCount - 1].Text :=
- stnNode.Rec.ValueByName('Name').AsString;
- zgResult.Cells[1, zgResult.RowCount - 1].Align := gaCenterLeft;
- zgResult.Rows[zgResult.RowCount - 1].Data := SelectProject;
- case FMultiSelectType of
- mstE_PCD:
- begin
- if SelectProject.IsPD then
- zgResult.Cells[2, zgResult.RowCount - 1].Text := 'True';
- if SelectProject.IsCDD then
- zgResult.Cells[3, zgResult.RowCount - 1].Text := 'True';
- end;
- mstE_A:
- begin
- if SelectProject.IsAB then
- zgResult.Cells[2, zgResult.RowCount - 1].Text := 'True';
- end;
- mstDeal:
- begin
- if SelectProject.IsDeal then
- zgResult.Cells[2, zgResult.RowCount - 1].Text := 'True';
- end;
- mstZjtz:
- begin
- if SelectProject.IsPD then
- zgResult.Cells[2, zgResult.RowCount - 1].Text := 'True';
- if SelectProject.IsCddSc then
- zgResult.Cells[3, zgResult.RowCount - 1].Text := 'True';
- if SelectProject.IsCddHt then
- zgResult.Cells[4, zgResult.RowCount - 1].Text := 'True';
- end;
- mstQgcZj:
- begin
- if SelectProject.IsPAS then
- zgResult.Cells[2, zgResult.RowCount - 1].Text := 'True';
- if SelectProject.IsPD then
- zgResult.Cells[3, zgResult.RowCount - 1].Text := 'True';
- if SelectProject.IsCDD then
- zgResult.Cells[4, zgResult.RowCount - 1].Text := 'True';
- end;
- end;
- end;
- end;
- FOnAssignResult := False;
- end;
- procedure TProjectSelectForm.SelectResult(var AProjectID: Integer);
- var
- SelectProject: TSelectProject;
- begin
- AProjectID := -1;
- if FSelectProjects.Count > 0 then
- begin
- SelectProject := TSelectProject(FSelectProjects[0]);
- AProjectID := SelectProject.ProjectID;
- end;
- end;
- procedure TProjectSelectForm.zgSelectProjectCellTextChanged(
- Sender: TObject; Col, Row: Integer);
- begin
- if (Col = 1) then
- AssignResult;
- end;
- procedure TProjectSelectForm.btnOkClick(Sender: TObject);
- var
- iLimitProjectCount: Integer;
- begin
- iLimitProjectCount := 1;
- if FMultiSelect then
- begin
- if FMultiSelectType = mstE_PCD then
- iLimitProjectCount := 3
- else if FMultiSelectType = mstE_A then
- iLimitProjectCount := 2
- else if (FMultiSelectType = mstZjtz) or (FMultiSelectType = mstQgcZj) then
- iLimitProjectCount := 4
- else
- iLimitProjectCount := 2;
- end;
- if (zgResult.RowCount > iLimitProjectCount) then
- begin
- if FMultiSelect then
- begin
- if (FMultiSelectType = mstE_PCD) and HasPDProject and HasCDDProject then
- ModalResult := mrOk
- else if (FMultiSelectType = mstE_A) and HasABProject then
- ModalResult := mrOk
- else if (FMultiSelectType = mstZjtz) and HasPDProject and HasCddScProject and HasCddHtProject then
- ModalResult := mrOk
- else if (FMultiSelectType = mstQgcZj) and HasPDProject and HasCDDProject and HasPASProject then
- ModalResult := mrOk
- else if FMultiSelectType in [mstCommon, mstDeal, mstMental1] then
- ModalResult := mrOk;
- end
- else
- ModalResult := mrOK;
- end;
- end;
- constructor TProjectSelectForm.Create(AMultiSelect: Boolean;
- AProjectID: Integer; AProjects: TList);
- var
- stnNode: TsdIDTreeNode;
- begin
- inherited Create(nil);
- FMultiSelect := AMultiSelect;
- stdSelectProject.IDTree := ProjectManager.ProjectsTree;
- FSelectProjects := TList.Create;
- if not AMultiSelect then
- begin
- stnNode := stdSelectProject.IDTree.FindNode(AProjectID);
- AddRows(stnNode);
- end
- else
- FSelectProjects.Assign(AProjects);
- InitForm;
- AssignResult;
- end;
- procedure TProjectSelectForm.zgSelectProjectDrawCellText(ACanvas: TCanvas;
- const ARect: TRect; const ACoord: TPoint; AGrid: TZJGrid;
- const Text: String; var ADefaultDraw: Boolean);
- procedure GetBitmap(AImage: TBitmap);
- begin
- with stdSelectProject.IDTree.Items[ACoord.Y - 1] do
- if Rec.ValueByName('Type').AsInteger = 0 then
- if Expanded and HasChildren then
- MainForm.Images.GetBitmap(34, AImage)
- else
- MainForm.Images.GetBitmap(34, AImage)
- else
- MainForm.Images.GetBitmap(11, AImage);
- end;
- const
- rIconWidth = 16;
- rIconHeight = 16;
- var
- Img: TBitmap;
- Cell: TZjCell;
- rImg: TRect;
- begin
- if (ACoord.X = 2) and (ACoord.Y > zgSelectProject.FixedRowCount - 1) then
- begin
- Cell := zgSelectProject.Cells[ACoord.X, ACoord.Y];
- Img := TBitmap.Create;
- try
- GetBitmap(Img);
- case Cell.Align of
- gaTopLeft, gaTopCenter, gaTopRight:
- rImg := Rect(ARect.Left + 2, ARect.Top, ARect.Left + rIconWidth, ARect.Top + rIconHeight);
- gaCenterLeft, gaCenterCenter, gaCenterRight:
- rImg := Rect(ARect.Left + 2, ARect.Top + (ARect.Bottom - ARect.Top - rIconHeight) div 2, ARect.Left + rIconWidth, ARect.Bottom - (ARect.Bottom - ARect.Top - rIconHeight) div 2);
- gaBottomLeft, gaBottomCenter, gaBottomRight:
- rImg := Rect(ARect.Left + 2, ARect.Bottom - rIconHeight, ARect.Left + rIconWidth, ARect.Bottom);
- end;
- ACanvas.StretchDraw(rImg, Img);
- WriteText(ACanvas, Rect(ARect.Left + rIconWidth, ARect.Top, ARect.Right, ARect.Bottom)
- , 2, 2, Text, Cell.Align, False);
- ADefaultDraw := False;
- finally
- Img.Free;
- end;
- end;
- end;
- procedure TProjectSelectForm.zgSelectProjectCellTextChanging(
- Sender: TObject; const ACoord: TPoint; var NewValue: String;
- var Accept: Boolean);
- var
- stnNode: TsdIDTreeNode;
- begin
- if (ACoord.X = 1) then
- begin
- stnNode := stdSelectProject.IDTree.Items[ACoord.Y - 1];
- if not FMultiSelect then
- begin
- Accept := stnNode.Rec.ValueByName('Type').AsInteger = 1;
- if Accept then
- begin
- ClearObjects(FSelectProjects);
- FSelectProjects.Clear;
- end;
- end;
- end;
- end;
- procedure TProjectSelectForm.zgSelectProjectSetCellText(Sender: TObject;
- const ACoord: TPoint; var Value: String; DisplayText: Boolean);
- var
- stnNode: TsdIDTreeNode;
- begin
- if ACoord.X = 1 then
- begin
- stnNode := stdSelectProject.IDTree.Items[ACoord.Y - 1];
- if Value = 'True' then
- AddRows(stnNode)
- else
- RemoveRows(stnNode);
- end;
- end;
- procedure TProjectSelectForm.zgSelectProjectGetCellText(Sender: TObject;
- const ACoord: TPoint; var Value: String; DisplayText: Boolean);
- var
- stnNode: TsdIDTreeNode;
- SelectProject: TSelectProject;
- begin
- if ACoord.X = 1 then
- begin
- stnNode := stdSelectProject.IDTree.Items[ACoord.Y - 1];
- if Assigned(stnNode) then
- begin
- SelectProject := FindSelectProject(stnNode.ID);
- if Assigned(SelectProject) then
- Value := 'True';
- end;
- end;
- end;
- destructor TProjectSelectForm.Destroy;
- begin
- FSelectProjects.Free;
- inherited;
- end;
- procedure TProjectSelectForm.AddRows(ANode: TsdIDTreeNode);
- var
- iChild: Integer;
- SelectProject: TSelectProject;
- begin
- if not Assigned(ANode) then Exit;
- SelectProject := FindSelectProject(ANode.ID);
- if not Assigned(SelectProject) then
- CreateSelectProject(ANode);
- if ANode.HasChildren then
- for iChild := 0 to ANode.ChildCount - 1 do
- AddRows(ANode.ChildNodes[iChild]);
- end;
- procedure TProjectSelectForm.RemoveRows(ANode: TsdIDTreeNode);
- var
- iChild: Integer;
- SelectProject: TSelectProject;
- begin
- if not Assigned(ANode) then Exit;
- SelectProject := FindSelectProject(ANode.ID);
- if Assigned(SelectProject) then
- begin
- FSelectProjects.Remove(SelectProject);
- SelectProject.Free;
- end;
- if ANode.HasChildren then
- for iChild := 0 to ANode.ChildCount - 1 do
- RemoveRows(ANode.ChildNodes[iChild]);
- end;
- procedure TProjectSelectForm.SelectResult(AProjects: TList);
- begin
- AProjects.Assign(FSelectProjects);
- end;
- procedure TProjectSelectForm.InitResultGrid;
- procedure InitCommonResultGrid;
- begin
- zgResult.ColCount := 2;
- zgResult.RowCount := 1;
- zgResult.Cells[1, 0].Text := '所选项目';
- zgResult.ColWidths[1] := 270;
- end;
- procedure InitE_PCDResultGrid;
- begin
- zgResult.ColCount := 4;
- zgResult.RowCount := 1;
- zgResult.Cells[1, 0].Text := '所选项目';
- zgResult.ColWidths[1] := 200;
- zgResult.Cells[2, 0].Text := '初步设计概算';
- zgResult.CellClass.Cols[2] := TZjCheckBoxCell;
- zgResult.ColWidths[2] := 47;
- zgResult.Cells[3, 0].Text := '施工图设计预算';
- zgResult.CellClass.Cols[3] := TZjCheckBoxCell;
- zgResult.ColWidths[3] := 55;
- end;
- procedure InitE_AResultGrid;
- begin
- zgResult.ColCount := 3;
- zgResult.RowCount := 1;
- zgResult.Cells[1, 0].Text := '所选项目';
- zgResult.ColWidths[1] := 230;
- zgResult.Cells[2, 0].Text := '批准概(预)算';
- zgResult.CellClass.Cols[2] := TZjCheckBoxCell;
- zgResult.ColWidths[2] := 42;
- end;
- procedure InitDealResultGrid;
- begin
- zgResult.ColCount := 3;
- zgResult.RowCount := 1;
- zgResult.Cells[1, 0].Text := '所选项目';
- zgResult.ColWidths[1] := 230;
- zgResult.Cells[2, 0].Text := '多合同项目';
- zgResult.CellClass.Cols[2] := TZjCheckBoxCell;
- zgResult.ColWidths[2] := 42;
- end;
- procedure InitZjtzResultGrid;
- begin
- zgResult.ColCount := 5;
- zgResult.RowCount := 1;
- zgResult.Cells[1, 0].Text := '所选项目';
- zgResult.ColWidths[1] := 200;
- zgResult.Cells[2, 0].Text := '初步设计概算';
- zgResult.CellClass.Cols[2] := TZjCheckBoxCell;
- zgResult.ColWidths[2] := 47;
- zgResult.Cells[3, 0].Text := '施工图设计审查预算';
- zgResult.CellClass.Cols[3] := TZjCheckBoxCell;
- zgResult.ColWidths[3] := 60;
- zgResult.Cells[4, 0].Text := '施工图设计合同费用';
- zgResult.CellClass.Cols[4] := TZjCheckBoxCell;
- zgResult.ColWidths[4] := 60;
- end;
- procedure InitQgcZjResultGrid;
- begin
- zgResult.ColCount := 5;
- zgResult.RowCount := 1;
- zgResult.Cells[1, 0].Text := '所选项目';
- zgResult.ColWidths[1] := 200;
- zgResult.Cells[2, 0].Text := '工程可行性研究';
- zgResult.CellClass.Cols[2] := TZjCheckBoxCell;
- zgResult.ColWidths[2] := 60;
- zgResult.Cells[3, 0].Text := '初步设计';
- zgResult.CellClass.Cols[3] := TZjCheckBoxCell;
- zgResult.ColWidths[3] := 47;
- zgResult.Cells[4, 0].Text := '施工图设计';
- zgResult.CellClass.Cols[4] := TZjCheckBoxCell;
- zgResult.ColWidths[4] := 50;
- end;
- begin
- case FMultiSelectType of
- mstCommon: InitCommonResultGrid;
- mstE_PCD: InitE_PCDResultGrid;
- mstE_A: InitE_AResultGrid;
- mstDeal: InitDealResultGrid;
- mstZjtz: InitZjtzResultGrid;
- mstQgcZj: InitQgcZjResultGrid;
- end;
- end;
- procedure TProjectSelectForm.zgResultGetCellText(Sender: TObject;
- const ACoord: TPoint; var Value: String; DisplayText: Boolean);
- var
- SelectProject: TSelectProject;
- begin
- if (ACoord.Y > 0) and (ACoord.X > 1) then
- begin
- SelectProject := TSelectProject(zgResult.Rows[ACoord.Y].Data);
- if not Assigned(SelectProject) then Exit;
- case FMultiSelectType of
- mstE_PCD: if ((ACoord.X = 2) and SelectProject.IsPD) or ((ACoord.X = 3) and SelectProject.IsCDD) then Value := 'True'
- else Value := 'False';
- mstE_A: if SelectProject.IsAB then Value := 'True'
- else Value := 'False';
- mstDeal: if SelectProject.IsDeal then Value := 'True'
- else Value := 'False';
- mstZjtz: if ((ACoord.X = 2) and SelectProject.IsPD) or
- ((ACoord.X = 3) and SelectProject.IsCddSc) or
- ((ACoord.X = 4) and SelectProject.IsCddHt)
- then Value := 'True'
- else Value := 'False';
- mstQgcZj: if ((ACoord.X = 2) and SelectProject.IsPAS) or
- ((ACoord.X = 3) and SelectProject.IsPD) or
- ((ACoord.X = 4) and SelectProject.IsCDD)
- then Value := 'True'
- else Value := 'False';
- end;
- end;
- end;
- procedure TProjectSelectForm.zgResultSetCellText(Sender: TObject;
- const ACoord: TPoint; var Value: String; DisplayText: Boolean);
- var
- SelectProject: TSelectProject;
- begin
- if not FOnAssignResult and (ACoord.X > 1) and (ACoord.Y > 0) then
- begin
- SelectProject := TSelectProject(zgResult.Rows[ACoord.Y].Data);
- if Value = 'True' then
- case FMultiSelectType of
- mstE_PCD:
- if ACoord.X = 2 then
- SetPDProject(SelectProject.ProjectID)
- else if ACoord.X = 3 then
- SetCDDProject(SelectProject.ProjectID);
- mstE_A: SetABProject(SelectProject.ProjectID);
- mstDeal: SelectProject.IsDeal := True;
- mstZjtz:
- if ACoord.X = 2 then
- SetPDProject(SelectProject.ProjectID)
- else if ACoord.X = 3 then
- SetCddScProject(SelectProject.ProjectID)
- else if ACoord.X = 4 then
- SetCddHtProject(SelectProject.ProjectID);
- mstQgcZj:
- if ACoord.X = 2 then
- SetPASProject(SelectProject.ProjectID)
- else if ACoord.X = 3 then
- SetPDProject(SelectProject.ProjectID)
- else if ACoord.X = 4 then
- SetCDDProject(SelectProject.ProjectID);
- end
- else
- case FMultiSelectType of
- mstE_PCD:
- if ACoord.X = 2 then
- SelectProject.IsPD := False
- else
- SelectProject.IsCDD := False;
- mstE_A: SelectProject.IsAB := False;
- mstDeal: SelectProject.IsDeal := False;
- mstZjtz:
- if ACoord.X = 2 then
- SelectProject.IsPD := False
- else if ACoord.X = 3 then
- SelectProject.IsCddSc := False
- else if ACoord.X = 4 then
- SelectProject.IsCddHt := False;
- mstQgcZj:
- if ACoord.X = 2 then
- SelectProject.IsPAS := False
- else if ACoord.X = 3 then
- SelectProject.IsPD := False
- else if ACoord.X = 4 then
- SelectProject.IsCDD := False;
- end;
- end;
- zgResult.InvalidateCol(ACoord.X);
- zgResult.InvalidateRow(ACoord.Y);
- end;
- procedure TProjectSelectForm.InitForm;
- var
- iWidth: Integer;
- begin
- if not FMultiSelect then
- Caption := '请选择原报项目'
- else
- Caption := '请选择汇总项目';
- case FMultiSelectType of
- mstE_PCD: Caption := Caption + ',并勾选初步设计、施工图设计项目';
- mstE_A: Caption := Caption + ',并勾选批准概(预)算项目';
- mstDeal: Caption := Caption + ',并勾选其中的多合同项目';
- mstZjtz: Caption := Caption + ',并勾选初步设计、施工图设计审查预算、施工图设计合同费用项目';
- mstQgcZj: Caption := Caption + ',并勾选工程可行性研究、初步设计、施工图设计项目';
- end;
- // 甘肃高管局定制,隐藏结果表
- iWidth := GetSystemMetrics(SM_CXFRAME);
- if FMultiSelectType = mstMental1 then
- ClientWidth := 384
- else if FMultiSelectType = mstQgcZj then
- ClientWidth := 799
- else if FMultiSelectType = mstZjtz then
- ClientWidth := 809
- else
- ClientWidth := 729;
- end;
- procedure TProjectSelectForm.SetMultiSelectType(
- const Value: TMultiSelectType);
- begin
- FMultiSelectType := Value;
- InitForm;
- AssignResult;
- end;
- function TProjectSelectForm.FindSelectProject(
- AProjectID: Integer): TSelectProject;
- var
- i: Integer;
- SelectProject: TSelectProject;
- begin
- Result := nil;
- for i := 0 to FSelectProjects.Count - 1 do
- begin
- SelectProject := TSelectProject(FSelectProjects.Items[i]);
- if SelectProject.FProjectID = AProjectID then
- begin
- Result := SelectProject;
- Break;
- end;
- end;
- end;
- function TProjectSelectForm.CreateSelectProject(
- ANode: TsdIDTreeNode): TSelectProject;
- begin
- Result := TSelectProject.Create;
- FSelectProjects.Add(Result);
- Result.ProjectID := ANode.ID;
- Result.FIsTender := ANode.Rec.ValueByName('Type').AsInteger = 1;
- Result.FIsPD := False;
- Result.FIsCDD := False;
- Result.FIsAB := False;
- Result.FIsDeal := False;
- end;
- procedure TProjectSelectForm.SetPDProject(AProjecID: Integer);
- var
- i: Integer;
- SelectProject: TSelectProject;
- begin
- for i := 0 to FSelectProjects.Count - 1 do
- begin
- SelectProject := TSelectProject(FSelectProjects.Items[i]);
- SelectProject.IsPD := SelectProject.ProjectID = AProjecID;
- if SelectProject.IsPD then
- begin
- if SelectProject.IsPAS then
- SelectProject.IsPAS := False;
- if SelectProject.IsCDD then
- SelectProject.IsCDD := False;
- if SelectProject.IsAB then
- SelectProject.IsAB := False;
- if SelectProject.IsDeal then
- SelectProject.IsDeal := False;
- if SelectProject.IsCddSc then
- SelectProject.IsCddSc := False;
- if SelectProject.IsCddHt then
- SelectProject.IsCddHt := False;
- end;
- end;
- end;
- procedure TProjectSelectForm.SetABProject(AProjectID: Integer);
- var
- i: Integer;
- SelectProject: TSelectProject;
- begin
- for i := 0 to FSelectProjects.Count - 1 do
- begin
- SelectProject := TSelectProject(FSelectProjects.Items[i]);
- SelectProject.IsAB := SelectProject.ProjectID = AProjectID;
- if SelectProject.IsAB then
- begin
- if SelectProject.IsPAS then
- SelectProject.IsPAS := False;
- if SelectProject.IsPD then
- SelectProject.IsPD := False;
- if SelectProject.IsCDD then
- SelectProject.IsCDD := False;
- if SelectProject.IsDeal then
- SelectProject.IsDeal := False;
- if SelectProject.IsCddSc then
- SelectProject.IsCddSc := False;
- if SelectProject.IsCddHt then
- SelectProject.IsCddHt := False;
- end;
- end;
- end;
- procedure TProjectSelectForm.SetCDDProject(AProjectID: Integer);
- var
- i: Integer;
- SelectProject: TSelectProject;
- begin
- for i := 0 to FSelectProjects.Count - 1 do
- begin
- SelectProject := TSelectProject(FSelectProjects.Items[i]);
- SelectProject.IsCDD := SelectProject.ProjectID = AProjectID;
- if SelectProject.IsCDD then
- begin
- if SelectProject.IsPAS then
- SelectProject.IsPAS := False;
- if SelectProject.IsPD then
- SelectProject.IsPD := False;
- if SelectProject.IsAB then
- SelectProject.IsAB := False;
- if SelectProject.IsDeal then
- SelectProject.IsDeal := False;
- if SelectProject.IsCddSc then
- SelectProject.IsCddSc := False;
- if SelectProject.IsCddHt then
- SelectProject.IsCddHt := False;
- end;
- end;
- end;
- function TProjectSelectForm.HasABProject: Boolean;
- var
- i: Integer;
- SelectProject: TSelectProject;
- begin
- Result := False;
- for i := 0 to FSelectProjects.Count - 1 do
- begin
- SelectProject := TSelectProject(FSelectProjects.Items[i]);
- if SelectProject.IsAB then
- begin
- Result := True;
- Break;
- end;
- end;
- end;
- function TProjectSelectForm.HasCDDProject: Boolean;
- var
- i: Integer;
- SelectProject: TSelectProject;
- begin
- Result := False;
- for i := 0 to FSelectProjects.Count - 1 do
- begin
- SelectProject := TSelectProject(FSelectProjects.Items[i]);
- if SelectProject.IsCDD then
- begin
- Result := True;
- Break;
- end;
- end;
- end;
- function TProjectSelectForm.HasPDProject: Boolean;
- var
- i: Integer;
- SelectProject: TSelectProject;
- begin
- Result := False;
- for i := 0 to FSelectProjects.Count - 1 do
- begin
- SelectProject := TSelectProject(FSelectProjects.Items[i]);
- if SelectProject.IsPD then
- begin
- Result := True;
- Break;
- end;
- end;
- end;
- function TProjectSelectForm.HasCddHtProject: Boolean;
- var
- i: Integer;
- SelectProject: TSelectProject;
- begin
- Result := False;
- for i := 0 to FSelectProjects.Count - 1 do
- begin
- SelectProject := TSelectProject(FSelectProjects.Items[i]);
- if SelectProject.IsCddHt then
- begin
- Result := True;
- Break;
- end;
- end;
- end;
- function TProjectSelectForm.HasCddScProject: Boolean;
- var
- i: Integer;
- SelectProject: TSelectProject;
- begin
- Result := False;
- for i := 0 to FSelectProjects.Count - 1 do
- begin
- SelectProject := TSelectProject(FSelectProjects.Items[i]);
- if SelectProject.IsCddSc then
- begin
- Result := True;
- Break;
- end;
- end;
- end;
- procedure TProjectSelectForm.SetCddHtProject(AProjectID: Integer);
- var
- i: Integer;
- SelectProject: TSelectProject;
- begin
- for i := 0 to FSelectProjects.Count - 1 do
- begin
- SelectProject := TSelectProject(FSelectProjects.Items[i]);
- SelectProject.IsCddHt := SelectProject.ProjectID = AProjectID;
- if SelectProject.IsCddHt then
- begin
- if SelectProject.IsPAS then
- SelectProject.IsPAS := False;
- if SelectProject.IsPD then
- SelectProject.IsPD := False;
- if SelectProject.IsCDD then
- SelectProject.IsCDD := False;
- if SelectProject.IsAB then
- SelectProject.IsAB := False;
- if SelectProject.IsDeal then
- SelectProject.IsDeal := False;
- if SelectProject.IsCddSc then
- SelectProject.IsCddSc := False;
- end;
- end;
- end;
- procedure TProjectSelectForm.SetCddScProject(AProjectID: Integer);
- var
- i: Integer;
- SelectProject: TSelectProject;
- begin
- for i := 0 to FSelectProjects.Count - 1 do
- begin
- SelectProject := TSelectProject(FSelectProjects.Items[i]);
- SelectProject.IsCddSc := SelectProject.ProjectID = AProjectID;
- if SelectProject.IsCddSc then
- begin
- if SelectProject.IsPAS then
- SelectProject.IsPAS := False;
- if SelectProject.IsPD then
- SelectProject.IsPD := False;
- if SelectProject.IsCDD then
- SelectProject.IsCDD := False;
- if SelectProject.IsAB then
- SelectProject.IsAB := False;
- if SelectProject.IsDeal then
- SelectProject.IsDeal := False;
- if SelectProject.IsCddHt then
- SelectProject.IsCddHt := False;
- end;
- end;
- end;
- function TProjectSelectForm.HasPASProject: Boolean;
- var
- i: Integer;
- SelectProject: TSelectProject;
- begin
- Result := False;
- for i := 0 to FSelectProjects.Count - 1 do
- begin
- SelectProject := TSelectProject(FSelectProjects.Items[i]);
- if SelectProject.IsPAS then
- begin
- Result := True;
- Break;
- end;
- end;
- end;
- procedure TProjectSelectForm.SetPASProject(AProjecID: Integer);
- var
- i: Integer;
- SelectProject: TSelectProject;
- begin
- for i := 0 to FSelectProjects.Count - 1 do
- begin
- SelectProject := TSelectProject(FSelectProjects.Items[i]);
- SelectProject.IsPAS := SelectProject.ProjectID = AProjecID;
- if SelectProject.IsPAS then
- begin
- if SelectProject.IsPD then
- SelectProject.IsPD := False;
- if SelectProject.IsCDD then
- SelectProject.IsCDD := False;
- if SelectProject.IsAB then
- SelectProject.IsAB := False;
- if SelectProject.IsDeal then
- SelectProject.IsDeal := False;
- if SelectProject.IsCddSc then
- SelectProject.IsCddSc := False;
- if SelectProject.IsCddHt then
- SelectProject.IsCddHt := False;
- end;
- end;
- end;
- end.
|