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;