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

📄 unttransferstore.pas

📁 是分布式粮库程序,是采用Delphi实现的
💻 PAS
字号:
unit UntTransferStore;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, UnitStandard1, DBTables, DB, Menus, ImgList, Grids, DBGrids,
  ComCtrls, StdCtrls, ExtCtrls, Buttons, ToolWin, DBCtrls, Mask, MainForm;

type
  TFrmTransferStore = class(TFrmStandard1)
    BitBtnOutStoreCheck: TBitBtn;
    BitBtnInStoreCheck: TBitBtn;
    BitBtnOutStack: TBitBtn;
    BitBtnInStack: TBitBtn;
    LblNotyItem: TLabel;
    LblDateTime: TLabel;
    LblOutUnit: TLabel;
    LblInUnit: TLabel;
    LblOutQ: TLabel;
    LblInQ: TLabel;
    LblInN: TLabel;
    LblOutClerk: TLabel;
    LblInClerk: TLabel;
    GroupBox6: TGroupBox;
    LblOutCheck: TLabel;
    LblInCheck: TLabel;
    GroupBox7: TGroupBox;
    DBMemo1: TDBMemo;
    DBCheckBox1: TDBCheckBox;
    DBCheckBox2: TDBCheckBox;
    DBEditNotyItemID: TDBEdit;
    DBEditDatetime: TDBEdit;
    DBEdtInQ: TDBEdit;
    DBLookupComboBox1: TDBLookupComboBox;
    DBLkpCmbxRecieve: TDBLookupComboBox;
    DBLookupComboBox3: TDBLookupComboBox;
    DBEditNotyQuantity: TDBEdit;
    DBEdtInClerk: TDBEdit;
    DBEdtOutClerk: TDBEdit;
    TblUnit: TTable;
    DataSourceUnit: TDataSource;
    DataSourceFood: TDataSource;
    TblFood: TTable;
    LblOutN: TLabel;
    DBLookupComboBox4: TDBLookupComboBox;
    QrySQLCASE_ID: TStringField;
    QrySQLNOTY_ITEM_ID: TStringField;
    QrySQLNOTY_FOODTYPE: TStringField;
    QrySQLNOTY_QUANTITY: TFloatField;
    QrySQLFOODTYPE: TStringField;
    QrySQLQUANTITY: TFloatField;
    QrySQLCLERK: TStringField;
    QrySQLOPERATE: TStringField;
    BitBtnSlctNotyItem: TBitBtn;
    QrySQLDATETIME: TDateTimeField;
    QrySQLUNIT_ID: TIntegerField;
    DBEditUnitID: TDBEdit;
    Label25: TLabel;
    QrySQLRECIEVER: TIntegerField;
    QrySQLCOM_FLAG: TIntegerField;
    QrySQLOUT_CHECK: TStringField;
    QrySQLIN_CHECK: TStringField;
    QrySQLMEMO: TStringField;
    procedure BitBtnInStackClick(Sender: TObject);
    procedure BitBtnOutStoreCheckClick(Sender: TObject);
    procedure BitBtnNewClick(Sender: TObject);
    procedure BitBtnSaveClick(Sender: TObject);
    procedure BitBtnInStoreCheckClick(Sender: TObject);
    procedure BitBtnOutStackClick(Sender: TObject);
    procedure BitBtnSlctNotyItemClick(Sender: TObject);
    procedure DBEditKeyExit(Sender: TObject);
    procedure BitBtnDeleteClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure QrySQLDATETIMESetText(Sender: TField; const Text: String);
  private
    { Private declarations }
  public
    { Public declarations }
    NotyItemID,NotyFdType: string;
    NotyQuantity: Double;
  end;

var
  FrmTransferStore: TFrmTransferStore;

implementation

Uses UntTransferInStack,UntTransferOutStack,UntSlctNotyItemID,Global;

{$R *.dfm}

procedure TFrmTransferStore.BitBtnInStackClick(Sender: TObject);
begin
  inherited;
  FrmTransferInStack := TFrmTransferInStack.Create(FrmTransferStore);
  //初始化记录值
  FrmTransferInStack.DBGrid1.DataSource.DataSet.Edit;
  FrmTransferInStack.DBGrid1.DataSource.DataSet.Append;
  FrmTransferInStack.DBEditUnitID.Field.AsInteger:=Global.g_user.UnitID;
  FrmTransferInStack.DBEditClerk.Field.AsString := Global.g_user.UserName;
  FrmTransferInStack.DBCmbxInType.Field.AsString := '内移收入';
  FrmTransferInStack.DBEditInTime.Field.AsDateTime := date;
  FrmTransferInStack.DBEditSurplus.Field.AsFloat := 0;
  FrmTransferInStack.DBEditKey.Enabled:=true;
  FrmTransferInStack.DBEditTransferID.Field.AsString := QrySql.FieldByName('CASE_ID').AsString;
  FrmTransferInStack.DBEditQuantity.Field.AsFloat := QrySql.FieldByName('QUANTITY').AsFloat;
  FrmTransferInStack.DBLkpCmbxInFood.Field.AsString := QrySql.FieldByName('FOODTYPE').AsString;
  FrmTransferInStack.DBLkpCmbxSuppler.Field.AsString := DBLookupComboBox1.Text;   // QrySql.FieldByName('UNIT_ID').AsString;

  FrmTransferInStack.DBEditKey.Enabled:=true;
  FrmTransferInStack.DBEditKey.SetFocus;
  FrmTransferInStack.Visible:=false;
  FrmTransferInStack.ShowModal;
end;

procedure TFrmTransferStore.BitBtnOutStoreCheckClick(Sender: TObject);
begin
  inherited;
  QrySql.Edit;
  QrySql.FieldByName('OUT_CHECK').AsInteger:=1;
  BitBtnSave.Click;
end;

procedure TFrmTransferStore.BitBtnNewClick(Sender: TObject);
begin
  inherited;
  DBEditUnitID.Field.AsInteger:=Global.g_user.UnitID;
  DBEdtOutClerk.Field.AsString := Global.g_user.UserName;
  DBEditDatetime.Field.AsDateTime := date;
  DBCheckBox1.ValueChecked:='0';
  DBCheckBox2.Checked:=false;
  DBEditKey.SetFocus;
end;

procedure TFrmTransferStore.BitBtnSaveClick(Sender: TObject);
begin
  if DBEditKey.Text='' then
    begin
      showmessage('请输入移库单编号!');
      DBEditKey.SetFocus;
      exit;
    end;
  inherited;
end;

procedure TFrmTransferStore.BitBtnInStoreCheckClick(Sender: TObject);
begin
  inherited;
  QrySql.Edit;
  QrySql.FieldByName('IN_CHECK').AsInteger:=1;
  BitBtnSave.Click;
end;

procedure TFrmTransferStore.BitBtnOutStackClick(Sender: TObject);
begin
  inherited;
  FrmTransferOutStack := TFrmTransferOutStack.Create(Application);
  //初始化记录值
  FrmTransferOutStack.DBGrid1.DataSource.DataSet.Edit;
  FrmTransferOutStack.DBGrid1.DataSource.DataSet.Append;
  FrmTransferOutStack.DBEditUnitID.Field.AsInteger:=Global.g_user.UnitID;
  FrmTransferOutStack.DBEditClerk.Field.AsString := Global.g_user.UserName;
  FrmTransferOutStack.DBCmbxOutType.Field.AsString := '内移付出';
  FrmTransferOutStack.DBEditOutTime.Field.AsDateTime := date;
  FrmTransferOutStack.DBEditRemain.Field.AsFloat := 0;
  FrmTransferOutStack.DBEditTransferID.Field.AsString := QrySql.FieldByName('CASE_ID').AsString;
  FrmTransferOutStack.DBEditOutQantity.Field.AsFloat :=  QrySql.FieldByName('NOTY_QUANTITY').AsFloat;
  FrmTransferOutStack.DBEditKey.Enabled:=true;
  FrmTransferOutStack.DBEditKey.SetFocus;
  FrmTransferOutStack.Visible:=false;
  FrmTransferOutStack.ShowModal;
  
end;

procedure TFrmTransferStore.BitBtnSlctNotyItemClick(Sender: TObject);
begin
  inherited;
  NotyItemID := '';
  NotyFdType := '';
  NotyQuantity := 0;
  UntSlctNotyItemId.SltFlds(Self);

  if Length(NotyItemID)<>0 then
  begin
    DBGrid1.DataSource.DataSet.Edit;
    DBEditNotyItemID.Field.AsString := NotyItemID;
  end;
  if Length(NotyFdType)<>0 then
  begin
    DBGrid1.DataSource.DataSet.Edit;
    DBLookupComboBox4.Field.AsString := NotyFdType;
  end;
  if NotyQuantity <> 0 then
  begin
    DBGrid1.DataSource.DataSet.Edit;
    DBEditNotyQuantity.Field.AsFloat := NotyQuantity;
  end;
end;

procedure TFrmTransferStore.DBEditKeyExit(Sender: TObject);
var
  QryCX: TQuery;
  str: string;
