Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - if döngüsünde kontrol etme
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

if döngüsünde kontrol etme

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
M-Guney Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 79
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: if döngüsünde kontrol etme
    Gönderim Zamanı: 7 Saat 41 Dakika Önce Saat 11:46

IsArrayContain fonksiyonum bana boolean bir değer döndürüyor eğer ki benim iki yetkim de olursa sorunsuzca istiefğim sayfaya yönelendiriyor fakat eğer ki benim bu yetkilerden birine sahipsem yönlendirme yapmıyor.


    ShowMessage('Privileges output: '+ jsonResponse);
      
      if((Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS')) && (Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'TAKE_PAYMENT')))
      {
          Clomosy.RunUnit('SelectRoleV');
      }
      else if(Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS')){
        Clomosy.RunUnit('uWaiter&ChefDetails');
      }
      else if(Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'TAKE_PAYMENT')){
        Clomosy.RunUnit('uCashierDetails');
      }
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 391
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 4 Saat 60 Dakika Önce Saat 14:27
Merhaba Güney,
Muhtemel hata,
Boolean döndürmüyor, 
else if koşullarını yanlış değerlendiriyor olabilir ya da JSON parsing hatası olabilir. 

https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 391
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 4 Saat 53 Dakika Önce Saat 14:34
Kodun bir önce ki ve kalan kısmını da paylaşabilir misin?https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">

Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 391
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 4 Saat 48 Dakika Önce Saat 14:39
void CheckPrivileges
var
  hasViewOrders: Boolean;
  hasTakePayment: Boolean;
{
  Try
    ShowMessage('Privileges output: ' + jsonResponse);
    
    hasViewOrders = Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS');
    hasTakePayment = Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'TAKE_PAYMENT');
    
    if (hasViewOrders && hasTakePayment)
    {
      Clomosy.RunUnit('SelectRoleV');
    }
    else if (hasViewOrders)
    {
      Clomosy.RunUnit('uWaiter&ChefDetails');
    }
    else if (hasTakePayment)
    {
      Clomosy.RunUnit('uCashierDetails');
    }
    else
    {
      ShowMessage('Hiçbir yetki bulunamadı');
    }
  except
    ShowMessage('Exception: ' + LastExceptionMessage);
  }


inceleyip dener misin
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
M-Guney Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 79
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 3 Saat 53 Dakika Önce Saat 15:34
Kodun bulundguğu kısım


void GetUserPrivilegesCompletedV
var
  jsonResponse: String;
  Arr : TCLJSONArray;
  I: Integer;
{
  jsonResponse = TCRest.Response
  ShowMessage(jsonResponse);
  Arr = TCLJSONArray.Create;
Arr = TCLJSONArray.CreateFromJSON(jsonResponse);
  if(jsonResponse == ''){
    ShowMessage('Yetkiler listesi boş herhangi bir yetki yok.')
  }else{
    //ShowMessage('Privileges output: '+ jsonResponse);
      
      if((Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS')) && (Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'TAKE_PAYMENT')))
      {
          Clomosy.RunUnit('SelectRoleV');
      }
      else if(Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS')){
        ShowMessage(TClProButton(MainForm.Clsender).clTagStr);
        Clomosy.RunUnit('uWaiterAndChefDetails');
        //uWaiterAndChefDetails.SetTitleV();
        
      }
      else if(Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'TAKE_PAYMENT')){
        Clomosy.RunUnit('uCashierDetails');
      }
      /*
    for (I=0 to Arr.Count -1)
    {
    }
      if(Clomosy.CLParseJSON(FJson, IntToStr(I) + '.privilege_name') == 'VIEW_ORDERS'){
        if(Clomosy.CLParseJSON(FJson, IntToStr(I) + '.privilege_name') == 'TAKE_PAYMENT'){
          Clomosy.RunUnit('SelectRoleV');}
        else {
        Clomosy.RunUnit('uWaiterAndChefDetails');}
      }
      else if(Clomosy.CLParseJSON(FJson, IntToStr(I) + '.privilege_name') == 'TAKE_PAYMENT'){
        if(Clomosy.CLParseJSON(FJson, IntToStr(I) + '.privilege_name') == 'VIEW_ORDERS'){
          Clomosy.RunUnit('SelectRoleV');}
        else {
        Clomosy.RunUnit('uCashierDetails');}
      }
      
    }
    
*/
  }
  
}

Maindeki fonksiyonum 

function IsArrayContain(FArr : TCLJSONArray; FJson, FArrayItem, FLookingStr : String): Boolean;
  var 
    I : Integer;
    IsValid : Boolean;
  {
   if((Clomosy.CLParseJSON(FJson, IntToStr(I) + '.'+ FArrayItem) <> '') || (Clomosy.CLParseJSON(FJson, IntToStr(I) + '.'+ FArrayItem) <> nil))
   {
    IsValid = true
   }
   if(IsValid){
     for(I=0 to FArr.Count-1) 
     {
        if(Clomosy.CLParseJSON(FJson, IntToStr(I) + '.'+ FArrayItem) == FLookingStr)
        {
          Result = True;
        }
      }
    }else Result = False;
}



https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 391
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 2 Saat 58 Dakika Önce Saat 16:29
Güney tespit ettiğim problemler;
Result başlangıçta False olarak ayarlanmamış
 Döngü içinde Exit komutu yok , bu yüzden gereksiz yere tüm döngüyü dolaşıyor
 || yerine && kullanman 

function IsArrayContain(FArr: TCLJSONArray; FJson: String; FArrayItem: String; FLookingStr: String): Boolean
var
  I: Integer;
  currentValue: String;
{
  Result = False;
  
  Try
    if (FArr == nil)
    {
      Result = False;
      Exit;
    }
    
    if (FJson == '')
    {
      Result = False;
      Exit;
    }
    
    for (I = 0 to (FArr.Count - 1))
    {
      Try
        currentValue = Clomosy.CLParseJSON(FJson, IntToStr(I) + '.' + FArrayItem);
        
        
        if (currentValue == FLookingStr)
        {
          Result = True;
          Exit; 
        }
      except
      }
  }
  except
    Result = False;
  }
}


