📄 mrwx_bjrk.~pas
字号:
unit MRWX_BJRK;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ExtCtrls, StdCtrls, Buttons, Grids, DBGrids, Db, ADODB, Mask,
DBCtrls;
type
TMR_WXBJ_RK = class(TForm)
PageControl1: TPageControl;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn6: TBitBtn;
Bevel1: TBevel;
TabSheet1: TTabSheet;
DBGrid1: TDBGrid;
ADOTable1: TADOTable;
ADOTable1DSDesigner: TStringField;
ADOTable1DSDesigner2: TStringField;
ADOTable1DSDesigner3: TStringField;
ADOTable1DSDesigner4: TStringField;
ADOTable1DSDesigner5: TStringField;
ADOTable1DSDesigner6: TIntegerField;
ADOTable1DSDesigner7: TBCDField;
ADOTable1DSDesigner8: TBCDField;
ADOTable1DSDesigner9: TIntegerField;
ADOTable1DSDesigner10: TIntegerField;
DataSource1: TDataSource;
TabSheet2: TTabSheet;
StringGrid1: TStringGrid;
TabSheet3: TTabSheet;
DBGrid2: TDBGrid;
ADOTable2: TADOTable;
DataSource2: TDataSource;
DataSource3: TDataSource;
ADOTable2DSDesigner: TDateTimeField;
ADOTable2DSDesigner2: TStringField;
ADOTable2DSDesigner3: TStringField;
ADOTable2DSDesigner4: TStringField;
ADOTable2DSDesigner5: TStringField;
ADOTable2DSDesigner6: TStringField;
ADOTable2DSDesigner7: TIntegerField;
ADOTable2DSDesigner8: TIntegerField;
ADOTable2DSDesigner9: TBCDField;
ADOTable2DSDesigner10: TBCDField;
ADOTable2DSDesigner12: TBCDField;
ADOTable2DSDesigner13: TIntegerField;
ADOTable2DSDesigner14: TStringField;
ADOTable2DSDesigner15: TStringField;
ADOTable2DSDesigner16: TStringField;
ADOTable4: TADOTable;
ADOTable4DSDesigner: TStringField;
ADOTable4DSDesigner2: TStringField;
ADOTable4DSDesigner3: TStringField;
ADOTable4DSDesigner4: TStringField;
ADOTable4DSDesigner5: TStringField;
ADOTable4DSDesigner6: TStringField;
ADOTable4DSDesigner7: TStringField;
ADOTable6: TADOTable;
ADOTable6DSDesigner: TStringField;
ADOTable6DSDesigner2: TStringField;
ADOTable6DSDesigner3: TStringField;
ADOTable6DSDesigner4: TStringField;
ADOTable6DSDesigner5: TStringField;
ADOTable6DSDesigner6: TStringField;
ADOTable6DSDesigner7: TStringField;
ADOTable6DSDesigner8: TStringField;
ADOTable7: TADOTable;
ADOTable7DSDesigner: TStringField;
ADOTable7DSDesigner2: TStringField;
ADOTable7DSDesigner3: TStringField;
ADOTable7DSDesigner4: TStringField;
ADOTable7DSDesigner5: TDateTimeField;
ADOTable7DSDesigner6: TStringField;
ADOTable7DSDesigner7: TStringField;
ADOTable7DSDesigner8: TStringField;
ADOTable7DSDesigner9: TStringField;
ADOTable7DSDesigner10: TStringField;
DBGrid3: TDBGrid;
ADOTable8: TADOTable;
DataSource5: TDataSource;
DBGrid4: TDBGrid;
ADOTable3: TADOTable;
ADOTable3DSDesigner: TDateTimeField;
ADOTable3DSDesigner2: TStringField;
ADOTable3DSDesigner3: TStringField;
ADOTable3DSDesigner4: TStringField;
ADOTable3DSDesigner5: TStringField;
ADOTable3DSDesigner6: TStringField;
ADOTable3DSDesigner7: TStringField;
ADOTable3DSDesigner8: TIntegerField;
ADOTable3DSDesigner9: TBCDField;
ADOTable3DSDesigner11: TBCDField;
ADOTable3DSDesigner12: TStringField;
ADOTable3DSDesigner13: TStringField;
ADOTable3DSDesigner14: TStringField;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
DataSource4: TDataSource;
DataSource6: TDataSource;
ADOTable1DSDesigner11: TStringField;
Label1: TLabel;
ComboBox3: TComboBox;
ADOQuery1: TADOQuery;
ADOTable2DSDesigner11: TStringField;
ADOTable3DSDesigner10: TStringField;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure TabSheet2Show(Sender: TObject);
procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
procedure StringGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure StringGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBGrid3DblClick(Sender: TObject);
procedure StringGrid1GetEditMask(Sender: TObject; ACol, ARow: Integer;
var Value: String);
procedure StringGrid1DblClick(Sender: TObject);
procedure StringGrid1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure DBGrid3KeyPress(Sender: TObject; var Key: Char);
procedure ComboBox1Exit(Sender: TObject);
procedure ComboBox2Exit(Sender: TObject);
procedure ComboBox3Click(Sender: TObject);
procedure ComboBox2Enter(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure DataSource3DataChange(Sender: TObject; Field: TField);
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure ComboBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ComboBox2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ComboBox2KeyPress(Sender: TObject; var Key: Char);
private
x,y:integer;
jin:double;
{ Private declarations }
public
{ Public declarations }
end;
var MR_WXBJ_RK: TMR_WXBJ_RK;
implementation
uses MRWX_BJRK_TJ, MRWX_BJRKXX_XX;
{uses MR_WXUnit, MRWX_BJRK_TJ, MRWX_BJRKXX_XX, MRWX_LLDRK; }
{$R *.DFM}
procedure TMR_WXBJ_RK.FormClose(Sender: TObject; var Action: TCloseAction);
begin
animatewindow(handle,300,AW_VER_NEGATIVE+AW_HOR_POSITIVE+AW_HIDE);
mr_wxbj_rk.Release;
mr_wxbjrk_tj.Release;
MR_WXBJRKXX_XX.Release;
MR_WXBJRKXX_XX:=nil;
mr_wxbjrk_tj:=nil;
mr_wxbj_rk:=nil;
end;
procedure TMR_WXBJ_RK.FormCreate(Sender: TObject);
var metricsy:integer;
begin
{y:=1;
metricsy:=getsystemmetrics(sm_cyscreen);
if metricsy>600 then begin
height:=height+100;
pagecontrol1.Height:=pagecontrol1.Height+100;
Dbgrid3.Height:=Dbgrid3.Height+100;
stringgrid1.Height:=stringgrid1.Height+100;
end else begin
constraints.MaxHeight:=440;
end; }
end;
procedure TMR_WXBJ_RK.FormShow(Sender: TObject);
var z:integer;
begin
{animatewindow(handle,200,AW_VER_NEGATIVE-AW_HOR_POSITIVE);
bevel1.Left:=Bevel1.Left+1; }
TAbsheet1.Show;
dbgrid1.Refresh;
label1.Refresh;
adoquery1.First;
combobox3.Items.clear;
while not adoquery1.Eof do begin
combobox3.Items.add(adoquery1.fieldbyname('库房').asstring);
adoquery1.Next;
end;
combobox3.ItemIndex:=0;
adotable1.filter:=format('部门'+'='+'''%S''',[combobox3.text]);
adotable2.Filter:=adotable1.Filter;
adotable3.Filter:=adotable1.Filter;
for z:=1 to 100 do begin
stringGrid1.Cells[0,z]:=inttostr(z);
end;
StringGrid1.Cells[1,0]:='物品名称';
StringGrid1.Cells[2,0]:='型号';
StringGrid1.Cells[3,0]:='规格';
StringGrid1.Cells[4,0]:='单位';
StringGrid1.Cells[5,0]:='备件来历';
StringGrid1.Cells[6,0]:='入库单价';
StringGrid1.Cells[7,0]:='入库数量';
StringGrid1.Cells[8,0]:='经手人';
StringGrid1.Cells[9,0]:='金额';
StringGrid1.Cells[10,0]:='损耗';
StringGrid1.Cells[11,0]:='详细说明';
Bitbtn1.Click;
end;
procedure TMR_WXBJ_RK.BitBtn6Click(Sender: TObject);
begin
close;
end;
procedure TMR_WXBJ_RK.BitBtn1Click(Sender: TObject);
var strx,stry:integer;
begin
if tbitbtn(sender).caption='刷 新 表 [&R]' then begin
for stry:=1 to 100 do begin
for strx:=1 to 12 do begin
stringgrid1.cells[strx,stry]:='';
end;
end;
stringgrid1.Col:=1;
stringgrid1.row:=1;
end else begin
tbitbtn(sender).caption:='刷 新 表 [&R]';
bitbtn2.caption:='取消添加[&C]';
bitbtn3.caption:='保存信息[&P]';
Tabsheet2.show;
bitbtn4.enabled:=false;
bitbtn6.enabled:=false;
end;
end;
procedure TMR_WXBJ_RK.TabSheet2Show(Sender: TObject);
var strx,stry:integer;
begin
for stry:=1 to 100 do begin
for strx:=1 to 12 do begin
stringgrid1.cells[strx,stry]:='';
end;
end;
stringgrid1.Col:=1;
stringgrid1.row:=1;
combobox1.Items.Clear;
adotable6.First;
while not adotable6.eof do begin
combobox1.items.add(adotable6.fieldbyname('商家名称').asstring);
adotable6.Next;
end;
combobox2.Items.clear;
adotable7.First;
while not adotable7.Eof do begin
combobox2.items.add(adotable7.FieldByName('职员名称').asstring);
adotable7.next;
end;
// stringgrid1.Col:=1;
// stringgrid1.row:=1;
end;
procedure TMR_WXBJ_RK.StringGrid1KeyPress(Sender: TObject; var Key: Char);
var stri:integer;
begin
{if length(stringgrid1.cells[1,y-1])<>0 then begin
// if y=5 then begin
// ComboBox1.SetFocus;
// SendMessage(ComboBox1.Handle,WM_Char,word(Key),0);
// end;
// if y=8 then begin
// combobox2.setfocus;
// sendmessage(combobox2.handle,wm_char,word(key),0);
// end;
{ case x of
1:begin
if key<>#27 then begin
dbgrid3.Visible:=true;
if length(stringgrid1.cells[x,y])<>0 then begin
if key=#13 then begin
stringgrid1.Cells[1,y]:=adotable4.fieldbyname('备件名称').asstring;
stringgrid1.Cells[2,y]:=adotable4.fieldbyname('备件型号').asstring;
stringgrid1.Cells[3,y]:=adotable4.fieldbyname('备件规格').asstring;
stringgrid1.cells[4,y]:=adotable4.fieldbyname('单位').asstring;
stringgrid1.Cells[6,y]:='0';
stringgrid1.cells[7,y]:='0';
stringgrid1.cells[9,y]:='0';
stringgrid1.cells[10,y]:='0';
dbgrid3.Visible:=false;
// adotable4.Close;
stringgrid1.Col:=5;
end;
end;
stringgrid1.Cells[1,y]:=adotable4.fieldbyname('备件名称').asstring;
key:=#0;
end else begin
dbgrid3.Visible:=false;
stringgrid1.Cells[1,y]:='';
stringgrid1.Cells[2,y]:='';
stringgrid1.Cells[3,y]:='';
stringgrid1.Cells[4,y]:='';
stringgrid1.Cells[5,y]:='';
stringgrid1.Cells[6,y]:='';
stringgrid1.Cells[7,y]:='';
stringgrid1.Cells[8,y]:='';
stringgrid1.Cells[9,y]:='';
stringgrid1.Cells[10,y]:='';
end;
end;
1:begin
dbgrid4.Top:=(stringgrid1.Row-stringgrid1.TopRow)*16+stringgrid1.top;;
dbgrid4.visible:=true;
if length(stringgrid1.cells[x,y])<>0 then begin
if key=#13 then
stringgrid1.cells[1,y]:=adotable8.fieldbyname('备件名').asstring;
adotable4.Filter:=format('备件名称'+'='+'''%s''',[stringgrid1.cells[1,y]]);
adotable4.Open;
stringgrid1.Col:=stringgrid1.Col+1;
end;
end;
2:begin
if key=#13 then
stringgrid1.Col:=stringgrid1.Col+1;
end;
3:begin
if key=#13 then
stringgrid1.Col:=stringgrid1.Col+1;
end;
4:begin
if key=#13 then
stringgrid1.Col:=stringgrid1.Col+1;
end;
5:begin
if key=#13 then
stringgrid1.Col:=stringgrid1.Col+1;
// key:=#0;
end;
6:begin
if key=#13 then begin
stringgrid1.Col:=stringgrid1.Col+1;
if stringgrid1.Cells[6,y]='' then stringgrid1.Cells[6,y]:='0';
if stringgrid1.cells[7,y]='' then stringgrid1.Cells[7,y]:='0';
stringgrid1.Cells[9,y]:=floattostr(strtofloat(stringgrid1.cells[6,y])*
strtofloat(stringgrid1.Cells[7,y]));
end;
if key<>#8 then begin
if key='.' then begin
for stri:=1 to length(stringgrid1.cells[6,y]) do begin
if stringgrid1.Cells[6,y][stri]='.' then key:=#0;
end;
end else begin
if (key>'9') or (key<'0') then key:=#0;
end;
end;
end;
7:begin
if key=#13 then begin
if adotable1.Locate('物品名称;型号;规格',vararrayof([stringgrid1.cells[1,y],
stringgrid1.cells[2,y],stringgrid1.cells[3,y]]),[loCaseInsensitive])
then begin
if strtoint(stringgrid1.cells[7,y])+adotable1.fieldbyname('数量').asinteger
>adotable1.fieldbyname('提示上限').asinteger then begin
showmessage('该备件的库存数量以超出了提示上限,请三思。');
end;
end else begin
if strtoint(stringgrid1.cells[7,y])>mr_wxform.ADOTable2.fieldbyname('库存上限').asinteger
then begin
showmessage('该备件的库存数量以超出了提示上限,请三思。');
end;
end;
stringgrid1.Col:=stringgrid1.Col+1;
if stringgrid1.Cells[6,y]='' then stringgrid1.Cells[6,y]:='0';
if stringgrid1.cells[7,y]='' then stringgrid1.Cells[7,y]:='0';
stringgrid1.Cells[9,y]:=floattostr(strtofloat(stringgrid1.cells[6,y])*
strtofloat(stringgrid1.Cells[7,y]));
end;
if key<>#8 then begin
if (key>'9') or (key<'0') then key:=#0;
end;
end;
8:begin
if key=#13 then begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -