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

📄 ygzlxz.pas

📁 服务信息管理系统
💻 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 + -