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

📄 inv500_02.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 4 页
字号:
  ADataSet:=qryOrd150;
  if edtCust.Enabled then
  begin
    if cbObjTyp.ItemIndex<>0 then
    begin
      case cbObjTyp.ItemIndex of
        1:ADataSet:=qryOrd150;
        2:ADataSet:=qryHrm150;
        3:ADataSet:=qryHrm100;
      end;
      if not ADataSet.Locate('FCode',edtCust.Text,[]) then
      begin
        ShowMsg('UMS10000610');  //输入的对象编号无效
        edtCust.SetFocus;
        Abort;
      end;
      AObjNo:=ADataSet.FieldByName('FNo').AsInteger;
    end;
  end;

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

  adsInv500B.First;
  while not adsInv500B.Eof do
  begin
    CheckLoc;
    adsInv500B.Next;
  end;

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

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

  //更新进出仓单的应收发数量
  UpdateInv500BOrdQty(edtCode.Text);

  if AMode='ADD' then
  begin
    ADOQuery1.Append;
    ADOQuery1.FieldByName('I500A_012').AsString:=edtCreateDate.Text;  //制单日期
    ADOQuery1.FieldByName('I500A_013').AsString:=edtCreateBy.Text;  //制单人员
    ADOQuery1.FieldByName('I500A_014').AsString:=edtUpdateDate.Text;  //修改日期
    ADOQuery1.FieldByName('I500A_015').AsString:=edtUpdateBy.Text;  //修改人员
  end else
  begin
    ADate:=GetServerDate;
    ADOQuery1.Edit;
    ADOQuery1.FieldByName('I500A_014').Value:=ADate;  //修改日期
    ADOQuery1.FieldByName('I500A_015').Value:=AUserName;  //修改人员
  end;
  ADOQuery1.FieldByName('I500A_002').Value:=ATypeNo;  //操作类型
  ADOQuery1.FieldByName('I500A_003').AsString:=edtSummary.Text;  //摘要说明
  ADOQuery1.FieldByName('I500A_004').Value:=edtDate.Date;  //进出日期
  ADOQuery1.FieldByName('I500A_005').Value:=cbObjTyp.ItemIndex;  //对象类型
  if AObjNo<>0 then ADOQuery1.FieldByName('I500A_006').Value:=AObjNo;  //对象编号
  if trim(edtOrder.Text)<>'' then ADOQuery1.FieldByName('I500A_007').AsString:=edtOrder.Text;  //相关单据
  ADOQuery1.FieldByName('I500A_008').Value:=ACurrNo;  //币别编号
  ADOQuery1.FieldByName('I500A_009').AsString:=edtRate.Text;  //币别汇率
  ADOQuery1.FieldByName('I500A_010').Value:=AWhsNo;  //仓库编号
  ADOQuery1.FieldByName('I500A_011').AsString:=memRemark.Text;  //备注说明
  ADOQuery1.FieldByName('I500A_016').Value:=False;  //已过帐否
end;

procedure TInv500_02Form.UpdateEvent;
begin
  inherited;
  if ADOQuery1.FieldByName('I500A_016').AsBoolean then
  begin
    ShowMsg('UMS10000612');  //不允许修改已经过帐的进出仓单
    Abort;
  end;
  if ADOQuery1.FieldByName('I550_001').Value=14 Then
  begin
    ShowMsg('UMS10000613');  //不允许修改操作类型为盘点调整的料品进出单
    Abort;
  end;
  if IsExists('select 1 from INV500B where I500B_011='+''''+ADOQuery1.FieldByName('I500A_001').AsString+'''') then
  begin
    ShowMsg('UMS10000614');  //不允许修改有相关单据的料品进出单
    Abort;
  end;
  SetDBGridA;
end;

//取得明细表数据
procedure TInv500_02Form.GetDetailData;
begin
  ALastNo:=0;
  adsInv500B.DisableControls;
  adsInv500B.Close;
  adsInv500B.CreateDataSet;
  SetDBGridA;
  qryInv500B.Close;
  qryInv500B.SQL.Clear;
  qryInv500B.SQL.Add('select A.*,B.I150_002,B.I150_003,B.I150_004,C.I140_002,C.I140_003,D.I110_003,D.I110_004');
  qryInv500B.SQL.Add('from ((INV500B A left join INV150 B on A.I500B_003=B.I150_001)');
  qryInv500B.SQL.Add('      left join INV140 C on A.I500B_004=C.I140_001)');
  qryInv500B.SQL.Add('      left join INV110 D on A.I500B_008=D.I110_001');
  qryInv500B.SQL.Add('where A.I500B_001='+''''+edtCode.Text+'''');
  qryInv500B.SQL.Add('order by I500B_002');
  qryInv500B.Open;
  while not qryInv500B.Eof do
  begin
    adsInv500B.Append;
    adsInv500B.FieldByName('FNo').Value:=qryInv500B.FieldByName('I500B_002').Value;
    adsInv500B.FieldByName('FItemNo').Value:=qryInv500B.FieldByName('I500B_003').Value;
    adsInv500B.FieldByName('FItemID').Value:=qryInv500B.FieldByName('I150_002').Value;
    adsInv500B.FieldByName('FItemName').Value:=qryInv500B.FieldByName('I150_003').Value;
    adsInv500B.FieldByName('FItemSpec').Value:=qryInv500B.FieldByName('I150_004').Value;
    adsInv500B.FieldByName('FUnitNo').Value:=qryInv500B.FieldByName('I500B_004').Value;
    adsInv500B.FieldByName('FUnitID').Value:=qryInv500B.FieldByName('I140_002').Value;
    adsInv500B.FieldByName('FUnitName').Value:=qryInv500B.FieldByName('I140_003').Value;
    adsInv500B.FieldByName('FQty').Value:=qryInv500B.FieldByName('I500B_005').Value;
    adsInv500B.FieldByName('FPrice').Value:=qryInv500B.FieldByName('I500B_006').Value;
    adsInv500B.FieldByName('FAmount').Value:=qryInv500B.FieldByName('I500B_007').Value;
    adsInv500B.FieldByName('FLocNo').Value:=qryInv500B.FieldByName('I500B_008').Value;
    adsInv500B.FieldByName('FLocID').Value:=qryInv500B.FieldByName('I110_003').Value;
    adsInv500B.FieldByName('FLocName').Value:=qryInv500B.FieldByName('I110_004').Value;
    adsInv500B.FieldByName('FDate').Value:=qryInv500B.FieldByName('I500B_009').Value;
    adsInv500B.FieldByName('FLot').Value:=qryInv500B.FieldByName('I500B_010').Value;
    adsInv500B.FieldByName('FFromOrder').Value:=qryInv500B.FieldByName('I500B_011').Value;
    adsInv500B.FieldByName('FFromLine').Value:=qryInv500B.FieldByName('I500B_012').Value;
    adsInv500B.FieldByName('FOrdQty').AsFloat:=qryInv500B.FieldByName('I500B_013').AsFloat;
    adsInv500B.FieldByName('FUnitRate').Value:=qryInv500B.FieldByName('I500B_014').Value;
    adsInv500B.FieldByName('FFinish').AsFloat:=qryInv500B.FieldByName('I500B_015').AsFloat;
    adsInv500B.FieldByName('FRemark').Value:=qryInv500B.FieldByName('I500B_016').Value;
    adsInv500B.Post;
    ALastNo:=qryInv500B.FieldByName('I500B_002').AsInteger;
    qryInv500B.Next;
  end;
  adsInv500B.EnableControls;
end;

procedure TInv500_02Form.wwDBGrid1UpdateFooter(Sender: TObject);
var
  ASumQty,ASumAmt:Double;
begin
  inherited;
  ASumQty:=0;
  ASumAmt:=0;
  ADODataSet1.Clone(adsInv500B);
  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 TInv500_02Form.sbWhsClick(Sender: TObject);
begin
  inherited;
//仓库编号
  if not edtWhs.Focused then edtWhs.SetFocus;
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(qryInv100,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    edtWhs.Text:=qryInv100.FieldByName('I100_002').AsString;
    edtWhsName.Text:=qryInv100.FieldByName('I100_003').AsString;
  end;
end;

procedure TInv500_02Form.edtWhsExit(Sender: TObject);
begin
  inherited;
//仓库编号
  if trim(edtWhs.Text)='' then Exit;
  if qryInv100.Locate('I100_002',edtWhs.Text,[]) then
  begin
    edtWhs.Text:=qryInv100.FieldByName('I100_002').AsString;
    edtWhsName.Text:=qryInv100.FieldByName('I100_003').AsString;
  end else
  begin
    ShowMsg('UMS10000607');  //输入的仓库编号无效
    edtWhs.Text:='';
    edtWhsName.Text:='';
    edtWhs.SetFocus;
    Abort;
  end;
end;

procedure TInv500_02Form.sbCustClick(Sender: TObject);
var
  ADataSet:TDataSet;
begin
  inherited;
//对象编号
  ADataSet:=qryOrd150;
  if not edtCust.Focused then edtCust.SetFocus;
  case cbObjTyp.ItemIndex of
    1:ADataSet:=qryOrd150;
    2:ADataSet:=qryHrm150;
    3:ADataSet:=qryHrm100;
  end;
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(ADataSet,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    edtCust.Text:=ADataSet.FieldByName('FCode').AsString;
    edtCustName.Text:=ADataSet.FieldByName('FName').AsString;
  end;
end;

procedure TInv500_02Form.edtCustExit(Sender: TObject);
var
  ADataSet:TDataSet;
begin
  inherited;
//对象编号
  ADataSet:=qryOrd150;
  if trim(edtCust.Text)='' then Exit;
  case cbObjTyp.ItemIndex of
    1:ADataSet:=qryOrd150;
    2:ADataSet:=qryHrm150;
    3:ADataSet:=qryHrm100;
  end;
  if ADataSet.Locate('FCode',edtCust.Text,[]) then
  begin
    edtCust.Text:=ADataSet.FieldByName('FCode').AsString;
    edtCustName.Text:=ADataSet.FieldByName('FName').AsString;
  end else
  begin
    ShowMsg('UMS10000610');  //输入的对象编号无效
    edtCust.Text:='';
    edtCustName.Text:='';
    edtCust.SetFocus;
    Abort;
  end;
end;

procedure TInv500_02Form.ADOQuery1CalcFields(DataSet: TDataSet);
var
  ADataSet:TDataSet;
begin
  inherited;
  ADOQuery1FCode.Value:='';
  ADOQuery1FName.Value:='';
  ADataSet:=qryOrd150;
  if ADOQuery1I500A_005.AsInteger=0 then Exit;
  case ADOQuery1I500A_005.AsInteger of
    1:ADataSet:=qryOrd150;
    2:ADataSet:=qryHrm150;
    3:ADataSet:=qryHrm100;
  end;
  ADataSet.Locate('FNo',ADOQuery1I500A_006.Value,[]);
  ADOQuery1FCode.Value:=ADataSet.FieldByName('FCode').AsString;
  ADOQuery1FName.Value:=ADataSet.FieldByName('FName').AsString;
end;

procedure TInv500_02Form.cbObjTypChange(Sender: TObject);
begin
  inherited;
  edtCust.Visible:=cbObjTyp.ItemIndex<>3;
  edtCustName.Visible:=edtCust.Visible;
  sbCust.Visible:=edtCust.Visible;
  cbDept.Visible:=cbObjTyp.ItemIndex=3;
  cbDept.Enabled:=cbObjTyp.ItemIndex=3;
  edtCust.Enabled:=cbObjTyp.ItemIndex in [1,2];
  sbCust.Enabled:=edtCust.Enabled;
  if edtCust.Enabled then edtCust.Color:=AEnableColor else edtCust.Color:=ADisableColor;
  if cbDept.Enabled then cbDept.Color:=AEnableColor else cbDept.Color:=ADisableColor;
end;

procedure TInv500_02Form.cbTypeChange(Sender: TObject);
begin
  inherited;
  qryInv550.Locate('I550_003',cbType.Text,[]);
  cbObjTyp.ItemIndex:=qryInv550.FieldByName('I550_010').AsInteger;
  edtOrder.Enabled:=qryInv550.FieldByName('I550_011').AsString<>'';
  if edtOrder.Enabled then edtOrder.Color:=AEnableColor else edtOrder.Color:=ADisableColor;

  cbObjTypChange(cbObjTyp);
  SetDBGridA;
end;

procedure TInv500_02Form.ADOQuery1I500A_005GetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  inherited;
  if ADOQuery1.IsEmpty then Exit;
  Text:=AObjTyp[Sender.AsInteger];
end;

procedure TInv500_02Form.edtItemCustomDlg(Sender: TObject);
var
  ATypeNo,AWhsNo,ACustNo,AInOut,AOrder:Integer;
  AType:String;
  AQty:Double;
  ADataSet:TDataSet;
begin
  inherited;
//料品编号
  if not qryInv100.Locate('I100_002',edtWhs.Text,[]) then

⌨️ 快捷键说明

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