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

📄 rgtrole.pas

📁 delphi开发的中国移动大客户管理系统,后台数据库为oracle
💻 PAS
📖 第 1 页 / 共 2 页
字号:
//------------------------------------------------------------
//      作者:曾庆顺
//      模块:角色管理及角色对应的城市局向权限窗口
//      时间:2002.09.20
//      功能介绍:
//-----------------------------------------------------------
unit RgtRole;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DBTables, DBCtrls, StdCtrls, Mask, Db, ImgList, ComCtrls, Buttons,
  ExtCtrls, Menus, Grids, DBGrids, TFlatButtonUnit, TFlatComboBoxUnit,crypt,procedurep;

type
  TDataCode = class
    Code:string;

  end;
  TRgtFrmRole = class(TForm)
    Splitter1: TSplitter;
    Panel1: TPanel;
    DBGrid1: TDBGrid;
    DataSource2: TDataSource;
    Query_Pub: TQuery;
    UpdateSQL1: TUpdateSQL;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    Pal_button: TPanel;
    BitBtnAdd: TFlatButton;
    BitBtnAlter: TFlatButton;
    BitBtnDel: TFlatButton;
    BitBtnSave: TFlatButton;
    BitBtnCancel: TFlatButton;
    BitBtnClose: TFlatButton;
    QueryTmp1: TQuery;
    Label1: TLabel;
    Label2: TLabel;
    FlatEdit1: TEdit;
    FlatEdit2: TEdit;
    TabSheet2: TTabSheet;
    DBGrid2: TDBGrid;
    Panel2: TPanel;
    Splitter2: TSplitter;
    Label3: TLabel;
    Label4: TLabel;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    DataSource1: TDataSource;
    Query1: TQuery;
    UpdateSQL2: TUpdateSQL;
    QueryCity: TQuery;
    QueryJX: TQuery;
    Query_Tmp: TQuery;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Query_PubAfterScroll(DataSet: TDataSet);
    procedure BitBtnCloseClick(Sender: TObject);
    procedure BitBtnAlterClick(Sender: TObject);
    procedure BitBtnDelClick(Sender: TObject);
    procedure BitBtnSaveClick(Sender: TObject);
    procedure BitBtnCancelClick(Sender: TObject);
    procedure BitBtnAddClick(Sender: TObject);
    procedure FlatEdit1KeyPress(Sender: TObject; var Key: Char);
    procedure ComboBox1Change(Sender: TObject);
    procedure Query1AfterScroll(DataSet: TDataSet);
    procedure FormDestroy(Sender: TObject);
    procedure PageControl1Changing(Sender: TObject;
      var AllowChange: Boolean);
    procedure DBGrid1Enter(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
  private
    { Private declarations }
    //当前的节日编码
    P_jbdm,P_SERIAL :string;
    //判断是否为插入状态
    P_Insert,P_Insert1,P_Save :boolean;
    //是否编辑标志
    P_Edit,P_Edit1 :boolean;
    // 创建拉框 pSpace 为真预先加入的一个值,其code为空
    Procedure CreateComboBox(Combobox:TCombobox;pQuery:TDataSet;pCode,pLabel:string;pSpace:string);
    //释放内存
    Procedure FreeNode(Combobox:TCombobox);
    //根据Code 得到索引号
    Function GetCodeIndex(Combobox:TCombobox;pCode:string):integer;
  public
    { Public declarations }
    P_jxdm,P_cityno,P_room :string;
  end;

var
  RgtFrmRole: TRgtFrmRole;

implementation
uses Main,unit_public, dmmain;

{$R *.DFM}

procedure TRgtFrmRole.FormShow(Sender: TObject);
begin
  inherited;
  P_Insert :=false;
  P_Insert1 :=false;
  P_Save :=false;
  PageControl1.ActivePageIndex :=0;
  FlatEdit1.Enabled :=false;
  FlatEdit2.Enabled :=false;
  BitBtnSave.Enabled :=false;
  Query_PUB.close;
  Query_PUB.open;
  Query_PUB.AfterScroll(nil);
   //建下拉框并定位
  QueryCity.close;
  QueryCity.Open;
  CreateComboBox(ComboBox1,QueryCity,'CITYNO','CITYNAME','');
  ComboBox1.ItemIndex :=0;
  ComboBox1Change(nil);
  //修改部分       2001-07-10         ChenQingBo
  BitBtnAdd.Enabled:=(JBDM<=2);
  BitBtnAlter.Enabled:=(JBDM<=2);
  BitBtnDel.Enabled:=(JBDM<=2);
end;

procedure TRgtFrmRole.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := CaFree;
end;
procedure TRgtFrmRole.Query_PubAfterScroll(DataSet: TDataSet);
begin

  FlatEdit1.Enabled :=false;
  FlatEdit2.Enabled :=false;
  if P_Insert then exit;
  P_jbdm :=Query_pub.fieldbyname('ROLEID').asstring;
  Flatedit1.text :=P_jbdm;
  Flatedit2.text :=Query_pub.fieldbyname('ROLENAME').asstring;
   //***********当没有记录时要控制按钮及权限************
  if PageControl1.ActivePageIndex=0 then
  If  not(Query_PuB.bof and Query_PuB.eof) Then
  begin
    //
    BitBtnAdd.Enabled:=true;
    BitBtnAlter.Enabled:=true;
    BitBtnDel.Enabled:=true;
    BitBtnSave.Enabled :=false;
    //权限
    BitBtnAdd.Enabled:=(JBDM<=2);
    BitBtnAlter.Enabled:=(JBDM<=2);
    BitBtnDel.Enabled:=(JBDM<=2);
  end
    else
      begin
        BitBtnAlter.Enabled:=false;
        BitBtnDel.Enabled:=false;
      end;
   //*******************************************
end;

procedure TRgtFrmRole.BitBtnCloseClick(Sender: TObject);
begin
  close;
end;

procedure TRgtFrmRole.BitBtnAlterClick(Sender: TObject);
begin
  case PageControl1.ActivePageIndex of
  0:begin
      P_edit:=true;
      FlatEdit1.Enabled :=false;
      FlatEdit2.Enabled :=true;
      FlatEdit2.SelectAll;
      FlatEdit2.SetFocus;
      BitBtnSave.Enabled :=true;
    end;
  1:begin
      if Query_Pub.Bof and Query_Pub.eof then exit;
      P_edit1:=true;
      ComboBox1.Enabled :=false;
      ComboBox2.Enabled :=true;
      ComboBox2.SelectAll;
      ComboBox2.SetFocus;
      BitBtnSave.Enabled :=true;
    end;
  end;
  P_Save :=true;
end;

procedure TRgtFrmRole.BitBtnDelClick(Sender: TObject);
var
  sql :string;
begin
  if MessageDlg('是否要删除该记录?',mtConfirmation, [mbYes,mbNo], 0)=mrNo then  exit;

  case PageControl1.ActivePageIndex of
  0:begin
      Sql :='Delete PRIVROLE where ROLEID='+#39+P_jbdm+#39;
      if AnalyzeSql(SQL)=1 then exit;
      FlatEdit1.text :='';
      FlatEdit2.text :='';
      Query_Pub.Delete;
      Query_PUB.AfterScroll(nil);
    end;
  1:begin
      if Query_Pub.Bof and Query_Pub.eof then exit;
      Sql :='Delete PRIVROLECITYOFF_NO_HOME where SERIAL='+#39
             +query1.fieldbyname('SERIAL').asstring+#39;
      if AnalyzeSql(SQL)=1 then exit;
      Query1.Delete;
      Query1.AfterScroll(nil);
    end;
  end;
end;

procedure TRgtFrmRole.BitBtnSaveClick(Sender: TObject);
var
  sql,P_CurrentCode : string;
begin
  case PageControl1.ActivePageIndex of
  0:begin
      if length(FlatEdit1.Text) >6 then
      begin
        MessageDlg('角色编码字段超过长度!',mtConfirmation, [mbYes], 0);
        exit;
      end;
      if length(FlatEdit1.Text) >30 then
      begin
        MessageDlg('角色名称字段超过长度!',mtConfirmation, [mbYes], 0);
        exit;
      end;

      if P_edit=false then
      begin
        QueryTmp1.close;
        QueryTmp1.sql.Text :='select count(*) from PRIVROLE where ROLEID='+#39+flatedit1.text+#39;
        QueryTmp1.open;
        if QueryTmp1.fields[0].AsInteger >0 then
        begin
          MessageDlg('级别编码已经存在!',mtConfirmation, [mbYes], 0);
          exit;
        end;
      end;
      //提示是否更新
      if P_edit=true then
      if MessageDlg('是否要更新该记录?',mtConfirmation, [mbYes,mbNo], 0)=mrNo then  exit;

      if P_edit=false then
         Begin
           //先判断级别是否存在
           Sql :='insert into PRIVROLE values('+#39+FlatEdit1.Text+#39+','+#39+FlatEdit2.Text+#39+')';

           if AnalyzeSql(SQL)=1 then exit;
         end
       else
         begin
            Sql :='update PRIVROLE set ROLENAME='+#39
            +FlatEdit2.Text+#39+' where ROLEID='+#39+P_JBDM+#39;

            if AnalyzeSql(SQL)=1 then exit;
         end;
      //*************数据同步********************
       if P_edit=false then
         Begin
           P_Insert :=true;
           Query_Pub.insert;
         end
       else
         begin
           P_Insert :=true;
           Query_Pub.Edit;
         end;

⌨️ 快捷键说明

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