📄 rgtfunctionmaintainfrmmain.pas
字号:
V_ControlType:='不可编辑';
CmbControlTypeEditing.itemindex :=CmbControlTypeEditing.items.IndexOf(V_ControlType);
EdtFuncNameEditing.text :=Query1.FieldByName('FUNCNAME').AsString;
EdtExtraEditing.Text :=Query1.FieldByName('EXTRA').AsString;
EdtFuncSerialIdEditing.text :=Query1.FieldByName('FUNCSERIALID').AsString;
P_CurrentCode :=EdtFuncSerialIdEditing.text;
ProcSetButton(Panel3,'2');
SbSysFormCtrlListEditing.Enabled :=false;
if not (query1.bof and query1.Eof) then
begin
BitBtnAlter.Enabled :=true;
BitBtnDel.Enabled :=true;
BitBtnSave.Enabled :=false;
end
else
begin
BitBtnAlter.Enabled :=false;
BitBtnDel.Enabled :=false;
BitBtnSave.Enabled :=false;
end;
end;
procedure TRgtFunctionMaintainMain.BitBtnCloseClick(Sender: TObject);
begin
close;
end;
procedure TRgtFunctionMaintainMain.BitBtnCancelClick(Sender: TObject);
begin
Query1AfterScroll(nil);
end;
procedure TRgtFunctionMaintainMain.BitBtnDelClick(Sender: TObject);
var
sqlstr :string;
begin
if MessageDlg('是否要删除该记录?',mtConfirmation, [mbYes,mbNo], 0)=mrNo then
exit;
sqlstr:='Delete PRIVFUNCTION where FUNCSERIALID='+
#39+EdtFuncSerialIdEditing.text+#39;
if AnalyzeSql(sqlstr)=1 then exit;
Query1.Delete;
Query1.AfterScroll(nil);
end;
procedure TRgtFunctionMaintainMain.ProcSetButton(I_Panel:TPanel;I_flag: string);
var
V_I :integer;
begin
if I_flag='0' then
begin
//清空编辑框
For V_I:=0 To (I_Panel.ControlCount-1) do
begin
If I_Panel.Controls[V_I].ClassType=TEdit then
begin
(I_Panel.Controls[V_I] as TEdit).enabled :=true;
(I_Panel.Controls[V_I] as TEdit).text:='';
end;
If I_Panel.Controls[V_I].ClassType=TComboBox then
begin
(I_Panel.Controls[V_I] as TComboBox).enabled :=true;
(I_Panel.Controls[V_I] as TComboBox).ItemIndex:=0;
end;
If I_Panel.Controls[V_I].ClassType=TBitBtn then
begin
(I_Panel.Controls[V_I] as TBitBtn).enabled :=true;
end;
end;
end;
if I_flag='1' then
begin
//编辑框可编辑
For V_I:=0 To (I_Panel.ControlCount-1) do
begin
If I_Panel.Controls[V_I].ClassType=TEdit then
begin
(I_Panel.Controls[V_I] as TEdit).enabled :=true;
end;
If I_Panel.Controls[V_I].ClassType=TComboBox then
begin
(I_Panel.Controls[V_I] as TComboBox).enabled :=true;
end;
If I_Panel.Controls[V_I].ClassType=TBitBtn then
begin
(I_Panel.Controls[V_I] as TBitBtn).enabled :=true;
end;
end;
end;
if I_flag='2' then
begin
//编辑框可编辑
For V_I:=0 To (I_Panel.ControlCount-1) do
begin
If I_Panel.Controls[V_I].ClassType=TEdit then
begin
(I_Panel.Controls[V_I] as TEdit).enabled :=false;
end;
If I_Panel.Controls[V_I].ClassType=TComboBox then
begin
(I_Panel.Controls[V_I] as TComboBox).enabled :=false;
end;
If I_Panel.Controls[V_I].ClassType=TBitBtn then
begin
(I_Panel.Controls[V_I] as TBitBtn).enabled :=false;
end;
end;
end;
end;
procedure TRgtFunctionMaintainMain.BitBtnAddClick(Sender: TObject);
begin
ProcSetButton(Panel3,'0');
CmbControlTypeEditing.SetFocus;
P_Insert :=true;
BitBtnSave.Enabled :=true;
SbSysFormCtrlListEditing.Enabled :=true;
EdtFormCaptionEditing.Text :='';
EdtControlCaptionEditing.Text :='';
P_FORMNAME :='';
P_CONTROLNAME :='';
end;
procedure TRgtFunctionMaintainMain.BitBtnAlterClick(Sender: TObject);
begin
ProcSetButton(Panel3,'1');
CmbControlTypeEditing.SetFocus;
SbSysFormCtrlListEditing.Enabled :=true;
P_Insert :=false;
BitBtnSave.Enabled :=true;
end;
procedure TRgtFunctionMaintainMain.BitBtnSaveClick(Sender: TObject);
var
sqlstr,V_ControlType : string;
begin
//提示是否更新
if P_Insert=false then
if MessageDlg('是否要更新该记录?',mtConfirmation, [mbYes,mbNo], 0)=mrNo then exit;
if trim(EdtFuncNameEditing.Text) ='' then
begin
MessageDlg('功能名称字段不能为空!',mtConfirmation, [mbYes], 0);
exit;
end;
if trim(EdtFormCaptionEditing.Text) ='' then
begin
MessageDlg('窗体标题字段不能为空!',mtConfirmation, [mbYes], 0);
exit;
end;
if trim(EdtControlCaptionEditing.Text) ='' then
begin
MessageDlg('控件含义字段不能为空!',mtConfirmation, [mbYes], 0);
exit;
end;
if trim(EdtFormCaptionEditing.Text) ='' then
begin
MessageDlg('窗体标题字段不能为空!',mtConfirmation, [mbYes], 0);
exit;
end;
if trim(EdtFormCaptionEditing.Text) ='' then
begin
MessageDlg('控件含义字段不能为空!',mtConfirmation, [mbYes], 0);
exit;
end;
if length(EdtFuncNameEditing.Text) >50 then
begin
MessageDlg('功能名称字段超过长度!',mtConfirmation, [mbYes], 0);
exit;
end;
if length(EdtExtraEditing.Text) >100 then
begin
MessageDlg('备注字段超过长度!',mtConfirmation, [mbYes], 0);
exit;
end;
If CmbControlTypeEditing.Text='看不见' then
V_ControlType:='INVISIBLE';
If CmbControlTypeEditing.Text='看得见' then
V_ControlType:='VISIBLE';
If CmbControlTypeEditing.Text='可编辑' then
V_ControlType:='ENABLED';
If CmbControlTypeEditing.Text='不可编辑' then
V_ControlType:='DISABLED';
//该窗体控件的这种功能已经存在不要再增加
if P_Insert then
begin
Qry_Edit.Close;
Qry_Edit.sql.text :=
'select count(*) from PRIVFUNCTION where FUNCID='+#39
+P_FORMNAME+'.'+P_CONTROLNAME+#39;
Qry_Edit.open;
if Qry_Edit.Fields[0].AsInteger >0 then
begin
Application.MessageBox('该窗体控件的这种功能已存在!请重新输入!','提示',MB_OK+MB_ICONWARNING);
Exit;
end;
end;
//**********************************************
if P_Insert then
Begin
sqlstr:='insert into PRIVFUNCTION (FUNCSERIALID,FUNCNAME,FUNCID,CONTROLTYPE,EXTRA) '
+' values(SEQ_FUNCSERIALID.nextval,'+#39+EdtFuncNameEditing.text+#39
+','+#39+P_FORMNAME+'.'+P_CONTROLNAME+#39+','
+#39+V_ControlType+#39+','+#39+EdtExtraEditing.Text+#39+')';
if AnalyzeSql(sqlstr)=1 then exit;
end
else
begin
sqlstr:='update PRIVFUNCTION set FUNCNAME='+#39+EdtFuncNameEditing.text+#39
+',FUNCID='+#39+P_FORMNAME+'.'+P_CONTROLNAME+#39
+',CONTROLTYPE='+#39+V_ControlType+#39
+',EXTRA='+#39+EdtExtraEditing.Text+#39
+' where FUNCSERIALID='+EdtFuncSerialIdEditing.text;
if AnalyzeSql(sqlstr)=1 then exit;
end;
//*************数据同步********************
if P_Insert then
Begin
P_edit :=true;
Query1.insert;
Qry_Edit.close;
Qry_Edit.sql.text :=
'select nvl(max(FUNCSERIALID),0) from PRIVFUNCTION ';
Qry_Edit.open;
P_CurrentCode :=Qry_Edit.fields[0].asstring;
end
else
begin
P_edit :=true;
Query1.Edit;
end;
Query1.FieldByName('FUNCID').AsString :=P_FORMNAME+'.'+P_CONTROLNAME;
Query1.FieldByName('CONTROLTYPE').AsString :=V_ControlType;
Query1.FieldByName('FUNCNAME').AsString :=EdtFuncNameEditing.text;
Query1.FieldByName('EXTRA').AsString :=EdtExtraEditing.Text;
Query1.FieldByName('FUNCSERIALID').AsString :=P_CurrentCode;
P_edit :=false;
Query1.Post;
//*****************************************
BitBtnSave.Enabled :=false;
Query1.AfterScroll(nil);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -