📄 rgtrole.pas
字号:
Query_PUB.FieldByName('ROLEID').AsString :=FlatEdit1.Text;
Query_PUB.FieldByName('ROLENAME').AsString :=FlatEdit2.Text;
P_Insert :=false;
Query_Pub.Post;
//*****************************************
//SetBitBtn(true);
Query_PUB.AfterScroll(nil);
end;
1:begin
if Query_Pub.Bof and Query_Pub.eof then exit;
if P_edit1=false then
begin
QueryTmp1.close;
QueryTmp1.sql.Text :='select count(*) from PRIVROLECITYOFF_NO_HOME '
+' where CITYNO='+#39+
TDataCode(ComboBox1.Items.Objects[ComboBox1.ItemIndex]).Code+#39
+' and OFF_NO_HOME='+#39
+TDataCode(ComboBox2.Items.Objects[ComboBox2.ItemIndex]).Code+#39;
QueryTmp1.open;
if QueryTmp1.fields[0].AsInteger >0 then
begin
MessageDlg('该角色对应城市局向权限已经存在!',mtConfirmation, [mbYes], 0);
exit;
end;
end;
//提示是否更新
if P_edit1=true then
if MessageDlg('是否要更新该记录?',mtConfirmation, [mbYes,mbNo], 0)=mrNo then exit;
if P_edit1=false then
Begin
//先判断级别是否存在
Sql :='insert into PRIVROLECITYOFF_NO_HOME values(SEQ_SERIAL.nextval,'
+Query_Pub.fieldbyname('ROLEID').asstring+','
+#39+Query_Pub.fieldbyname('ROLENAME').asstring+#39+','
+TDataCode(ComboBox2.Items.Objects[ComboBox2.ItemIndex]).Code
+','+#39+TDataCode(ComboBox1.Items.Objects[ComboBox1.ItemIndex]).Code+#39+')';
if AnalyzeSql(SQL)=1 then exit;
end
else
begin
Sql :='update PRIVROLECITYOFF_NO_HOME set OFF_NO_HOME='
+TDataCode(ComboBox2.Items.Objects[ComboBox2.ItemIndex]).Code
+' ,CITYNO='+#39+TDataCode(ComboBox1.Items.Objects[ComboBox1.ItemIndex]).Code+#39
+' where SERIAL='+Query1.fieldbyname('SERIAL').asstring;
if AnalyzeSql(SQL)=1 then exit;
end;
//*************数据同步********************
if P_edit1=false then
Begin
P_Insert1 :=true;
Query1.insert;
Query_Tmp.close;
Query_Tmp.sql.text := //大小写问题Diploma_ID
'select nvl(max(SERIAL),0) from PRIVROLECITYOFF_NO_HOME ';
Query_Tmp.open;
P_CurrentCode :=Query_Tmp.fields[0].asstring;
end
else
begin
P_Insert1 :=true;
Query1.Edit;
end;
Query1.FieldByName('SERIAL').AsString :=P_CurrentCode;
Query1.FieldByName('ROLEID').AsString :=Query_Pub.fieldbyname('ROLEID').asstring;
Query1.FieldByName('ROLENAME').AsString :=Query_Pub.fieldbyname('ROLENAME').asstring;
Query1.FieldByName('OFF_NO_HOME').AsString :=TDataCode(ComboBox2.Items.Objects[ComboBox2.ItemIndex]).Code;
Query1.FieldByName('CITYNO').AsString :=TDataCode(ComboBox1.Items.Objects[ComboBox1.ItemIndex]).Code;
Query1.FieldByName('CITYNAME').AsString :=ComboBox1.text;
Query1.FieldByName('HOME_NAME').AsString :=ComboBox2.text;
P_Insert1 :=false;
Query1.Post;
//*****************************************
Query1.AfterScroll(nil);
end;
end;
P_Save :=false;
BitBtnSave.Enabled :=false;
end;
procedure TRgtFrmRole.BitBtnCancelClick(Sender: TObject);
begin
inherited;
case PageControl1.ActivePageIndex of
0:begin
Query_PUB.AfterScroll(nil);
end;
1:begin
Query1.AfterScroll(nil);
end;
end;
P_Save :=false;
end;
procedure TRgtFrmRole.BitBtnAddClick(Sender: TObject);
begin
case PageControl1.ActivePageIndex of
0:begin
P_edit :=false;
FlatEdit1.Text:='';
FlatEdit2.Text:='';
FlatEdit1.Enabled :=true;
FlatEdit2.Enabled :=true;
FlatEdit1.SetFocus;
BitBtnSave.Enabled :=true;
end;
1:begin
if Query_Pub.Bof and Query_Pub.eof then exit;
P_edit1 :=false;
ComboBox1.Enabled :=true;
ComboBox1.ItemIndex :=0;
ComboBox2.Enabled :=true;
ComboBox1.SetFocus;
BitBtnSave.Enabled :=true;
end;
end;
P_Save :=true;
end;
procedure TRgtFrmRole.FlatEdit1KeyPress(Sender: TObject; var Key: Char);
begin
If not (Key in ['0'..'9',#8,#13]) then
Key:=#0;
end;
procedure TRgtFrmRole.CreateComboBox(Combobox: TCombobox; pQuery: TDataSet;
pCode,pLabel, pSpace: string);
var Ldata:TDataCode;
begin
FreeNode(Combobox);
ComboBox.Clear;
if pSpace<>'' then
begin
//先加一个空值
Ldata:=TdataCode.Create;
Ldata.Code:='';
ComboBox.Items.AddObject(pSpace,Ldata);
end;
if not pQuery.Active then exit;
//从数据库里取数据
pQuery.First;
while not pQuery.Eof do
begin
Ldata:=TdataCode.Create;
Ldata.Code:=trim(pQuery.FieldByName(pCode).AsString);
ComboBox.Items.AddObject(trim(pQuery.FieldByName(pLabel).AsString),Ldata);
pQuery.Next;
end;
end;
procedure TRgtFrmRole.FreeNode(Combobox: TCombobox);
var
i:integer;
Ldata:TDataCode;
begin
for i:=0 to ComboBox.Items.Count - 1 do
begin
Ldata:=TdataCode(ComboBox.Items.Objects[i]);
if Ldata <> nil then Ldata.Free;
end;
end;
function TRgtFrmRole.GetCodeIndex(Combobox: TCombobox;
pCode: string): integer;
var
i:integer;
begin
result:=0;
for i:=0 to ComboBox.Items.Count - 1 do
begin
if (ComboBox.Items.Objects[i]<>nil) and (pCode = TDataCode(ComboBox.Items.Objects[i]).Code) then
begin
result:=i;
break;
end;
end;
end;
procedure TRgtFrmRole.ComboBox1Change(Sender: TObject);
var
FCode :string;
begin
FCode:=TDataCode(ComboBox1.Items.Objects[ComboBox1.ItemIndex]).Code;
QueryJX.close;
QueryJX.sql.text :='Select * from T_D_County'
+' where CITYNO='+#39+FCode+#39
+' order by CITYNO,OFF_NO_HOME';
QueryJX.open;
CreateComboBox(ComboBox2,QueryJX,'OFF_NO_HOME','HOME_NAME','');
ComboBox2.ItemIndex :=0;
end;
procedure TRgtFrmRole.Query1AfterScroll(DataSet: TDataSet);
begin
ComboBox1.Enabled :=false;
ComboBox2.Enabled :=false;
if P_Insert1 then exit;
ComboBox1.Itemindex :=ComboBox1.items.IndexOf(query1.fieldbyname('CITYNAME').asstring);
ComboBox2.Itemindex :=ComboBox2.items.IndexOf(query1.fieldbyname('HOME_NAME').asstring);
//***********当没有记录时要控制按钮及权限************
if PageControl1.ActivePageIndex=1 then
If not(Query1.bof and Query1.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;
BitBtnSave.Enabled :=false;
end;
//*******************************************
end;
procedure TRgtFrmRole.FormDestroy(Sender: TObject);
begin
FreeNode(Combobox1);
FreeNode(Combobox2);
end;
procedure TRgtFrmRole.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
if P_Save then
begin
if MessageDlg('当前记录已经发生改变,请您先保存!',mtConfirmation,
[mbYes],0)=mryes then
AllowChange :=false;
end;
end;
procedure TRgtFrmRole.DBGrid1Enter(Sender: TObject);
begin
if P_Save then
begin
PageControl1.ActivePage.SetFocus;
end;
end;
procedure TRgtFrmRole.PageControl1Change(Sender: TObject);
begin
if not (Query_Pub.Bof and Query_Pub.eof) then
begin
Query1.close;
query1.sql.text :='select a.*,b.home_name,c.cityname from '
+' PRIVROLECITYOFF_NO_HOME a'
+',T_D_County b,T_D_CITY c where '
+' a.cityno=b.cityno(+) and a.off_no_home=b.off_no_home(+) '
+' and a.cityno=c.cityno(+) '
+' and a.ROLEID='+Query_Pub.fieldbyname('ROLEID').asstring;
query1.open;
if query1.Bof and query1.eof then
Query1AfterScroll(nil);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -