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

📄 tas530_02.pas

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  qryTas533.SQL.Add('from TAS533,ORD510B,INV150,INV140');
  qryTas533.SQL.Add('where T533_002=O510B_001 and T533_003=O510B_002 and O510B_003=I150_001 and');
  qryTas533.SQL.Add('      O510B_004=I140_001 and T533_001='+''''+edtCode.Text+'''');
  qryTas533.SQL.Add('order by O510B_002');
  qryTas533.Open;
  while not qryTas533.Eof do
  begin
    adsTas533.Append;
    adsTas533.FieldByName('FOrder').Value:=qryTas533.FieldByName('T533_002').Value;
    adsTas533.FieldByName('FLine').Value:=qryTas533.FieldByName('T533_003').Value;
    adsTas533.FieldByName('FItemNo').Value:=qryTas533.FieldByName('I150_001').Value;
    adsTas533.FieldByName('FItemID').Value:=qryTas533.FieldByName('I150_002').Value;
    adsTas533.FieldByName('FItemName').Value:=qryTas533.FieldByName('I150_003').Value;
    adsTas533.FieldByName('FItemSpec').Value:=qryTas533.FieldByName('I150_004').Value;
    adsTas533.FieldByName('FUnitName').Value:=qryTas533.FieldByName('I140_003').Value;
    adsTas533.FieldByName('FQty').Value:=qryTas533.FieldByName('T533_004').Value;
    adsTas533.FieldByName('FRemark').Value:=qryTas533.FieldByName('T533_005').Value;
    adsTas533.FieldByName('FItemPrice').Value:=qryTas533.FieldByName('T533_006').Value;
    adsTas533.FieldByName('FTotal').Value:=qryTas533.FieldByName('T533_007').Value;
    adsTas533.Post;
    qryTas533.Next;
  end;

  if not Active then Exit;
  if ActSave.Enabled then Exit;
  ActNext.Enabled:=not qryTas530.Eof;
  ActLast.Enabled:=not qryTas530.Eof;
  ActFirst.Enabled:=not qryTas530.Bof;
  ActPrior.Enabled:=not qryTas530.Bof;
end;

procedure TTas530_02Form.SaveData;
  //取得原因说明的保存格式
  function GetReason:string;
  var
    S:String;
  begin
    if not adsTas110.Active then Exit;
    adsTas110.First;
    while not adsTas110.Eof do
    begin
      if adsTas110.FieldByName('FSelected').Value then
        S:=S+','+'['+adsTas110.FieldByName('T110_001').AsString+']';
      adsTas110.Next;
    end;
    Delete(S,1,1);
    Result:=S;
  end;
var
  ADate:TDateTime;
  AVendNo,AContinue:Integer;
  AFlag:Boolean;
begin
  inherited;
//确定(&O)
  AVendNo:=0;
  if edtCode.Enabled then
  begin
    if (trim(edtCode.Text)='') and (not AIsAutoCode) then
    begin
      ShowMsg('UMS10000293');  //汇报编号不能为空
      edtCode.SetFocus;
      Abort;
    end;
    if AOldCode<>edtCode.Text then
    begin
      if IsExists('select 1 from TAS530 where T530_001='+''''+edtCode.Text+'''') then
      begin
        ShowMsg('UMS10000294');  //汇报编号已存在,请重新输入
        edtCode.SetFocus;
        Abort;
      end;
    end;
  end;
  if trim(edtWork.Text)='' then
  begin
    ShowMsg('UMS10000283');  //工单编号不能为空
    edtWork.SetFocus;
    Abort;
  end;
  if AOldWork<>edtWork.Text then
  begin
    if not qryTas520.Locate('T520_001',edtWork.Text,[]) then
    begin
      ShowMsg('UMS10000290');  //输入的工单编号无效
      edtWork.SetFocus;
      Abort;
    end;
  end;
  if trim(edtVendor.Text)<>'' then
  begin
    if not qryOrd150.Locate('O150_002',edtVendor.Text,[]) then
    begin
      ShowMsg('UMS10000298');  //输入的协助公司无效
      edtVendor.SetFocus;
      Abort;
    end;
    AVendNo:=qryOrd150.FieldByName('O150_001').Value;
    if trim(edtSupport.Text)='' then
    begin
      ShowMsg('UMS10000299');  //协助人员不能为空
      edtSupport.SetFocus;
      Abort;
    end;
    if (trim(edtSupportDays.Text)='') or (trim(edtSupportDays.Text)='0') then
    begin
      ShowMsg('UMS10000300');  //协助工时不能为空或零
      edtSupportDays.SetFocus;
      Abort;
    end;
  end;
  if trim(memDetails.Text)='' then
  begin
    ShowMsg('UMS10000312');    //汇报内容不能为空
    PageControl1.ActivePageIndex:=0;
    memDetails.SetFocus;
    Abort;
  end;
  if cbContinue.Text='' then
  begin
    ShowMsg('UMS10000313');    //后续处理不能为空
    PageControl1.ActivePageIndex:=0;
    cbContinue.SetFocus;
    Abort;
  end;
  AContinue:=0;
  if qryTas120.Locate('T120_003',cbContinue.Text,[]) then
    AContinue:=qryTas120.FieldByName('T120_001').Value;

  if tsHours.TabVisible then
  begin
    if adsTas531.State in [dsInsert,dsEdit] then adsTas531.Post;
    if adsTas531.IsEmpty then
    begin
      ShowMsg('UMS10000402');  //工时信息不能为空
      PageControl1.ActivePageIndex:=1;
      Abort;
    end;
    wwDBGrid1UpdateFooter(wwDBGrid1);
  end;

  AFlag:=False;
  if adsTas533.State in [dsInsert,dsEdit] then adsTas533.Post;
  if not adsTas533.IsEmpty then
  begin
    adsTas533.DisableControls;
    adsTas533.First;
    while not adsTas533.Eof do
    begin
      if adsTas533.FieldByName('FQty').AsFloat<>0 then AFlag:=True;
      adsTas533.Next;
    end;
    adsTas533.EnableControls;
    if not AFlag then
    begin
      //信息为零的时候
      if GetSysParams('TAS0018')='N' then
      begin
        ShowMsg('UMS10000631');  //计费信息不能为空
        PageControl1.ActivePageIndex:=3;
        Abort;
      end;
    end;
  end;

  qryTas531.Close;
  qryTas531.SQL.Clear;
  qryTas531.SQL.Add('delete from TAS531 where T531_001='+''''+edtCode.Text+'''');
  qryTas531.ExecSQL;
  qryTas533.Close;
  qryTas533.SQL.Clear;
  qryTas533.SQL.Add('delete from TAS533 where T533_001='+''''+edtCode.Text+'''');
  qryTas533.ExecSQL;
  if AMode='ADD' then
  begin
    qryTas530.Insert;
    qryTas530.FieldByName('T530_011').AsString:=edtCreateDate.Text;  //制单日期
    qryTas530.FieldByName('T530_012').AsString:=edtCreateBy.Text;    //制单人员
    qryTas530.FieldByName('T530_013').AsString:=edtUpdateDate.Text;  //修改日期
    qryTas530.FieldByName('T530_014').AsString:=edtUpdateBy.Text;    //修改人员
  end else
  begin
    ADate:=GetServerDate;
    qryTas530.Edit;
    qryTas530.FieldByName('T530_013').Value:=ADate;              //修改日期
    qryTas530.FieldByName('T530_014').Value:=AUserName;          //修改人员
  end;
  qryTas530.FieldByName('T530_002').Value:=edtWork.Text;         //工单编号
  qryTas530.FieldByName('T530_003').AsString:=edtPercent.Text;   //完工比率
  qryTas530.FieldByName('T530_004').AsString:=edtDays.Text;      //汇报工时
  qryTas530.FieldByName('T530_005').Value:=edtFromDate.Date;     //开始日期
  qryTas530.FieldByName('T530_006').Value:=edtToDate.Date;       //结束日期
  qryTas530.FieldByName('T530_007').Value:=cbUnit.ItemIndex;     //时间单位
  qryTas530.FieldByName('T530_008').Value:=memDetails.Text;      //汇报内容
  qryTas530.FieldByName('T530_009').Value:=edtDelay.Text;        //拖期原因
  qryTas530.FieldByName('T530_010').Value:=AContinue;            //后续处理
  qryTas530.FieldByName('T530_015').Value:=GetReason;            //原因说明   取得原因说明的保存格式
  if AVendNo<>0 then
  begin
    qryTas530.FieldByName('T530_016').Value:=AVendNo;            //协助公司
    qryTas530.FieldByName('T530_017').Value:=edtSupport.Text;    //协助人员
    qryTas530.FieldByName('T530_018').Value:=edtSupportDays.Text;//协助工时
  end else
  begin
    qryTas530.FieldByName('T530_016').Value:=null;  //协助公司
    qryTas530.FieldByName('T530_017').Value:=null;  //协助人员
    qryTas530.FieldByName('T530_018').Value:=null;  //协助工时
  end;
  try
    if (edtCode.Text='') and (AIsAutoCode) then edtCode.Text:=GetAutoCode('TAS530');
    if AOldCode<>edtCode.Text then qryTas530.FieldByName('T530_001').Value:=edtCode.Text;  //汇报编号
    qryTas530.Post;

    qryTas531.Close;
    qryTas531.SQL.Clear;
    qryTas531.SQL.Add('select * from TAS531 where T531_001='+''''+edtCode.Text+'''');
    qryTas531.Open;
    adsTas531.First;
    while not adsTas531.Eof do
    begin
      qryTas531.Append;
      qryTas531.FieldByName('T531_001').Value:=edtCode.Text;
      qryTas531.FieldByName('T531_002').Value:=adsTas531.FieldByName('FID').Value;
      qryTas531.FieldByName('T531_003').Value:=adsTas531.FieldByName('FDate').Value;
      qryTas531.FieldByName('T531_004').Value:=adsTas531.FieldByName('FFromTime').Value;
      qryTas531.FieldByName('T531_005').Value:=adsTas531.FieldByName('FToTime').Value;
      qryTas531.FieldByName('T531_006').Value:=adsTas531.FieldByName('FHours').Value;
      qryTas531.FieldByName('T531_007').Value:=adsTas531.FieldByName('FOT').Value;
      qryTas531.FieldByName('T531_008').Value:=adsTas531.FieldByName('FRemark').Value;
      qryTas531.FieldByName('T531_009').Value:=adsTas531.FieldByName('FStartTime').Value;
      qryTas531.FieldByName('T531_010').Value:=adsTas531.FieldByName('FEndTime').Value;
      qryTas531.FieldByName('T531_011').Value:=adsTas531.FieldByName('FTripHour').Value;
      qryTas531.Post;
      adsTas531.Next;
    end;

    if tsItems.TabVisible then
    begin
      qryTas532.First;
      while not qryTas532.Eof do
      begin
        qryTas532.Edit;
        qryTas532.FieldByName('T532_001').Value:=edtCode.Text;
        qryTas532.Post;
        qryTas532.Next;
      end;
      qryTas532.UpdateBatch;
    end;

    qryTas533.Close;
    qryTas533.SQL.Clear;
    qryTas533.SQL.Add('select * from TAS533 where T533_001='+''''+edtCode.Text+'''');
    qryTas533.Open;
    adsTas533.First;
    while not adsTas533.Eof do
    begin
      qryTas533.Append;
      qryTas533.FieldByName('T533_001').Value:=edtCode.Text;                              //汇报编号
      qryTas533.FieldByName('T533_002').Value:=adsTas533.FieldByName('FOrder').Value;     //销售单号
      qryTas533.FieldByName('T533_003').Value:=adsTas533.FieldByName('FLine').Value;      //定单行号
      qryTas533.FieldByName('T533_004').Value:=adsTas533.FieldByName('FQty').Value;       //发货数量
      qryTas533.FieldByName('T533_005').Value:=adsTas533.FieldByName('FRemark').Value;    //备注说明
      qryTas533.FieldByName('T533_006').Value:=adsTas533.FieldByName('FItemPrice').Value; //销售单价
      qryTas533.FieldByName('T533_007').Value:=adsTas533.FieldByName('FTotal').Value;     //销售总额

      qryTas533.FieldByName('T533_008').Value:=0;//发票金额
      qryTas533.FieldByName('T533_009').Value:=0;//收款折扣
      qryTas533.FieldByName('T533_010').Value:=adsTas533.FieldByName('FTotal').Value;//应开票额
      qryTas533.FieldByName('T533_011').Value:=0;//已收金额
      qryTas533.Post;
      adsTas533.Next;
    end;

    UpdateWorksInfo(edtWork.Text);  //更新任务工单信息(实际工时、实际开始日期、实际结束日期)
    if (AOldWork<>'') and (AOldWork<>edtWork.Text) then UpdateWorksInfo(AOldWork);
    SetButtonState(False);
    ActRefresh.Execute;
    qryTas530AfterScroll(qryTas530);
    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 TTas530_02Form.qryTas530T530_007GetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  inherited;
  if qryTas530.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 TTas530_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 TTas530_02Form.qryTas530CalcFields(DataSet: TDataSet);
var
  ACustNo,AItemNo:Integer;
  AMacNo:string;
  ACustomerInfo:TCustomerInfo;
begin
  inherited;
  ACustNo:=qryTas530T510_016.Value;
  AItemNo:=qryTas530T510_017.Value;
  AMacNo:=qryTas530T510_018.Value;
  GetCustomerInfo(ACustNo,AItemNo,AMacNo,ACustomerInfo);
  qryTas530O150_005.Value:=ACustomerInfo.CustPhone;
  qryTas530O150_007.Value:=ACustomerInfo.CustEmail;
  qryTas530O150_012.Value:=ACustomerInfo.CustAddress;
  qryTas530O151_002.Value:=ACustomerInfo.CustContact;
  qryTas530O151_004.Value:=ACustomerInfo.CustPosition;
end;

procedure TTas530_02Form.mmiAdd1Click(Sender: TObject);
begin
  inherited;
//新增工时记录
  adsTas531.Append;
end;

procedure TTas530_02Form.mmiEdit1Click(Sender: TObject);
be

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -