📄 unttransferoutstack.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 + -