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

📄 rgtselectunitfunctionselect.~pas

📁 delphi开发的中国移动大客户管理系统,后台数据库为oracle
💻 ~PAS
字号:
//------------------------------------------------------------
//      作者:曾庆顺
//      模块:权限功能选择窗口
//      时间:2002.09.21
//      功能介绍:
//-----------------------------------------------------------
unit RgtSelectUnitFunctionSelect;

interface

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

type
  TRgtSelectFormFunctionSelect = class(TForm)
    PnlQuery: TPanel;
    PnlBtn: TPanel;
    BtnClear: TButton;
    BtnQuery: TButton;
    BtnSelect: TButton;
    BtnCancel: TButton;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    btn_sort: TButton;
    Label1: TLabel;
    Label3: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label20: TLabel;
    EdtFuncSerialIdQueryFrom: TEdit;
    EdtFuncSerialIdQueryTo: TEdit;
    EdtFuncNameQuery: TEdit;
    GroupBox2: TGroupBox;
    Label21: TLabel;
    Label22: TLabel;
    EdtFormCaptionQuery: TEdit;
    EdtControlCaptionQuery: TEdit;
    SbSysFormCtrlListQuery: TBitBtn;
    CmbControlTypeQuery: TComboBox;
    EdtExtraQuery: TEdit;
    Query1: TQuery;
    DataSource1: TDataSource;
    Splitter1: TSplitter;
    DbgPrivFunction: TDBGrid;
    procedure BtnClearClick(Sender: TObject);
    procedure BtnQueryClick(Sender: TObject);
    procedure BtnSelectClick(Sender: TObject);
    procedure BtnCancelClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btn_sortClick(Sender: TObject);
    procedure EdtFuncSerialIdQueryFromKeyPress(Sender: TObject;
      var Key: Char);
    procedure EdtFuncSerialIdQueryToKeyPress(Sender: TObject;
      var Key: Char);
    procedure SbSysFormCtrlListQueryClick(Sender: TObject);
    procedure Query1AfterScroll(DataSet: TDataSet);
    procedure DbgPrivFunctionDblClick(Sender: TObject);
  private

    { Private declarations }
    P_Condition:String;
  public
    { Public declarations }
    P_QueryFORMNAME,P_QueryCONTROLNAME :string;
    P_FUNCID,P_CONTROLTYPE,P_FUNCNAME,P_FUNCSERIALID :string;
  end;

var
  RgtSelectFormFunctionSelect: TRgtSelectFormFunctionSelect;

implementation
uses dmmain,sort,RgtSelectFormCtrlFrmSelect;
{$R *.DFM}

procedure TRgtSelectFormFunctionSelect.BtnClearClick(Sender: TObject);
var V_I:Integer;
begin
  For V_I:=0 To (PnlQuery.ControlCount-1) do
    If  PnlQuery.Controls[V_I].ClassType=TEdit Then
      (PnlQuery.Controls[V_I] as TEdit).Text:='';
  EdtFormCaptionQuery.Text :='';
  EdtControlCaptionQuery.Text :='';
  P_QueryFORMNAME :='';
  P_QueryCONTROLNAME  :='';
end;


procedure TRgtSelectFormFunctionSelect.BtnQueryClick(Sender: TObject);
var
  P_Filter ,V_SControlType:String;
