📄 untadjstattr.pas
字号:
unit UntAdjstAttr;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, UnitStandard1, DBTables, DBCtrls, DB, Menus, ImgList, Grids,
DBGrids, ComCtrls, StdCtrls, ExtCtrls, Mask, Buttons, ToolWin;
type
TFrmAdjustAttr = class(TFrmStandard1)
LblUnitName: TLabel;
DBLkpCmbxUnitName: TDBLookupComboBox;
TblUnit_Info: TTable;
DataSourceUnit_info: TDataSource;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
DBEditInStackID: TDBEdit;
DBEditClerk: TDBEdit;
DBEditManager: TDBEdit;
DBEditDate: TDBEdit;
DBEditQuantity: TDBEdit;
Label33: TLabel;
TblPosition: TTable;
DataSourcePosition: TDataSource;
TblSite: TTable;
DataSourceSite: TDataSource;
TblDepot: TTable;
DataSourceDepot: TDataSource;
GroupBox8: TGroupBox;
Label52: TLabel;
Label53: TLabel;
Label54: TLabel;
DBLkpCmbxPosition: TDBLookupComboBox;
DBLkpCmbxSite: TDBLookupComboBox;
DBLkpCmbxDepot: TDBLookupComboBox;
GroupBox6: TGroupBox;
DBMemo1: TDBMemo;
BitBtnSlctInStackID: TBitBtn;
TblFood: TTable;
DataSourceFood: TDataSource;
DBLkpCmbxInFood: TDBLookupComboBox;
QrySQLUNIT_ID: TIntegerField;
QrySQLADJUST_ID: TStringField;
QrySQLINSTACK_ID: TStringField;
QrySQLSITE_ID: TIntegerField;
QrySQLDEPOT_ID: TIntegerField;
QrySQLFOODPOSITION_ID: TIntegerField;
QrySQLNEW_ATTR: TStringField;
QrySQLFOODTYPE: TStringField;
QrySQLQUANTITY: TFloatField;
QrySQLDATETIME: TDateTimeField;
QrySQLMANAGER: TStringField;
QrySQLCLERK: TStringField;
QrySQLMEMO: TStringField;
TblAttr: TTable;
DataSourceAttr: TDataSource;
DBLkpCmbxOldAttr: TDBLookupComboBox;
DBLkpCmbxNewAttr: TDBLookupComboBox;
QrySQLATTR: TStringField;
QrySQLAdjustor: TStringField;
QrySQLstatus: TIntegerField;
QrySQLCOM_FLAG: TIntegerField;
DBEditStatus: TDBEdit;
LblStatus: TLabel;
procedure BitBtnSlctInStackIDClick(Sender: TObject);
procedure DBEditKeyExit(Sender: TObject);
procedure DBLkpCmbxUnitNameExit(Sender: TObject);
procedure BitBtnNewClick(Sender: TObject);
procedure BitBtnSaveClick(Sender: TObject);
procedure BitBtnRefreshClick(Sender: TObject);
procedure BitBtnCancelClick(Sender: TObject);
procedure QrySQLAfterScroll(DataSet: TDataSet);
procedure QrySQLDATETIMESetText(Sender: TField; const Text: String);
procedure QrySQLQUANTITYSetText(Sender: TField; const Text: String);
private
{ Private declarations }
public
{ Public declarations }
InStackID,FdType,Attribute: string;
Remain: double;
SiteID, DepotID, PositionID: integer;
end;
var
FrmAdjustAttr: TFrmAdjustAttr;
implementation
uses UntSlctInStockID;
{$R *.dfm}
procedure TFrmAdjustAttr.BitBtnSlctInStackIDClick(Sender: TObject);
begin
inherited;
InStackID := '';
FdType := '';
Attribute :='';
Remain := 0;
SiteID := 0;
DepotID := 0;
PositionID := 0;
UntSlctInStockId.SltFlds(Self);
if Length(InStackID)<>0 then
begin
DBGrid1.DataSource.DataSet.Edit;
DBEditInStackID.Field.AsString := InStackID;
end;
if Length(FdType)<>0 then
begin
DBGrid1.DataSource.DataSet.Edit;
DBLkpCmbxInfood.Field.AsString := FdType;
end;
if Length(Attribute)<>0 then
begin
DBGrid1.DataSource.DataSet.Edit;
DBLkpCmbxOldAttr.Field.AsString := Attribute;
end;
if SiteID <> 0 then
begin
DBGrid1.DataSource.DataSet.Edit;
DBLkpCmbxSite.Field.AsInteger := SiteID;
end;
if DepotID <> 0 then
begin
DBGrid1.DataSource.DataSet.Edit;
DBLkpCmbxDepot.Field.AsInteger := DepotID;
end;
if PositionID <> 0 then
begin
DBGrid1.DataSource.DataSet.Edit;
DBLkpCmbxPosition.Field.AsInteger := PositionID;
end;
if Remain <> 0 then
begin
DBGrid1.DataSource.DataSet.Edit;
DBEditQuantity.Field.AsFloat := Remain;
end;
end;
procedure TFrmAdjustAttr.DBEditKeyExit(Sender: TObject);
begin
inherited;
if DBEditKey.Text='' then
begin
showmessage('性质调整单编号不能为空,请输入!');
DBEditKey.SetFocus;
exit;
end;
DBLkpCmbxUnitName.Enabled:=true;
DBLkpCmbxUnitName.SetFocus;
end;
procedure TFrmAdjustAttr.DBLkpCmbxUnitNameExit(Sender: TObject);
var
QryCX: Tquery;
Str : string;
begin
inherited;
if DBLkpCmbxUnitName.Text='' then
begin
Showmessage('分公司不能为空,请输入!');
DBLkpCmbxUnitName.SetFocus;
exit;
end;
try
QryCX:= TQuery.Create(nil);
QryCX.DatabaseName := 'LYDB';
QryCX.SQL.Clear;
str:='select * from ENT_ADJUST_ATTR where ADJUST_ID='''+trim(DBEditKey.Text)+''' and UNIT_ID='+intToStr(DBLkpCmbxUnitName.Field.AsInteger);
QryCX.SQL.Add(Str);
QryCX.Open;
if QryCX.RecordCount>0 then
begin
showmessage('调整编号重复,请重新输入!');
DBEditKey.Enabled:=true;
DBEditKey.SetFocus;
end;
finally
QryCX.Close;
QryCX.Free;
end;
end;
procedure TFrmAdjustAttr.BitBtnNewClick(Sender: TObject);
begin
inherited;
DBLkpCmbxUnitName.Enabled:=true;
DBEditStatus.Field.AsInteger:=0;
end;
procedure TFrmAdjustAttr.BitBtnSaveClick(Sender: TObject);
begin
inherited;
if DBEditkey.Text='' then
begin
Showmessage('调整编号不能为空,请输入!');
DBEditKey.SetFocus;
DBEditKey.Enabled:=true;
exit;
end;
if DBLkpCmbxUnitName.Text='' then
begin
Showmessage('分公司不能为空,请输入!');
DBLkpCmbxUnitName.Enabled:=true;
DBLkpCmbxUnitName.SetFocus;
exit;
end;
if DBEditInStackID.Text='' then
begin
Showmessage('入库单编号不能为空,请输入!');
BitBtnSlctInStackID.SetFocus;
exit;
end;
if DBLkpCmbxNewAttr.Text='' then
begin
Showmessage('新性质不能为空,请输入!');
DBLkpCmbxNewAttr.SetFocus;
exit;
end;
DBLkpCmbxUnitName.Enabled:=false;
end;
procedure TFrmAdjustAttr.BitBtnRefreshClick(Sender: TObject);
begin
inherited;
DBLkpCmbxUnitName.Enabled:=false;
end;
procedure TFrmAdjustAttr.BitBtnCancelClick(Sender: TObject);
begin
inherited;
DBLkpCmbxUnitName.Enabled:=false;
end;
procedure TFrmAdjustAttr.QrySQLAfterScroll(DataSet: TDataSet);
begin
inherited;
DBLkpCmbxUnitName.Enabled:=false;
end;
procedure TFrmAdjustAttr.QrySQLDATETIMESetText(Sender: TField;
const Text: String);
begin
inherited;
if DBEditDate.Text<>' - - ' then
try
Sender.AsDateTime:=strtodate(DBEditDate.EditText);
except
Application.MessageBox(PChar(DBEditDate.EditText+'不是有效的日期!'),'错误',mb_Ok+mb_IconError);
abort;
end
else
Sender.Clear;
end;
procedure TFrmAdjustAttr.QrySQLQUANTITYSetText(Sender: TField;
const Text: String);
begin
inherited;
if DBEditQuantity.EditText<>'' then
begin
try
Sender.AsFloat:=strtofloat(DBEditQuantity.EditText);
except
Application.MessageBox(PChar(DBEditQuantity.EditText+'不是有效的数值或超出范围'),'错误',mb_Ok+mb_IconError);
abort;
end;
if (DBEditQuantity.Field.AsFloat>9999999.99) or (DBEditQuantity.Field.AsFloat<0) then
begin
Application.MessageBox(PChar(DBEditQuantity.EditText+'数值超出范围'),'错误',mb_Ok+mb_IconError);
abort;
end;
end
else
Sender.Clear;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -