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

📄 selvc.pas

📁 飞恒进销存(超市批发)管理系统V5.1(含源程序) 语言:Delphi 6/7 相关控件:FastReport 2.4以上, Ehlib 3.4以上 1.数据库为fhe2db_V51.da
💻 PAS
字号:
unit selVC;

interface

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

type
  TdlgSelVC = class(TForm)
    Panel2: TPanel;
    dbGrid1: TDBGridEh;
    cboType: TComboBox;
    edtSch: TEdit;
    cmdSch: TSpeedButton;
    tvType: TTreeView;
    Panel1: TPanel;
    cmdExit: TSpeedButton;
    cmdAdd: TSpeedButton;
    cmdOk: TSpeedButton;
    procedure cmdSchClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure dbGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure cmdOkClick(Sender: TObject);
    procedure cmdExitClick(Sender: TObject);
    procedure dbGrid1DblClick(Sender: TObject);
    procedure edtSchKeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure tvTypeClick(Sender: TObject);
  private
    { Private declarations }
    xSql,xOrderSql:string;
    xParams1,xParams2:string;
    node1,node2,node3,node4:TTreeNode;
    Function GetXName:string;
    Function GetXId:integer;
    Function GetXId1:integer;    
  public
    { Public declarations }
    property  xId :integer read GetXId ;
    property  xId1 :integer read GetXId1 ;
    property  xName :string read GetXName ;
    property  NewSql:string read xSql write xSql;
    property  NewOrderSql:string read xOrderSql write xOrderSql;
    property  sParams1:string write xParams1;
    property  sParams2:string write xParams2;
  end;

var
  dlgSelVC: TdlgSelVC;

implementation
uses datamodule1,  unitmb;
{$R *.DFM}

Function TdlgSelVC.GetXname:string;
begin
  result:=trim(dataE2.queryDlg.fieldbyname('Name').asstring);
end;

Function TdlgSelVC.GetXid:integer;
begin
  result:=dataE2.queryDlg.fieldbyname('id').asinteger;
end;

Function TdlgSelVC.GetXid1:integer;
begin
  result:=dataE2.queryDlg.fieldbyname('cusFileid').asinteger;
end;

procedure TdlgSelVC.FormShow(Sender: TObject);
var
  sText:string;
  n:integer;
begin
  if tvType.Visible then
    self.Width:=537
  else self.Width:=537-tvType.Width;
  //repaint;
  if edtSch.Text<>'' then exit;
  cboType.itemindex:=0;
  with dataE2 do
  begin
    QueryDlg.close;
    sText:=trim(queryDlg.sql.text) ;//sql未变,不必重新初始化
    if (sText<>xSql) then
    begin
      queryDlg.sql.clear;
      queryDlg.sql.add(xSql+xOrderSql);
    end;
    n:=pos(':',xSql);
    if n>0 then //有参数
       queryDlg.Parameters[0].value:=xParams1;
    QueryDlg.open;
  end;

  with dataE2.qryType1 do
  begin
    close;
    SQL.clear;
    SQL.add('select * from area order by AREAID');
    open;
    first;
    tvType.Items.Clear;
    node1:=tvType.Items.Add(nil,'区域');
    while not Eof do
    begin
      node2:=tvType.Items.AddChild(node1,dataE2.qryType1.FieldValues['name']);
      Next;
    end;
  end;
  if node2 <> nil  then
    node2.Selected:=true;
end;

procedure TdlgSelVC.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then modalResult:=mrok;
end;

procedure TdlgSelVC.cmdSchClick(Sender: TObject);
var
  sText,s:string;
  n:integer;
begin
  with dataE2 do
  begin
    QueryDlg.close;
    sText:=trim(queryDlg.sql.text) ;//sql未变,不必重新初始化

    if cboType.ItemIndex=0 then
      s:=xSql+xParams1+xOrderSql
    else
      s:=xSql+xParams2+xOrderSql;

    if (s<>sText) then
    begin
      queryDlg.sql.clear;
      queryDlg.sql.add(s);
    end;
    n:=pos(':',s);
    if n>0 then //有参数
       queryDlg.Parameters[0].value:='%'+edtSch.text+'%';
    QueryDlg.open;
  end;

end;

procedure TdlgSelVC.cmdOkClick(Sender: TObject);
begin
  modalResult:=mrok;
end;

procedure TdlgSelVC.cmdExitClick(Sender: TObject);
begin
  modalResult:=mrcancel;
end;

procedure TdlgSelVC.dbGrid1DblClick(Sender: TObject);
begin
  modalResult:=mrok;
end;

procedure TdlgSelVC.edtSchKeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then
  begin
    cmdSch.Click;
    if Not dataE2.queryDlg.Eof then
      dbGrid1.SetFocus;
  end;
end;

procedure TdlgSelVC.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if key = #27 then
    modalResult:=mrcancel;
end;

procedure TdlgSelVC.tvTypeClick(Sender: TObject);
var
  iAREAID:Integer;
begin
  if tvType.Visible then
  begin
    iAREAID:=-1;
    with dataE2.qryGet do
    begin
      close;
      sql.clear;
      sql.add('select * from area where name=:name order by AREAID');
      Parameters[0].Value:=tvType.Selected.Text;
      open;
      iAREAID:=FieldByName('AREAID').AsInteger;
    end;
    with dataE2.queryDlg do
    begin
      close;
      sql.clear;
      if tvType.Selected.Text='区域' then
        sql.add(xSql+xOrderSql)
      else
        sql.add(xSql+'Where AREAID=:AREAID'+xOrderSql);
      if iAREAID>0 then
        Parameters[0].Value:=iAREAID;
      open;
    end;
  end;
end;

end.

⌨️ 快捷键说明

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