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

📄 inv500_02.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 4 页
字号:
  qryInv140I140_003.DisplayLabel:=GetDBString('INV50002055');  //单位名称

  //币别名称
  cbCurr.Clear;
  qryGld100.Close;
  qryGld100.Open;
  while not qryGld100.Eof do
  begin
    cbCurr.Items.Add(qryGld100.FieldByName('G100_003').AsString);
    qryGld100.Next;
  end;
  qryGld100.First;
  cbCurr.ItemIndex:=0;

  //操作类型
  cbType.Clear;
  qryInv550.Close;
  qryInv550.Open;
  while not qryInv550.Eof do
  begin
    cbType.Items.Add(qryInv550.FieldByName('I550_003').AsString);
    qryInv550.Next;
  end;
  qryInv550.First;
  cbType.ItemIndex:=0;

  AObjTyp[0]:=GetDBString('INV50002056');  //空白
  AObjTyp[1]:=GetDBString('INV50002057');  //客户
  AObjTyp[2]:=GetDBString('INV50002058');  //员工
  AObjTyp[3]:=GetDBString('INV50002059');  //部门
  cbObjTyp.Clear;
  cbObjTyp.Items.Add(AObjTyp[0]);
  cbObjTyp.Items.Add(AObjTyp[1]);
  cbObjTyp.Items.Add(AObjTyp[2]);
  cbObjTyp.Items.Add(AObjTyp[3]);
  cbObjTyp.ItemIndex:=0;

  APost[0]:=GetDBString('INV50002060');  //未过帐
  APost[1]:=GetDBString('INV50002061');  //已过帐
  adsInv500B.Close;
  adsInv500B.CreateDataSet;
  SetDBGridA;
end;

procedure TInv500_02Form.FormCreate(Sender: TObject);
begin
  inherited;
  ATableName:='INV500A';
  AFieldName:='I500A_001';
  qryInv100.Open;
  qryGld100.Open;
  qryInv550.Open;
  qryInv150.Open;
  qryInv140.Open;
  qryInv110.Open;
  qryOrd150.Open;
  qryHrm100.Open;
  qryHrm150.Open;
  AKeyEvent:=OnKeyDown;
end;

procedure TInv500_02Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  qryInv100.Close;
  qryGld100.Close;
  qryInv550.Close;
  qryInv150.Close;
  qryInv140.Close;
  qryInv110.Close;
  qryOrd150.Close;
  qryHrm100.Close;
  qryHrm150.Close;
end;

procedure TInv500_02Form.DeleteEvent;
var
  ACode:String;
begin
  inherited;
  ACode:=ADOQuery1.FieldByName('I500A_001').AsString;
  if ADOQuery1.FieldByName('I500A_016').AsBoolean then
  begin
    ShowMsg('UMS10000605');  //不允许删除已经过帐的进出仓单
    Abort;
  end;
  if ADOQuery1.FieldByName('I550_001').Value=14 Then
  begin
    ShowMsg('UMS10000615');  //不允许删除操作类型为盘点调整的料品进出单
    Abort;
  end;
  if IsExists('select 1 from INV500B where I500B_011='+''''+ACode+'''') then
  begin
    ShowMsg('UMS10000616');  //不允许删除有相关单据的料品进出单
    Abort;
  end;
  //更新相关的数据,当进出仓单更新时
  UpdateInv500B(ACode,'INV500','DEL',0);
  //删除进出单据
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('delete from INV500B where I500B_001='+''''+ACode+'''');
  SYSDM.qryQuery.ExecSQL;
  DeleteTableRecord(ADOQuery1,'INV500A','I500A_001='+''''+ACode+'''');
  //更新相关的数据,当进出仓单更新时
  UpdateInv500B(ACode,'INV500','DEL',0);
  //更新进出仓单的应收发数量
  UpdateInv500BOrdQty(ACode);
end;

procedure TInv500_02Form.GetDataInfo;
begin
  inherited;
  edtCode.Text:=ADOQuery1.FieldByName('I500A_001').AsString;  //进出单号
  qryInv550.Locate('I550_001',ADOQuery1.FieldByName('I500A_002').Value,[]);  //操作类型
  cbType.ItemIndex:=cbType.Items.IndexOf(qryInv550.FieldByName('I550_003').AsString);
  cbTypeChange(cbType);
  edtSummary.Text:=ADOQuery1.FieldByName('I500A_003').AsString;  //摘要说明
  if ADOQuery1.FieldByName('I500A_016').AsBoolean then edtPost.Text:=APost[1] else edtPost.Text:=APost[0];  //已过帐否
  qryInv100.Locate('I100_001',ADOQuery1.FieldByName('I500A_010').Value,[]);  //仓库编号
  edtWhs.Text:=ADOQuery1.FieldByName('I100_002').AsString;  //仓库编号
  edtWhsName.Text:=ADOQuery1.FieldByName('I100_003').AsString;  //仓库名称
  edtDate.Date:=ADOQuery1.FieldByName('I500A_004').Value;  //进出日期
  cbObjTyp.ItemIndex:=ADOQuery1.FieldByName('I500A_005').Value;  //对象类型(0=空白,1=客户,2=员工,3=部门)
  cbObjTypChange(cbObjTyp);
//  AObjNo:=ADOQuery1.FieldByName('I500A_006').Value;  //对象编号
  edtCust.Text:=ADOQuery1.FieldByName('FCode').Value;
  edtCustName.Text:=ADOQuery1.FieldByName('FName').Value;
  edtOrder.Text:=ADOQuery1.FieldByName('I500A_007').AsString;  //相关单据
  qryGld100.Locate('G100_001',ADOQuery1.FieldByName('I500A_008').Value,[]);  //币别编号
  cbCurr.ItemIndex:=cbCurr.Items.IndexOf(qryGld100.FieldByName('G100_003').Value);
  edtRate.Text:=ADOQuery1.FieldByName('I500A_009').AsString;  //币别汇率
  memRemark.Text:=ADOQuery1.FieldByName('I500A_011').AsString;  //备注说明
  edtCreateDate.Text:=ADOQuery1.FieldByName('I500A_012').AsString;  //制单日期
  edtCreateBy.Text:=ADOQuery1.FieldByName('I500A_013').AsString;  //制单人员
  edtUpdateDate.Text:=ADOQuery1.FieldByName('I500A_014').AsString;  //修改日期
  edtUpdateBy.Text:=ADOQuery1.FieldByName('I500A_015').AsString;  //修改人员

  GetDetailData;
  wwDBGrid1UpdateFooter(wwDBGrid1);
end;

procedure TInv500_02Form.InsertEvent;
var
  ADate:TDateTime;
begin
  inherited;
  ADate:=GetServerDate;
  edtCode.Text:='';
  edtSummary.Text:='';
  edtPost.Text:='';
  edtWhs.Text:='';
  edtWhsName.Text:='';
  cbType.ItemIndex:=0;
  cbTypeChange(cbType);
  edtDate.Date:=ADate;
  //币别=本位币
  qryGld100.Locate('G100_003',ACurrName,[]);
  cbCurr.ItemIndex:=cbCurr.Items.IndexOf(ACurrName);
  edtRate.Text:='1';
  cbObjTyp.ItemIndex:=0;
  cbObjTypChange(cbObjTyp);
  edtOrder.Text:='';
  edtCust.Text:='';
  edtCustName.Text:='';
  memRemark.Text:='';

  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;
  adsInv500B.Close;
  adsInv500B.CreateDataSet;
  SetDBGridA;
end;

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

end;

procedure TInv500_02Form.SetEmptyInit;
begin
  inherited;
  edtCode.Text:='';
  edtSummary.Text:='';
  edtPost.Text:='';
  edtWhs.Text:='';
  edtWhsName.Text:='';
  cbType.ItemIndex:=0;
  cbTypeChange(cbType);
  edtDate.Date:=GetServerDate;
  //币别=本位币
  qryGld100.Locate('G100_003',ACurrName,[]);
  cbCurr.ItemIndex:=cbCurr.Items.IndexOf(ACurrName);
  edtRate.Text:='1';
  edtOrder.Text:='';
  cbObjTyp.ItemIndex:=0;
  cbObjTypChange(cbObjTyp);
  edtCust.Text:='';
  edtCustName.Text:='';
  memRemark.Text:='';

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

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

procedure TInv500_02Form.TableAfterPost;
begin
  inherited;
  qryInv500B.Close;
  qryInv500B.SQL.Clear;
  qryInv500B.SQL.Add('select * from INV500B where I500B_001='+''''+edtCode.Text+''''+' order by I500B_001,I500B_002');
  qryInv500B.Open;
  if adsInv500B.State in [dsInsert,dsEdit] then adsInv500B.Post;
  adsInv500B.First;
  while not adsInv500B.Eof do
  begin
    qryInv500B.Append;
    qryInv500B.FieldByName('I500B_001').Value:=edtCode.Text;  //进出单号
    qryInv500B.FieldByName('I500B_002').Value:=adsInv500B.FieldByName('FNo').Value;  //单据行号
    qryInv500B.FieldByName('I500B_003').Value:=adsInv500B.FieldByName('FItemNo').Value;  //料品编号
    qryInv500B.FieldByName('I500B_004').Value:=adsInv500B.FieldByName('FUnitNo').Value;  //计量单位
    qryInv500B.FieldByName('I500B_005').Value:=adsInv500B.FieldByName('FQty').Value;  //进出数量
    qryInv500B.FieldByName('I500B_006').Value:=adsInv500B.FieldByName('FPrice').Value;  //单位价格
    qryInv500B.FieldByName('I500B_007').Value:=adsInv500B.FieldByName('FAmount').Value;  //料品金额
    qryInv500B.FieldByName('I500B_008').Value:=adsInv500B.FieldByName('FLocNo').Value;  //库位编号
    qryInv500B.FieldByName('I500B_009').Value:=adsInv500B.FieldByName('FDate').Value;  //生产日期
    qryInv500B.FieldByName('I500B_010').Value:=adsInv500B.FieldByName('FLot').Value;  //生产批号
    qryInv500B.FieldByName('I500B_011').Value:=adsInv500B.FieldByName('FFromOrder').Value;  //来源单号
    qryInv500B.FieldByName('I500B_012').Value:=adsInv500B.FieldByName('FFromLine').Value;  //来源行号
    qryInv500B.FieldByName('I500B_013').Value:=adsInv500B.FieldByName('FOrdQty').AsFloat;  //应收发量
    qryInv500B.FieldByName('I500B_014').Value:=adsInv500B.FieldByName('FUnitRate').Value;  //单位转换
    qryInv500B.FieldByName('I500B_015').Value:=adsInv500B.FieldByName('FFinish').AsFloat;  //已收发量
    qryInv500B.FieldByName('I500B_016').Value:=adsInv500B.FieldByName('FRemark').Value;  //备注说明
    qryInv500B.Post;
    adsInv500B.Next;
  end;
  //更新相关的数据,当进出仓单更新时
  UpdateInv500B(edtCode.Text,'INV500','ADD',ASeqNo);
  //更新进出仓单的应收发数量
  UpdateInv500BOrdQty(edtCode.Text);
end;

procedure TInv500_02Form.TableBeforePost;
var
  AWhsNo,ATypeNo,ACurrNo,AObjNo:Integer;
  ADate:TDateTime;
  ADataSet:TDataSet;
begin
  inherited;
  if trim(edtSummary.Text)='' then
  begin
    ShowMsg('UMS10000606');  //摘要说明不能为空
    edtSummary.SetFocus;
    Abort;
  end;

  if not qryInv100.Locate('I100_002',edtWhs.Text,[]) then
  begin
    ShowMsg('UMS10000607');  //输入的仓库编号无效
    edtWhs.SetFocus;
    Abort;
  end;
  AWhsNo:=qryInv100.FieldByName('I100_001').AsInteger;

  if not qryInv550.Locate('I550_003',cbType.Text,[]) then
  begin
    ShowMsg('UMS10000608');  //输入的操作类型无效
    cbType.SetFocus;
    Abort;
  end;
  ATypeNo:=qryInv550.FieldByName('I550_001').AsInteger;

  if trim(edtDate.Text)='' then
  begin
    ShowMsg('UMS10000609');  //进出日期不能为空
    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(AWhsNo));
  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 not qryGld100.Locate('G100_003',cbCurr.Text,[]) then
  begin
    ShowMsg('UMS10000412');  //输入的币别编号无效
    cbCurr.SetFocus;
    Abort;
  end;
  ACurrNo:=qryGld100.FieldByName('G100_001').AsInteger;

  AObjNo:=0;

⌨️ 快捷键说明

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