📄 ywgl_pxgl_bjtjform.~pas
字号:
unit YWGL_PXGL_BJTJFORM;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Grids, ExtCtrls, Db, ADODB, DBGrids;
type
TYWGL_PXGL_BJTJ = class(TForm)
BitBtn1: TBitBtn;
Edit1: TEdit;
Edit2: TEdit;
StringGrid1: TStringGrid;
Label1: TLabel;
Label2: TLabel;
Bevel1: TBevel;
ADOTable1: TADOTable;
Label4: TLabel;
Shape1: TShape;
ADOTable1DSDesigner: TStringField;
ADOTable1DSDesigner2: TStringField;
ADOTable1DSDesigner3: TStringField;
ADOTable1DSDesigner4: TStringField;
ADOTable1DSDesigner5: TStringField;
ADOTable1DSDesigner6: TIntegerField;
ADOTable1DSDesigner7: TBCDField;
ADOTable1DSDesigner8: TBCDField;
ADOTable1DSDesigner9: TIntegerField;
ADOTable1DSDesigner10: TIntegerField;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ADOTable2: TADOTable;
ADOTable3: TADOTable;
ADOTable2DSDesigner: TDateTimeField;
ADOTable2DSDesigner2: TStringField;
ADOTable2DSDesigner3: TStringField;
ADOTable2DSDesigner4: TStringField;
ADOTable2DSDesigner5: TStringField;
ADOTable2DSDesigner6: TStringField;
ADOTable2DSDesigner7: TIntegerField;
ADOTable2DSDesigner8: TBCDField;
ADOTable2DSDesigner9: TStringField;
ADOTable2DSDesigner10: TBCDField;
ADOTable2DSDesigner11: TStringField;
ADOTable2DSDesigner12: TStringField;
ADOTable2DSDesigner13: TStringField;
ADOTable3DSDesigner: TDateTimeField;
ADOTable3DSDesigner2: TStringField;
ADOTable3DSDesigner3: TStringField;
ADOTable3DSDesigner4: TStringField;
ADOTable3DSDesigner5: TStringField;
ADOTable3DSDesigner6: TStringField;
ADOTable3DSDesigner7: TIntegerField;
ADOTable3DSDesigner8: TIntegerField;
ADOTable3DSDesigner9: TBCDField;
ADOTable3DSDesigner10: TBCDField;
ADOTable3DSDesigner11: TStringField;
ADOTable3DSDesigner12: TBCDField;
ADOTable3DSDesigner13: TIntegerField;
ADOTable3DSDesigner14: TStringField;
ADOTable3DSDesigner15: TStringField;
ADOTable3DSDesigner16: TStringField;
ADOTable2DSDesigner14: TStringField;
ADOTable1DSDesigner11: TStringField;
ADOTable3DSDesigner17: TStringField;
ADOQuery1: TADOQuery;
Edit3: TEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure StringGrid1GetEditMask(Sender: TObject; ACol, ARow: Integer;
var Value: String);
procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
procedure StringGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure StringGrid1Exit(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure StringGrid1DblClick(Sender: TObject);
procedure StringGrid1Click(Sender: TObject);
procedure Edit3Change(Sender: TObject);
private
beix,beiy:integer;
{ Private declarations }
public
{ Public declarations }
end;
var
YWGL_PXGL_BJTJ: TYWGL_PXGL_BJTJ;
implementation
uses YWGL_PXGLFORM;
{$R *.DFM}
procedure TYWGL_PXGL_BJTJ.FormClose(Sender: TObject; var Action: TCloseAction);
var i:integer;
begin
// for i:=1 to 20 do begin
// if stringgrid1.cells[1,i]<>'' then begin
{ for i:=1 to 20 do begin
if stringgrid1.cells[1,i]<>'' then begin
if adotable1.Locate ('物品名称;型号;单位;部门',VarArrayOf([stringgrid1.cells[1,i],Stringgrid1.cells[2,i],stringgrid1.cells[3,i],YWGL_PXGL.combobox2.text]),[loCaseInsensitive]) then begin
adotable1.edit;
adotable1.FieldByName('数量').asinteger:=adotable1.FieldByName('数量').asinteger-
strtoint(stringgrid1.cells[4,i]);
if adotable1.fieldbyname('库存金额').asfloat<>0 then begin
adotable1.fieldbyname('库存金额').asfloat:=
adotable1.fieldbyname('库存金额').asfloat-
(adotable1.fieldbyname('平均单价').asfloat*
strtoint(stringgrid1.cells[4,i]));
end;
if adotable1.fieldbyname('库存金额').asfloat<0 then begin
adotable1.fieldbyname('库存金额').asfloat:=0;
end;
adotable1.Post;
adotable2.InsertRecord([date,stringgrid1.cells[1,i],
stringgrid1.cells[2,i],nil,stringgrid1.cells[3,i],
YWGL_PXGL.adotable1.fieldbyname('单号').asstring+'号维修单',
stringgrid1.cells[4,i],stringgrid1.cells[5,i],'(无)',nil,
stringgrid1.cells[7,i],YWGL_PXGL.combobox1.Text,nil,YWGL_PXGL.combobox2.text]);
adotable3.InsertRecord([date,stringgrid1.cells[1,i],
stringgrid1.cells[2,i],nil,stringgrid1.cells[3,i],
YWGL_PXGL.adotable1.fieldbyname('单号').asstring+'号维修单',nil,
stringgrid1.cells[4,i],nil,stringgrid1.cells[5,i],'(无)',nil,
adotable1.fieldbyname('数量').asinteger,stringgrid1.cells[7,i],
YWGL_PXGL.combobox1.text,nil,YWGL_PXGL.combobox2.text]);
end;
end;
end;
animatewindow(handle,300,AW_VER_NEGATIVE+AW_CENTER+AW_HIDE);
}
end;
procedure TYWGL_PXGL_BJTJ.BitBtn1Click(Sender: TObject);
begin
stringgrid1.Row:=stringgrid1.Row+1;
close;
end;
procedure TYWGL_PXGL_BJTJ.FormShow(Sender: TObject);
var i,x:integer;
begin
for i:=1 to 20 do begin
stringgrid1.Cells[0,i]:=inttostr(i);
for x:=1 to 8 do begin
stringgrid1.Cells[x,i]:='';
end;
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]:='损耗';
// adotable1.indexfieldnames:='物品名称';
// stringgrid1.SetFocus;
// adotable1.Filter:=format('部门'+'='+'''%S''',[YWGL_PXGL.combobox2.text]);
// adotable2.filter:=format('部门'+'='+'''%S''',[YWGL_PXGL.combobox2.text]);
// adotable3.filter:=format('部门'+'='+'''%S''',[YWGL_PXGL.combobox2.text]);
end;
procedure TYWGL_PXGL_BJTJ.StringGrid1GetEditMask(Sender: TObject; ACol,
ARow: Integer; var Value: String);
var i:integer; strbj:string; strji:double;
begin
strbj:='';
strji:=0;
if beiy<>arow then begin
for i:=1 to 20 do begin
if stringgrid1.cells[1,i]<>'' then begin
strbj:=strbj+stringgrid1.cells[1,i]+stringgrid1.cells[4,i]+
stringgrid1.cells[3,i]+'('+stringgrid1.cells[6,i]+'元);';
strji:=strji+strtofloat(stringgrid1.cells[6,i]);
end;
end;
edit1.text:=strbj;
edit2.text:=floattostr(strji);
end;
beix:=acol;
beiy:=arow;
end;
procedure TYWGL_PXGL_BJTJ.StringGrid1KeyPress(Sender: TObject; var Key: Char);
var i:integer;
begin
if stringgrid1.Cells[1,beiy-1]='' then begin
key:=#0;
end else begin
case beix of
1:begin
dbgrid1.Visible:=true;
if stringgrid1.cells[1,beiy]<>'' then begin
if key=#13 then begin
stringgrid1.cells[1,beiy]:=adotable1.fieldbyname('物品名称').asstring;
stringgrid1.cells[2,beiy]:=adotable1.fieldbyname('型号').asstring;
stringgrid1.cells[3,beiy]:=adotable1.fieldbyname('单位').asstring;
stringgrid1.Cells[4,beiy]:='0';
stringgrid1.cells[5,beiy]:='0';
stringgrid1.cells[6,beiy]:='0';
stringgrid1.cells[7,beiy]:='0';
stringgrid1.col:=4;
dbgrid1.Visible:=false;
end else begin
adotable1.locate('物品名称',stringgrid1.cells[1,beiy],[loPartialKey]);
end;
end;
end;
2:begin
if key=#13 then stringgrid1.col:=stringgrid1.col+1 else key:=#0;
end;
3:begin
if key=#13 then stringgrid1.col:=stringgrid1.col+1 else key:=#0;
end;
4:begin
if key=#13 then begin
if stringgrid1.Cells[4,beiy]='' then stringgrid1.Cells[4,beiy]:='0';
if stringgrid1.cells[5,beiy]='' then stringgrid1.cells[5,beiy]:='0';
if strtoint(stringgrid1.cells[4,beiy])>adotable1.FieldByName('数量').asinteger then begin
showmessage('该备件数量以不足,请从新添加.');
exit;
end;
if adotable1.FieldByName('数量').asinteger<adotable1.fieldbyname('提示下限').asinteger then begin
showmessage('该备件数量以低于'+adotable1.fieldbyname('提示下限').asstring+',请三思.');
end;
stringgrid1.Cells[6,beiy]:=floattostr(strtofloat(stringgrid1.cells[4,beiy])*
strtofloat(stringgrid1.cells[5,beiy]));
stringgrid1.col:=stringgrid1.col+1;
end else begin
if key<>#8 then begin
if (key>'9') or (key<'0') then key:=#0;
end ;
end;
end;
5:begin
if key=#13 then begin
if stringgrid1.Cells[4,beiy]='' then stringgrid1.Cells[4,beiy]:='0';
if stringgrid1.cells[5,beiy]='' then stringgrid1.cells[5,beiy]:='0';
stringgrid1.Cells[6,beiy]:=floattostr(strtofloat(stringgrid1.cells[4,beiy])*
strtofloat(stringgrid1.cells[5,beiy]));
stringgrid1.col:=stringgrid1.col+1;
end else begin
if key<>#8 then begin
if key='.' then begin
for i:=1 to length(stringgrid1.cells[beix,beiy]) do begin
if stringgrid1.Cells[beix,beiy][i]='.' then key:=#0;
end;
end else begin
if (key>'9') or (key<'0') then
key:=#0;
end;
end;
end;
end;
6:begin
if key=#13 then begin
stringgrid1.Col:=stringgrid1.Col+1;
end else begin
key:=#0;
end;
end;
7:begin
if key=#13 then begin
stringgrid1.Col:=1;
stringgrid1.Row:=stringgrid1.Row+1;
end else begin
if key<>#8 then begin
if (key>'9') or (key<'0') then key:=#0;
end;
end;
end;
end;
end;
end;
procedure TYWGL_PXGL_BJTJ.StringGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case beix of
1:begin
if dbgrid1.Visible then begin
if key=$26 then begin
adotable1.Prior;
stringgrid1.Cells[1,beiy]:=adotable1.fieldbyname('物品名称').asstring;
key:=$0;
end;
if key=$28 then begin
adotable1.next;
stringgrid1.Cells[1,beiy]:=adotable1.fieldbyname('物品名称').asstring;
key:=$0;
end;
if key=$27 then begin
dbgrid1.Visible:=false;
stringgrid1.Cells[1,beiy]:='';
stringgrid1.cells[2,beiy]:='';
stringgrid1.cells[3,beiy]:='';
end;
end;
end;
end;
end;
procedure TYWGL_PXGL_BJTJ.StringGrid1Exit(Sender: TObject);
begin
//stringgrid1.Row:=stringgrid1.Row+1;
end;
procedure TYWGL_PXGL_BJTJ.DBGrid1DblClick(Sender: TObject);
begin
stringgrid1.cells[1,beiy]:=adotable1.fieldbyname('物品名称').asstring;
stringgrid1.cells[2,beiy]:=adotable1.fieldbyname('型号').asstring;
stringgrid1.cells[3,beiy]:=adotable1.fieldbyname('单位').asstring;
stringgrid1.Cells[4,beiy]:='0';
stringgrid1.cells[5,beiy]:='0';
stringgrid1.cells[6,beiy]:='0';
stringgrid1.cells[7,beiy]:='0';
stringgrid1.col:=4;
dbgrid1.Visible:=false;
end;
procedure TYWGL_PXGL_BJTJ.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
{if key=#13 then begin
stringgrid1.cells[1,beiy]:=adotable1.fieldbyname('物品名称').asstring;
stringgrid1.cells[2,beiy]:=adotable1.fieldbyname('型号').asstring;
stringgrid1.cells[3,beiy]:=adotable1.fieldbyname('单位').asstring;
stringgrid1.Cells[4,beiy]:='0';
stringgrid1.cells[5,beiy]:='0';
stringgrid1.cells[6,beiy]:='0';
stringgrid1.cells[7,beiy]:='0';
stringgrid1.col:=4;
dbgrid1.Visible:=false;
end; }
end;
procedure TYWGL_PXGL_BJTJ.StringGrid1DblClick(Sender: TObject);
begin
{ ADOQUERY1.ACTIVE:=FALSE;
ADOQUERY1.SQL.CLEAR;
ADOQUERY1.SQL.ADD('SELECT * FROM 客户基本信息');
ADOQUERY1.ACTIVE:=TRUE; }
end;
procedure TYWGL_PXGL_BJTJ.StringGrid1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * From 备件库存');
ADOQuery1.SQL.Add('Where 编号'+' Like'''+ stringgrid1.cells[1,1] +'%''');
ADOQuery1.Open;
//DBLookupListBox1.Visible:=True;
//DBLookupListBox1.SetFocus;
IF StringGrid1.Col=1 THEN DBGrid1.Visible:=True;
end;
procedure TYWGL_PXGL_BJTJ.Edit3Change(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * From 备件库存');
ADOQuery1.SQL.Add('Where 编号'+' Like'''+ stringgrid1.cells[1,1] +'%''');
ADOQuery1.Open;
//DBLookupListBox1.Visible:=True;
//DBLookupListBox1.SetFocus;
IF STRINGGRID1.Col=1 THEN DBGrid1.Visible:=True;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -