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

📄 tas500_02.pas.svn-base

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