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

📄 inv600_02.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
    qryInv600B.FieldByName('I600B_007').Value:=adsInv600B.FieldByName('FIsFinish').Value;
    qryInv600B.Post;
    adsInv600B.Next;
  end;
end;

//打印报表的多语种处理
procedure TInv600_02Form.ReportGetValue(const ParName: String;
  var ParValue: Variant);
begin
  inherited;

end;

//取得明细表数据
procedure TInv600_02Form.GetDetailData;
begin
  ALastNo:=0;
  adsInv600B.Close;
  adsInv600B.CreateDataSet;
  qryInv600B.Close;
  qryInv600B.SQL.Clear;
  qryInv600B.SQL.Add('select A.*,B.I110_003,B.I110_004,C.I150_002,C.I150_003,C.I150_004,D.I140_002,D.I140_003');
  qryInv600B.SQL.Add('from ((INV600B A left join INV110 B on A.I600B_004=B.I110_001) left join INV150 C on A.I600B_003=C.I150_001) left join INV140 D on C.I150_011=D.I140_001');
  qryInv600B.SQL.Add('where I600B_001='+''''+edtCode.Text+'''');
  qryInv600B.SQL.Add('order by I600B_002');
  qryInv600B.Open;
  while not qryInv600B.Eof do
  begin
    adsInv600B.Append;
    adsInv600B.FieldByName('FNo').Value:=qryInv600B.FieldByName('I600B_002').Value;
    adsInv600B.FieldByName('FItemNo').Value:=qryInv600B.FieldByName('I600B_003').Value;
    adsInv600B.FieldByName('FItemID').Value:=qryInv600B.FieldByName('I150_002').Value;
    adsInv600B.FieldByName('FItemName').Value:=qryInv600B.FieldByName('I150_003').Value;
    adsInv600B.FieldByName('FItemSpec').Value:=qryInv600B.FieldByName('I150_004').Value;
    adsInv600B.FieldByName('FUnitID').Value:=qryInv600B.FieldByName('I140_002').Value;
    adsInv600B.FieldByName('FUnitName').Value:=qryInv600B.FieldByName('I140_003').Value;
    adsInv600B.FieldByName('FLocNo').Value:=qryInv600B.FieldByName('I600B_004').Value;
    adsInv600B.FieldByName('FLocID').Value:=qryInv600B.FieldByName('I110_003').Value;
    adsInv600B.FieldByName('FLocName').Value:=qryInv600B.FieldByName('I110_004').Value;
    adsInv600B.FieldByName('FQty').Value:=qryInv600B.FieldByName('I600B_005').Value;
    adsInv600B.FieldByName('FIsPrint').Value:=qryInv600B.FieldByName('I600B_006').Value;
    adsInv600B.FieldByName('FIsFinish').Value:=qryInv600B.FieldByName('I600B_007').Value;
    adsInv600B.Post;
    ALastNo:=qryInv600B.FieldByName('I600B_002').AsInteger;
    qryInv600B.Next;
  end;
end;

procedure TInv600_02Form.edtItemIDCustomDlg(Sender: TObject);
var
  I,AWhsNo:Integer;
  AIsFound:Boolean;
begin
  inherited;
//料品查询
  if not qryInv100.Locate('I100_002',edtWhs.Text,[]) then
  begin
    ShowMsg('UMS10000445');  //必须先输入正确的仓库编号
    edtWhs.SetFocus;
    Abort;
  end;
  AWhsNo:=qryInv100.FieldByName('I100_001').AsInteger;
  if not edtItemID.Focused then edtItemID.SetFocus;
  HwSelDataAForm:=THwSelDataAForm.Create(Application);
  HwSelDataAForm.OpenData('INV501',AWhsNo,0,0);
  if HwSelDataAForm.ShowModal=1 then
  begin
    adsInv600B.Last;
    I:=adsInv600B.FieldByName('FNo').AsInteger;
    with HwSelDataAForm do
    begin
      adsInv150.First;
      while not adsInv150.Eof do
      begin
        if adsInv150.FieldByName('FSel').Value=-1 then
        begin
          I:=I+1;
          if adsInv150.FieldByName('FLocID').AsString='' then
            AIsFound:=adsInv600B.Locate('FItemID',adsInv150.FieldByName('FItemID').AsString,[])
          else
            AIsFound:=adsInv600B.Locate('FItemID;FLocID',VarArrayOf([adsInv150.FieldByName('FItemID').AsString,adsInv150.FieldByName('FLocID').AsString]),[]);
          if AIsFound then adsInv600B.Edit else adsInv600B.Append;
          adsInv600B.FieldByName('FNo').Value:=I;
          adsInv600B.FieldByName('FItemNo').Value:=adsInv150.FieldByName('FItemNo').Value;
          adsInv600B.FieldByName('FItemID').AsString:=adsInv150.FieldByName('FItemID').AsString;
          adsInv600B.FieldByName('FItemName').AsString:=adsInv150.FieldByName('FItemName').AsString;
          adsInv600B.FieldByName('FItemSpec').AsString:=adsInv150.FieldByName('FItemSpec').AsString;
          adsInv600B.FieldByName('FUnitID').AsString:=adsInv150.FieldByName('FUnitID').AsString;
          adsInv600B.FieldByName('FUnitName').AsString:=adsInv150.FieldByName('FUnitName').AsString;
          adsInv600B.FieldByName('FLocNo').Value:=adsInv150.FieldByName('FLocNo').Value;
          adsInv600B.FieldByName('FLocID').AsString:=adsInv150.FieldByName('FLocID').AsString;
          adsInv600B.FieldByName('FLocName').AsString:=adsInv150.FieldByName('FLocName').AsString;
          adsInv600B.FieldByName('FQty').Value:=adsInv150.FieldByName('FQty').Value;
          adsInv600B.FieldByName('FIsPrint').Value:=False;
          adsInv600B.FieldByName('FIsFinish').Value:=False;
          adsInv600B.Post;
        end;
        adsInv150.Next;
      end;
    end;
  end;
end;

procedure TInv600_02Form.sbWhsClick(Sender: TObject);
begin
  inherited;
//仓库查询
  if not edtWhs.Focused then edtWhs.SetFocus;
  qryInv100.Close;
  qryInv100.Open;
  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;
    qryInv501.Close;
    qryInv501.SQL.Clear;
    qryInv501.SQL.Add('select A.*,I100_002,I100_003,I110_003,I110_004,I150_002,I150_003,I150_004,I140_002,I140_003');
    qryInv501.SQL.Add('from ((((INV501 A left join INV100 B on A.I501_001=B.I100_001)');
    qryInv501.SQL.Add('     left join INV110 C on A.I501_002=C.I110_001)');
    qryInv501.SQL.Add('     left join INV150 D on A.I501_003=D.I150_001)');
    qryInv501.SQL.Add('     left join INV140 E on D.I150_011=E.I140_001)');
    qryInv501.SQL.Add('where I100_002='+''''+edtWhs.Text+'''');
    qryInv501.SQL.Add('order by I100_002,I110_003,I150_002');
    qryInv501.Open;
  end;
end;

procedure TInv600_02Form.wwDBGrid1UpdateFooter(Sender: TObject);
begin
  inherited;
  ADODataSet1.Clone(adsInv600B);
  edtQty.Text:=FloatToStrF(ADODataSet1.RecordCount,ffNumber,10,0);
  wwDBGrid1.ColumnByName('FItemID').FooterValue:=GetDBString('COM00004002')+edtQty.Text;  //记录总数
end;

procedure TInv600_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;
    qryInv501.Close;
    qryInv501.SQL.Clear;
    qryInv501.SQL.Add('select A.*,I100_002,I100_003,I110_003,I110_004,I150_002,I150_003,I150_004,I140_002,I140_003');
    qryInv501.SQL.Add('from ((((INV501 A left join INV100 B on A.I501_001=B.I100_001)');
    qryInv501.SQL.Add('     left join INV110 C on A.I501_002=C.I110_001)');
    qryInv501.SQL.Add('     left join INV150 D on A.I501_003=D.I150_001)');
    qryInv501.SQL.Add('     left join INV140 E on D.I150_011=E.I140_001)');
    qryInv501.SQL.Add('where I100_002='+''''+edtWhs.Text+'''');
    qryInv501.SQL.Add('order by I100_002,I110_003,I150_002');
    qryInv501.Open;
  end else
  begin
    edtWhs.Text:='';
    edtWhsName.Text:='';
    ShowMsg('UMS10000440');  //无效的仓库编号,请重新输入
    edtWhs.SetFocus;
    Abort;
  end;
end;

procedure TInv600_02Form.adsInv600BBeforePost(DataSet: TDataSet);
var
  AIsFound:Boolean;
begin
  inherited;
  if not ActSave.Enabled then Exit;
  if not Active then Exit;
//检验子表数据是否完整及有效
  if adsInv600BFLocID.AsString='' then
    AIsFound:=qryInv501.Locate('I100_002;I150_002',VarArrayOf([edtWhs.Text,adsInv600BFItemID.Value]),[])
  else
    AIsFound:=qryInv501.Locate('I100_002;I110_003;I150_002',VarArrayOf([edtWhs.Text,adsInv600BFLocID.Value,adsInv600BFItemID.Value]),[]);

  if not AIsFound then
  begin
    ShowMsg('UMS10000446');  //输入的料品编号无效,或者该料品没有相关的存货记录
    wwDBGrid1.SetFocus;
    Abort;
  end;  
end;

procedure TInv600_02Form.mmiAddClick(Sender: TObject);
begin
  inherited;
//新增(&I)
  adsInv600B.Append;
end;

procedure TInv600_02Form.mmiEditClick(Sender: TObject);
begin
  inherited;
//修改(&U)
  if adsInv600B.IsEmpty then
  begin
    ShowMsg('UMS10000002');  //表记录为空,操作无效
    Abort;
  end;
  adsInv600B.Edit;
end;

procedure TInv600_02Form.mmiDelClick(Sender: TObject);
begin
  inherited;
//删除(&E)
  if adsInv600B.IsEmpty then
  begin
    ShowMsg('UMS10000002');  //表记录为空,操作无效
    Abort;
  end;
  if ShowDialog('UMS10000008')=IDNO then Abort;  //确定要删除此记录吗?
  adsInv600B.Delete;
end;

procedure TInv600_02Form.wwDBGrid1Enter(Sender: TObject);
begin
  inherited;
  OnKeyDown:=nil;
end;

procedure TInv600_02Form.wwDBGrid1Exit(Sender: TObject);
begin
  inherited;
  OnKeyDown:=AKeyEvent;
end;

procedure TInv600_02Form.pmInv600BPopup(Sender: TObject);
begin
  inherited;
  mmiAdd.Enabled:=ActSave.Enabled;
  mmiEdit.Enabled:=ActSave.Enabled;
  mmiDel.Enabled:=ActSave.Enabled;
end;

procedure TInv600_02Form.SetEmptyInit;
begin
  edtCode.Text:='';
  edtName.Text:='';
  edtStatus.Text:='';
  edtWhs.Text:='';
  edtWhsName.Text:='';
  edtFromDate.Clear;
  edtToDate.Clear;
  edtFactFromDate.Clear;
  edtFactToDate.Clear;
  edtQty.Text:='';
  memRemark.Text:='';
  edtCreateDate.Text:='';
  edtCreateBy.Text:='';
  edtUpdateDate.Text:='';
  edtUpdateBy.Text:='';
  ALastNo:=0;
  adsInv600B.Close;
  adsInv600B.CreateDataSet;
end;

procedure TInv600_02Form.DeleteEvent;
var
  ACode:string;
begin
  if ADOQuery1I600A_003.AsInteger=2 then
  begin
    ShowMsg('UMS10000435');  //不允许删除完成状态的盘点计划
    Abort;
  end;
  if IsExists('select 1 from INV610A where I610A_002='+''''+ADOQuery1I600A_001.AsString+'''') then
  begin
    ShowMsg('UMS10000514');  //不允许删除已汇报的盘点计划
    Abort;
  end;
  ACode:=ADOQuery1I600A_001.AsString;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('delete from INV600B where I600B_001='+''''+ACode+'''');
  SYSDM.qryQuery.ExecSQL;
  DeleteTableRecord(ADOQuery1,'INV600A','I600A_001='+''''+ACode+'''');
end;

procedure TInv600_02Form.InsertEvent;
begin
  edtCode.Text:='';
  edtName.Text:='';
  edtStatus.Text:=AStatus[0];
  edtWhs.Text:='';
  edtWhsName.Text:='';
  edtFromDate.Date:=GetServerDate;
  edtToDate.Date:=edtFromDate.Date;
  edtFactFromDate.Clear;
  edtFactToDate.Clear;
  edtQty.Text:='0';
  memRemark.Text:='';
  ALastNo:=0;
  adsInv600B.Close;
  adsInv600B.CreateDataSet;
end;

procedure TInv600_02Form.UpdateEvent;
begin
  //0=计划,1=执行,2=完成
  if ADOQuery1I600A_003.AsInteger=1 then
  begin
    ShowMsg('UMS10000516');  //不允许修改执行状态的盘点计划
    Abort;
  end;
  if ADOQuery1I600A_003.AsInteger=2 then
  begin
    ShowMsg('UMS10000434');  //不允许修改完成状态的盘点计划
    Abort;
  end;
end;

procedure TInv600_02Form.ActPrintExecute(Sender: TObject);
begin
//打印
  if ADOQuery1I600A_003.AsInteger=2 then
  begin
    ShowMsg('UMS10000515');  //不允许打印完成状态的盘点计划
    Abort;
  end;
  //更新盘点计划的库存数量
  UpdateInvQty;
  try
    SYSDM.frReport2.OnPrintReport:=UpdatePrintData;
    SYSDM.frDBDataSet1.RangeBegin:=rbCurrent;
    SYSDM.frDBDataSet1.RangeEnd:=reCurrent;
    SYSDM.frDBDataSet2.DataSet:=adsInv600B;
    inherited;
  finally
    SYSDM.frDBDataSet1.RangeBegin:=rbFirst;
    SYSDM.frDBDataSet1.RangeEnd:=reLast;
    SYSDM.frReport2.OnPrintReport:=nil;
  end;
end;

initialization
  RegisterClass(TInv600_02Form);

finalization
  UnRegisterClass(TInv600_02Form);

end.

⌨️ 快捷键说明

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