📄 tas510_02.pas
字号:
ALineNo,ACustNo,AItemNo,AMangerNo:Integer;
AOrderID:string;
begin
inherited;
//确定(&O)
if edtCode.Enabled then
begin
if (trim(edtCode.Text)='') and (not AIsAutoCode) then
begin
ShowMsg('UMS10000277'); //任务编号不能为空
edtCode.SetFocus;
Abort;
end;
if AOldCode<>edtCode.Text then
begin
if IsExists('select 1 from TAS510 where T510_001='+''''+edtCode.Text+'''') then
begin
ShowMsg('UMS10000278'); //任务编号已存在,请重新输入
edtCode.SetFocus;
Abort;
end;
end;
end;
if trim(edtName.Text)='' then
begin
ShowMsg('UMS10000279'); //任务名称不能为空
edtName.SetFocus;
Abort;
end;
if trim(edtDate.Text)='' then
begin
ShowMsg('UMS10000273'); //申报日期不能为空
edtDate.SetFocus;
Abort;
end;
if trim(cbClass.Text)='' then
begin
ShowMsg('UMS10000310'); //任务类别不能为空
cbClass.SetFocus;
Abort;
end;
if trim(edtReqDate.Text)='' then
begin
ShowMsg('UMS10000281'); //需求日期不能为空
edtReqDate.SetFocus;
Abort;
end;
if not qryHrm150.Locate('H150_002',edtManager.Text,[]) then
begin
ShowMsg('UMS10000265'); //输入的责任人员无效
edtManager.SetFocus;
Abort;
end;
AMangerNo:=qryHrm150.FieldByName('H150_001').Value;
if edtOrder.Enabled then
begin
if trim(edtOrder.Text)='' then
begin
ShowMsg('UMS10000307'); //来源单号不能为空
edtOrder.SetFocus;
Abort;
end;
if (AOldFrom<>cbFrom.ItemIndex) or (AOldOrder<>edtOrder.Text) then edtOrderExit(edtOrder);
end;
if trim(edtCust.Text)='' then
begin
ShowMsg('UMS10000180'); //客户编号不能为空
if edtCust.Enabled then edtCust.SetFocus;
Abort;
end;
if not qryOrd150.Locate('O150_002',edtCust.Text,[]) then
begin
ShowMsg('UMS10000264'); //输入的客户编号无效
if edtCust.Enabled then edtCust.SetFocus;
Abort;
end;
ACustNo:=qryOrd150.FieldByName('O150_001').Value;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select A.O153_002 from ORD153 A, INV150 B where A.O153_002=B.I150_001 and A.O153_001='+IntToStr(ACustNo)+' and B.I150_002='+''''+edtItem.Text+'''');
SYSDM.qryQuery.Open;
if SYSDM.qryQuery.IsEmpty then AItemNo:=0 else AItemNo:=SYSDM.qryQuery.Fields[0].Value;
if edtItem.Enabled then
begin
if trim(edtItem.Text)='' then
begin
ShowMsg('UMS10000274'); //产品编号不能为空
edtItem.SetFocus;
Abort;
end;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select A.O153_002 from ORD153 A, INV150 B where A.O153_002=B.I150_001 and A.O153_001='+IntToStr(ACustNo)+' and B.I150_002='+''''+edtItem.Text+'''');
SYSDM.qryQuery.Open;
if SYSDM.qryQuery.IsEmpty then
begin
ShowMsg('UMS10000267'); //输入的产品编号无效
edtItem.SetFocus;
Abort;
end;
AItemNo:=SYSDM.qryQuery.Fields[0].Value;
if trim(edtMacNo.Text)='' then
begin
ShowMsg('UMS10000275'); //机身编号不能为空
edtMacNo.SetFocus;
Abort;
end;
if not IsExists('select 1 from ORD153 where O153_001='+IntToStr(ACustNo)+' and O153_002='+IntToStr(AItemNo)+' and O153_003='+''''+edtMacNo.Text+'''') then
begin
ShowMsg('UMS10000268'); //输入的机身编号无效
edtMacNo.SetFocus;
Abort;
end;
end;
if trim(memDetails.Text)='' then
begin
ShowMsg('UMS10000280'); //任务说明不能为空
memDetails.SetFocus;
Abort;
end;
if AMode='ADD' then
begin
qryTas510.Insert;
qryTas510.FieldByName('T510_020').AsString:=edtCreateDate.Text; //制单日期
qryTas510.FieldByName('T510_021').AsString:=edtCreateBy.Text; //制单人员
qryTas510.FieldByName('T510_022').AsString:=edtUpdateDate.Text; //修改日期
qryTas510.FieldByName('T510_023').AsString:=edtUpdateBy.Text; //修改人员
end else
begin
ADate:=GetServerDate;
qryTas510.Edit;
qryTas510.FieldByName('T510_022').Value:=ADate; //修改日期
qryTas510.FieldByName('T510_023').Value:=AUserName; //修改人员
end;
qryTas510.FieldByName('T510_002').Value:=edtName.Text; //任务名称
if AMode='ADD' then qryTas510.FieldByName('T510_003').Value:=1; //任务状态
qryTas510.FieldByName('T510_004').Value:=qryTas100.FieldByName('T100_001').Value; //任务类别
qryTas510.FieldByName('T510_005').Value:=udPriority.Position; //优先级别
qryTas510.FieldByName('T510_006').Value:=edtDate.Date; //申报日期
qryTas510.FieldByName('T510_007').Value:=edtReqDate.Date; //需求日期
qryTas510.FieldByName('T510_008').Value:=cbFrom.ItemIndex; //来源类型
if edtOrder.Enabled then qryTas510.FieldByName('T510_009').Value:=edtOrder.Text; //来源单号
if cbFrom.ItemIndex=0 then //销售订单
begin
ALineNo:=0;
qryTas510.FieldByName('T510_009').Value:=edtOrder.Text; //来源单号
qryTas510.FieldByName('T510_010').Value:=ALineNo; //单据行号
end;
qryTas510.FieldByName('T510_011').Value:=cbUnit.ItemIndex; //时间单位
qryTas510.FieldByName('T510_012').Value:=edtDays.Text; //预计工时
qryTas510.FieldByName('T510_013').Value:=edtFactDays.Text; //实际工时
qryTas510.FieldByName('T510_014').Value:=edtPercent.Text; //完工比率
qryTas510.FieldByName('T510_015').Value:=0; //工单总数
qryTas510.FieldByName('T510_016').Value:=ACustNo; //客户编号
if AItemNo<>0 then qryTas510.FieldByName('T510_017').Value:=AItemNo; //产品编号
if edtMacNo.Text<>'' then qryTas510.FieldByName('T510_018').Value:=edtMacNo.Text; //机身编号
qryTas510.FieldByName('T510_019').Value:=memDetails.Text; //任务说明
if AMangerNo<>0 then qryTas510.FieldByName('T510_024').Value:=AMangerNo; //责任人员
if edtFromDate.Date<>0 then qryTas510.FieldByName('T510_025').Value:=edtFromDate.Date else qryTas510.FieldByName('T510_025').Value:=null; //预计开始日期
if edtToDate.Date<>0 then qryTas510.FieldByName('T510_026').Value:=edtToDate.Date else qryTas510.FieldByName('T510_026').Value:=null; //预计完成日期
try
if (edtCode.Text='') and (AIsAutoCode) then edtCode.Text:=GetAutoCode('TAS510');
if AOldCode<>edtCode.Text then qryTas510.FieldByName('T510_001').Value:=edtCode.Text; //任务编号
qryTas510.Post;
//更新来源单据的相关字段
AOrderID:='';
AOrderID:=edtOrder.Text;
case cbFrom.ItemIndex of
0:UpdateOrderInfo(AOrderID,1); //销售定单
1:UpdateCallInfo(AOrderID,1); //来电记录
2:UpdateProjectInfo(AOrderID); //项目计划
end;
//当修改时改变了原项目编号或来电编号,则同时修改原单据的相关信息
if (AOldOrder<>'') and (AOldOrder<>edtOrder.Text) then
begin
case AOldFrom of
0:UpdateOrderInfo(AOrderID,1); //销售定单
1:UpdateCallInfo(AOrderID,1); //来电记录
2:UpdateProjectInfo(AOrderID); //项目计划
end;
end;
SetButtonState(False);
ActRefresh.Execute;
qryTas510AfterScroll(qryTas510);
if AMode='ADD' then
begin
if ShowDialog('['+edtCode.Text+'] '+GetDBString('UMS10000309'),1)=IDYES then //记录保存成功,是否继续增加新记录?
begin
ActInsert.Execute;
end;
end;
except
ShowMsg(SYSDM.ADOC.Errors[0].Description+#13+SYSDM.qryQuery.SQL.Text,1);
Abort;
end;
end;
procedure TTas510_02Form.qryTas510T510_008GetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
inherited;
if qryTas510.IsEmpty then Exit;
case Sender.AsInteger of
0:Text:=AType[0]; //销售订单
1:Text:=AType[1]; //来电记录
2:Text:=AType[2]; //项目计划
3:Text:=AType[3]; //手工输入
end;
end;
procedure TTas510_02Form.qryTas510T510_011GetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
inherited;
if qryTas510.IsEmpty then Exit;
case Sender.AsInteger of
0:Text:=AUnit[0]; //时
1:Text:=AUnit[1]; //天
2:Text:=AUnit[2]; //周
3:Text:=AUnit[3]; //月
end;
end;
procedure TTas510_02Form.edtDaysExit(Sender: TObject);
begin
inherited;
try
if trim(edtDays.Text)='' then edtDays.Text:='1';
StrToFloat(edtDays.Text);
except
ShowMsg('UMS10000322'); //输入的值无效,请输入数字
edtDays.SetFocus;
Abort;
end;
end;
procedure TTas510_02Form.edtFromDateExit(Sender: TObject);
begin
inherited;
if edtFromDate.Text='' then
begin
edtToDate.Text:='';
Exit;
end;
try
edtToDate.Date:=edtFromDate.Date+StrToFloat(edtDays.Text)-1;
except
ShowMsg('UMS10000348'); //输入的日期无效,请重新输入
Abort;
end;
end;
procedure TTas510_02Form.qryTas510CalcFields(DataSet: TDataSet);
var
ACustNo,AItemNo:Integer;
AMacNo:string;
ACustomerInfo:TCustomerInfo;
begin
inherited;
ACustNo:=qryTas510T510_016.Value;
AItemNo:=qryTas510T510_017.Value;
AMacNo:=qryTas510T510_018.Value;
GetCustomerInfo(ACustNo,AItemNo,AMacNo,ACustomerInfo);
qryTas510O150_005.Value:=ACustomerInfo.CustPhone;
qryTas510O150_007.Value:=ACustomerInfo.CustEmail;
qryTas510O150_012.Value:=ACustomerInfo.CustAddress;
qryTas510O151_002.Value:=ACustomerInfo.CustContact;
qryTas510O151_004.Value:=ACustomerInfo.CustPosition;
end;
procedure TTas510_02Form.qryOrd150CalcFields(DataSet: TDataSet);
var
ACustNo,AItemNo:Integer;
AMacNo:string;
ACustomerInfo:TCustomerInfo;
begin
inherited;
ACustNo:=qryOrd150O150_001.Value;
AItemNo:=0;
AMacNo:='';
GetCustomerInfo(ACustNo,AItemNo,AMacNo,ACustomerInfo);
qryOrd150O150_005.Value:=ACustomerInfo.CustPhone;
qryOrd150O150_007.Value:=ACustomerInfo.CustEmail;
qryOrd150O150_012.Value:=ACustomerInfo.CustAddress;
qryOrd150O151_002.Value:=ACustomerInfo.CustContact;
qryOrd150O151_004.Value:=ACustomerInfo.CustPosition;
end;
procedure TTas510_02Form.cbClassCloseUp(Sender: TObject; Accept: Boolean);
begin
inherited;
//“任务计划”中必须输入产品信息
edtItem.Enabled:=(edtItem.Enabled) and (qryTas100.FieldByName('T100_006').AsBoolean);
sbItem.Enabled:=edtItem.Enabled;
edtMacNo.Enabled:=edtItem.Enabled;
sbMacNo.Enabled:=edtItem.Enabled;
if edtItem.Enabled then edtItem.Color:=AEnableColor else edtItem.Color:=ADisableColor;
if edtMacNo.Enabled then edtMacNo.Color:=AEnableColor else edtMacNo.Color:=ADisableColor;
if (not edtItem.Enabled) and (edtOrder.Text='') then
begin
edtItem.Text:='';
edtItemName.Text:='';
edtModel.Text:='';
edtItemClass.Text:='';
edtMaker.Text:='';
edtMakerName.Text:='';
edtMacNo.Text:='';
end;
end;
procedure TTas510_02Form.ReportGetValue(const ParName: String;
var ParValue: Variant);
begin
end;
initialization
RegisterClass(TTas510_02Form);
finalization
UnRegisterClass(TTas510_02Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -