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

📄 unttransferoutstack.pas

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

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;

type
  TFrmTransferOutStack = class(TFrmStandard1)
    TblInStack: TTable;
    DataSourceInStack: TDataSource;
    Label26: TLabel;
    DBEditTransferID: TDBEdit;
    BitBtnSlctSaleItem: TBitBtn;
    BitBtnSlctInStackID: TBitBtn;
    DBEditInStackID: TDBEdit;
    Label27: TLabel;
    QrySQLOUTSTACK_ID: TStringField;
    QrySQLINSTACK_ID: TStringField;
    QrySQLCASE_ID: TStringField;
    QrySQLSALEITEM_ID: TStringField;
    QrySQLOUT_QUANTITY: TFloatField;
    QrySQLNEW: TIntegerField;
    QrySQLOLD: TIntegerField;
    QrySQLMISC: TIntegerField;
    QrySQLFQ_MOISTURE: TFloatField;
    QrySQLFQ_IMPURITY: TFloatField;
    QrySQLFQ_ITEM1: TFloatField;
    QrySQLFQ_ITEM2: TFloatField;
    QrySQLFQ_ITEM3: TFloatField;
    QrySQLFQ_ITEM4: TFloatField;
    QrySQLFQ_CLASS: TStringField;
    QrySQLMEMO: TStringField;
    QrySQLCLERK: TStringField;
    QrySQLMANAGER: TStringField;
    QrySQLREMAIN: TFloatField;
    QrySQLUNIT_ID: TIntegerField;
    QrySQLOUT_TIME: TDateTimeField;
    Label25: TLabel;
    DBEditUnitID: TDBEdit;
    Label28: TLabel;
    DBEditOutTime: TDBEdit;
    Label29: TLabel;
    DBEditOutQantity: TDBEdit;
    Label38: TLabel;
    DBEditMemo: TDBEdit;
    Label36: TLabel;
    DBEditRemain: TDBEdit;
    Label34: TLabel;
    DBEditClerk: TDBEdit;
    Label33: TLabel;
    Label31: TLabel;
    DBEditFoodType: TDBEdit;
    DBEditAttechment: TDBEdit;
    Label37: TLabel;
    Label30: TLabel;
    DBEditAttribute: TDBEdit;
    TblInStackUNIT_ID: TIntegerField;
    TblInStackSITE_ID: TIntegerField;
    TblInStackDEPOT_ID: TIntegerField;
    TblInStackINSTACK_ID: TStringField;
    TblInStackCASE_ID: TStringField;
    TblInStackADJUST_ID: TStringField;
    TblInStackFOODPOSITION_ID: TIntegerField;
    TblInStackNOTY_ITEM_ID: TStringField;
    TblInStackNOTY_FOOD: TStringField;
    TblInStackFROM_STATION: TStringField;
    TblInStackFREIGHT_NUMBER: TStringField;
    TblInStackTO_STATION: TStringField;
    TblInStackFREIGHT: TFloatField;
    TblInStackIN_TIME: TDateTimeField;
    TblInStackIN_QUANTITY: TFloatField;
    TblInStackSTORAGE: TFloatField;
    TblInStackPRICE: TFloatField;
    TblInStackREAP_YEAR: TIntegerField;
    TblInStackPROD_AREA: TStringField;
    TblInStackNEW: TIntegerField;
    TblInStackOLD: TIntegerField;
    TblInStackMISC: TIntegerField;
    TblInStackFQ_MOISTURE: TFloatField;
    TblInStackFQ_IMPURITY: TFloatField;
    TblInStackFQ_ITEM1: TFloatField;
    TblInStackFQ_ITEM2: TFloatField;
    TblInStackFQ_ITEM3: TFloatField;
    TblInStackFQ_ITEM5: TFloatField;
    TblInStackFQ_ITEM4: TFloatField;
    TblInStackFQ_CLASS: TStringField;
    TblInStackATTRIBUTE: TStringField;
    TblInStackMEMO: TStringField;
    TblInStackCOM_FLAG: TIntegerField;
    TblInStackNOTY_QUANTITY: TFloatField;
    TblInStackIN_FOOD: TStringField;
    TblInStackSUPPLYER: TStringField;
    TblInStackARRIVAL_TIME: TDateTimeField;
    TblInStackCLERK: TStringField;
    TblInStackMANAGER: TStringField;
    TblInStackATTACHMENT: TStringField;
    TblInStackR_NEW: TIntegerField;
    TblInStackR_OLD: TIntegerField;
    TblInStackR_MISC: TIntegerField;
    QryFoodStyle: TQuery;
    QrySQLFQ_ITEM5: TFloatField;
    QrySQLCOM_FLAG: TIntegerField;
    QrySQLOUTTYPE: TStringField;
    QrySQLTORN: TIntegerField;
    QrySQLKNIT: TIntegerField;
    QrySQLWASTAGE: TFloatField;
    GroupBox7: TGroupBox;
    Label43: TLabel;
    LblItem4: TLabel;
    LblItem3: TLabel;
    Label46: TLabel;
    LblItem1: TLabel;
    LblItem2: TLabel;
    Label51: TLabel;
    LblItem5: TLabel;
    DBEditFqClass: TDBEdit;
    DBEditMoisture: TDBEdit;
    DBEditItem1: TDBEdit;
    DBEditItem2: TDBEdit;
    DBEditItem3: TDBEdit;
    DBEditItem4: TDBEdit;
    DBEditImpurity: TDBEdit;
    DBEditItem5: TDBEdit;
    GroupBox6: TGroupBox;
    Label40: TLabel;
    Label41: TLabel;
    Label42: TLabel;
    Label35: TLabel;
    Label44: TLabel;
    DBEdit22: TDBEdit;
    DBEdit23: TDBEdit;
    DBEdit24: TDBEdit;
    DBEdtTorn: TDBEdit;
    DBEdtKnit: TDBEdit;
    GroupBox8: TGroupBox;
    Label32: TLabel;
    Label39: TLabel;
    Label49: TLabel;
    DBEditFdPosition: TDBEdit;
    DBEditSite: TDBEdit;
    DBEdit3: TDBEdit;
    Label56: TLabel;
    Label45: TLabel;
    DBCmbxOutType: TDBComboBox;
    DBEdiWastage: TDBEdit;
    DBComboBox1: TDBComboBox;
    procedure BitBtnSaveClick(Sender: TObject);
    procedure BitBtnSlctInStackIDClick(Sender: TObject);
    procedure BitBtnSlctSaleItemClick(Sender: TObject);
    procedure DBEditOutTimeExit(Sender: TObject);
    procedure DBEditKeyExit(Sender: TObject);
    procedure BitBtnNewClick(Sender: TObject);
    procedure TblInStackAfterScroll(DataSet: TDataSet);
    procedure DBEditInStackIDExit(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure QrySQLOUT_TIMESetText(Sender: TField; const Text: String);
  private
    { Private declarations }
  public
    { Public declarations }
    InStackID,FdType,FQ_Class,TransferID: string;
    Remain,FQ_Moisture,FQ_IMPURITY,FQ_ITEM1,FQ_ITEM2,FQ_ITEM3,FQ_ITEM4,FQ_ITEM5: double;
  end;

var
  FrmTransferOutStack: TFrmTransferOutStack;

implementation

uses UntSlctInStockID,UntSlctTransferID,Global;

{$R *.dfm}

procedure TFrmTransferOutStack.BitBtnSaveClick(Sender: TObject);
begin
  if DBEditKey.Text='' then
  begin
    Showmessage('出库单号不能为空,请输入!');
    DBEditKey.SetFocus;
    exit;
  end;
  if DBEditTransferID.Text='' then
  begin
    Showmessage('移库单号不能为空,请输入!');
    //DBEditTransferID.SetFocus;
    exit;
  end;
  if DBEditInStackID.Text='' then
  begin
    Showmessage('入库单号不能为空,请输入!');
    //DBEditInStackID.SetFocus;
    exit;
  end;
  inherited;
end;

procedure TFrmTransferOutStack.BitBtnSlctInStackIDClick(Sender: TObject);
begin
  inherited;
  InStackID := '';
  FdType := '';
  FQ_Class := '';
  Remain := 0;
  FQ_Moisture := 0;
  FQ_IMPURITY := 0;
  FQ_ITEM1 := 0;
  FQ_ITEM2 := 0;
  FQ_ITEM3 := 0;
  FQ_ITEM4 := 0;
  FQ_ITEM5 := 0;

  UntSlctInStockId.SltFlds(Self);

  if Length(InStackID)<>0 then
  begin
    DBGrid1.DataSource.DataSet.Edit;
    DBEditInStackID.Field.AsString := InStackID;
  end;
  if Length(FQ_Class)<>0 then
  begin
    DBGrid1.DataSource.DataSet.Edit;
    DBEditFqClass.Field.AsString := FQ_Class;
  end;
  if FQ_Moisture <> 0 then
  begin
    DBGrid1.DataSource.DataSet.Edit;
    DBEditMoisture.Field.AsFloat := FQ_Moisture;
  end;
  if FQ_IMPURITY <> 0 then
  begin
    DBGrid1.DataSource.DataSet.Edit;
    DBEditIMPURITY.Field.AsFloat := FQ_IMPURITY;
  end;
  if FQ_ITEM1 <> 0 then
  begin
    DBGrid1.DataSource.DataSet.Edit;
    DBEditItem1.Field.AsFloat := FQ_ITEM2;   //黄粒米 、纯粮率、酸价
  end;
  if FQ_ITEM2 <> 0 then
  begin
    DBGrid1.DataSource.DataSet.Edit;
    DBEditItem2.Field.AsFloat := FQ_ITEM2;  //不完善粒
  end;
  if FQ_ITEM3 <> 0 then
  begin
    DBGrid1.DataSource.DataSet.Edit;
    DBEditItem3.Field.AsFloat := FQ_ITEM3;  //整精米粒
  end;
  if FQ_ITEM4 <> 0 then
  begin
    DBGrid1.DataSource.DataSet.Edit;
    DBEditItem4.Field.AsFloat := FQ_ITEM4;   //谷外糙米
  end;
  if FQ_ITEM5 <> 0 then
  begin
    DBGrid1.DataSource.DataSet.Edit;
    DBEditItem5.Field.AsFloat := FQ_ITEM5;   //稻谷率、容重、出糙率、高过氧化值
  end;

end;

procedure TFrmTransferOutStack.BitBtnSlctSaleItemClick(Sender: TObject);
begin
  inherited;
  TransferID := '';
  UntSlctTransferId.SltFlds(Self);

  if Length(TransferID)<>0 then
  begin
    DBGrid1.DataSource.DataSet.Edit;
    DBEditTransferID.Field.AsString := TransferID;
  end;
end;

procedure TFrmTransferOutStack.DBEditOutTimeExit(Sender: TObject);
var
  S:array [0..10] of char;
begin
  inherited;
  if (global.ChkInptYMTime(DBEditOutTime.Text)=false) then
    begin
    showmessage('无效的时间![YYYY-MM-DD]');
    DBEditOutTime.SetFocus;
    end
  else
    begin
    StrPCopy(S,DBEditOutTime.Text);
    if (s[0]=' ')and(s[1]=' ')and(s[2]=' ')and(s[3]=' ')and(s[5]=' ')and(s[6]=' ')and(s[8]=' ')and(s[9]=' ')=false then
      DBEditOutTime.Field.Text := FormatDateTime('YYYY-MM-DD',StrToDate(DBEditOutTime.Field.Text));
    end;
end;

procedure TFrmTransferOutStack.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_OUTSTACK where OUTSTACK_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 TFrmTransferOutStack.BitBtnNewClick(Sender: TObject);
begin
  inherited;
  DBEditUnitID.Field.AsInteger:=Global.g_user.UnitID;
  DBEditClerk.Field.AsString := Global.g_user.UserName;
  DBCmbxOutType.Field.AsString := '内移付出';
  DBEditOutTime.Field.AsDateTime := date;
  DBEditRemain.Field.AsFloat := 0;
  DBEdiWastage.Field.AsFloat := 0;
end;

procedure TFrmTransferOutStack.TblInStackAfterScroll(DataSet: TDataSet);
begin
  inherited;
  QryFoodStyle.Active:=false;
  QryFoodStyle.SQL.Clear;
  QryFoodStyle.SQL.Add('select * from ENT_FOOD_TYPE where FOOD_TYPE='''+TblInStack.FieldByName('IN_FOOD').AsString+'''');
  QryFoodStyle.Open;
  {if QryFoodStyle.RecordCount<>1 then
    BEGIN
    showmessage('库存的品种不对!或您刚新增了一条初始记录!');
    exit;
    END;  }
  if QryFoodStyle.FieldByName('Food_style').AsString='大豆' then
    begin
    LblItem1.Enabled:=true;
    DBEditItem1.Enabled:=true;
    LblItem1.Caption:='纯粮率:';
    LblItem2.Enabled:=false;
    LblItem3.Enabled:=false;
    LblItem4.Enabled:=false;
    LblItem5.Enabled:=false;
    DBEditItem2.Enabled:=false;
    DBEditItem3.Enabled:=false;
    DBEditItem4.Enabled:=false;
    DBEditItem5.Enabled:=false;
    end;
  if QryFoodStyle.FieldByName('Food_style').AsString='大米' then
    begin
    LblItem1.Enabled:=false;
    DBEditItem1.Enabled:=false;
    LblItem2.Enabled:=true;
    DBEditItem2.Enabled:=true;
    LblItem5.Enabled:=true;
    LblItem5.Caption:='稻谷率:';
    DBEditItem5.Enabled:=true;
    LblItem3.Enabled:=false;
    LblItem4.Enabled:=false;
    DBEditItem3.Enabled:=false;
    DBEditItem4.Enabled:=false;
    end;
  if QryFoodStyle.FieldByName('Food_style').AsString='小麦' then
    begin
    LblItem1.Enabled:=false;
    DBEditItem1.Enabled:=false;
    LblItem2.Enabled:=true;
    DBEditItem2.Enabled:=true;
    LblItem5.Enabled:=true;
    LblItem5.Caption:='容重:';
    DBEditItem5.Enabled:=true;
    LblItem3.Enabled:=false;
    LblItem4.Enabled:=false;
    DBEditItem3.Enabled:=false;
    DBEditItem4.Enabled:=false;
    end;
  if QryFoodStyle.FieldByName('Food_style').AsString='玉米' then
    begin
    LblItem1.Enabled:=true;
    DBEditItem1.Enabled:=true;
    LblItem1.Caption:='纯粮率:';
    LblItem2.Enabled:=true;
    LblItem3.Enabled:=false;
    LblItem4.Enabled:=false;
    LblItem5.Enabled:=false;
    DBEditItem2.Enabled:=true;
    DBEditItem3.Enabled:=false;
    DBEditItem4.Enabled:=false;
    DBEditItem5.Enabled:=false;
    end;
  if QryFoodStyle.FieldByName('Food_style').AsString='稻谷' then
    begin
    LblItem1.Enabled:=true;
    DBEditItem1.Enabled:=true;
    LblItem1.Caption:='黄粒米:';
    LblItem2.Enabled:=true;
    LblItem3.Enabled:=true;
    LblItem4.Enabled:=true;
    LblItem5.Enabled:=true;
    LblItem5.Caption:='出糙率:';
    DBEditItem2.Enabled:=true;
    DBEditItem3.Enabled:=true;
    DBEditItem4.Enabled:=true;
    DBEditItem5.Enabled:=true;
    end;
  if QryFoodStyle.FieldByName('Food_style').AsString='油' then
    begin
    LblItem1.Enabled:=true;
    DBEditItem1.Enabled:=true;
    LblItem1.Caption:='酸价:';
    LblItem2.Enabled:=false;
    LblItem3.Enabled:=false;
    LblItem4.Enabled:=false;
    LblItem5.Enabled:=false;
    LblItem5.Caption:='高过氧化值:';
    DBEditItem2.Enabled:=false;
    DBEditItem3.Enabled:=false;
    DBEditItem4.Enabled:=false;
    DBEditItem5.Enabled:=false;
    end;
end;

procedure TFrmTransferOutStack.DBEditInStackIDExit(Sender: TObject);
var
  QryCX: TQuery;
  STR : STRING;
begin
  inherited;
  if DBEditInStackID.Text <> '' then
  begin
    try
      QryCX:=TQuery.Create(nil);
      QryCX.DatabaseName := 'LYDB';
      QryCX.SQL.Clear;
      STR := 'select * from ENT_INSTACK where INSTACK_ID='''+Trim(DBEditInStackID.Text)+''''+' and UNIT_ID='+intToStr(DBEditUnitID.Field.AsInteger);
      QryCX.SQL.Add('select * from ENT_INSTACK where INSTACK_ID='''+Trim(DBEditInStackID.Text)+''''+' and UNIT_ID='+intToStr(DBEditUnitID.Field.AsInteger));
      
      QryCX.Open;
      if QryCX.RecordCount=0 then
        begin
        showmessage('无此入库单,请重新输入!');
        DBEditInStackID.Text := '';
        BitBtnSlctInStackID.SetFocus;
        exit;
        end;
      if QryCX.RecordCount>1 then
        begin
        showmessage('存在重复的入库单!');
        DBEditInStackID.Text := '';
        exit;
        end;
    finally
      QryCX.Close;
      QryCX.Free;
    end;
  end;
end;

procedure TFrmTransferOutStack.FormCreate(Sender: TObject);
begin
  inherited;
  QrySql.Active:=false;
  QrySql.Filter:='Unit_id=' + IntToStr(Global.g_user.UnitID);
  QrySql.Filtered:=true;
  QrySql.Active:=true;
end;

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

end.

⌨️ 快捷键说明

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