⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tas510_02.pas

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  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 + -