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

📄 wm_select.pas

📁 汽配前台收费,一个具有详细功能的小系统
💻 PAS
字号:
unit wm_select;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtCtrls, Db, DBTables;

type
  Tfrm_wm_select = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    txt_name: TEdit;
    cmdOK: TBitBtn;
    cmdCancel: TBitBtn;
    lst_dw: TListBox;
    qe_dw: TQuery;
    qe_jy: TQuery;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure cmdOKClick(Sender: TObject);
    procedure cmdCancelClick(Sender: TObject);
    //
    procedure ControlChanged(Sender: TObject);
    procedure cmdOKEnter(Sender: TObject);
    procedure cmdCancelEnter(Sender: TObject);
    procedure txt_nameKeyPress(Sender: TObject; var Key: Char);
    procedure lst_dwClick(Sender: TObject);
  private
    { Private declarations }
    procedure lstInfoInit;
  public
    { Public declarations }
  end;

var
  frm_wm_select: Tfrm_wm_select;

implementation

{$R *.DFM}

uses
  log, pj_wm;

procedure Tfrm_wm_select.ControlChanged(Sender: TObject);
var
  strName: string;
  i: integer;
  intPos: integer;
  str_id: string;
begin
  strName := Trim(txt_name.Text);
  if strName = '' then Exit;
  //
  lst_dw.Visible := True;
  //
  for i := 0 to lst_dw.Items.Count - 1 do begin
    str_id := lst_dw.Items[i];
    intPos := Pos(strName, str_id);
    if intPos = 1 then begin
      lst_dw.ItemIndex := i;
      Break;
    end else begin
      lst_dw.ItemIndex := 0;
    end;
  end;
end;

procedure Tfrm_wm_select.lstInfoInit;
var
  strName: string;
begin
  qe_dw.Close;
  qe_dw.Open;
  qe_dw.First;
  //
  while not qe_dw.Eof do begin
    strName := Trim(qe_dw.FieldByName('dw_name').AsString);
    lst_dw.Items.Add(strName);
    qe_dw.Next;
  end;
  qe_dw.Close;
  lst_dw.ItemIndex := -1;
end;

procedure Tfrm_wm_select.FormShow(Sender: TObject);
begin
  lstInfoInit;
  //
  txt_name.SetFocus;
end;

procedure Tfrm_wm_select.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure Tfrm_wm_select.FormDestroy(Sender: TObject);
begin
  frm_wm_select := nil;
end;

procedure Tfrm_wm_select.cmdOKClick(Sender: TObject);
var
  strName: string;
begin
  strName := Trim(txt_name.Text);
  if strName = '' then begin
    MessageBox(Handle, '请确定购货单位', '沈阳信德', MB_ICONQUESTION or MB_OK);
    txt_name.SetFocus;
    Exit;
  end else begin
    if lst_dw.Items.IndexOf(strName) = -1 then begin
      if MessageBox(Handle, '此购货单位不存在,是否新建?',
            '沈阳信德', MB_OKCANCEL or MB_ICONQUESTION) = ID_CANCEL then begin
        MessageBox(Handle, '购货单位不存在', '沈阳信德', MB_ICONQUESTION or MB_OK);
        txt_name.SetFocus;
        Exit;
      end else begin
        qe_jy.Close;
        qe_jy.SQL.Clear;
        qe_jy.SQL.Add('INSERT INTO DW(DW_NAME) VALUES(''' + strName + ''') ');
        qe_jy.ExecSQL;
        qe_jy.Close;
      end;
    end;
    if not Assigned(frm_pj_wm) then begin
      frm_pj_wm := Tfrm_pj_wm.Create(Application);
      //
      frm_pj_wm.txt_dw.Caption := Trim(txt_name.Text);
      //
      frm_pj_wm.Show;
      //
      Close;
    end;
  end;
end;

procedure Tfrm_wm_select.cmdCancelClick(Sender: TObject);
begin
  Close;
end;

procedure Tfrm_wm_select.cmdOKEnter(Sender: TObject);
begin
  lst_dw.Visible := False;
end;

procedure Tfrm_wm_select.cmdCancelEnter(Sender: TObject);
begin
  lst_dw.Visible := False;
end;

procedure Tfrm_wm_select.txt_nameKeyPress(Sender: TObject; var Key: Char);
var
  intIndex: integer;
  str_name: string;
  curIndex: integer;
  intResult: integer;
begin
  if Ord(Key) = 13 then begin
    str_name := Trim(txt_name.Text);
    if str_name <> '' then begin
      curIndex := lst_dw.Items.IndexOf(str_name);
      if curIndex = -1 then begin
        intResult := MessageBox(Handle, '此购货单位不存在,是否新建?',
            '沈阳信德', MB_OKCANCEL or MB_ICONQUESTION);
        if intResult = ID_OK then begin
          //执行存储过程
          qe_jy.Close;
          qe_jy.SQL.Clear;
          qe_jy.SQL.Add('INSERT INTO DW(DW_NAME) VALUES(''' + str_name + ''') ');
          qe_jy.ExecSQL;
          qe_jy.Close;
          lst_dw.Items.Add(str_name);
        end else begin
          if lst_dw.ItemIndex > -1 then begin
            str_name := lst_dw.Items[lst_dw.ItemIndex];
            txt_name.OnChange := nil;
            txt_name.Text := str_name;
            txt_name.OnChange := frm_wm_select.ControlChanged;
          end else begin
            MessageBox(Handle, '输入无效', '沈阳信德', MB_ICONQUESTION or MB_OK);
            txt_name.SetFocus;
            Exit;
          end;
        end;
      end;
    end;
    lst_dw.Visible := False;
    frm_wm_select.cmdOKClick(nil);
  end;
end;

procedure Tfrm_wm_select.lst_dwClick(Sender: TObject);
var
  str_name: string;
begin
  txt_name.OnChange := nil;
  str_name := lst_dw.Items[lst_dw.ItemIndex];
  txt_name.Text := str_name;
  txt_name.OnChange := frm_wm_select.ControlChanged;
  txt_name.SetFocus;
  lst_dw.Visible := False;
end;

end.

⌨️ 快捷键说明

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