void GetUserPrivilegesCompletedV
var
  jsonResponse: String;
  Arr: TCLJSONArray;
  I: Integer;
  hasViewOrders: Boolean;
  hasTakePayment: Boolean;
{
  Try
    jsonResponse = TCRest.Response; 
    
    ShowMessage('Privileges JSON: ' + jsonResponse);
    
    Arr = TCLJSONArray.Create;
    Arr = TCLJSONArray.CreateFromJSON(jsonResponse);
    
    if (jsonResponse == '')
    {
      ShowMessage('Yetkiler listesi boş herhangi bir yetki yok.');
    }
    else
    {
      hasViewOrders = Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS');
      hasTakePayment = Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'TAKE_PAYMENT');
      
      ShowMessage(hasViewOrders); // debug 
      ShowMessage(hasTakePayment);  // debug
      
      if (hasViewOrders && hasTakePayment)
      {
        Clomosy.RunUnit('SelectRoleV');
      }
      else if (hasViewOrders)
      {
        Clomosy.RunUnit('uWaiterAndChefDetails');
      }
      else if (hasTakePayment)
      {
        ShowMessage('→ uCashierDetails sayfasına yönlendiriliyor');
        Clomosy.RunUnit('uCashierDetails');
      }
      else
      {
        ShowMessage('Uyarı: Hiçbir yetki bulunamadı!');
      }
    }
    
    if (Arr <> nil)
    {
      Try
        Arr.Free;
        Arr = nil;
      except
      }
    }
  except
    ShowMessage('Exception Class: ' + LastExceptionClassName + ' Exception Message: ' + LastExceptionMessage);
  }


kodunla karşılaştırıp bakabilir misin 
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 391
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (1) Teşekkürler(1)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 2 Saat 55 Dakika Önce Saat 16:32
  if((Clomosy.CLParseJSON(FJson, IntToStr(I) + '.'+ FArrayItem) <> '') || (Clomosy.CLParseJSON(FJson, IntToStr(I) + '.'+ FArrayItem) <> nil))
   {
    IsValid = true
   } 

burada ki kontrolün her zaman true dönüyor mu? 


https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
M-Guney Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 79
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 1 saat 56 Dakika Önce Saat 17:31
Hayır eğer ki iki yetkiye de sahipse yönlendirebiliyorum fakat tek bir yetkiye sahipse herhangi bir şekilde yönlendirme yapamıyorum.

Fakat eğer ki sadece birine sahipse problem olmuyor.
Yukarı Dön
M-Guney Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 79
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (1) Teşekkürler(1)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 1 saat 53 Dakika Önce Saat 17:34
Sizin kodunuzla beraber kontolu doğru şekilde yapabildim teşekkürler.https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,031 Saniyede Yüklendi.