PopupMenu ile yapılan işlemlerede refresh olayı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
denizfatihi

Re: PopupMenu ile yapılan işlemlerede refresh olayı

Mesaj gönderen denizfatihi »

Merhaba,

Yapmak istediğim aşama bazında yetki kontrolü yaparak popupmenu üzerinde ilerlemek.
DURUM alanını kontrol ederek misal 1 ise talep edilmiş durumda iken Birim müdürü aktif olsun ve onaylasın gibi.
Aşağıdaki kod Birim Müdürünü aktif ediyor yalnız DURUM kısmı güncellenmiyor.

şimdiden teşekkür ederim.

Talep_Edildi 1, Birim_Müdürü 2, İnsan_Kaynakları 3, Muhasebe_Finans 4, Nihayi_Kismi_Onay 5, Reddedildi 6






[
ACIKLAMA YETKI_DERECESI
Talep_Edildi 1
Birim_Müdürü 2
İnsan_Kaynakları 3
Muhasebe_Finans 4
Nihayi_Kismi_Onay 5
Reddedildi 6
]

Kod: Tümünü seç

procedure TMainForm.Reddedildi1Click(Sender: TObject);

procedure DisablePopupMenus(const Menu: TUniPopupMenu);
  var
    i: Integer;
  begin
   // Son menü seçeneği aktif/pasif değişmesin
    for i := 0 to Menu.Items.Count-1 do
      Menu.Items[i].Enabled := False;
  end;


var
  MenuItem: TMenuItem;
  Index: Integer;
begin
  MenuItem := TMenuItem(Sender);
  DisablePopupMenus(ProUniPopupMenu1);

  

    case MenuItem.Tag of
   
    0: begin
      if (UniEdit1.Text='1') and  (UniDBEdit2.Text='0')
      then
      begin
        UniMainModule.Qry_Produk_Durumu.Close();
        UniMainModule.Qry_Produk_Durumu.Parameters[0].Value := MenuItem.Tag + 1;
        UniMainModule.Qry_Produk_Durumu.Parameters[1].Value := StrToInt(UniDBEdit1.Text);
        UniMainModule.Qry_Produk_Durumu.ExecSQL();

     //  UniMainModule.Pro_Prod.Refresh();
       UniMainModule.Pro_Prod.Close();
       UniMainModule.Pro_Prod.Open();
      end;

      case MenuItem.Tag of
      1: begin
      if (UniEdit1.Text='2') and  (UniDBEdit2.Text='1')
      then
      begin
        UniMainModule.Qry_Produk_Durumu.Close();
        UniMainModule.Qry_Produk_Durumu.Parameters[0].Value := MenuItem.Tag + 1;
        UniMainModule.Qry_Produk_Durumu.Parameters[1].Value := StrToInt(UniDBEdit1.Text);
        UniMainModule.Qry_Produk_Durumu.ExecSQL();

       UniMainModule.Pro_Prod.Close();
       UniMainModule.Pro_Prod.Open();
      end;

    case MenuItem.Tag of
      2: begin

      if (UniEdit1.Text='3') and  (UniDBEdit2.Text='2')
      then
      begin
        UniMainModule.Qry_Produk_Durumu.Close();
        UniMainModule.Qry_Produk_Durumu.Parameters[0].Value := MenuItem.Tag + 1;
        UniMainModule.Qry_Produk_Durumu.Parameters[1].Value := StrToInt(UniDBEdit1.Text);
        UniMainModule.Qry_Produk_Durumu.ExecSQL();


       UniMainModule.Pro_Prod.Close();
       UniMainModule.Pro_Prod.Open();
      end;


    case MenuItem.Tag of

       3: begin

      if (UniEdit1.Text='4') and  (UniDBEdit2.Text='3')
      then
      begin
        UniMainModule.Qry_Produk_Durumu.Close();
        UniMainModule.Qry_Produk_Durumu.Parameters[0].Value := MenuItem.Tag + 1;
        UniMainModule.Qry_Produk_Durumu.Parameters[1].Value := StrToInt(UniDBEdit1.Text);
        UniMainModule.Qry_Produk_Durumu.ExecSQL();

       UniMainModule.Pro_Prod.Close();
       UniMainModule.Pro_Prod.Open();
      end;
    end;



Kod: Tümünü seç

procedure TMainForm.DataSource1DataChange(Sender: TObject; Field: TField);

//procedure SetEnabled(const Menu: TPopupMenu; const Index: Integer);
procedure SetEnabled(const Menu: TUniPopupMenu; const Index: Integer);
  var
    i: Integer;
  begin
    // En alttaki menü seçeneğine dokunma
    for i := 0 to Menu.Items.Count-2 do
    begin
      if i = Index  then
        Menu.Items[i].Enabled := True
      else
        Menu.Items[i].Enabled := False;
    end;
  end;
begin
  if DataSource1.State = dsBrowse then
  begin
  SetEnabled(ProUniPopupMenu1, UniMainModule.Pro_Prod.FieldByName('DURUMU').AsInteger);
  end;
Cevapla