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

📄 ywgl_pxgl_bjtjform.~pas

📁 这是用Delphi编写的维修管理系统。主要功能包括业务管理
💻 ~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 + -