📄 khzlcx.pas
字号:
unit khzlcx;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, Grids, DBGridEh, DBGrids, StdCtrls,
TDSuperEdit, Buttons, LbSpeedButton, DB, DBTables, ImgList;
type
Tfrmkhzlcx = class(TForm)
Panel1: TPanel;
DqmlView: TTreeView;
Panel2: TPanel;
Splitter1: TSplitter;
Panel3: TPanel;
DBGridEh1: TDBGridEh;
Splitter2: TSplitter;
ButtonOk: TLbSpeedButton;
ButtonCancel: TLbSpeedButton;
dqmlTable: TTable;
dqxxDataSource: TDataSource;
khxxQuery: TQuery;
khgjTable: TTable;
khxxDataSource: TDataSource;
KhgjDataSource: TDataSource;
ImageList1: TImageList;
DBGrid2: TDBGrid;
Panel4: TPanel;
SpeedButton1: TSpeedButton;
CzEdit: TTDSuperEdit;
procedure ButtonCancelClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure DqmlViewClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CzEditChange(Sender: TObject);
procedure khxxQueryFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
procedure DBGridEh1DblClick(Sender: TObject);
procedure ButtonOkClick(Sender: TObject);
procedure DqmlViewChange(Sender: TObject; Node: TTreeNode);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmkhzlcx: Tfrmkhzlcx;
lsbl_cxnr: string;
khzlcx_data: string;
implementation
uses mainform;
{$R *.dfm}
procedure Tfrmkhzlcx.ButtonCancelClick(Sender: TObject);
begin
selecttext1 := '';
Close;
end;
procedure Tfrmkhzlcx.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
frmkhzlcx := nil
end;
procedure Tfrmkhzlcx.FormCreate(Sender: TObject);
var
pCode, yCode, pName: string;
MainNode, yNode, zNode: TTreeNode;
begin
MainNode := TTreeNode.Create(DqmlView.Items);
yNode := TTreeNode.Create(DqmlView.Items);
zNode := TTreeNode.Create(DqmlView.Items);
dqmlView.Items.Clear;
if dqmlTable.active = False then dqmlTable.active := True;
dqmlTable.first;
yCode := Trim(dqmlTable.FieldByName('dq_bh').AsString);
DqmlView.Items.BeginUpdate;
while not dqmlTable.eof do
begin
pCode := Trim(dqmlTable.FieldByName('dq_bh').AsString);
pName := Trim(dqmlTable.FieldByName('dq_mc').AsString);
case length(pCode) of
3:
begin
MainNode := DqmlView.Items.AddChild(nil, pCode + ' ' + pName);
yNode := MainNode;
end;
6:
begin
pCode := Copy(pCode, 4, 3);
MainNode := DqmlView.Items.AddChild(yNode, pCode + ' ' + pName);
zNode := MainNode;
end;
9:
begin
pCode := Copy(pCode, 7, 3);
MainNode := DqmlView.Items.AddChild(zNode, pCode + ' ' + pName)
end;
end;
Mainnode.SelectedIndex := 1;
Mainnode.ImageIndex := 0;
dqmlTable.Next;
end;
DqmlView.Items.EndUpdate;
dqmlTable.Close;
lsbl_cxnr := '';
end;
procedure Tfrmkhzlcx.DqmlViewClick(Sender: TObject);
var
lsbl_dqbh, lsbl_dqbh2, lsbl_dqbhcx: string;
lsbl_word: Word;
lsbl_dqjb, lsbl_x: Integer;
lsbl_node: TTreeNode;
begin
if DqmlView.Selected <> nil then
begin
LockWindowUpdate(handle);
lsbl_node := DqmlView.Selected;
lsbl_dqjb := DqmlView.Selected.Level;
lsbl_dqbh := Trim(DqmlView.Selected.Text);
lsbl_word := Pos(' ', lsbl_dqbh);
lsbl_dqbh := Copy(lsbl_dqbh, 1, lsbl_word - 1);
for lsbl_x := 0 to lsbl_dqjb - 1 do
begin
lsbl_dqbh2 := Trim(lsbl_node.Parent.Text);
lsbl_word := Pos(' ', lsbl_dqbh2);
lsbl_dqbh2 := Copy(lsbl_dqbh2, 1, lsbl_word - 1);
lsbl_dqbh := lsbl_dqbh2 + lsbl_dqbh;
lsbl_node := lsbl_node.Parent;
end;
lsbl_dqbhcx := lsbl_dqbh + '%';
with khxxquery do
begin
Filtered := False;
Close;
SQL.Clear;
SQL.Add('Select * From khxxview');
SQL.Add('where (kh_dqbh like ''' + lsbl_dqbhcx + '''' + ') order by kh_bh');
Open;
end;
CzEdit.Text := '';
LockWindowUpdate(0);
end;
end;
procedure Tfrmkhzlcx.FormShow(Sender: TObject);
begin
if DqmlView.Items.Count <> 0 then
begin
DqmlView.Items[0].Selected := True;
DqmlView.OnClick(Sender);
KhgjTable.Active := True;
end;
end;
procedure Tfrmkhzlcx.CzEditChange(Sender: TObject);
begin
lsbl_cxnr := Trim(CzEdit.text);
if lsbl_cxnr = '' then
begin
khxxquery.OnFilterRecord := nil;
khxxquery.Filtered := False;
end
else
begin
khxxquery.OnFilterRecord := khxxqueryFilterRecord;
khxxquery.Filtered := True;
end;
end;
procedure Tfrmkhzlcx.khxxQueryFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept := (sysform.StrLike(lsbl_cxnr, KhxxQuery.FieldByName('kh_bh').AsString))
or (sysform.StrLike(lsbl_cxnr, KhxxQuery.FieldByName('kh_mc').AsString))
or (sysform.StrLike(lsbl_cxnr, KhxxQuery.FieldByName('kh_zjm').AsString))
or (sysform.StrLike(lsbl_cxnr, KhxxQuery.FieldByName('kh_dh').AsString))
or (sysform.StrLike(lsbl_cxnr, KhxxQuery.FieldByName('kh_lxr').AsString))
or (sysform.StrLike(lsbl_cxnr, KhxxQuery.FieldByName('kh_sh').AsString));
end;
procedure Tfrmkhzlcx.DBGridEh1DblClick(Sender: TObject);
begin
selecttext1 := Trim(khxxquery.FieldByName('kh_bh').AsString);
selecttext2 := Trim(khxxquery.FieldByName('kh_mc').AsString);
selecttext3 := Trim(khgjtable.FieldByName('gj_gjrq').AsString);
selecttext4 := Trim(khgjtable.FieldByName('gj_jqxh').AsString);
Close;
end;
procedure Tfrmkhzlcx.ButtonOkClick(Sender: TObject);
begin
DbGridEh1.OnDblClick(Sender);
end;
procedure Tfrmkhzlcx.DqmlViewChange(Sender: TObject; Node: TTreeNode);
begin
DqmlView.OnClick(Sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -