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

📄 rgtrole.pas

📁 delphi开发的中国移动大客户管理系统,后台数据库为oracle
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      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 + -