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

📄 rgtfunctionmaintainfrmmain.pas

📁 一个不错的源程序DELPHI开发的,功能比较好的客户管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    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 + -