begin
  screen.Cursor :=crHourGlass;
  query1.close;
  P_Filter :='select * from PRIVFUNCTION where 1=1  ';
  if trim(EdtFuncSerialIdQueryFrom.Text) <>'' then
  P_Filter:=P_Filter +' and FUNCSERIALID>='+trim(EdtFuncSerialIdQueryFrom.Text);

  if trim(EdtFuncSerialIdQueryTo.Text)  <>'' then
  P_Filter:=P_Filter+' and FUNCSERIALID<='+trim(EdtFuncSerialIdQueryTo.Text);

  if EdtFuncNameQuery.Text<>'' then
  P_Filter:=P_Filter+' and FUNCNAME Like '+#39+EdtFuncNameQuery.text+#39;
  
  if (trim(EdtFormCaptionQuery.Text)<>'') or (trim(EdtControlCaptionQuery.Text)<>'') then
  begin
    if (trim(EdtFormCaptionQuery.Text)<>'') and (trim(EdtControlCaptionQuery.Text)<>'') then
    P_Filter:=P_Filter+' and FUNCID like '+#39+P_QueryFORMNAME
              +'.'+P_QueryCONTROLNAME+#39
    else
      begin
        if (trim(EdtFormCaptionQuery.Text)<>'') then
        P_Filter:=P_Filter+' and FUNCID like '+#39+P_QueryFORMNAME+'.%'+#39;
        if (trim(EdtControlCaptionQuery.Text)<>'') then
        P_Filter:=P_Filter+' and FUNCID like '+#39+'%.'+P_QueryCONTROLNAME+#39;
      end;
  end;
   
  if EdtExtraQuery.Text<>'' then
  P_Filter:=P_Filter+' and EXTRA like '+#39+EdtExtraQuery.text+#39;

  if CmbControlTypeQuery.text<>'' then
  begin
    If CmbControlTypeQuery.Text='看不见' then
      V_SControlType:='INVISIBLE';

    If CmbControlTypeQuery.Text='看得见' then
      V_SControlType:='VISIBLE';

    If CmbControlTypeQuery.Text='可编辑' then
      V_SControlType:='ENABLED';

    If CmbControlTypeQuery.Text='不可编辑' then
      V_SControlType:='DISABLED';

    P_Filter:=P_Filter+' and CONTROLTYPE='+#39+V_SControlType+#39;
  end;

  query1.sql.text :=P_Filter;
  query1.open;
  If query1.Bof and query1.eof then
  begin
    Query1.AfterScroll(nil);
    screen.Cursor :=crDefault;
  end;

  screen.Cursor :=crDefault;
end;

procedure TRgtSelectFormFunctionSelect.BtnSelectClick(Sender: TObject);
begin
  ModalResult:=MrOk;
end;

procedure TRgtSelectFormFunctionSelect.BtnCancelClick(Sender: TObject);
begin
  ModalResult:=MrCanCel;
end;

procedure TRgtSelectFormFunctionSelect.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action:=CaFree;
end;

procedure TRgtSelectFormFunctionSelect.btn_sortClick(Sender: TObject);
begin
  p_Sort(query1,DbgPrivFunction);
end;

procedure TRgtSelectFormFunctionSelect.EdtFuncSerialIdQueryFromKeyPress(
  Sender: TObject; var Key: Char);
begin
  If not (Key in ['0'..'9',#8,#13]) then
    Key:=#0;
end;

procedure TRgtSelectFormFunctionSelect.EdtFuncSerialIdQueryToKeyPress(
  Sender: TObject; var Key: Char);
begin
  If not (Key in ['0'..'9',#8,#13]) then
    Key:=#0;
end;

procedure TRgtSelectFormFunctionSelect.SbSysFormCtrlListQueryClick(
  Sender: TObject);
var
  FormCtrlSelect :TRgtSelectFormCtrlSelect;
begin
  FormCtrlSelect :=nil;
  Try
    FormCtrlSelect:=TRgtSelectFormCtrlSelect.create(self);
    FormCtrlSelect.ShowModal;
    P_QueryFORMNAME :=FormCtrlSelect.P_FORMNAME;
    EdtFormCaptionQuery.Text :=FormCtrlSelect.P_QueryFORMNAME;
    P_QueryCONTROLNAME :=FormCtrlSelect.P_CONTROLNAME;
    EdtControlCaptionQuery.Text :=FormCtrlSelect.P_QueryCONTROLNAME;
  Finally
    FormCtrlSelect.Free;
  end;
end;

procedure TRgtSelectFormFunctionSelect.Query1AfterScroll(
  DataSet: TDataSet);
begin
  if query1.Active then
  begin
    P_FUNCID :=query1.fieldbyname('FUNCID').asstring;
    P_CONTROLTYPE :=query1.fieldbyname('CONTROLTYPE').asstring;
    P_FUNCNAME :=query1.fieldbyname('FUNCNAME').asstring;
    P_FUNCSERIALID :=query1.fieldbyname('FUNCSERIALID').asstring;
  end;
end;

procedure TRgtSelectFormFunctionSelect.DbgPrivFunctionDblClick(
  Sender: TObject);
begin
  ModalResult:=MrOk;
end;

end.

⌨️ 快捷键说明

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