📄 unit_rubb_mixcard2.~pas
字号:
unit Unit_Rubb_MixCard2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DBTables, Db, Grids, DBGrids, StdCtrls, ExtCtrls, Mask, DBCtrls, Buttons;
type
TForm_Rubb_MixCard2 = class(TForm)
BitBtn_Ins: TBitBtn;
BitBtn_Del: TBitBtn;
BitBtn_Mod: TBitBtn;
BitBtn_Post: TBitBtn;
BitBtn_Cancel: TBitBtn;
Panel1: TPanel;
DBEdit_Mater: TDBEdit;
Panel2: TPanel;
Panel3: TPanel;
Panel5: TPanel;
DBEdit_Per: TDBEdit;
DBEdit_Mul: TDBEdit;
RadioGroup1: TRadioGroup;
DBGrid1: TDBGrid;
Tab_MixCard: TTable;
DS_Show: TDataSource;
Qry_MixCard: TQuery;
DBEdit_MixCard: TDBEdit;
DS_MixCard: TDataSource;
DBEdit_Rubb: TDBEdit;
BitBtn1: TBitBtn;
Qry_exe: TQuery;
Panel6: TPanel;
procedure FormCreate(Sender: TObject);
procedure BitBtn_InsClick(Sender: TObject);
procedure BitBtn_DelClick(Sender: TObject);
procedure BitBtn_ModClick(Sender: TObject);
procedure BitBtn_PostClick(Sender: TObject);
procedure BitBtn_CancelClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure RadioGroup1Click(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure DBEdit_MaterEnter(Sender: TObject);
procedure DBEdit_MaterExit(Sender: TObject);
procedure DBEdit_MaterChange(Sender: TObject);
procedure DBEdit_PerExit(Sender: TObject);
procedure DBEdit_MulExit(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
n_MinHeight,n_MaxHeight:integer;
public
{ Public declarations }
s_MixCard,s_Rubb,s_mater:string;
end;
var
i: integer;
Form_Rubb_MixCard2: TForm_Rubb_MixCard2;
implementation
{$R *.DFM}
procedure TForm_Rubb_MixCard2.FormCreate(Sender: TObject);
begin
n_MinHeight:=333;
n_MaxHeight:=445;
Form_Rubb_MixCard2.Height:=n_MinHeight;
end;
procedure TForm_Rubb_MixCard2.BitBtn_InsClick(Sender: TObject);
begin
//限制其他按钮
i:=1;
DBGrid1.Enabled:=false;
BitBtn_Ins.Enabled:=false;
BitBtn_Del.Enabled:=false;
BitBtn_Mod.Enabled:=false;
BitBtn_Post.Enabled:=true;
//处理自己的事件
Tab_MixCard.active:=true;
Tab_MixCard.append;
DBEdit_MixCard.text:=s_MixCard;
DBEdit_Rubb.text:=s_rubb;
//窗体下拉滚动效果
while Form_Rubb_MixCard2.Height <n_MaxHeight do
begin
Form_Rubb_MixCard2.Height:=Form_Rubb_MixCard2.Height+1;
end; //while
//刷新表格
Qry_MixCard.close;
Qry_MixCard.open;
DBEdit_Mater.SetFocus;
//Qry_MixCard.disablecontrols;
end;
procedure TForm_Rubb_MixCard2.BitBtn_DelClick(Sender: TObject);
begin
if messagedlg('确认从配方中删除该材料吗?',mtwarning,[mbyes,mbno],0) = mryes then
begin
//处理自己的事件
Tab_MixCard.SetKey;
Tab_MixCard.FindKey([Qry_MixCard.fieldbyname('标识号').asinteger]);
Tab_MixCard.delete;
end; //if
//刷新表格
Qry_MixCard.Close;
Qry_MixCard.open;
end;
procedure TForm_Rubb_MixCard2.BitBtn_ModClick(Sender: TObject);
begin
//限制其他按钮
i:=1;
DBGrid1.Enabled:=false;
BitBtn_Mod.Enabled:=false;
BitBtn_Del.Enabled:=false;
BitBtn_Ins.Enabled:=false;
BitBtn_Post.Enabled:=true;
//处理自己的事件
Tab_MixCard.SetKey;
Tab_MixCard.FindKey([Qry_MixCard.fieldbyname('标识号').asinteger]);
Tab_MixCard.edit;
//窗体下拉滚动效果
while Form_Rubb_MixCard2.Height <n_MaxHeight do
begin
Form_Rubb_MixCard2.Height:=Form_Rubb_MixCard2.Height+1;
end; //while
//刷新表格
Qry_MixCard.close;
Qry_MixCard.open;
end;
procedure TForm_Rubb_MixCard2.BitBtn_PostClick(Sender: TObject);
begin
//必须填写某些栏目
if i=1 then
begin
if (DBEdit_Per.text = '') and (DBEdit_Mul.text= '') then
begin
showmessage('请填写各栏目!');
exit;
end; //if
//限制其他按钮
DBGrid1.Enabled:=true;
BitBtn_Ins.Enabled:=true;
BitBtn_Del.Enabled:=true;
BitBtn_Mod.Enabled:=true;
//处理自己的事件
Tab_MixCard.post;
//窗体上卷滚动效果
while Form_Rubb_MixCard2.Height >n_MinHeight do
begin
Form_Rubb_MixCard2.Height:=Form_Rubb_MixCard2.Height-1;
end; //while
//刷新表格
Qry_MixCard.close;
Qry_MixCard.open;
perform(WM_NEXTDLGCTL,0,0);
end;
if (i=0) then
showmessage('数据提交失败,没按“添加”或“修改”键!');
i:=0;
end;
procedure TForm_Rubb_MixCard2.BitBtn_CancelClick(Sender: TObject);
begin
//限制其他按钮
DBGrid1.Enabled:=true;
BitBtn_Ins.Enabled:=true;
BitBtn_Del.Enabled:=true;
BitBtn_Mod.Enabled:=true;
BitBtn_Post.Enabled:=false;
//处理自己的事件
Tab_MixCard.cancel;
//窗体上卷滚动效果
while Form_Rubb_MixCard2.Height >n_MinHeight do
begin
Form_Rubb_MixCard2.Height:=Form_Rubb_MixCard2.Height-1;
end; //while
end;
procedure TForm_Rubb_MixCard2.FormClose(Sender: TObject; var Action: TCloseAction);
var
fPer:real;
begin
//限制其他按钮
DBGrid1.Enabled:=true;
BitBtn_Ins.Enabled:=true;
BitBtn_Del.Enabled:=true;
BitBtn_Mod.Enabled:=true;
BitBtn_Post.Enabled:=false;
//处理自己的事件
Tab_MixCard.cancel;
//窗体上卷滚动效果
Form_Rubb_MixCard2.Height:=n_MinHeight;
if RadioGroup1.ItemIndex = 0 then
with Qry_exe do
begin
close;
sql.clear;
sql.add('select sum(百分比) from 炼胶配方表 where 配方编号 = :v_MixCardNum ');
parambyname('v_MixCardNum').asinteger:=strtoint(s_MixCard);
open;
fPer:=fields[0].asfloat;
fPer:=strtofloat(formatfloat('0.000',fPer));
if fPer = 0 then exit;
if fPer <> 100 then
begin
showmessage('您所填写的百分比配方各项之和是'+floattostr(fPer)+'%,'+' 应为100% 。'+#13+#13'请重新填写!');
end;
end; //with
end;
procedure TForm_Rubb_MixCard2.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0:
begin
DBEdit_Per.Enabled:=true;
DBEdit_Mul.Enabled:=false;
DBEdit_Per.color:=clwindow;
DBEdit_Mul.color:=clbtnface;
end;
1:
begin
DBEdit_Per.Enabled:=false;
DBEdit_Mul.Enabled:=true;
DBEdit_Per.color:=clbtnface;
DBEdit_Mul.color:=clwindow;
end;
end; //case
end;
procedure TForm_Rubb_MixCard2.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0);
end; //if
end;
procedure TForm_Rubb_MixCard2.DBEdit_MaterEnter(Sender: TObject);
begin
TEdit(Sender).color:=claqua;
end;
procedure TForm_Rubb_MixCard2.DBEdit_MaterExit(Sender: TObject);
begin
with Qry_Exe do
begin
close;
sql.clear;
sql.add('select * from 原材料字典 where 简称 = :v_index ');
parambyname('v_index').asstring:=DBEdit_Mater.text;
open;
if recordcount = 0 then exit;
DBEdit_Mater.text:= fieldbyname('材料名称').asstring;
close;
end;//with
TEdit(Sender).color:=clwindow;
end;
procedure TForm_Rubb_MixCard2.DBEdit_MaterChange(Sender: TObject);
begin
with Qry_Exe do
begin
close;
sql.clear;
sql.add('select * from 原材料字典 where 简称 = :v_index ');
parambyname('v_index').asstring:=DBEdit_Mater.text;
open;
if recordcount = 0 then exit;
DBEdit_Mater.text:= fieldbyname('材料名称').asstring;
close;
end;//with
end;
procedure TForm_Rubb_MixCard2.DBEdit_PerExit(Sender: TObject);
begin
TEdit(Sender).color:=clwindow;
BitBtn_Post.SetFocus;
end;
procedure TForm_Rubb_MixCard2.DBEdit_MulExit(Sender: TObject);
begin
TEdit(Sender).color:=clwindow;
BitBtn_Post.SetFocus;
end;
procedure TForm_Rubb_MixCard2.FormShow(Sender: TObject);
begin
Qry_MixCard.active:=true;
i:=0;
BitBtn_Post.Enabled:=false;
end;
procedure TForm_Rubb_MixCard2.BitBtn1Click(Sender: TObject);
begin
Qry_MixCard.active:=false;
Tab_MixCard.active:=false;
close;
end;
procedure TForm_Rubb_MixCard2.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 + -