begin
  inherited;
  if DBEditkey.Text='' then
    begin
    Showmessage('移库单编号不能为空,请输入!');
    DBEditKey.SetFocus;
    DBEditKey.Enabled:=true;
    exit;
    end
  else
  begin
    try
      QryCX:= TQuery.Create(nil);
      QryCX.DatabaseName := 'LYDB';
      QryCX.SQL.Clear;
      str:='select * from ENT_TR_CASE where CASE_ID='''+trim(DBEditKey.Text)+''' and UNIT_ID='+intToStr(DBEditUnitId.Field.AsInteger);
      QryCX.SQL.Add(Str);
      QryCX.Open;
      if QryCX.RecordCount>0 then
      begin
        showmessage('移库单编号重复,请重新输入!');
        DBEditKey.SetFocus;
        DBEditKey.Enabled:=true;
        exit;
      end;
    finally
      QryCX.Close;
      QryCX.Free;
    end;
  end;
end;

procedure TFrmTransferStore.BitBtnDeleteClick(Sender: TObject);
var
  QryCX: TQuery;
  str: string;
begin
  try
    QryCX:=TQuery.Create(nil);
    QryCX.DatabaseName := 'LYDB';
    QryCX.SQL.Clear;
    Str := 'select * from ENT_OUTSTACK where CASE_ID='''+Trim(DBEditKey.Field.AsString)+''''+' and UNIT_ID='+intToStr(DBEditUnitId.Field.AsInteger);
    QryCX.SQL.Add(str);
    QryCX.Open;
    if QryCX.RecordCount>0 then
      begin
      showmessage('此记录已被出库编号为:'+QryCX.fieldByName('OUTSTACK_ID').AsString+'引用,不能删除!');
      exit;
      end;
    QryCX.Close;
    QryCX.SQL.Clear;
    Str := 'select * from ENT_INSTACK where CASE_ID='''+Trim(DBEditKey.Field.AsString)+''''+' and UNIT_ID='+intToStr(DBLkpCmbxRecieve.Field.AsInteger);
    QryCX.SQL.Add(str);
    QryCX.Open;
    if QryCX.RecordCount>0 then
      begin
      showmessage('此记录已被入库编号为:'+QryCX.fieldByName('INSTACK_ID').AsString+'引用,不能删除!');
      exit;
      end;
  finally
    QryCX.Close;
    QryCX.Free;
  end;
  inherited;

end;

procedure TFrmTransferStore.FormCreate(Sender: TObject);
begin
  inherited;
  if FrmMain.FrmFlag = '入库移库单窗口' then
  begin
    //LblInN.Enabled:=true;
    DBLookupComboBox3.Enabled:=true;
    //LblInQ.Enabled:=true;
    DBEdtInQ.Enabled:=true;
    //LblInClerk.Enabled:=true;
    DBEdtInClerk.Enabled:=true;
    //LblInCheck.Enabled:=true;
    DBCheckBox1.Enabled:=true;

    EdtInitWhr.Text:='RECIEVER='+inttostr(global.g_user.UnitID);
    QrySql.Close;
    QrySql.Filter:='RECIEVER='+inttostr(global.g_user.UnitID);
    QrySql.Filtered:=true;
    QrySql.Open;
  end;
  if FrmMain.FrmFlag = '出库移库单窗口' then
  begin
    //LblNotyItem.Enabled:=true;
    BitBtnSlctNotyItem.Enabled:=true;
    //LblInUnit.Enabled:=true;
    DBLkpCmbxRecieve.Enabled:=true;
    //LblOutN.Enabled:=true;
    DBLookupComboBox4.Enabled:=true;
    //LblOutQ.Enabled:=true;
    DBEditNotyQuantity.Enabled:=true;
    //LbloutClerk.Enabled:=true;
    DBEdtoutClerk.Enabled:=true;
    //LblOutCheck.Enabled:=true;
    DBCheckBox2.Enabled:=true;
    BitBtnNew.Enabled:=true;
    BitBtnDelete.Enabled:=true;
    //LblDateTime.Enabled:=true;
    DBEditDateTime.Enabled:=true;

    EdtInitWhr.Text:='Unit_id='+inttostr(global.g_user.UnitID);
    QrySql.Close;
    QrySql.Filter:='Unit_id='+inttostr(global.g_user.UnitID);
    QrySql.Filtered:=true;
    QrySql.Open;
  end;
end;

procedure TFrmTransferStore.QrySQLDATETIMESetText(Sender: TField;
  const Text: String);
begin
  inherited;
  if DBEditDatetime.Text<>'    -  -  ' then
    try
      Sender.AsDateTime:=strtodate(DBEditDatetime.EditText);
    except
      Application.MessageBox(PChar(DBEditDatetime.EditText+'不是有效的日期!'),'错误',mb_Ok+mb_IconError);
      abort;
    end
  else
    Sender.Clear;
end;

end.

⌨️ 快捷键说明

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