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