📄 unitprodincard.~pas
字号:
unit UnitProdInCard;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Mask, DBCtrls, ExtCtrls, Db, DBTables;
type
TfrmProdInCard = class(TForm)
Label2: TLabel;
Label3: TLabel;
Panel1: TPanel;
Panel7: TPanel;
Panel9: TPanel;
Panel10: TPanel;
Panel17: TPanel;
dbeNote: TDBEdit;
dbeNum: TDBEdit;
dbeCheckerID: TDBEdit;
dbeProdID: TDBEdit;
dbeProdName: TDBEdit;
dbeChecker: TDBEdit;
bbPrior: TBitBtn;
bbNext: TBitBtn;
bbPost: TBitBtn;
bbClose: TBitBtn;
dbeCardID: TDBEdit;
Panel3: TPanel;
dbeFigID: TDBEdit;
Panel4: TPanel;
dbeProcID: TDBEdit;
dbeDate: TDBEdit;
bbLocal: TBitBtn;
Panel2: TPanel;
procedure bbPostClick(Sender: TObject);
procedure dbeProdNameEnter(Sender: TObject);
procedure dbeProdNameExit(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bbLocalClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure bbPriorClick(Sender: TObject);
procedure bbNextClick(Sender: TObject);
procedure dbeDateEnter(Sender: TObject);
procedure dbeCardIDEnter(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
sInDate,sInID:string;
end;
var
frmProdInCard: TfrmProdInCard;
implementation
uses UnitDM, UnitQueryID, UnitProdVoucher, UnitProdStock;
{$R *.DFM}
procedure TfrmProdInCard.bbPostClick(Sender: TObject);
var
sCardID,sProdID:string;
begin
if (dm.zdyGetProdCheckDate >= strtodatetime(dbeDate.text)) then
begin
showmessage('您选择的结帐日期早于上次结帐日期!'+#13+#13+'上次结帐日期是:'+datetostr(dm.zdyGetprodCheckDate));
// showmodal;
//frmProdMain.Visible:=true;
exit;
end; // if
//=================
// 检查栏目填写情况
//=================
if (dbeProdName.text = '') or (dbeNum.text = '') or (dbeProcID.text='')then
begin
showmessage('请填写产品名称、数量栏目和生产批号!');
exit;
end; //if
//=======
// 提交
//=======
sProdID:= dm.tabProdInCard.fieldbyname('ProdID').asstring;
if dm.tabProdInCard.State = dsinsert then //是添加记录 提交
begin
dm.tabProdIncard.Post;
//为下一次添加做准备
sCardID:=dm.zdyProdCardID(frmProdVoucher.dtpDate.date);
dm.tabProdIncard.append;
dbeDate.text:=datetostr(frmProdVoucher.dtpDate.date);
dbeCardID.text:=sCardID;
sInDate:=dbeDate.text;
sInID:=dbeCardID.text;
// dbeProdName.SetFocus;
end
else if dm.tabProdInCard.State = dsedit then //是修改记录 提交
begin
dm.tabProdIncard.Post;
frmProdInCard.close;
end
else
exit;
//===========================
//向历史记录里面添加该物品
//===========================
dm.zdyProdInsertHistory(sProdID);
//===================
// 更新仓库记录
//===================
frmProdStock.zdyCurStock(dm.zdyGetProdCheckDate);
frmProdInCard.hide;
showmessage('记帐完毕,还需入库,请按“填写入库单”按钮!');
frmProdInCard.close;
end;
procedure TfrmProdInCard.dbeProdNameEnter(Sender: TObject);
begin
frmCommQueryID.top:=frmProdInCard.Height+frmProdInCard.top;
frmCommQueryID.left:=frmProdInCard.left;
TDBEdit(sender).color:=claqua;
if dm.tabProdInCard.State = dsinsert then
begin
case (sender as TDBEdit).tag of
1: // if the TDBEdit is dbeProdName
begin
frmCommQueryID.PageControl1.ActivePageIndex:=1;
frmCommQueryID.table2.open;
frmCommQueryID.ActiveControl:=frmCommQueryID.dbgProdDictionary;
if frmCommQueryID.showmodal = mrok then
begin
dbeProdID.SetFocus;
dbeProdID.text:=frmCommQueryID.table2.fieldbyname('ProdID').asstring;
// dbeFigID.text:=dm.tabProdDictionary.fieldbyname('FigID').asstring;
end; //if
dbeNum.setfocus;
end; // case 1
2: // if the TDBEdit is dbeChecker
begin
frmCommQueryID.eStaffID.text:='';
frmCommQueryID.PageControl1.ActivePageIndex:=0;
frmCommQueryID.table1.open;
frmCommQueryID.ActiveControl:=frmCommQueryID.eStaffID;
if frmCommQueryID.showmodal = mrok then
begin
dbeCheckerID.SetFocus;
dbeCheckerID.text:=frmCommQueryID.table1.fieldbyname('StaffID').asstring;
end; //if
dbenote.setfocus;
end; //case 2
end; // then Case statement is over
//恢复过滤Table属性
//tabProdDictionary tabStaff tabManufacturer tabWorkShop
dm.tabProdDictionary.filtered:=false;
dm.tabProdDictionary.filter:='';
dm.tabStaff.filtered:=false;
dm.tabStaff.filter:='';
dm.tabManufacturer.filtered:=false;
dm.tabManufacturer.filter:='';
end; //if
end;
procedure TfrmProdInCard.dbeProdNameExit(Sender: TObject);
begin
TDBEdit(sender).color:=clwindow;
if dm.tabProdInCard.state = dsinsert then
begin
case (sender as TDBEdit).tag of
1..2: // if the TDBEdit is dbeProdName
frmCommQueryID.close;
end; //case of statement
end; //if
end;
procedure TfrmProdInCard.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0);
end; //if
end;
procedure TfrmProdInCard.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
dm.tabProdInCard.cancel;
end;
procedure TfrmProdInCard.bbLocalClick(Sender: TObject);
begin
dbeProdName.setfocus;
end;
procedure TfrmProdInCard.FormCreate(Sender: TObject);
begin
bbLocal.Height:=0;
bbLocal.Width:=0;
end;
procedure TfrmProdInCard.bbPriorClick(Sender: TObject);
begin
if dm.tabProdInCard.bof then
begin
messagedlg('已经到第一条记录!',mtinformation,[mbok],0);
exit;
end; //if
dm.tabProdInCard.Prior;
end;
procedure TfrmProdInCard.bbNextClick(Sender: TObject);
begin
if dm.tabProdInCard.eof then
begin
messagedlg('已经到最后一条记录!',mtinformation,[mbok],0);
exit;
end; //if
dm.tabProdInCard.next;
end;
procedure TfrmProdInCard.dbeDateEnter(Sender: TObject);
begin
dbeDate.text:=sInDate;
end;
procedure TfrmProdInCard.dbeCardIDEnter(Sender: TObject);
begin
dbeCardID.text:=sInID;
end;
procedure TfrmProdInCard.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
try
if ((Key>57) and (Key<48)) or ((Key<96) and (Key>110)) then
// exit;
// if Key=190 then
exit;
except
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -