Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - Kontrol yapısında hata
  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.

Kontrol yapısında hata

 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
Kıdemli Üye
Kıdemli Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 119
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: Kontrol yapısında hata
    Gönderim Zamanı: 20 Saat 50 Dakika Önce Saat 14:34

function IsArrayContain(FArr: TCLJSONArray; FJson: String; FArrayItem: String; FLookingStr: String): Boolean
var
  I: Integer;
  currentValue: String;
{
  Result = False;
  
  Try
    if (FArr == nil)
    {
      ShowMessage('Array is nil return back.');
      Result = False;
      Exit;
    }
    
    if (FJson == '')
    {
      ShowMessage('Array is empty return back.');
      Result = False;
      Exit;
    }
    for (I = 0 to (FArr.Count - 1))
    {
      Try
        currentValue = Clomosy.CLParseJSON(FJson, IntToStr(I) + '.' + FArrayItem);
        
        if (currentValue == FLookingStr)
        {
          ShowMessage('Find Item in Array: ' + FLookingStr);
          Result = True;
          //Exit;
        }
        //ShowMessage('Not Equal: ' + currentValue + 'LookingStr: '+ FLookingStr);
      except
      }
    }
  except
    Result = False;
  }
}

bunu kullanmak istiyorum fakat bulsa bile Result = True; döndürmüyor.

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
Kıdemli Üye
Kıdemli Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 119
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ı: 19 Saat 33 Dakika Önce Saat 15:51
Return tipini boolean dan stringe çevirince return işlemini gerçekleştridi fakat yine de kontrol edip ona göre işlem yapamıyorum.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">


void GetUserPrivilegesCompletedV(Sender)
var
  TempTableLbl : TclProLabel;
  jsonResponse: String;
  Arr : TCLJSONArray;
  I: Integer;
  hasViewOrders, hasTakePayment: Boolean;
{
  hasTakePayment = False;
  hasViewOrders = False;
  jsonResponse = TCLRest(Sender).Response;
  //ShowMessage('DB Connected: '+ jsonResponse);
  Arr = TCLJSONArray.Create;
Arr = TCLJSONArray.CreateFromJSON(jsonResponse);
  if(jsonResponse == ''){
    ShowMessage('Yetkiler listesi boş herhangi bir yetki yok.');
  }else{
      /*
      if(Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS')){
        Clomosy.RunUnit('uWaiterAndChefDetails');
        uWaiterAndChefDetails.SetOrderIDV(OrderID);
        TempTableLbl = MainForm.clFindComponent(TableName) as TclProLabel;
        uWaiterAndChefDetails.SetTitleV(TempTableLbl.Text);
        TCLRest(Sender).Free;
      }else {
        ShowMessage('yetkin yok');
      }*/
      //ShowMessage('Privileges output: '+ jsonResponse);
      //ShowMessage( Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS'));
      hasViewOrders = Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS');
      ShowMessage('hasViewOrders: '+ hasViewOrders);
      hasTakePayment = Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'TAKE_PAYMENT');
      ShowMessage('hasTakePayment: '+ hasTakePayment);
      //ShowMessage('Table Tag: ' + TClProButton(MainForm.Clsender).clTagInt); // clTagStr
      ShowMessage(hasViewOrders.type);
      if (hasViewOrders)
      {
        Clomosy.RunUnit('uWaiterAndChefDetails');
      ShowMessage('hasViewOrders: '+ hasViewOrders);
        
      }
      
      if (hasViewOrders && hasTakePayment)
      {
        Clomosy.RunUnit('SelectRoleV');
      }
      else if (hasViewOrders)
      {
        Clomosy.RunUnit('uWaiterAndChefDetails');
      }
      else if (hasTakePayment)
      {
        Clomosy.RunUnit('uCashierDetails');
      }
      else
      {
        ShowMessage('Uyarı: Gereken yetki bulunamadı!');
      }
      
      uWaiterAndChefDetails.SetOrderIDV(OrderID);
      TempTableLbl = MainForm.clFindComponent(TableName) as TclProLabel;
      uWaiterAndChefDetails.SetTitleV(TempTableLbl.Text);
      TCLRest(Sender).Free;
  }
  
}

örnek yetkilerim 

[{"privilege_name":"ADD_ORDER"},{"privilege_name":"DELETE_ORDER"},{"privilege_name":"VIEW_ORDERS"},{"privilege_name":"User"},{"privilege_name":"EDIT_ORDER"}]


Yukarı Dön
M-Guney Açılır Kutu İzle
Kıdemli Üye
Kıdemli Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 119
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ı: 19 Saat 31 Dakika Önce Saat 15:53

Fakat yine aldığım veriye göre işlem yapamıyorum
void GetUserPrivilegesCompletedV(Sender)
var
  TempTableLbl : TclProLabel;
  jsonResponse: String;
  Arr : TCLJSONArray;
  I: Integer;
  hasViewOrders, hasTakePayment: Boolean;
{
  hasTakePayment = False;
  hasViewOrders = False;
  jsonResponse = TCLRest(Sender).Response;
  //ShowMessage('DB Connected: '+ jsonResponse);
  Arr = TCLJSONArray.Create;
Arr = TCLJSONArray.CreateFromJSON(jsonResponse);
  if(jsonResponse == ''){
    ShowMessage('Yetkiler listesi boş herhangi bir yetki yok.');
  }else{
      /*
      if(Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS')){
        Clomosy.RunUnit('uWaiterAndChefDetails');
        uWaiterAndChefDetails.SetOrderIDV(OrderID);
        TempTableLbl = MainForm.clFindComponent(TableName) as TclProLabel;
        uWaiterAndChefDetails.SetTitleV(TempTableLbl.Text);
        TCLRest(Sender).Free;
      }else {
        ShowMessage('yetkin yok');
      }*/
      //ShowMessage('Privileges output: '+ jsonResponse);
      //ShowMessage( Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS'));
      hasViewOrders = Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'VIEW_ORDERS');
      ShowMessage('hasViewOrders: '+ hasViewOrders);
      hasTakePayment = Main.IsArrayContain(Arr, jsonResponse, 'privilege_name', 'TAKE_PAYMENT');
      ShowMessage('hasTakePayment: '+ hasTakePayment);
      //ShowMessage('Table Tag: ' + TClProButton(MainForm.Clsender).clTagInt); // clTagStr
      ShowMessage(hasViewOrders.type);
      if (hasViewOrders)
      {
        Clomosy.RunUnit('uWaiterAndChefDetails');
      ShowMessage('hasViewOrders: '+ hasViewOrders);
        
      }
      
      if (hasViewOrders && hasTakePayment)
      {
        Clomosy.RunUnit('SelectRoleV');
      }
      else if (hasViewOrders)
      {
        Clomosy.RunUnit('uWaiterAndChefDetails');
      }
      else if (hasTakePayment)
      {
        Clomosy.RunUnit('uCashierDetails');
      }
      else
      {
        ShowMessage('Uyarı: Gereken yetki bulunamadı!');
      }
      
      uWaiterAndChefDetails.SetOrderIDV(OrderID);
      TempTableLbl = MainForm.clFindComponent(TableName) as TclProLabel;
      uWaiterAndChefDetails.SetTitleV(TempTableLbl.Text);
      TCLRest(Sender).Free;
  }
  
}

[{"privilege_name":"ADD_ORDER"},{"privilege_name":"DELETE_ORDER"},{"privilege_name":"VIEW_ORDERS"},{"privilege_name":"User"},{"privilege_name":"EDIT_ORDER"}]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
Puanlar: 431
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 1 Dakika Önce Saat 09:23
Merhaba Güney, 


function IsArrayContain(FArr: TCLJSONArray; FJson: String; FArrayItem: String; FLookingStr: String): Boolean
var
  I: Integer;
  currentValue: String;
{
  // ÖNEMLİ: Result'ı başlangıçta False yap
  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);
        
        currentValue = Trim(currentValue);
        
        if (currentValue == FLookingStr)
        {
          Result = True;
          Exit; 
        }
      
      except
      
        
      }
    }
  
  except
  
    Result = False;
  }
}



