Sayfayı Yazdır | Pencereyi Kapat

Kontrol yapısında hata

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1233
Tarih: 23 Ocak 2026 Saat 18:58
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: Kontrol yapısında hata
Mesajı Yazan: M-Guney
Konu: Kontrol yapısında hata
Mesaj Tarihi: 18 Kasım 2025 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" rel="nofollow - 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">



Cevaplar:
Mesajı Yazan: M-Guney
Mesaj Tarihi: 18 Kasım 2025 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" rel="nofollow - 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"}]




Mesajı Yazan: M-Guney
Mesaj Tarihi: 18 Kasım 2025 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" rel="nofollow - 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">


Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 19 Kasım 2025 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" rel="nofollow - 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">



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net