Sayfayı Yazdır | Pencereyi Kapat

prolistview'e jsondan gerekli kısımların çekilmesi

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=961
Tarih: 04 Ocak 2025 Saat 11:00
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: prolistview'e jsondan gerekli kısımların çekilmesi
Mesajı Yazan: kursat
Konu: prolistview'e jsondan gerekli kısımların çekilmesi
Mesaj Tarihi: 14 Kasım 2024 Saat 11:56
  void addDataToComponent;
  var
    JSONObject: TCLJSONQuery;
    clRest  : TCLRest;
  {
    clRest=TCLRest.Create;
    JSONObject = TCLJSONQuery.Create(nil); 
    
    try
      clRest.BaseURL = 'http://xxx:5050/ClApi/api/SABITCARI';
      clRest.Accept = 'application/json';
      clRest.Method = rmGET;
      clRest.Execute;
      
      JSONObject = Clomosy.ClDataSetFromJSON(clRest.Response);
      
      if(JSONObject.Found){
        while (not JSONObject.Eof)
          {
            PPListView1.clLoadProListViewDataFromDataset(Clomosy.ClDataSetFromJSON('[' +
            '{"carI_KODU": "' + JSONObject.FieldByName('carI_KODU').AsString + '",' +
            '"carI_ADI": "' + JSONObject.FieldByName('carI_ADI').AsString + '",' +
            '"carI_IL": "' + JSONObject.FieldByName('carI_IL').AsString + '"}' +
            ']'));
            
            JSONObject.Next;
          }
          //PPListView1.clLoadProListViewDataFromDataset(Clomosy.ClDataSetFromJSON(JSONObject));
      }
      else
        ShowMessage('cari bulunamadi');
    except
      ShowMessage('Exception class: '+LastExceptionClassName+' Exception Message2: ' +LastExceptionMessage);
    }
  }

bu fonksiyon ile verileri prolistview içerisindeki carI_KODU,carI_ADI,carI_IL labellerine çekmek istiyorum ancak json yapısındaki son değeri çekiyor.

eğer aşağıdaki gibi çekmek istersem sadece ilk veriyi çekiyor.
PPListView1.clLoadProListViewDataFromDataset(Clomosy.ClDataSetFromJSON('[' +
            '{"carI_KODU": "' + JSONObject.FieldByName('carI_KODU').AsString + '",' +
            '"carI_ADI": "' + JSONObject.FieldByName('carI_ADI').AsString + '",' +
            '"carI_IL": "' + JSONObject.FieldByName('carI_IL').AsString + '"}' +
            ']'));
            
            JSONObject.Next;
          }

apide bulunan json aşağıdaki gibidir.
{
    "carI_KODU": "45",
    "carI_ADI": "Mert Otomotiv Yedek Parça Sanayi ve Ticaret Ltd. Şti.",
    "carI_TIPI": "B",
    "carI_ADRES": "Yıldırım Mh. Demir Sk. No:12",
    "carI_ILCE": "Osmangazi",
    "carI_IL": "Bursa",
    "vergI_DAIRESI": "Bursa Vergi Dairesi",
    "vergI_NO": "1234567890",
    "tC_NO": "",
    "carI_POSTAKODU": "16200",
    "carI_TELEFON": "(224) 335-45-67",
    "carI_YETKILI": "Ahmet Çalışkan",
    "carI_EPOSTA": "[email protected]",
    "carI_WEBSITE": " http://www.mertotomotiv.com" rel="nofollow - www.mertotomotiv.com" ,
    "aciklamA1": "Yeni müşteri",
    "aciklamA2": "Özel indirim uygulanacak",
    "aciklamA3": "",
    "borC_TOPLAM": 153000.0,
    "alacaK_TOPLAM": 120000.0,
    "giB_EFATURA_MUKELLEFI": true
}

tempJSON oluşturup döngü ile gerekli kısımları tek tek ona alıp gerekli verileri çekebileceğim bir fonksiyon örneği mevcut mu?




Cevaplar:
Mesajı Yazan: BilalCndn
Mesaj Tarihi: 21 Kasım 2024 Saat 09:19
Merhaba Kürşat,

ListView1.clLoadProListViewDataFromDataset(Clomosy.ClDataSetFromJSON(clRest.Response));
Sadece bu satır ile bağlarsan sorunun çözülecektir. Tek tek FieldByName ile ayırmana gerek yok.


Statik JSON Kullanılmış Örnek Kod:
Var   
  Form1:TclForm;
  ListView1 : TClProListView;
  DesignerPanel1 : TClListViewDesignerPanel;
  carI_KODU, carI_ADI, carI_IL : TclProLabel;
  
void TaskClick;
{
  ShowMessage(' Item: ' + ListView1.clSelectedItemData(clText));
}

void CreateListView
{
  ListView1 = Form1.AddNewProListView(Form1,'ListView1');
  ListView1.Align = AlClient;
  ListView1.Margins.Bottom = 20;
  ListView1.Margins.Top = 20;
  ListView1.Margins.Right = 20;
  ListView1.Margins.Left = 20;
  ListView1.clProSettings.ViewType = lvIcon; //(lvList, lvIcon, lvWaterFall)
  ListView1.clProSettings.ColCount = 1;
  ListView1.clProSettings.ItemHeight = 100;
  ListView1.clProSettings.ItemSpace = 10;
  ListView1.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFCFF');
  ListView1.clProSettings.BorderColor = clAlphaColor.clHexToColor('#66FF7F');
  ListView1.clProSettings.BorderWidth = 2;
  ListView1.clProSettings.RoundHeight = 5;
  ListView1.clProSettings.RoundWidth = 5;
  ListView1.SetclProSettings(ListView1.clProSettings);
}

void CreateDesignerPanel
{
  DesignerPanel1 = Form1.AddNewProListViewDesignerPanel(ListView1, 'DesignerPanel1');
  DesignerPanel1.Height = 100;
  DesignerPanel1.Width = 150;
  DesignerPanel1.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#B3FCE5');
  DesignerPanel1.clProSettings.BorderColor = clAlphaColor.clHexToColor('#16FF8C');
  DesignerPanel1.clProSettings.BorderWidth = 2;
  DesignerPanel1.clProSettings.RoundHeight = 20;
  DesignerPanel1.clProSettings.RoundWidth = 20;
  DesignerPanel1.SetclProSettings(DesignerPanel1.clProSettings);
  
  ListView1.SetDesignerPanel(DesignerPanel1);
}

void CreateData;
{
  carI_KODU = Form1.AddNewProLabel(DesignerPanel1, 'carI_KODU', 'test');
  carI_KODU.Align = AlVertCenter;
  carI_KODU.Height =30;
  carI_KODU.Margins.Bottom = 10;
  carI_KODU.Margins.Top = 10;
  carI_KODU.Margins.Left = 10;
  carI_KODU.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
  carI_KODU.clProSettings.FontSize = 20;
  DesignerPanel1.AddPanelObject(carI_KODU, clText);
  
  
  carI_ADI = Form1.AddNewProLabel(DesignerPanel1, 'carI_ADI', 'test');
  carI_ADI.Align = AlVertCenter;
  carI_ADI.Height =30;
  carI_ADI.Margins.Bottom = 10;
  carI_ADI.Margins.Top = 10;
  carI_ADI.Margins.Left = 100;
  carI_ADI.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
  carI_ADI.clProSettings.FontSize = 20;
  DesignerPanel1.AddPanelObject(carI_ADI, clText1);
  
  
  carI_IL = Form1.AddNewProLabel(DesignerPanel1, 'carI_IL', 'test');
  carI_IL.Align = AlVertCenter;
  carI_IL.Height =30;
  carI_IL.Margins.Bottom = 10;
  carI_IL.Margins.Top = 10;
  carI_IL.Margins.Left = 400;
  carI_IL.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
  carI_IL.clProSettings.FontSize = 20;
  DesignerPanel1.AddPanelObject(carI_IL, clText2);
      
    
  Form1.AddNewEvent(ListView1,tbeOnItemClick,'TaskClick');
}

void AddDataToListView;
{
  ListView1.clLoadProListViewDataFromDataset(Clomosy.ClDataSetFromJSON('[
  {
    "carI_KODU": "1",
    "carI_ADI": "Deneme Sanayi ve Ticaret Ltd. Şti.",
    "carI_TIPI": "B",
    "carI_ADRES": "Yıldırım Mh. Demir Sk. No:12",
    "carI_ILCE": "Osmangazi",
    "carI_IL": "Ankara",
    "vergI_DAIRESI": "Bursa Vergi Dairesi",
    "vergI_NO": "1234567890",
    "tC_NO": "",
    "carI_POSTAKODU": "16200",
    "carI_TELEFON": "(224) 335-45-67",
    "carI_YETKILI": "Ahmet Çalışkan",
    "carI_EPOSTA": "[email protected]",
    "carI_WEBSITE": " http://www.mertotomotiv.com" rel="nofollow - www.mertotomotiv.com" ,
    "aciklamA1": "Yeni müşteri",
    "aciklamA2": "Özel indirim uygulanacak",
    "aciklamA3": "",
    "borC_TOPLAM": 153000.0,
    "alacaK_TOPLAM": 120000.0,
    "giB_EFATURA_MUKELLEFI": true
},
{
    "carI_KODU": "45",
    "carI_ADI": "Mert Otomotiv Yedek Parça Sanayi ve Ticaret Ltd. Şti.",
    "carI_TIPI": "B",
    "carI_ADRES": "Yıldırım Mh. Demir Sk. No:12",
    "carI_ILCE": "Osmangazi",
    "carI_IL": "Bursa",
    "vergI_DAIRESI": "Bursa Vergi Dairesi",
    "vergI_NO": "1234567890",
    "tC_NO": "",
    "carI_POSTAKODU": "16200",
    "carI_TELEFON": "(224) 335-45-67",
    "carI_YETKILI": "Ahmet Çalışkan",
    "carI_EPOSTA": "[email protected]",
    "carI_WEBSITE": " http://www.mertotomotiv.com" rel="nofollow - www.mertotomotiv.com" ,
    "aciklamA1": "Yeni müşteri",
    "aciklamA2": "Özel indirim uygulanacak",
    "aciklamA3": "",
    "borC_TOPLAM": 153000.0,
    "alacaK_TOPLAM": 120000.0,
    "giB_EFATURA_MUKELLEFI": true
}
  ]'));
}

{
  Form1 = TclForm.Create(Self);
  CreateListView;
  CreateDesignerPanel;
  CreateData;
  AddDataToListview;
  Form1.Run;
}


İyi çalışmalar dilerim.


-------------
Bilal Candan

Atiker Yazılım Veri İşlem A.Ş.
Software Developer

[email protected]



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