void GetUserPrivilegesCompletedV(Sender)
var
  TempTableLbl: TclProLabel;
  jsonResponse: String;
  Arr: TCLJSONArray;
  I: Integer;
  hasViewOrders: Boolean;
  hasTakePayment: Boolean;
  restObj: TCLRest;
{
  Try
  
    restObj = TCLRest(Sender);
    
    if (restObj == nil)
    {
      ShowMessage(' HATA: Sender nil!');
      Exit;
    }
    
    jsonResponse = restObj.Response;
    
    hasTakePayment = False;
    hasViewOrders = False;
    
    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');
      
      
      if (hasViewOrders && hasTakePayment)
      {
        ShowMessage(' İki yetki de var → SelectRoleV');
        Clomosy.RunUnit('SelectRoleV');
      }
      else if (hasViewOrders)
      {
        ShowMessage(' VIEW_ORDERS var → uWaiterAndChefDetails');
        Clomosy.RunUnit('uWaiterAndChefDetails');
      }
      else if (hasTakePayment)
      {
        ShowMessage(' TAKE_PAYMENT var → uCashierDetails');
        Clomosy.RunUnit('uCashierDetails');
      }
      else
      {
        ShowMessage('️ Uyarı: Gereken yetki bulunamadı!');
        ShowMessage('Mevcut yetkiler: ' + jsonResponse);
      }
      
      if (hasViewOrders)
      {
        Try
          uWaiterAndChefDetails.SetOrderIDV(OrderID);
          TempTableLbl = MainForm.clFindComponent(TableName) as TclProLabel;
          if (TempTableLbl <> nil)
          {
            uWaiterAndChefDetails.SetTitleV(TempTableLbl.Text);
          }
        except
          ShowMessage('️ Sayfa parametreleri ayarlanırken hata: ' + LastExceptionMessage);
        }
      }
    }
    
    if (Arr <> nil)
    {
      Try
        Arr.Free;
        Arr = nil;
      except
      
      }
    }
    
    if (restObj <> nil)
    {
      Try
      
        restObj = nil;
      
      except
      
      }
    }
  
  except
  
    ShowMessage(' GetUserPrivilegesCompletedV hatası: ' + LastExceptionMessage);
  }
}



void GetUserPrivilegesCompletedV_Debug(Sender)
var
  TempTableLbl: TclProLabel;
  jsonResponse: String;
  Arr: TCLJSONArray;
  I: Integer;
  hasViewOrders: Boolean;
  hasTakePayment: Boolean;
  restObj: TCLRest;
  debugInfo: String;
  currentPrivilege: String;
{
  Try
  
    restObj = TCLRest(Sender);
    
    if (restObj == nil)
    {
      ShowMessage(' HATA: Sender nil!');
      Exit;
    }
    
    jsonResponse = restObj.Response;
    
    debugInfo = ' DEBUG BAŞLADI' + #13#10;
    debugInfo = debugInfo + ' Response uzunluğu: ' + IntToStr(Length(jsonResponse)) + #13#10;
    debugInfo = debugInfo + ' Response: ' + Copy(jsonResponse, 1, 200) + #13#10;
    
    hasTakePayment = False;
    hasViewOrders = False;
    
    Arr = TCLJSONArray.Create;
    Arr = TCLJSONArray.CreateFromJSON(jsonResponse);
    
    if (jsonResponse == '')
    {
      ShowMessage(debugInfo + '️ Response boş!');
      Exit;
    }
    
    debugInfo = debugInfo + ' Yetkiler (' + IntToStr(Arr.Count) + ' adet):' + #13#10;
    
    for (I = 0 to Arr.Count - 1)
    {
      Try
      
        currentPrivilege = Clomosy.CLParseJSON(jsonResponse, IntToStr(I) + '.privilege_name');
        debugInfo = debugInfo + '  - ' + IntToStr(I) + ': ' + currentPrivilege + #13#10;
      
      except
      
        debugInfo = debugInfo + '  - ' + IntToStr(I) + ': [HATA]' + #13#10;
      }
    }
    
    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('uWaiterAndChefDetails');
      Try
      
        uWaiterAndChefDetails.SetOrderIDV(OrderID);
        TempTableLbl = MainForm.clFindComponent(TableName) as TclProLabel;
        if (TempTableLbl <> nil)
        {
          uWaiterAndChefDetails.SetTitleV(TempTableLbl.Text);
        }
      
      except
      
      }
    }
    else if (hasTakePayment)
    {
      Clomosy.RunUnit('uCashierDetails');
    }
    else
    {
      ShowMessage('️ Uyarı: Gereken yetki bulunamadı!');
    }
    
    
    if (Arr <> nil)
    {
      Try
      
        Arr.Free;
        Arr = nil;
      
      except
      
      }
    }
    
    if (restObj <> nil)
    {
      Try
      
        restObj.Free;
        restObj = nil;
      
      except
      
      }
    }
  
  except
  
    ShowMessage(' GetUserPrivilegesCompletedV_Debug hatası: ' + LastExceptionMessage);
  }
}

inceleye bilir 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
 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,078 Saniyede Yüklendi.