📄 tas500_01.pas.svn-base
字号:
ADOQuery1.SQL.Clear;
if cbStatus.ItemIndex=0 then
begin
ADOQuery1.SQL.Add('select A.*,B.T120_003,');
ADOQuery1.SQL.Add(' E.O150_001,E.O150_002,E.O150_003,B.T120_005');
ADOQuery1.SQL.Add('from TAS500 A, TAS120 B,ORD150 E');
ADOQuery1.SQL.Add('where A.T500_003=B.T120_001 and A.T500_015=E.O150_001');
ADOQuery1.SQL.Add('order by T500_001');
end else
begin
ADOQuery1.SQL.Add('select A.*,B.T120_003,');
ADOQuery1.SQL.Add(' E.O150_001,E.O150_002,E.O150_003,B.T120_005');
ADOQuery1.SQL.Add('from TAS500 A, TAS120 B,ORD150 E');
ADOQuery1.SQL.Add('where A.T500_003=B.T120_001 and A.T500_015=E.O150_001 and ');
ADOQuery1.SQL.Add(' T500_003='+IntToStr(cbStatus.ItemIndex));
ADOQuery1.SQL.Add('order by T500_001');
end;
ADOQuery1.Open;
ARecordCount:=GetDataSetCount(ADOQuery1);
ADOQuery1.EnableControls;
Screen.Cursor:=crDefault;
end;
procedure TTas500_01Form.cbStatusChange(Sender: TObject);
begin
inherited;
sbSearch.Click;
end;
procedure TTas500_01Form.Action1Execute(Sender: TObject);
var
ACode:string;
AFactToDate:TDateTime;
begin
inherited;
//完成
if ADOQuery1.IsEmpty then Exit;
if ADOQuery1.FieldByName('T500_003').AsInteger=1 then
begin
ShowMsg('UMS10000329'); //计划状态下的项目不可执行该操作
Abort;
end;
if ShowDialog('UMS10000330')=IDYES then //项目设置为完成后,将不可对它进行其他任何操作,是否确定将该项目设置为完成状态?
begin
ACode:=ADOQuery1.FieldByName('T500_001').AsString;
//实际完成日期
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select top 1 T510_028 from TAS510 where T510_008=2 and T510_009='+''''+ACode+''''+' order by T510_027 desc');
SYSDM.qryQuery.Open;
if SYSDM.qryQuery.Fields[0].IsNull then
begin
ShowMsg('UMS10000335'); //该项目下存在有相关的未完成的任务计划,请先将相关的任务计划关闭后,再关闭该项目计划
Abort;
end;
AFactToDate:=SYSDM.qryQuery.Fields[0].Value;
ADOQuery1.Edit;
ADOQuery1.FieldByName('T500_003').Value:=3; //设置完成状态
ADOQuery1.FieldByName('T500_027').Value:=AFactToDate; //实际完成日期
ADOQuery1.Post;
end;
ADOQuery1.DisableControls;
sbSearch.Click;
ADOQuery1.Locate('T500_001',ACode,[]);
ADOQuery1.EnableControls;
ShowMsg('UMS10000331'); //成功将项目设置为完成状态
end;
procedure TTas500_01Form.dxDBGrid1CustomDrawCell(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
var AText: String; var AColor: TColor; AFont: TFont;
var AAlignment: TAlignment; var ADone: Boolean);
begin
inherited;
if ANode.HasChildren then Exit;
if not ASelected then
if ANode.Values[dxDBGrid1T120_005.Index]<>null then AFont.Color:=ANode.Values[dxDBGrid1T120_005.Index];
end;
procedure GetStatusList(var AStringList:TStrings);
begin
if AStringList=nil then Exit;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select * from TAS120 where T120_001 in (1,2,3)');
SYSDM.qryQuery.Open;
while not SYSDM.qryQuery.Eof do
begin
AStringList.Add(SYSDM.qryQuery.FieldByName('T120_003').Value);
SYSDM.qryQuery.Next;
end;
end;
procedure TTas500_01Form.FilterDialogSelectField(Sender: TObject;
FieldName: String; var PictureMask: String; ComboList: TStrings);
begin
if FieldName='T120_003' then GetStatusList(ComboList);
end;
procedure TTas500_01Form.ReportGetValue(const ParName: String; var ParValue: Variant);
begin
inherited;
if ParName='AStatus' then ParValue:=lblStatus.Caption //项目状态
else if ParName='AStatusValue' then ParValue:=cbStatus.Text //
else if ParName='T500_001' then ParValue:=ADOQuery1T500_001.DisplayLabel //
else if ParName='T500_002' then ParValue:=ADOQuery1T500_002.DisplayLabel //
else if ParName='T120_003' then ParValue:=ADOQuery1T120_003.DisplayLabel //
else if ParName='T500_006' then ParValue:=ADOQuery1T500_006.DisplayLabel //
else if ParName='O150_002' then ParValue:=ADOQuery1O150_002.DisplayLabel //
else if ParName='O150_003' then ParValue:=ADOQuery1O150_003.DisplayLabel //
else if ParName='I150_002' then ParValue:=ADOQuery1I150_002.DisplayLabel //
else if ParName='T500_017' then ParValue:=ADOQuery1T500_017.DisplayLabel //
end;
procedure TTas500_01Form.dxDBGrid1T500_001DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
inherited;
AColor:=clWhite;
AText:=GetDBString('COM00004002')+IntToStr(ARecordCount); //记录总数:
end;
procedure TTas500_01Form.ADOQuery1CalcFields(DataSet: TDataSet);
begin
inherited;
case ADOQuery1T500_007.AsInteger of
0:ADOQuery1FType.AsString:=AType[0]; //销售订单
1:ADOQuery1FType.AsString:=AType[1]; //手工输入
end;
case ADOQuery1T500_010.AsInteger of
0:ADOQuery1FUnit.AsString:=AUnit[0]; //时
1:ADOQuery1FUnit.AsString:=AUnit[1]; //天
2:ADOQuery1FUnit.AsString:=AUnit[2]; //周
3:ADOQuery1FUnit.AsString:=AUnit[3]; //月
end;
end;
procedure TTas500_01Form.BrowseEvent;
begin
inherited;
Tas500_02Form:=TTas500_02Form.Create(Application);
Tas500_02Form.OpenData(ADOQuery1T500_001.Value);
Tas500_02Form.ShowModal;
end;
procedure TTas500_01Form.DeleteEvent;
var
ATypeNo:Integer;
AOrderID,ACode:string;
begin
inherited;
//删除
//仅状态=计划时可删除
if ADOQuery1T500_003.AsInteger<>1 then
begin
ShowMsg('UMS10000263'); //不允许删除非计划状态的记录
Abort;
end;
ATypeNo:=ADOQuery1.FieldByName('T500_007').AsInteger;
AOrderID:=ADOQuery1.FieldByName('T500_008').AsString;
ACode:=ADOQuery1T500_001.AsString;
DeleteTableRecord(ADOQuery1,'TAS500','T500_001='+''''+ACode+'''');
//更新来源单据的相关字段
case ATypeNo of
0:UpdateOrderInfo(AOrderID,0); //销售定单
2:UpdateCallInfo(AOrderID,0); //来电记录
end;
end;
procedure TTas500_01Form.InsertEvent;
begin
inherited;
//新增
Tas500_02Form:=TTas500_02Form.Create(Application);
Tas500_02Form.OpenData('');
Tas500_02Form.ActInsert.Execute;
Tas500_02Form.ShowModal;
end;
procedure TTas500_01Form.UpdateEvent;
begin
inherited;
//修改
if ADOQuery1T500_003.AsInteger<>1 then
begin
ShowMsg('UMS10000302'); //不允许修改非计划状态的记录
Abort;
end;
Tas500_02Form:=TTas500_02Form.Create(Application);
Tas500_02Form.OpenData(ADOQuery1T500_001.Value);
Tas500_02Form.ActUpdate.Execute;
Tas500_02Form.ShowModal;
end;
procedure TTas500_01Form.ActPrintExecute(Sender: TObject);
begin
AReportName:='';
inherited;
end;
initialization
RegisterClass(TTas500_01Form);
finalization
UnRegisterClass(TTas500_01Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -