📄 unitprodquerycard.pas
字号:
unit UnitProdQueryCard;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, Buttons, ExtCtrls, StdCtrls, Grids, DBGrids;
type
TfrmProdQueryCard = class(TForm)
PCInOut: TPageControl;
TabSheet1: TTabSheet;
DBGrid1: TDBGrid;
TabSheet2: TTabSheet;
DBGrid2: TDBGrid;
Label1: TLabel;
lDate: TLabel;
Label3: TLabel;
lInOut: TLabel;
Bevel1: TBevel;
Label2: TLabel;
sbYesterday: TSpeedButton;
sbTomrrow: TSpeedButton;
dtpDate: TDateTimePicker;
bbCard: TBitBtn;
bbCardView: TBitBtn;
bbDelete: TBitBtn;
bbCancel: TBitBtn;
bbViewStock: TBitBtn;
Button1: TButton;
procedure PCInOutChange(Sender: TObject);
procedure bbCardClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure sbTomrrowClick(Sender: TObject);
procedure sbYesterdayClick(Sender: TObject);
procedure bbDeleteClick(Sender: TObject);
procedure bbCardViewClick(Sender: TObject);
procedure bbViewStockClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
bInOut:boolean;
procedure zdyShowfilterCard(dfilterDate:TDate); // 过滤当前日期
end;
var
frmProdQueryCard: TfrmProdQueryCard;
implementation
uses UnitDM, UnitProdInCard, UnitProdOutCard, UnitProdStock;
{$R *.DFM}
//=========================================================
// 实现过程 过滤当前日期记录
//=========================================================
procedure TfrmProdQueryCard.zdyShowfilterCard(dfilterDate:TDate);
var
sCardID:string;
begin
dtpDate.date:=dfilterDate;
sCardID:=formatdatetime('yymmdd',dtpDate.date);
lDate.Caption:=formatdatetime('yyyy"年"mm"月"dd"日"',dtpDate.date);
//========================================================
// 判断当前状态是入还是出库 改变界面上的某些颜色,字体设置
//=========================================================
if bInOut then //是入库
begin
pcInOut.ActivePageIndex:=0;
bbCard.caption:='填写入库单'+#13+'(Enter)';
lInOut.Font.Color:=clblue;
lInOut.caption:='入库单';
end
else //是出库
begin
pcInOut.ActivePageIndex:=1;
bbCard.caption:='填写出库单'+#13+'(Enter)';
lInOut.Font.Color:=clred;
lInOut.caption:='出库单';
end; //if
//===================
//table开始过滤
//===================
with dm.tabProdInCard do
begin
Open;
filter:=format('CardID = ''%S''',[sCardID+'*']); //默认过滤条件是今天
if not filtered then //开始过滤
filtered:= true;
end;//with
with dm.tabProdOutCard do
begin
Open;
filter:=format('CardID = ''%S''',[sCardID+'*']); //默认过滤条件是今天
if not filtered then //开始过滤
filtered:= true;
end;//with
end;
procedure TfrmProdQueryCard.PCInOutChange(Sender: TObject);
begin
case pcInOut.ActivePageIndex of
0: bInOut:=true ;
1: bInOut:=false;
end; //case
zdyShowfilterCard(dtpDate.date);
end;
procedure TfrmProdQueryCard.bbCardClick(Sender: TObject);
var
sCardID:string;
begin
//==========================================
// 设置入,出库单上的eDate, dbeCardID的值
//==========================================
sCardID:=dm.zdyProdCardID(dtpDate.date);
if bInOut then //入库
begin
with frmProdInCard do
begin
with dm.tabProdIncard do
begin
if not active then open;
append;
end;//with
eDate.text:=datetostr(dtpDate.date);
dbeCardID.text:=sCardID;
showmodal;
end;//with
end
else //领料
begin
with frmProdOutCard do
begin
with dm.tabProdOutcard do
begin
if not active then open;
append;
end;//with
eDate.text:=datetostr(dtpDate.date);
dbeCardID.text:=sCardID;
showmodal;
end;//with
end; //if
end;
procedure TfrmProdQueryCard.FormCreate(Sender: TObject);
begin
bInOut:=true;
end;
procedure TfrmProdQueryCard.sbTomrrowClick(Sender: TObject);
begin
dtpdate.date:=dtpdate.date+1;
zdyShowfilterCard(dtpdate.date);
end;
procedure TfrmProdQueryCard.sbYesterdayClick(Sender: TObject);
begin
dtpdate.date:=dtpdate.date - 1;
zdyShowfilterCard(dtpdate.date);
end;
procedure TfrmProdQueryCard.bbDeleteClick(Sender: TObject);
begin
//==============================
// 检查表格是否为空
//==============================
if dm.zdyProdIFBlank(bInOut) then
begin
showmessage('没有记录');
exit;
end; //if
if MessageDlg('真的要删除该记录吗?',mtwarning,[mbyes,mbno],0) = mryes then
begin
if bInOut then
dm.tabProdIncard.delete
else
dm.tabProdOutCard.delete;
end; //if
end;
procedure TfrmProdQueryCard.bbCardViewClick(Sender: TObject);
begin
//==============================
// 检查表格是否为空
//==============================
if dm.zdyProdIFBlank(bInOut) then
begin
showmessage('没有记录');
exit;
end; //if
//===================================
// 设置table 控件 为编辑状态 dsEdit
//===================================
if bInOut and (dm.tabProdIncard.active) then
begin
with frmProdInCard do
begin
dm.tabProdIncard.edit;
showmodal;
end; //with
end
else if (not bInOut) and (dm.tabProdOutCard.active) then
begin
with frmProdOutCard do
begin
dm.tabProdOutCard.edit;
showmodal;
end; //with
end
else
showmessage('没有记录!');
end;
procedure TfrmProdQueryCard.bbViewStockClick(Sender: TObject);
var
sProdID:string;
dDate:TDate;
begin
//==============================
// 检查表格是否为空
//==============================
if dm.zdyProdIFBlank(bInOut) then
begin
showmessage('没有记录');
exit;
end; //if
//==============================
// 查看该物品的库存
//==============================
frmProdStock.zdyCurStock(dm.zdyGetProdCheckDate,date);
if bInOut then
sProdID:=dm.tabProdIncard.fieldbyname('ProdID').asstring
else
sProdID:=dm.tabProdOutcard.fieldbyname('ProdID').asstring;
with dm.tabProdStock do
begin
open;
setkey;
if not findkey([sProdID]) then
begin
showmessage('not findkey!');
exit;
end; //if
end; //with
frmProdStock.showmodal;
end;
procedure TfrmProdQueryCard.Button1Click(Sender: TObject);
begin
with dm.qryExe do
begin
close;
sql.clear;
sql.add('delete from ProdInCard ');
execsql;
close;
sql.clear;
sql.add('delete from ProdOutCard ');
execsql;
close;
sql.clear;
sql.add('delete from ProdStock ');
execsql;
close;
sql.clear;
sql.add('delete from ProdCheckDiary ');
execsql;
close;
sql.clear;
sql.add('delete from ProdIDHistory ');
execsql;
close;
sql.clear;
sql.add('delete from ProdMonthCheck ');
execsql;
close;
sql.clear;
sql.add('delete from ProdSettleAccount ');
execsql;
end; //with
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -