📄 tas500_02.pas.svn-base
字号:
edtPriority.Text:=qryTas500.FieldByName('T500_005').AsString;
if edtPriority.Text<>'' then udPriority.Position:=StrToInt(edtPriority.Text);
edtPercent.Text:=qryTas500.FieldByName('T500_013').AsString;
edtDate.Date:=qryTas500.FieldByName('T500_006').Value;
cbFrom.ItemIndex:=qryTas500.FieldByName('T500_007').AsInteger;
cbFromChange(cbFrom);
edtOrder.Text:=qryTas500.FieldByName('T500_008').AsString;
AOldFrom:=cbFrom.ItemIndex;
AOldOrder:=edtOrder.Text;
cbUnit.ItemIndex:=qryTas500.FieldByName('T500_010').AsInteger;
edtDays.Text:=qryTas500.FieldByName('T500_011').AsString;
edtFactDays.Text:='0';
edtFactDays.Text:=qryTas500.FieldByName('T500_012').AsString;
edtMacNo.Text:=qryTas500.FieldByName('T500_017').AsString;
memDetails.Text:=qryTas500.FieldByName('T500_018').AsString;
edtCreateDate.Text:=qryTas500.FieldByName('T500_019').AsString;
edtCreateBy.Text:=qryTas500.FieldByName('T500_020').AsString;
edtUpdateDate.Text:=qryTas500.FieldByName('T500_021').AsString;
edtUpdateBy.Text:=qryTas500.FieldByName('T500_022').AsString;
AOldCustNo:=qryTas500.FieldByName('T500_015').AsInteger;
AOldItemNo:=qryTas500.FieldByName('T500_016').AsInteger;
AOldMacNo:=qryTas500.FieldByName('T500_017').AsString;
edtStatus.Text:=qryTas500.FieldByName('T120_003').AsString;
cbClass.Text:=qryTas500.FieldByName('T130_002').AsString;
qryTas130.Locate('T130_002',cbClass.Text,[]);
edtManager.Text:=qryTas500.FieldByName('H150_002').AsString;
edtManagerName.Text:=qryTas500.FieldByName('H150_003').AsString;
edtCust.Text:=qryTas500.FieldByName('O150_002').AsString;
edtCustName.Text:=qryTas500.FieldByName('O150_003').AsString;
edtPhone.Text:=qryTas500.FieldByName('O150_005').AsString;
edtAddress.Text:=qryTas500.FieldByName('O150_012').AsString;
edtEmail.Text:=qryTas500.FieldByName('O150_007').AsString;
edtContact.Text:=qryTas500.FieldByName('O151_002').AsString;
edtPost.Text:=qryTas500.FieldByName('O151_004').AsString;
edtItem.Text:=qryTas500.FieldByName('I150_002').AsString;
edtItemName.Text:=qryTas500.FieldByName('I150_003').AsString;
edtModel.Text:=qryTas500.FieldByName('I150_004').AsString;
edtItemClass.Text:=qryTas500.FieldByName('I120_003').AsString;
edtMaker.Text:=qryTas500.FieldByName('M150_002').AsString;
edtMakerName.Text:=qryTas500.FieldByName('M150_003').AsString;
edtFromDate.Clear;
edtToDate.Clear;
edtFactFromDate.Clear;
edtFactToDate.Clear;
if qryTas500.FieldByName('T500_024').AsString<>'' then
edtFromDate.Date:=qryTas500.FieldByName('T500_024').Value;
if qryTas500.FieldByName('T500_025').AsString<>'' then
edtToDate.Date:=qryTas500.FieldByName('T500_025').Value;
if qryTas500.FieldByName('T500_026').AsString<>'' then
edtFactFromDate.Date:=qryTas500.FieldByName('T500_026').Value;
if qryTas500.FieldByName('T500_027').AsString<>'' then
edtFactToDate.Date:=qryTas500.FieldByName('T500_027').Value;
//“项目计划”中必须输入产品信息
cbClassCloseUp(cbClass,True);
if not Active then Exit;
if ActSave.Enabled then Exit;
ActNext.Enabled:=not qryTas500.Eof;
ActLast.Enabled:=not qryTas500.Eof;
ActFirst.Enabled:=not qryTas500.Bof;
ActPrior.Enabled:=not qryTas500.Bof;
end;
procedure TTas500_02Form.SaveData;
var
ADate:TDateTime;
ALineNo,ACustNo,AItemNo,AMangerNo:Integer;
AOrderID:String;
begin
//确定(&O)
AMangerNo:=0;
if edtCode.Enabled then
begin
if (trim(edtCode.Text)='') and (not AIsAutoCode) then
begin
ShowMsg('UMS10000270'); //项目编号不能为空
edtCode.SetFocus;
Abort;
end;
if AOldCode<>edtCode.Text then
begin
if IsExists('select 1 from TAS500 where T500_001='+''''+edtCode.Text+'''') then
begin
ShowMsg('UMS10000271'); //项目编号已存在,请重新输入
edtCode.SetFocus;
Abort;
end;
end;
end;
if trim(edtName.Text)='' then
begin
ShowMsg('UMS10000272'); //项目名称不能为空
edtName.SetFocus;
Abort;
end;
if trim(cbClass.Text)='' then
begin
ShowMsg('UMS10000400'); //项目类别不能为空
cbClass.SetFocus;
Abort;
end;
if trim(edtDate.Text)='' then
begin
ShowMsg('UMS10000273'); //申报日期不能为空
edtDate.SetFocus;
Abort;
end;
if trim(edtManager.Text)<>'' then
begin
if not qryHrm150.Locate('H150_002',edtManager.Text,[]) then
begin
ShowMsg('UMS10000265'); //输入的责任人员无效
edtManager.SetFocus;
Abort;
end;
AMangerNo:=qryHrm150.FieldByName('H150_001').Value;
end;
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'); //客户编号不能为空
edtCust.SetFocus;
Abort;
end;
if not qryOrd150.Locate('O150_002',edtCust.Text,[]) then
begin
ShowMsg('UMS10000264'); //输入的客户编号无效
edtCust.SetFocus;
Abort;
end;
ACustNo:=qryOrd150.FieldByName('O150_001').AsInteger;
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].AsInteger;
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;
if (ACustNo<>AOldCustNo) or (AItemNo<>AOldItemNo) or (edtMacNo.Text<>AOldMacNo) then
begin
//同一客户、同一机型、相同的机身编号不允许输入多张项目计划
if IsExists('select 1 from TAS500 where T500_015='+IntToStr(ACustNo)+' and T500_016='+IntToStr(AItemNo)+' and T500_017='+''''+edtMacNo.Text+'''') then
begin
ShowMsg('UMS10000327'); //该机床信息已存在于项目计划中,请重新输入
edtMacNo.SetFocus;
Abort;
end;
end;
end;
if trim(memDetails.Text)='' then
begin
ShowMsg('UMS10000276'); //项目说明不能为空
memDetails.SetFocus;
Abort;
end;
if AMode='ADD' then
begin
qryTas500.Insert;
qryTas500.FieldByName('T500_019').AsString:=edtCreateDate.Text; //制单日期
qryTas500.FieldByName('T500_020').AsString:=edtCreateBy.Text; //制单人员
qryTas500.FieldByName('T500_021').AsString:=edtUpdateDate.Text; //修改日期
qryTas500.FieldByName('T500_022').AsString:=edtUpdateBy.Text; //修改人员
end else
begin
ADate:=GetServerDate;
qryTas500.Edit;
qryTas500.FieldByName('T500_021').Value:=ADate; //修改日期
qryTas500.FieldByName('T500_022').Value:=AUserName; //修改人员
end;
qryTas500.FieldByName('T500_002').Value:=edtName.Text; //项目名称
if AMode='ADD' then qryTas500.FieldByName('T500_003').Value:=1; //项目状态
qryTas500.FieldByName('T500_004').Value:=qryTas130.FieldByName('T130_001').Value; //项目类别
qryTas500.FieldByName('T500_005').Value:=udPriority.Position; //优先级别
qryTas500.FieldByName('T500_006').Value:=edtDate.Date; //申报日期
qryTas500.FieldByName('T500_007').Value:=cbFrom.ItemIndex; //来源类型
if cbFrom.ItemIndex=0 then //销售订单
begin
ALineNo:=0;
qryTas500.FieldByName('T500_008').Value:=edtOrder.Text; //销售订单
qryTas500.FieldByName('T500_009').Value:=ALineNo; //单据行号
end;
qryTas500.FieldByName('T500_010').Value:=cbUnit.ItemIndex; //时间单位
qryTas500.FieldByName('T500_011').Value:=edtDays.Text; //预计工时
qryTas500.FieldByName('T500_012').Value:=edtFactDays.Text; //实际工时
qryTas500.FieldByName('T500_013').Value:=edtPercent.Text; //完工比率
qryTas500.FieldByName('T500_014').Value:=0; //任务总数
qryTas500.FieldByName('T500_015').Value:=ACustNo; //客户编号
if AItemNo<>0 then qryTas500.FieldByName('T500_016').Value:=AItemNo; //产品编号
if edtMacNo.Text<>'' then qryTas500.FieldByName('T500_017').Value:=edtMacNo.Text; //机身编号
qryTas500.FieldByName('T500_018').Value:=memDetails.Text; //项目说明
if AMangerNo<>0 then qryTas500.FieldByName('T500_023').Value:=AMangerNo; //责任人员
if edtFromDate.Date<>0 then qryTas500.FieldByName('T500_024').Value:=edtFromDate.Date else qryTas500.FieldByName('T500_024').Value:=null; //预计开始日期
if edtToDate.Date<>0 then qryTas500.FieldByName('T500_025').Value:=edtToDate.Date else qryTas500.FieldByName('T500_025').Value:=null; //预计完成日期
try
if (edtCode.Text='') and (AIsAutoCode) then edtCode.Text:=GetAutoCode('TAS500');
if AOldCode<>edtCode.Text then qryTas500.FieldByName('T500_001').Value:=edtCode.Text; //项目编号
qryTas500.Post;
//更新来源单据的相关字段
AOrderID:='';
AOrderID:=edtOrder.Text;
case cbFrom.ItemIndex of
0:UpdateOrderInfo(AOrderID,0); //销售定单
2:UpdateCallInfo(AOrderID,0); //来电记录
end;
//当修改时改变了原项目编号或来电编号,则同时修改原单据的相关信息
if (AOldOrder<>'') and (AOldOrder<>edtOrder.Text) then
begin
case AOldFrom of
0:UpdateOrderInfo(AOrderID,0); //销售定单
2:UpdateCallInfo(AOrderID,0); //来电记录
end;
end;
SetButtonState(False);
ActRefresh.Execute;
qryTas500AfterScroll(qryTas500);
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,1);
Abort;
end;
end;
procedure TTas500_02Form.qryTas500T500_007GetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
inherited;
if qryTas500.IsEmpty then Exit;
case Sender.AsInteger of
0:Text:=AType[0]; //销售订单
1:Text:=AType[1]; //手工输入
2:Text:=AType[2]; //来电记录
end;
end;
procedure TTas500_02Form.qryTas500T500_010GetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
inherited;
if qryTas500.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 TTas500_02Form.edtDaysExit(Sender: TObject);
begin
inherited;
try
if trim(edtDays.Text)='' then edtDays.Text:='1';
StrToFloat(edtDays.Text);
except
ShowMsg('UMS10000322'); //输入的值无效,请输入数字
Abort;
end;
end;
procedure TTas500_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 TTas500_02Form.qryTas500CalcFields(DataSet: TDataSet);
var
ACustNo,AItemNo:Integer;
AMacNo:string;
ACustomerInfo:TCustomerInfo;
begin
inherited;
ACustNo:=qryTas500T500_015.Value;
AItemNo:=qryTas500T500_016.Value;
AMacNo:=qryTas500T500_017.Value;
GetCustomerInfo(ACustNo,AItemNo,AMacNo,ACustomerInfo);
qryTas500O150_005.Value:=ACustomerInfo.CustPhone;
qryTas500O150_007.Value:=ACustomerInfo.CustEmail;
qryTas500O150_012.Value:=ACustomerInfo.CustAddress;
qryTas500O151_002.Value:=ACustomerInfo.CustContact;
qryTas500O151_004.Value:=ACustomerInfo.CustPosition;
end;
procedure TTas500_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 TTas500_02Form.cbClassCloseUp(Sender: TObject; Accept: Boolean);
begin
inherited;
//“项目计划”中必须输入产品信息
edtItem.Enabled:=(edtItem.Enabled) and (qryTas130.FieldByName('T130_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 TTas500_02Form.ReportGetValue(const ParName: String;
var ParValue: Variant);
begin
end;
initialization
RegisterClass(TTas500_02Form);
finalization
UnRegisterClass(TTas500_02Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -