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

📄 inv510_02.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
begin
  inherited;
  ACode:=ADOQuery1.FieldByName('I510A_001').AsString;
  if ADOQuery1.FieldByName('I510A_014').AsBoolean then
  begin
    ShowMsg('UMS10000617');  //不允许删除已经过帐的转仓单
    Abort;
  end;
  //更新相关的数据,当进出仓单更新时
  UpdateInv500B(ACode,'INV510','DEL',0);
  //删除进出单据
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('delete from INV510B where I510B_001='+''''+ACode+'''');
  SYSDM.qryQuery.ExecSQL;
  DeleteTableRecord(ADOQuery1,'INV510A','I510A_001='+''''+ACode+'''');
  //更新相关的数据,当进出仓单更新时
  UpdateInv500B(ACode,'INV510','DEL',0);
  //更新进出仓单的应收发数量
  UpdateInv500BOrdQty(ACode);
end;

procedure TInv510_02Form.GetDataInfo;
begin
  inherited;
  edtCode.Text:=ADOQuery1.FieldByName('I510A_001').AsString;  //转仓单号
  qryInv550.Locate('I550_001',ADOQuery1.FieldByName('I510A_002').Value,[]);  //操作类型
  edtType.Text:=qryInv550.FieldByName('I550_003').AsString;
  edtSummary.Text:=ADOQuery1.FieldByName('I510A_003').AsString;  //摘要说明
  if ADOQuery1.FieldByName('I510A_014').AsBoolean then edtPost.Text:=APost[1] else edtPost.Text:=APost[0];  //已过帐否
  edtDate.Date:=ADOQuery1.FieldByName('I510A_004').Value;  //转仓日期
  qryInv100A.Locate('I100_001',ADOQuery1.FieldByName('I510A_005').Value,[]);  //转出仓库
  edtOutWhs.Text:=ADOQuery1.FieldByName('FOutWhsID').AsString;  //转出仓号
  edtOutWhsName.Text:=ADOQuery1.FieldByName('FOutWhsName').AsString;  //转出仓名
  qryInv100B.Locate('I100_001',ADOQuery1.FieldByName('I510A_007').Value,[]);  //转入仓库
  edtInWhs.Text:=ADOQuery1.FieldByName('FInWhsID').AsString;  //转入仓号
  edtInWhsName.Text:=ADOQuery1.FieldByName('FInWhsName').AsString;  //转入仓名
  memRemark.Text:=ADOQuery1.FieldByName('I510A_009').AsString;  //备注说明
  edtCreateDate.Text:=ADOQuery1.FieldByName('I510A_010').AsString;  //制单日期
  edtCreateBy.Text:=ADOQuery1.FieldByName('I510A_011').AsString;  //制单人员
  edtUpdateDate.Text:=ADOQuery1.FieldByName('I510A_012').AsString;  //修改日期
  edtUpdateBy.Text:=ADOQuery1.FieldByName('I510A_013').AsString;  //修改人员

  GetDetailData;
  wwDBGrid1UpdateFooter(wwDBGrid1);
end;

procedure TInv510_02Form.InsertEvent;
var
  ADate:TDateTime;
begin
  inherited;
  ADate:=GetServerDate;
  edtCode.Text:='';
  edtSummary.Text:='';
  edtPost.Text:='';
  edtOutWhs.Text:='';
  edtOutWhsName.Text:='';
  edtInWhs.Text:='';
  edtInWhsName.Text:='';
  qryInv550.Locate('I550_001',15,[]);  //操作类型
  edtType.Text:=qryInv550.FieldByName('I550_003').AsString;
  edtDate.Date:=ADate;
  memRemark.Text:='';

  edtDate.Date:=ADate;
  edtCreateDate.Text:=FormatDateTime('yyyy-mm-dd hh:mm:ss',ADate);
  edtCreateBy.Text:=AUserName;
  edtUpdateDate.Text:=FormatDateTime('yyyy-mm-dd hh:mm:ss',ADate);
  edtUpdateBy.Text:=AUserName;

  ALastNo:=0;
  PageControl1.ActivePageIndex:=0;
  adsInv510B.Close;
  adsInv510B.CreateDataSet;
  SetDBGridA;
end;

procedure TInv510_02Form.ReportGetValue(const ParName: String;
  var ParValue: Variant);
begin
  inherited;

end;

procedure TInv510_02Form.SetEmptyInit;
begin
  inherited;
  edtCode.Text:='';
  edtSummary.Text:='';
  edtPost.Text:='';
  edtOutWhs.Text:='';
  edtOutWhsName.Text:='';
  edtInWhs.Text:='';
  edtInWhsName.Text:='';
  edtType.Text:='';
  edtDate.Date:=GetServerDate;
  memRemark.Text:='';

  edtCreateDate.Text:='';
  edtCreateBy.Text:='';
  edtUpdateDate.Text:='';
  edtUpdateBy.Text:='';

  ALastNo:=0;
  PageControl1.ActivePageIndex:=0;
  adsInv510B.Close;
  adsInv510B.CreateDataSet;
  SetDBGridA;
end;

procedure TInv510_02Form.TableAfterPost;
begin
  inherited;
  qryInv510B.Close;
  qryInv510B.SQL.Clear;
  qryInv510B.SQL.Add('select * from INV510B where I510B_001='+''''+edtCode.Text+''''+' order by I510B_001,I510B_002');
  qryInv510B.Open;
  if adsInv510B.State in [dsInsert,dsEdit] then adsInv510B.Post;
  adsInv510B.First;
  while not adsInv510B.Eof do
  begin
    qryInv510B.Append;
    qryInv510B.FieldByName('I510B_001').Value:=edtCode.Text;  //转仓单号
    qryInv510B.FieldByName('I510B_002').Value:=adsInv510B.FieldByName('FNo').Value;  //单据行号
    qryInv510B.FieldByName('I510B_003').Value:=adsInv510B.FieldByName('FItemNo').Value;  //料品编号
    qryInv510B.FieldByName('I510B_004').Value:=adsInv510B.FieldByName('FUnitNo').Value;  //计量单位
    qryInv510B.FieldByName('I510B_005').Value:=adsInv510B.FieldByName('FQty').Value;  //转仓数量
    qryInv510B.FieldByName('I510B_006').Value:=adsInv510B.FieldByName('FPrice').Value;  //单位价格
    qryInv510B.FieldByName('I510B_007').Value:=adsInv510B.FieldByName('FAmount').Value;  //转仓金额
    qryInv510B.FieldByName('I510B_008').Value:=adsInv510B.FieldByName('FDate').Value;  //生产日期
    qryInv510B.FieldByName('I510B_009').Value:=adsInv510B.FieldByName('FLot').Value;  //生产批号
    qryInv510B.FieldByName('I510B_010').Value:=adsInv510B.FieldByName('FOutLocNo').Value;  //转出库位
    qryInv510B.FieldByName('I510B_011').Value:=adsInv510B.FieldByName('FInLocNo').Value;  //转入库位
    qryInv510B.FieldByName('I510B_012').Value:=adsInv510B.FieldByName('FUnitRate').Value;  //单位转换
    qryInv510B.FieldByName('I510B_013').Value:=adsInv510B.FieldByName('FRemark').Value;  //备注说明
    qryInv510B.Post;
    adsInv510B.Next;
  end;
  //更新相关的数据,当进出仓单更新时
  UpdateInv500B(edtCode.Text,'INV510','ADD',ASeqNo);
  //更新进出仓单的应收发数量
  UpdateInv500BOrdQty(edtCode.Text);
end;

procedure TInv510_02Form.TableBeforePost;
var
  AOutWhsNo,AInWhsNo:Integer;
  ADate:TDateTime;
begin
  inherited;
  if trim(edtSummary.Text)='' then
  begin
    ShowMsg('UMS10000606');  //摘要说明不能为空
    edtSummary.SetFocus;
    Abort;
  end;

  if not qryInv100A.Locate('I100_002',edtOutWhs.Text,[]) then
  begin
    ShowMsg('UMS10000618');  //输入的转出仓库编号无效
    edtOutWhs.SetFocus;
    Abort;
  end;
  AOutWhsNo:=qryInv100A.FieldByName('I100_001').AsInteger;
  if not qryInv100B.Locate('I100_002',edtInWhs.Text,[]) then
  begin
    ShowMsg('UMS10000619');  //输入的转入仓库编号无效
    edtInWhs.SetFocus;
    Abort;
  end;
  AInWhsNo:=qryInv100B.FieldByName('I100_001').AsInteger;

  if trim(edtDate.Text)='' then
  begin
    ShowMsg('UMS10000620');  //转仓日期不能为空
    edtDate.SetFocus;
    Abort;
  end;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select I500_005 from INV500 where I500_003=1 and I500_007='+IntToStr(AOutWhsNo));
  SYSDM.qryQuery.Open;
  if not SYSDM.qryQuery.IsEmpty then
  begin
    if edtDate.Date<SYSDM.qryQuery.Fields[0].AsDateTime then
    begin
      ShowMsg('UMS10000632');  //进出日期不能小于期初建帐日期
      edtDate.SetFocus;
      Abort;
    end;
  end;

  if adsInv510B.State in [dsInsert,dsEdit] then adsInv510B.Post;
  if adsInv510B.IsEmpty then
  begin
    ShowMsg('UMS10000611');  //料品信息资料不能为空
    PageControl1.ActivePageIndex:=0;
    wwDBGrid1.SetFocus;
    Abort;
  end;

  //更新相关的数据,当进出仓单更新时
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select top 1 I500_017 from INV500 where I500_001='+''''+edtCode.Text+''''+' order by I500_017');
  SYSDM.qryQuery.Open;
  ASeqNo:=SYSDM.qryQuery.Fields[0].AsInteger;
  UpdateInv500B(edtCode.Text,'INV510','DEL',0);

  //删除进出仓单子表
  qryInv510B.Close;
  qryInv510B.SQL.Clear;
  qryInv510B.SQL.Add('delete from INV510B where I510B_001='+''''+edtCode.Text+'''');
  qryInv510B.ExecSQL;

  if AMode='ADD' then
  begin
    ADOQuery1.Append;
    ADOQuery1.FieldByName('I510A_010').AsString:=edtCreateDate.Text;  //制单日期
    ADOQuery1.FieldByName('I510A_011').AsString:=edtCreateBy.Text;  //制单人员
    ADOQuery1.FieldByName('I510A_012').AsString:=edtUpdateDate.Text;  //修改日期
    ADOQuery1.FieldByName('I510A_013').AsString:=edtUpdateBy.Text;  //修改人员
  end else
  begin
    ADate:=GetServerDate;
    ADOQuery1.Edit;
    ADOQuery1.FieldByName('I500A_012').Value:=ADate;  //修改日期
    ADOQuery1.FieldByName('I500A_013').Value:=AUserName;  //修改人员
  end;
  ADOQuery1.FieldByName('I510A_002').Value:=15;  //操作类型  转仓
  ADOQuery1.FieldByName('I510A_003').AsString:=edtSummary.Text;  //摘要说明
  ADOQuery1.FieldByName('I510A_004').Value:=edtDate.Date;  //转仓日期
  ADOQuery1.FieldByName('I510A_005').Value:=AOutWhsNo;  //转出仓库
  ADOQuery1.FieldByName('I510A_007').Value:=AInWhsNo;  //转入仓库
  ADOQuery1.FieldByName('I510A_009').AsString:=memRemark.Text;  //备注说明
  ADOQuery1.FieldByName('I510A_014').Value:=False;  //已过帐否
end;

procedure TInv510_02Form.UpdateEvent;
begin
  inherited;
  if ADOQuery1.FieldByName('I510A_014').AsBoolean then
  begin
    ShowMsg('UMS10000621');  //不允许修改已经过帐的转仓单
    Abort;
  end;
  SetDBGridA;
end;

procedure TInv510_02Form.GetDetailData;
begin
  ALastNo:=0;
  adsInv510B.DisableControls;
  adsInv510B.Close;
  adsInv510B.CreateDataSet;
  SetDBGridA;
  qryInv510B.Close;
  qryInv510B.SQL.Clear;
  qryInv510B.SQL.Add('select A.*,B.I150_002,B.I150_003,B.I150_004,C.I140_002,C.I140_003');
  qryInv510B.SQL.Add('from (INV510B A left join INV150 B on A.I510B_003=B.I150_001)');
  qryInv510B.SQL.Add('      left join INV140 C on A.I510B_004=C.I140_001');
  qryInv510B.SQL.Add('where A.I510B_001='+''''+edtCode.Text+'''');
  qryInv510B.SQL.Add('order by I510B_002');
  qryInv510B.Open;
  while not qryInv510B.Eof do
  begin
    adsInv510B.Append;
    adsInv510B.FieldByName('FNo').Value:=qryInv510B.FieldByName('I510B_002').Value;
    adsInv510B.FieldByName('FItemNo').Value:=qryInv510B.FieldByName('I510B_003').Value;
    adsInv510B.FieldByName('FItemID').Value:=qryInv510B.FieldByName('I150_002').Value;
    adsInv510B.FieldByName('FItemName').Value:=qryInv510B.FieldByName('I150_003').Value;
    adsInv510B.FieldByName('FItemSpec').Value:=qryInv510B.FieldByName('I150_004').Value;
    adsInv510B.FieldByName('FUnitNo').Value:=qryInv510B.FieldByName('I510B_004').Value;
    adsInv510B.FieldByName('FUnitID').Value:=qryInv510B.FieldByName('I140_002').Value;
    adsInv510B.FieldByName('FUnitName').Value:=qryInv510B.FieldByName('I140_003').Value;
    adsInv510B.FieldByName('FQty').Value:=qryInv510B.FieldByName('I510B_005').Value;
    adsInv510B.FieldByName('FPrice').Value:=qryInv510B.FieldByName('I510B_006').Value;
    adsInv510B.FieldByName('FAmount').Value:=qryInv510B.FieldByName('I510B_007').Value;
    adsInv510B.FieldByName('FDate').Value:=qryInv510B.FieldByName('I510B_008').Value;
    adsInv510B.FieldByName('FLot').Value:=qryInv510B.FieldByName('I510B_009').Value;
    adsInv510B.FieldByName('FOutLocNo').Value:=qryInv510B.FieldByName('I510B_010').Value;
    adsInv510B.FieldByName('FInLocNo').Value:=qryInv510B.FieldByName('I510B_011').Value;
    adsInv510B.FieldByName('FUnitRate').Value:=qryInv510B.FieldByName('I510B_012').Value;
    adsInv510B.FieldByName('FRemark').Value:=qryInv510B.FieldByName('I510B_013').Value;
    adsInv510B.Post;
    ALastNo:=qryInv510B.FieldByName('I510B_002').AsInteger;
    qryInv510B.Next;
  end;
  adsInv510B.EnableControls;
end;

procedure TInv510_02Form.wwDBGrid1UpdateFooter(Sender: TObject);
var
  ASumQty,ASumAmt:Double;
begin
  inherited;
  ASumQty:=0;
  ASumAmt:=0;
  ADODataSet1.Clone(adsInv510B);
  ADODataSet1.DisableControls;
  ADODataSet1.First;
  while not ADODataSet1.Eof do
  begin
    ASumQty:=ASumQty+ADODataSet1.FieldByName('FQty').AsFloat;
    ASumAmt:=ASumAmt+StrToFloatA(FloatToStrF(ADODataSet1.FieldByName('FAmount').AsFloat,ffNumber,18,2));
    ADODataSet1.Next;
  end;
  ADODataSet1.EnableControls;
  wwDBGrid1.ColumnByName('FItemID').FooterValue:=GetDBString('COM00004002')+FloatToStrF(ADODataSet1.RecordCount,ffNumber,18,0);  //记录总数
  wwDBGrid1.ColumnByName('FQty').FooterValue:=FloatToStrF(ASumQty,ffNumber,18,2);
  wwDBGrid1.ColumnByName('FAmount').FooterValue:=FloatToStrF(ASumAmt,ffNumber,18,2);
end;

procedure TInv510_02Form.adsInv510BNewRecord(DataSet: TDataSet);
begin
  inherited;
  ALastNo:=ALastNo+1;
  adsInv510BFNo.Value:=ALastNo;
  adsInv510BFUnitRate.Value:=1;
  adsInv510BFQty.Value:=1;
  adsInv510BFPrice.Value:=0;
  adsInv510BFAmount.Value:=0;
end;

procedure TInv510_02Form.sbOutWhsClick(Sender: TObject);
begin
  inherited;
//转出仓库
  if not edtOutWhs.Focused then edtOutWhs.SetFocus;
  HwSelDataForm:=THwSelDataForm.Create(Application);

⌨️ 快捷键说明

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