⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ywgl_pxgl_bjform.pas

📁 明日腾龙编修管理系统,对于做相关软件的朋友是一个非常好的参考
💻 PAS
字号:
unit YWGL_PXGL_BJFORM;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Grids, ExtCtrls, Db, ADODB, DBGrids;

type
  TYWGL_PXGL_BJ = 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 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 DBGrid1DblClick(Sender: TObject);
    procedure StringGrid1Click(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
  private
      beix,beiy:integer;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  YWGL_PXGL_BJ: TYWGL_PXGL_BJ;

implementation

uses YWGL_PXGLFORM;

{$R *.DFM}

procedure TYWGL_PXGL_BJ.BitBtn1Click(Sender: TObject);
begin
 stringgrid1.Row:=stringgrid1.Row+1;
 close;
end;
procedure TYWGL_PXGL_BJ.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]:='损耗';
end;

procedure TYWGL_PXGL_BJ.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_BJ.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_BJ.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_BJ.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_BJ.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;
 IF StringGrid1.Col=1 THEN  DBGrid1.Visible:=True;
end;

procedure TYWGL_PXGL_BJ.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;
 IF STRINGGRID1.Col=1 THEN  DBGrid1.Visible:=True;
end;

End
.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -