📄 ygzlxz.pas
字号:
unit ygzlxz;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls, StdCtrls, TDSuperEdit, Buttons,
LbSpeedButton, Grids, DBGridEh, ImgList, DB, DBTables;
type
Tfrmygzlxz = class(TForm)
Splitter1: TSplitter;
Panel1: TPanel;
bmmlView: TTreeView;
Panel2: TPanel;
SpeedButton1: TSpeedButton;
CzEdit: TTDSuperEdit;
ButtonOk: TLbSpeedButton;
ButtonCancel: TLbSpeedButton;
Panel3: TPanel;
DBGridEh1: TDBGridEh;
ImageList1: TImageList;
BmmlTable: TTable;
BmmlDataSource: TDataSource;
ygdaDataSource: TDataSource;
ygdaQuery: TQuery;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ButtonCancelClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bmmlViewClick(Sender: TObject);
procedure DBGridEh1DblClick(Sender: TObject);
procedure ButtonOkClick(Sender: TObject);
procedure ygdaQueryFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
procedure CzEditChange(Sender: TObject);
procedure bmmlViewChange(Sender: TObject; Node: TTreeNode);
procedure FormKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmygzlxz: Tfrmygzlxz;
fwrycx_data, lsbl_cxnr: string;
implementation
uses mainform;
{$R *.dfm}
procedure Tfrmygzlxz.FormCreate(Sender: TObject);
var
pCode, yCode, pName, lsbl_bmbh: string;
MainNode, yNode, zNode: TTreeNode;
begin
fwrycx_data := '';
MainNode := TTreeNode.Create(bmmlView.Items);
yNode := TTreeNode.Create(bmmlView.Items);
zNode := TTreeNode.Create(bmmlView.Items);
bmmlView.Items.Clear;
bmmlTable.first;
yCode := Trim(bmmlTable.FieldByName('bm_bh').AsString);
bmmlView.Items.BeginUpdate;
while not bmmlTable.eof do
begin
pCode := Trim(bmmlTable.FieldByName('bm_bh').AsString);
pName := Trim(bmmlTable.FieldByName('bm_mc').AsString);
lsbl_bmbh := pCode;
case length(pCode) of
3:
begin
MainNode := bmmlView.Items.AddChild(nil, pCode + ' ' + pName);
yNode := MainNode;
end;
6:
begin
pCode := Copy(pCode, 4, 3);
MainNode := bmmlView.Items.AddChild(yNode, pCode + ' ' + pName);
zNode := MainNode;
end;
9:
begin
pCode := Copy(pCode, 7, 3);
MainNode := bmmlView.Items.AddChild(zNode, pCode + ' ' + pName)
end;
end;
Mainnode.SelectedIndex := 1;
Mainnode.ImageIndex := 0;
bmmlTable.Next;
end;
bmmlView.Items.EndUpdate;
//bmmlTable.Close;
end;
procedure Tfrmygzlxz.FormShow(Sender: TObject);
begin
if fwrycx_data = '' then
begin
if bmmlView.Items.Count <> 0 then
begin
bmmlView.Items[0].Selected := True;
bmmlView.OnClick(Sender);
end;
end
else
begin
with ygdaQuery do
begin
lsbl_cxnr := '%' + fwrycx_data + '%';
SQL.clear;
SQL.Add('select * from ygdasjk where yg_bh like :lsbl_cxxx');
SQL.Add('or yg_xm like :lsbl_cxxx');
SQL.Add('or yg_zjm like :lsbl_cxxx');
ParamByName('lsbl_cxxx').AsString := lsbl_cxnr;
Prepare;
open;
end;
end;
lsbl_cxnr := '';
end;
procedure Tfrmygzlxz.ButtonCancelClick(Sender: TObject);
begin
selecttext1 := '';
Close;
end;
procedure Tfrmygzlxz.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
frmygzlxz := nil
end;
procedure Tfrmygzlxz.bmmlViewClick(Sender: TObject);
var
lsbl_bmbh, lsbl_bmbh2: string;
lsbl_word: Word;
lsbl_bmjb, lsbl_x: Integer;
lsbl_node: TTreeNode;
begin
if BmmlView.Selected <> nil then
begin
LockWindowUpdate(handle);
lsbl_node := BmmlView.Selected;
lsbl_bmbh := Trim(BmmlView.Selected.Text);
lsbl_bmjb := BmmlView.Selected.Level;
lsbl_word := Pos(' ', lsbl_bmbh);
lsbl_bmbh := Copy(lsbl_bmbh, 1, lsbl_word - 1);
for lsbl_x := 0 to lsbl_bmjb - 1 do
begin
lsbl_bmbh2 := Trim(lsbl_node.Parent.Text);
lsbl_word := Pos(' ', lsbl_bmbh2);
lsbl_bmbh2 := Copy(lsbl_bmbh2, 1, lsbl_word - 1);
lsbl_bmbh := lsbl_bmbh2 + lsbl_bmbh;
lsbl_node := lsbl_node.Parent;
end;
lsbl_bmbh := lsbl_bmbh + '%';
with ygdaQuery do
begin
Filtered := False;
Close;
SQL.Clear;
SQL.Add('Select * From ygdasjk');
SQL.Add('where (yg_bmbh like ''' + lsbl_bmbh + '''' + ') order by yg_bh');
Open;
end;
CzEdit.Text := '';
LockWindowUpdate(0);
end;
end;
procedure Tfrmygzlxz.DBGridEh1DblClick(Sender: TObject);
begin
if ygdaQuery.FieldByName('yg_bh').AsString <> '' then
begin
selecttext1 := Trim(ygdaQuery.FieldByName('yg_bh').AsString);
selecttext2 := Trim(ygdaQuery.FieldByName('yg_xm').AsString);
Close;
end;
end;
procedure Tfrmygzlxz.ButtonOkClick(Sender: TObject);
begin
DbGridEh1.OnDblClick(Sender);
end;
procedure Tfrmygzlxz.ygdaQueryFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept := (sysform.StrLike(lsbl_cxnr, ygdaQuery.FieldByName('yg_bh').AsString))
or (sysform.StrLike(lsbl_cxnr, ygdaQuery.FieldByName('yg_xm').AsString))
or (sysform.StrLike(lsbl_cxnr, ygdaQuery.FieldByName('yg_lxdh').AsString));
end;
procedure Tfrmygzlxz.CzEditChange(Sender: TObject);
begin
lsbl_cxnr := Trim(CzEdit.text);
if lsbl_cxnr = '' then
begin
ygdaquery.OnFilterRecord := nil;
ygdaquery.Filtered := False;
end
else
begin
ygdaquery.OnFilterRecord := ygdaqueryFilterRecord;
ygdaquery.Filtered := True;
end;
end;
procedure Tfrmygzlxz.bmmlViewChange(Sender: TObject; Node: TTreeNode);
begin
bmmlView.OnClick(Sender);
end;
procedure Tfrmygzlxz.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
if activecontrol is TDBGridEh then
DbGridEh1.OnDblClick(Sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -