📄 rgtrole.pas
字号:
//------------------------------------------------------------
// 作者:曾庆顺
// 模块:角色管理及角色对应的城市局向权限窗口
// 时间: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 + -