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

📄 u_frmlist.pas

📁 sqllite3数据库基本应用(打开,关闭表,及更新数据表)
💻 PAS
字号:
unit u_frmlist;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, StdCtrls;

type
    TFrmlist = class(TForm)
    DBGrid1: TDBGrid;
    codeedit: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    numEdit: TEdit;
    whyEdit: TEdit;
    Label3: TLabel;
    DBGrid2: TDBGrid;
    Button1: TButton;
    Button2: TButton;
    SaveDialog1: TSaveDialog;
    Button3: TButton;
    procedure StringGridKeyPress(Sender: TObject; var Key: Char);
    procedure codeeditChange(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure codeeditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormShow(Sender: TObject);
    procedure codeeditEnter(Sender: TObject);
    procedure numEditKeyPress(Sender: TObject; var Key: Char);
    procedure whyEditKeyPress(Sender: TObject; var Key: Char);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frmlist: TFrmlist;

implementation

uses u_data;

{$R *.dfm}


procedure TFrmlist.StringGridKeyPress(Sender: TObject; var Key: Char);
begin
  IF Key=#13 THEN
    KEYBD_EVENT(9,0,0,0);
end;



procedure TFrmlist.codeeditChange(Sender: TObject);
begin
if trim(codeedit.Text)='' then
begin
dbgrid1.Visible:=false;
end
else
dbgrid1.Visible:=true;
with data.Qmain do
begin
close;
sql.Clear;
sql.Add('select * from main where picnum like'''+codeedit.Text+'%''');
open;
end;
end;

procedure TFrmlist.DBGrid1CellClick(Column: TColumn);
begin
codeedit.Text:=dbgrid1.Columns[0].Field.asstring;
dbgrid1.Visible:=false;
end;

procedure TFrmlist.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
numedit.SetFocus;
begin
codeedit.Text:=dbgrid1.Columns[0].Field.asstring;
dbgrid1.Visible:=false;
with data.Qlist do
  begin
  close;
  sql.Clear;
  sql.Add('insert into requestlist(picnum,name,isfixed,fixednum,chargeperson)');
  sql.Add('select picnum,name,isfixed,fixednum,chargeperson from main where picnum='''+codeedit.text+'''');
  execsql;

  close;
  Sql.clear;
  sql.add('select   *   from   requestlist');
  open;
  end;
end;
end;

procedure TFrmlist.codeeditKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Key = VK_DOWN) then
  begin
  if dbgrid1.CanFocus then
  dbgrid1.SetFocus;
  SendMessage(dbGrid1.Handle,WM_KEYDOWN,Key,0);
  end;
end;

procedure TFrmlist.FormShow(Sender: TObject);
begin
if trim(codeedit.Text)='' then
  begin
  dbgrid1.Visible:=false;
  end
  else
  begin
  dbgrid1.Visible:=true;
  end;
end;

procedure TFrmlist.codeeditEnter(Sender: TObject);
begin
dbgrid1.Visible:=false;
end;

procedure TFrmlist.numEditKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
whyedit.SetFocus;
end;

procedure TFrmlist.whyEditKeyPress(Sender: TObject; var Key: Char);
begin
if trim(numedit.Text)='' then
begin
application.MessageBox('请输入数量','提示',0+64);
numedit.SetFocus;
end
else
if key=#13 then
with data.Qlist do
begin
close;
sql.Clear;
sql.Add('update requestlist set requestnum='''+numedit.Text+''',unusualreason='''+whyedit.Text+'''');
sql.Add('where picnum = '''+codeedit.Text+'''');
execsql;

close;
Sql.clear;
sql.add('select   *   from   requestlist');
open;

codeedit.Clear;
numedit.Clear;
whyedit.Clear;
codeedit.SetFocus;
end;
end;

procedure TFrmlist.Button1Click(Sender: TObject);
begin
with data.Qlist do
begin
close;
sql.Clear;
sql.Add('delete from requestlist');
execsql;
end;
end;

procedure TFrmlist.Button2Click(Sender: TObject);

var  i: integer;
  s: string;
  StringList: TStringList;
begin
  if SaveDialog1.Execute then
  begin
    try
      StringList := TStringList.Create;
      while not data.Qlist.Eof do
      begin
        for i := 1 to data.Qlist.FieldCount - 1 do
          s := s + data.Qlist.Fields[i].AsString + ',';
        StringList.add(s);
        s := '';
        data.Qlist.Next;
      end;
      StringList.savetofile(SaveDialog1.FileName { + '.csv'});
    finally
      FreeAndNil(StringList);
    end;
  end;
end;

procedure TFrmlist.Button3Click(Sender: TObject);
begin
with data.Qlist do
begin
close;
sql.Clear;
sql.Add('delete from requestlist');
execsql;
close;
end;
close;
end;
end.

⌨️ 快捷键说明

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