|
@@ -13,7 +13,8 @@ type
|
|
|
// 多合同 Deal
|
|
|
// 甘肃高管局定制 Mental1
|
|
|
// 导则 造价台账汇总
|
|
|
- TMultiSelectType = (mstCommon, mstE_PCD, mstE_A, mstDeal, mstMental1, mstZjtz);
|
|
|
+ TMultiSelectType = (mstCommon, mstE_PCD, mstE_A, mstDeal, mstMental1, mstZjtz,
|
|
|
+ mstQgcZj);
|
|
|
|
|
|
// 所选项目
|
|
|
TSelectProject = class
|
|
@@ -21,6 +22,7 @@ type
|
|
|
FProjectID: Integer;
|
|
|
FIsTender: Boolean;
|
|
|
|
|
|
+ FIsPAS: Boolean;
|
|
|
FIsPD: Boolean;
|
|
|
FIsCDD: Boolean;
|
|
|
FIsAB: Boolean;
|
|
@@ -31,6 +33,8 @@ type
|
|
|
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;
|
|
|
// 施工图设计(预算)项目
|
|
@@ -83,12 +87,14 @@ type
|
|
|
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;
|
|
@@ -168,6 +174,15 @@ begin
|
|
|
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;
|
|
@@ -204,7 +219,7 @@ begin
|
|
|
iLimitProjectCount := 3
|
|
|
else if FMultiSelectType = mstE_A then
|
|
|
iLimitProjectCount := 2
|
|
|
- else if FMultiSelectType = mstZjtz then
|
|
|
+ else if (FMultiSelectType = mstZjtz) or (FMultiSelectType = mstQgcZj) then
|
|
|
iLimitProjectCount := 4
|
|
|
else
|
|
|
iLimitProjectCount := 2;
|
|
@@ -220,6 +235,8 @@ begin
|
|
|
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
|
|
@@ -458,13 +475,31 @@ procedure TProjectSelectForm.InitResultGrid;
|
|
|
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;
|
|
|
+ mstZjtz: InitZjtzResultGrid;
|
|
|
+ mstQgcZj: InitQgcZjResultGrid;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
@@ -489,6 +524,11 @@ begin
|
|
|
((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;
|
|
@@ -517,6 +557,13 @@ begin
|
|
|
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
|
|
@@ -534,6 +581,13 @@ begin
|
|
|
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);
|
|
@@ -554,12 +608,15 @@ begin
|
|
|
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
|
|
@@ -614,8 +671,21 @@ begin
|
|
|
begin
|
|
|
SelectProject := TSelectProject(FSelectProjects.Items[i]);
|
|
|
SelectProject.IsPD := SelectProject.ProjectID = AProjecID;
|
|
|
- if SelectProject.IsPD and SelectProject.IsCDD then
|
|
|
- SelectProject.IsCDD := False;
|
|
|
+ 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;
|
|
|
|
|
@@ -628,6 +698,21 @@ begin
|
|
|
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;
|
|
|
|
|
@@ -640,8 +725,21 @@ begin
|
|
|
begin
|
|
|
SelectProject := TSelectProject(FSelectProjects.Items[i]);
|
|
|
SelectProject.IsCDD := SelectProject.ProjectID = AProjectID;
|
|
|
- if SelectProject.IsCDD and SelectProject.IsPD then
|
|
|
- SelectProject.IsPD := False;
|
|
|
+ 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;
|
|
|
|
|
@@ -739,6 +837,21 @@ begin
|
|
|
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;
|
|
|
|
|
@@ -751,6 +864,65 @@ begin
|
|
|
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;
|
|
|
|