📄 xymzlossm.~pas
字号:
unit XyMzLossM;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, Grids, DBGrids, Mask, DBCtrls, ExtCtrls,db,adodb,
Buttons,comobj;
type
TXyMzLoss = class(TForm)
Panel3: TPanel;
Panel1: TPanel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label9: TLabel;
Label10: TLabel;
listbox1: TDBLookupListBox;
DBGrid1: TDBGrid;
Panel2: TPanel;
Panel4: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure Panel1Exit(Sender: TObject);
procedure listbox1KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormActivate(Sender: TObject);
procedure Panel1Enter(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
XyMzLoss: TXyMzLoss;
implementation
{$R *.DFM}
uses datamz,datamz1;
procedure TXyMzLoss.Panel1Exit(Sender: TObject);
begin
datamzf1.XyMzLossQuery.edit;
dbgrid1.Fields[2].value:='';
panel1.Visible:=false;
end;
procedure TXyMzLoss.listbox1KeyPress(Sender: TObject; var Key: Char);
begin
case key of
#13:
begin
datamzf1.XyMzLossQuery.edit;
dbgrid1.Fields[9].FocusControl;
dbgrid1.Fields[0].value:=
datamzf.XyQueryMz.FieldByName('in_id').value;
dbgrid1.Fields[3].value:=
datamzf.XyQueryMz.FieldByName('yp_name').value;
dbgrid1.Fields[4].value:=
datamzf.XyQueryMz.FieldByName('yp_spec').value;
dbgrid1.Fields[5].value:=
datamzf.XyQueryMz.FieldByName('yp_unit').value;
dbgrid1.Fields[6].value:=
datamzf.XyQueryMz.FieldByName('yp_batch').value;
dbgrid1.Fields[7].value:=
datamzf.XyQueryMz.FieldByName('sc_fact').value;
dbgrid1.Fields[8].value:=
datamzf.XyQueryMz.FieldByName('ls_price').value;
datamzf.XyQueryMz.active:=false;
end;
#27:
begin
dbgrid1.fields[2].focuscontrol;
datamzf.XyQueryMz.close;
end;
end ;
end;
procedure TXyMzLoss.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (length(trim(dbgrid1.fields[2].text))>0)
and (dbgrid1.SelectedIndex=2) then
begin
with datamzf.XyQueryMz do
begin
active:=false;
Parameters.ParamByName('@YpCode').Value := dbgrid1.fields[2].text;
try
open;
panel1.Visible:=true;
listbox1.SetFocus;
except
showmessage('文件不能打开!');
end;
end;
end
else
begin
if (key=#13) and (dbgrid1.selectedindex<10)
and (dbgrid1.Fields[0].value<>'') then
dbgrid1.fields[dbgrid1.SelectedIndex+1].focuscontrol
else
begin
if (key=#13) and (dbgrid1.SelectedIndex=10)
and (dbgrid1.Fields[0].value<>'') then
begin
if datamzf1.XyMzLossQuery.Eof=true then
datamzf1.XyMzLossQuery.append
else
datamzf1.XyMzLossQuery.next;
dbgrid1.fields[2].focuscontrol;
end
else
if (key=#13) and (dbgrid1.Fields[0].value.ISNULL) then
bitbtn1.SetFocus;
end;
end;
end;
procedure TXyMzLoss.BitBtn2Click(Sender: TObject);
begin
datamzf1.XyMzLossQuery.active:=false;
datamzf1.XyMzLossQuery.active:=true;
dbgrid1.fields[2].focuscontrol;
end;
procedure TXyMzLoss.BitBtn1Click(Sender: TObject);
var
ms:integer;
begin
ms:=Application.messagebox('确定输入?','提示',MB_OKCANCEL);
if ms=1 then
begin
try
datamzf1.XyMzLossQuery1.Active:=true;
except
showmessage('不能打开文件,操作被取消!');
exit;
end;
with datamzf1.XyMzLossQuery do
begin
First;
while not eof do
begin
if (FieldByName('in_id').value>0)
and (FieldByName('loss_amou').value<>0)
and (FieldByName('loss_amou').value<>'')then
begin
datamzf1.XyMzLossQuery1.Append;
datamzf1.XyMzLossQuery1.FieldByName('in_id').value:=
FieldByName('in_id').value;
datamzf1.XyMzLossQuery1.FieldByName('loss_amou').value:=
FieldByName('loss_amou').value;
datamzf1.XyMzLossQuery1.FieldByName('ls_price').value:=
FieldByName('ls_price').value;
datamzf1.XyMzLossQuery1.FieldByName('loss_reas').value:=
FieldByName('loss_reas').value;
end;
next;
end;
end;
datamzf.XyMzValiConnection.BeginTrans;
try
datamzf1.XyMzLossQuery1.Updatebatch(arAllChapters);
datamzf.XyMzValiConnection.CommitTrans;
datamzf1.XyMzLossQuery.active:=false;
datamzf1.XyMzLossQuery.active:=true;
datamzf1.XyMzLossQuery1.active:=false;
dbgrid1.fields[2].focuscontrol;
except
on E:EOleException do
begin
datamzf.XyMzValiConnection.RollbackTrans;
showmessage(E.message);
datamzf1.XyMzLossQuery1.active:=false;
dbgrid1.fields[2].focuscontrol;
end;
on Ed:EDatabaseError do
begin
datamzf.XyMzValiConnection.RollbackTrans;
showmessage(Ed.message);
datamzf1.XyMzLossQuery1.active:=false;
dbgrid1.fields[2].focuscontrol;
end;
else
begin
datamzf.XyMzValiConnection.RollbackTrans;
showmessage('发现异常,操作被取消!');
datamzf1.XyMzLossQuery1.active:=false;
dbgrid1.fields[2].focuscontrol;
end;
end;
end;
end;
procedure TXyMzLoss.FormClose(Sender: TObject; var Action: TCloseAction);
begin
datamzf1.XyMzLossQuery.active:=false;
datamzf1.XyMzLossQuery1.active:=false;
datamzf.XyQueryMz.Active:=false;
XyMzLoss.Release;
end;
procedure TXyMzLoss.FormActivate(Sender: TObject);
begin
try
datamzf1.XyMzLossQuery.active:=true;
except
showmessage('打开数据表失败,可能权限不够!');
bitbtn1.Enabled:=false;
bitbtn2.Enabled:=false;
end;
end;
procedure TXyMzLoss.Panel1Enter(Sender: TObject);
begin
panel1.Visible:=true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -