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

📄 f_storein.pas

📁 仓库管理系统 仓库管理系统
💻 PAS
字号:
unit f_storein;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, DB, ADODB, StdCtrls, ExtCtrls, Grids, DBGrids, Buttons,
  DBCtrls, Mask, DBCtrlsEh, DBGridEh, ppCtrls, ppBands, ppPrnabl, ppClass,
  ppCache, ppProd, ppReport, ppDB, ppComm, ppRelatv, ppDBPipe;

type
  Tdfmstorein = class(TForm)
    StatusBar1: TStatusBar;
    Panel2: TPanel;
    DataSource1: TDataSource;
    ATblstointemp: TADOTable;
    delbtn: TBitBtn;
    postbtn: TBitBtn;
    DataSource2: TDataSource;
    Atblbranch: TADOTable;
    ATblspec: TADOTable;
    DataSource3: TDataSource;
    DataSource4: TDataSource;
    AQryware: TADOQuery;
    cancelbtn: TBitBtn;
    BitBtn1: TBitBtn;
    ADOQuery1: TADOQuery;
    ADOQuery4: TADOQuery;
    Atblstoin: TADOTable;
    DataSource5: TDataSource;
    Atblvstotemp: TADOTable;
    DataSource6: TDataSource;
    Atblstore: TADOTable;
    ADOQuery2: TADOQuery;
    DataSource7: TDataSource;
    ADOTable1: TADOTable;
    DataSource8: TDataSource;
    Panel3: TPanel;
    Label1: TLabel;
    Label9: TLabel;
    MaskEdit1: TMaskEdit;
    ComboBox3: TComboBox;
    Panel4: TPanel;
    Label6: TLabel;
    Label8: TLabel;
    Label4: TLabel;
    Label10: TLabel;
    MaskEdit2: TMaskEdit;
    MaskEdit3: TMaskEdit;
    MaskEdit4: TMaskEdit;
    Edit2: TEdit;
    Panel1: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    DateTimePicker1: TDateTimePicker;
    Label5: TLabel;
    Label7: TLabel;
    StaticText1: TStaticText;
    ADOTable2: TADOTable;
    DBGridEh1: TDBGridEh;
    ADOQuery3: TADOQuery;
    CheckBox1: TCheckBox;
    ppDBPipeline1: TppDBPipeline;
    ppReport1: TppReport;
    ppHeaderBand1: TppHeaderBand;
    ppLabel1: TppLabel;
    ppLabel2: TppLabel;
    ppLabel3: TppLabel;
    ppLabel4: TppLabel;
    ppLabel7: TppLabel;
    ppLabel8: TppLabel;
    ppDBText1: TppDBText;
    ppDBText2: TppDBText;
    ppDBText3: TppDBText;
    ppLine1: TppLine;
    ppDetailBand1: TppDetailBand;
    ppDBText6: TppDBText;
    ppDBText7: TppDBText;
    ppLine2: TppLine;
    ppFooterBand1: TppFooterBand;
    ppLabel5: TppLabel;
    ppLabel6: TppLabel;
    ppDBText4: TppDBText;
    ppDBText5: TppDBText;
    ppSummaryBand1: TppSummaryBand;
    ppLabel9: TppLabel;
    ppDBCalc1: TppDBCalc;
    ppLine3: TppLine;
    atblslday: TADOTable;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DataSource1StateChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure MaskEdit3Exit(Sender: TObject);
    procedure delbtnClick(Sender: TObject);
    procedure postbtnClick(Sender: TObject);
    procedure cancelbtnClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure sumno;
    procedure FormShow(Sender: TObject);
    procedure ComboBox1Enter(Sender: TObject);
    procedure ComboBox2Enter(Sender: TObject);
    procedure ComboBox3Enter(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  dfmstorein: Tdfmstorein;

implementation

uses dbmRainbowMis, chHeadUnit;

{$R *.dfm}

procedure Tdfmstorein.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ATblstointemp.Active := false;
  Atblbranch.Active := false;
  ATblspec.Active := false;
  Atblstore.Active := false;
  Atblstoin.active := false;
  ADOTable1.Active := false;  
  action:=cafree;
end;

procedure Tdfmstorein.DataSource1StateChange(Sender: TObject);
begin
    case ATblstointemp.State of
      dsbrowse:
        begin
          delbtn.Enabled :=true;
//          postbtn.Enabled :=false;
          cancelbtn.Enabled :=false;
        end;
      dsinsert:
        begin
          delbtn.Enabled :=false;
          cancelbtn.Enabled :=true;
        end;
      dsedit:
        begin
          delbtn.Enabled :=false;
          cancelbtn.Enabled :=true;
        end;
    end;
end;

procedure Tdfmstorein.FormCreate(Sender: TObject);
begin
  DateTimePicker1.Date:=date();
  ATblstointemp.Active := true;
  Atblbranch.Active := true;
  ATblspec.Active := true;
  Atblstore.Active := true;
  Atblstoin.active := true;
  ADOTable1.Active :=true;
  combobox1.Text:=dmRainbowMIS.atbldefault['cbmh'];
  combobox3.Text:=dmRainbowMIS.atbldefault['clabel'];
end;

procedure Tdfmstorein.MaskEdit3Exit(Sender: TObject);
begin
  with AQryware do
  begin
    close;
    Parameters.ParamByName ('vspbh').value:=trim(maskedit2.text)+trim(edit2.Text)+trim(maskedit3.text);
    Parameters.ParamByName ('vlabel').value:=trim(ComboBox3.text);
    open;
  end;
  if TCustomADODataSet(AQryware).RecordCount>0 then
    StaticText1.Caption :=ATblspec['cname']
  else
    StaticText1.Caption :='';
end;

procedure Tdfmstorein.delbtnClick(Sender: TObject);
begin
  ATblstointemp.Delete ;
end;

procedure Tdfmstorein.postbtnClick(Sender: TObject);
begin
  if not atblslday.Locate ('cdate',formatdatetime('yyyy-mm-dd',datetimepicker1.Date),[loPartialKey]) then
  begin
    with AQryware do
    begin
      close;
      Parameters.ParamByName ('vspbh').value:=trim(maskedit2.text)+trim(edit2.Text)+trim(maskedit3.text);
      Parameters.ParamByName ('vlabel').value:=trim(ComboBox3.text);
      open;
    end;
    if TCustomADODataSet(AQryware).RecordCount>0 then
    begin
      ATblstointemp.Append ;
      ATblstointemp['cstinno']:=maskedit1.Text ;
      ATblstointemp['cinceptbra']:=ComboBox1.Text ;
      ATblstointemp['csendbra']:=ComboBox2.Text ;
      ATblstointemp['cuser']:=g_uInfo.fuserName;
      ATblstointemp['cdate']:=formatdatetime('yyyy,mm,dd',DateTimePicker1.Date);
      ATblstointemp['clabel']:=trim(ComboBox3.Text) ;
      ATblstointemp['spbh']:=trim(maskedit2.text)+trim(edit2.Text)+(maskedit3.text);
      ATblstointemp['sl']:=maskedit4.Text ;
      ATblstointemp.Post;
    end
    else
      application.messagebox('输入的商品信息不存在,请重新输入','错误提示',mb_ok) ;
    maskedit2.SetFocus;
  end
  else
    application.messagebox('这个日期已日结封帐,不允许继续输入!',
        '提示信息', MB_OK) ;
end;

procedure Tdfmstorein.cancelbtnClick(Sender: TObject);
begin
  ATblstointemp.Cancel ;
end;

procedure Tdfmstorein.BitBtn1Click(Sender: TObject);
begin
  if ATblstointemp.IsEmpty = false then
  begin
    ADOTable2.Close;
    ADOTable2.Open;
    if ADOTable2.RecordCount=1 then
    begin
      if Application.MessageBox('你确定记录准确无误,给予审核保存吗?',
          '提示信息', MB_OKCANCEL + MB_DEFBUTTON1) = IDOK then
      begin
        ADOQuery3.ExecSQL ; //增加原有的货品的库存量
        ADOQuery2.ExecSQL; //增加原来没有的库存货品}
        ADOQuery1.ExecSQL; {保存进货记录}
        if checkbox1.Checked then
        begin
          ppReport1.Print;
        end;
        ADOQuery4.ExecSQL; {清空临时表}
        ATblstointemp.Active :=false;
        ATblstointemp.Active :=true;
        MaskEdit2.Text :='';
        edit2.Text:='';
        MaskEdit3.Text:='';
        MaskEdit4.Text:='';
        sumno;
      end;
    end
    else
      Application.MessageBox('输入记录有错,一个单据的日期,发货部门,收货部门要唯一!','提示信息', MB_OK)
  end
  else
    Application.MessageBox('没有输入记录,无法审核!','提示信息', MB_OK)
end;

procedure Tdfmstorein.FormKeyPress(Sender: TObject; var Key: Char);
begin
  chHeadUnit.tabventer(dfmstorein,key);
end;

procedure Tdfmstorein.sumno; {产生进货单号的过程}
var
  n:integer;
  a:string;
begin
  if ATblstointemp.IsEmpty then
  begin
    Atblstoin.Close;
    Atblstoin.indexfieldnames:='cstinno';
    Atblstoin.Open;
    Atblstoin.Last;
    n:=strtoint(Atblstoin['cstinno']);
    n:=n+1;
    a:=inttostr(n);
    while length(a)<10 do
    begin
      a:='0'+a;
    end;
    maskedit1.Text:=a;
  end
  else
    maskedit1.Text:=ATblstointemp['cstinno'];
end;

procedure Tdfmstorein.FormShow(Sender: TObject);
begin
  if ATblstoin.IsEmpty then
    maskedit1.Text:='0000000001'
  else
    sumno;
//  MaskEdit1.SetFocus ;  
end;

procedure Tdfmstorein.ComboBox1Enter(Sender: TObject);
begin
  chHeadunit.combolist(combobox1,Atblbranch,'bmh','bmmc',1);
end;

procedure Tdfmstorein.ComboBox2Enter(Sender: TObject);
begin
  chHeadunit.combolist(combobox2,Atblbranch,'bmh','bmmc',1);
end;

procedure Tdfmstorein.ComboBox3Enter(Sender: TObject);
begin
  chHeadunit.combolist(combobox3,ADOTable1,'clabel','cfactory',1);
end;

end.

⌨️ 快捷键说明

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