📄 tas510_01.pas.svn-base
字号:
Screen.Cursor:=crHourGlass;
AStringList:=TStringList.Create;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select * from TAS100 where T100_002='+''''+cbClass.Text+'''');
SYSDM.qryQuery.Open;
if SYSDM.qryQuery.IsEmpty then AClassNo:='0' else AClassNo:=SYSDM.qryQuery.FieldByName('T100_001').AsString;
if AClassNo<>'0' then
begin
AStringList.Add(AClassNo);
if HasChild(AClassNo,'TAS100','T100_003') then GetChild(AClassNo,'TAS100','T100_003','T100_001',AStringList);
end;
AClassNo:='';
for I:=0 to AStringList.Count-1 do AClassNo:=AClassNo+','+AStringList[I];
Delete(AClassNo,1,1);
ADOQuery1.DisableControls;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select B.*,C.T100_002,D.T120_003,');
ADOQuery1.SQL.Add(' G.O150_001,G.O150_002,G.O150_003,I.H150_002,I.H150_003,D.T120_005');
ADOQuery1.SQL.Add('from TAS510 B,TAS100 C,TAS120 D,ORD150 G,HRM150 I');
ADOQuery1.SQL.Add('where B.T510_004=C.T100_001 and B.T510_003=D.T120_001 and B.T510_024=I.H150_001 and');
ADOQuery1.SQL.Add(' B.T510_016=G.O150_001 and ');
ADOQuery1.SQL.Add(' '+AField+'>='+GetDateString(edtFromDate.Date)+' and '+AField+'<='+GetDateString(edtToDate.Date));
if AClassNo<>'' then ADOQuery1.SQL.Add(' and B.T510_004 in ('+AClassNo+')');
ADOQuery1.SQL.Add('order by T510_001');
ADOQuery1.Open;
ADOQuery1.EnableControls;
ARecordCount:=GetDataSetCount(ADOQuery1);
AStringList.Free;
Screen.Cursor:=crDefault;
end;
procedure TTas510_01Form.Action1Execute(Sender: TObject);
begin
inherited;
//完成
if ADOQuery1.IsEmpty then Exit;
if ADOQuery1.FieldByName('T510_003').AsInteger in [1,2,3,4] then
begin
ShowMsg('UMS10000314'); //计划、执行、完成、返工状态下的任务不可执行该操作
Abort;
end;
if ShowDialog('UMS10000315')=IDYES then //任务设置为完成后,将不可对它进行其他任何操作,是否确定将该任务设置为完成状态?
begin
Screen.Cursor:=crHourGlass;
ADOQuery1.Edit;
ADOQuery1.FieldByName('T510_003').Value:=3; //设置完成状态
ADOQuery1.FieldByName('T510_028').Value:=GetServerDate;
ADOQuery1.Post;
end;
ADOQuery1.Refresh;
Screen.Cursor:=crDefault;
ShowMsg('UMS10000316'); //成功将任务设置为完成状态
end;
procedure TTas510_01Form.Action2Execute(Sender: TObject);
var
ATaskID:string;
begin
inherited;
//返工
//必须保存工单后再更改状态,且不能输入任务编号等信息,只能输入执行人员,预计工时等
if ADOQuery1.IsEmpty then Exit;
if ADOQuery1.FieldByName('T510_003').Value<>3 then
begin
ShowMsg('UMS10000317'); //非完成状态下的任务不可执行返工作业
Abort;
end;
Screen.Cursor:=crHourGlass;
ATaskID:=ADOQuery1.FieldByName('T510_001').AsString;
Tas520_02Form:=TTas520_02Form.Create(Application);
Tas520_02Form.OpenData('',ATaskID);
Screen.Cursor:=crDefault;
if Tas520_02Form.ShowModal=1 then
begin
ADOQuery1.DisableControls;
sbSearch.Click;
ADOQuery1.Locate('T510_001',ATaskID,[]);
ADOQuery1.Edit;
ADOQuery1.FieldByName('T510_003').Value:=4; //设置返工状态
ADOQuery1.FieldByName('T510_028').Value:=null;
ADOQuery1.Post;
ADOQuery1.EnableControls;
ShowMsg('UMS10000318'); //成功将任务设置为返工状态
end;
end;
procedure TTas510_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 TTas510_01Form.ReportGetValue(const ParName: String; var ParValue: Variant);
begin
inherited;
if ParName='AType' then ParValue:=lblClass.Caption //类别
else if ParName='ATypeValue' then ParValue:=cbClass.Text //
else if ParName='ADate' then ParValue:=lblDate.Caption //日期
else if ParName='AFromDate' then ParValue:=edtFromDate.Text //
else if ParName='AToDate' then ParValue:=edtToDate.Text //
else if ParName='T510_001' then ParValue:=ADOQuery1T510_001.DisplayLabel //
else if ParName='T510_002' then ParValue:=ADOQuery1T510_002.DisplayLabel //
else if ParName='T120_003' then ParValue:=ADOQuery1T120_003.DisplayLabel //
else if ParName='T510_006' then ParValue:=ADOQuery1T510_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='T510_018' then ParValue:=ADOQuery1T510_018.DisplayLabel //
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');
SYSDM.qryQuery.Open;
while not SYSDM.qryQuery.Eof do
begin
AStringList.Add(SYSDM.qryQuery.FieldByName('T120_003').Value);
SYSDM.qryQuery.Next;
end;
end;
procedure TTas510_01Form.FilterDialogSelectField(Sender: TObject;
FieldName: String; var PictureMask: String; ComboList: TStrings);
begin
if FieldName='T120_003' then GetStatusList(ComboList);
end;
procedure TTas510_01Form.cbClassChange(Sender: TObject);
begin
inherited;
sbSearch.Click;
end;
procedure TTas510_01Form.dxDBGrid1T510_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 TTas510_01Form.ADOQuery1CalcFields(DataSet: TDataSet);
begin
inherited;
case ADOQuery1T510_008.AsInteger of
0:ADOQuery1FType.AsString:=AType[0]; //销售订单
1:ADOQuery1FType.AsString:=AType[1]; //来电记录
2:ADOQuery1FType.AsString:=AType[2]; //项目计划
3:ADOQuery1FType.AsString:=AType[3]; //手工输入
end;
case ADOQuery1T510_011.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 TTas510_01Form.BrowseEvent;
begin
inherited;
Tas510_02Form:=TTas510_02Form.Create(Application);
Tas510_02Form.OpenData(ADOQuery1T510_001.Value);
Tas510_02Form.ShowModal;
end;
procedure TTas510_01Form.DeleteEvent;
var
ATypeNo:Integer;
AOrderID,ACode:string;
begin
inherited;
//删除
//仅状态=计划时可删除
if ADOQuery1T510_003.AsInteger<>1 then
begin
ShowMsg('UMS10000263'); //不允许删除非计划状态的记录
Abort;
end;
try
ATypeNo:=ADOQuery1.FieldByName('T510_008').AsInteger;
AOrderID:=ADOQuery1.FieldByName('T510_009').AsString;
ACode:=ADOQuery1T510_001.AsString;
DeleteTableRecord(ADOQuery1,'TAS510','T510_001='+''''+ACode+'''');
//更新来源单据的相关字段
case ATypeNo of
0:UpdateOrderInfo(AOrderID,1); //销售定单
1:UpdateCallInfo(AOrderID,1); //来电记录
2:UpdateProjectInfo(AOrderID); //项目计划
end;
except
ShowMsg(SYSDM.ADOC.Errors[0].Description+#13+SYSDM.qryQuery.SQL.Text,1);
Abort;
end;
end;
procedure TTas510_01Form.InsertEvent;
begin
inherited;
//新增
Tas510_02Form:=TTas510_02Form.Create(Application);
Tas510_02Form.OpenData('');
Tas510_02Form.ActInsert.Execute;
Tas510_02Form.ShowModal;
end;
procedure TTas510_01Form.UpdateEvent;
begin
inherited;
//修改
if ADOQuery1T510_003.AsInteger in [2,3,4] then
begin
ShowMsg('UMS10000311'); //不允许修改执行、完成、返工状态的记录
Abort;
end;
Tas510_02Form:=TTas510_02Form.Create(Application);
Tas510_02Form.OpenData(ADOQuery1T510_001.Value);
Tas510_02Form.ActUpdate.Execute;
Tas510_02Form.ShowModal;
end;
procedure TTas510_01Form.ActPrintExecute(Sender: TObject);
begin
AReportName:='';
inherited;
end;
initialization
RegisterClass(TTas510_01Form);
finalization
UnRegisterClass(TTas510_01Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -