procedure TfrmPEAD.bbToNextClick(Sender: TObject);
Var
nextStep: Integer;
LocateSuccess: Boolean;
SearchOptions: TLocateOptions;
begin
{首先处理好当前及下一阶段的阶段序号}
If ( CInStep>=1 ) And ( CInStep<5 ) Then Begin
nextStep := CInStep+1;
End Else If ( CInStep=5 ) Then Begin
nextStep := 7;
End Else Begin {不可没有下一阶段转移直接退出}
ShowMessage('当前投资项目没有下一阶段可转,无法再处理!');
Exit;
End;
Screen.Cursor := crHourGlass;
With dmMTG.tPrjNext Do
Try
DisableControls;
Active := False;
{替换有效的对应于当前项目阶段的下一阶段的数据库表}
TableName:='tbItem'+Trim(IntToStr(nextStep));
Active := True;
{在下一阶段数据表内查询是否已存在当前项目信息内容}
SearchOptions := [loPartialKey];
LocateSuccess := Locate('编码;主名称',
VarArrayOf([dmMTG.tPrjInfo.FieldByName( '编码' ).AsString,
dmMTG.tPrjInfo.FieldByName('主名称').AsString]),
SearchOptions);
If LocateSuccess=True Then Edit
Else Append;
Append;
{填写需要转移到下一阶段的投资项目数据}
FieldByName('编码').AsString :=dmMTG.tPrjInfo.FieldByName('编码').AsString;
FieldByName('主名称').AsString :=dmMTG.tPrjInfo.FieldByName('主名称').AsString;
FieldByName('子名称').AsString :=dmMTG.tPrjInfo.FieldByName('子名称').AsString;
Post;
Finally
Close; {正确与否均关闭数据表}
EnableControls;
End; {End of dmMTG.tPrjNext}
Screen.Cursor := crDefault;
end;