Xmlden listview' weri çekme

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Xmlden listview' weri çekme

Mesaj gönderen freeman35 »

@gaus
Forum şahsa değil, geneledir. Yani, bir örnek yada yukarıda yazılanalar kendi bildiğin şekliyle örnek verirsen, bu başlığı arama ile bulan arkadaşlara kaynak sağlamış olursun.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
gaus
Üye
Mesajlar: 227
Kayıt: 14 May 2014 07:36
İletişim:

Re: Xmlden listview' weri çekme

Mesaj gönderen gaus »

Aşağıdaki kodda gelen xml değerlerini parse edip Listviewin bir itemina istediğm kadar xml içindeki değerleri pozisyon pozisyon yerleştirmemi sağlıyor.
Buradan yola çıkarak istediğiniz gibi kullanabilirsiniz.
ListeyeEkle procedürü @mrman hocamızın Rss parse konusundaki muazzam procedürün minik değişmiş halidir.
onuda koydum kullanabilirsiniz

Kod: Tümünü seç

 aitem           : TListViewItem;
 button,button1  : TListItemTextButton;
 LLabel1,LLabel2,
 LLabel3,Llabel4,
 Ldata,  LData1,
 LData2, LData3,
 LData5, LData4  : TListItemText;
 
 begin
      xml        := LoadXMLData(result.RESULT);//Bir xml document oluşturulmak zorunda.Ben string değeri alıyorum direk.O şekilde çeviriyorum
      resultnode := xml.ChildNodes.FindNode('DATA').ChildNodes.FindNode('NewDataSet');//Burada xmlin içine giriyorum.Tekrar ChildNode FinNode yaparak istediğiniz kadar içeri girebilirsiniz
   for I := 0 to resultnode.ChildNodes.Count-1 do
    begin
     rownode := resultnode.ChildNodes.Get(i);//alt nodları al demek
     aitem:= lw_bakiye.Items.Add;//listeye ekleme olayı başlıyor
     aitem.Height:=120;
     aitem.Text:='';
         //--------------------------Yazı Alanları-----------------
         //--------------------------------------------------------
         ListeyeEkle( AItem, LLabel2, 'Bas2', 'Tür   :',   4,  40, 500, 20, 10, TAlphaColorRec.White,    True );
         ListeyeEkle( AItem, LLabel3, 'Bas3', 'Fiyat :',   4,  60, 500, 20, 10, TAlphaColorRec.White,    True );
         ListeyeEkle( AItem, LLabel3, 'Bas3', 'Borç   :',  4,  80, 500, 20, 10, TAlphaColorRec.White,    True );
         ListeyeEkle( AItem, LLabel4, 'Bas4', 'Alacak :', 100,  80, 500, 20, 10, TAlphaColorRec.White,   True );
         ListeyeEkle( AItem, LLabel4, 'Bas4', 'Tarih  :',  4, 100, 500, 20, 10, TAlphaColorRec.White,    True );
         //--------------------------Data Alanları-----------------
         //--------------------------------------------------------
         ListeyeEkle( AItem, LData , 'baslik',rownode.ChildNodes.FindNode('ACIKLAMA').Text,   4,  20, 500, 20, 12, TAlphaColorRec.Lightskyblue,True );
         ListeyeEkle( AItem, LData1, 'tur',   rownode.ChildNodes.FindNode('ISLEMTIPI').Text, 54,  40, 500, 20, 10, TAlphaColorRec.Lightyellow, True );
         ListeyeEkle( AItem, LData2, 'bfiyat',rownode.ChildNodes.FindNode('BFIYAT').Text,    54,  60, 500, 20, 10, TAlphaColorRec.Lightblue,   True );
         ListeyeEkle( AItem, LData3, 'borc',  rownode.ChildNodes.FindNode('BORC').Text,      54,  80, 500, 20, 10, TAlphaColorRec.Lightgreen,  True );
         ListeyeEkle( AItem, LData4, 'alacak',rownode.ChildNodes.FindNode('ALACAK').Text,   154,  80, 500, 20, 10, TAlphaColorRec.Lightgreen,  True );
         ListeyeEkle( AItem, LData4, 'tarih', rownode.ChildNodes.FindNode('TARIH').Text,     54, 100, 500, 20, 10, TAlphaColorRec.Lightyellow, True );
         aitem.Objects.AccessoryObject.Visible := False;
    end;
end;

//burada listeye ekle procedurü @mrman hocamızın rss/parse konusundaki listview ekleme procedürü

Procedure Tfrm_main.ListeyeEkle( AItem:TListViewItem; LItem: TListItemText;strRefKod, strText:String; iOffsetX, iOffsetY, iWidth,iHeight, iFontSize:Integer; iFontColor: LongInt;vis:boolean);
  begin
    AItem.Objects.GlyphButton.Visible := false;
    LItem                := TListItemText.Create(AItem);
    LItem.Name           := strRefKod;
    LItem.Font.Size      := iFontSize;
    LItem.TextColor      := iFontColor;
    LItem.Align          := TListItemAlign.Leading;
    LItem.VertAlign      := TListItemAlign.Leading;
    LItem.PlaceOffset.X  := iOffsetX;
    LItem.PlaceOffset.Y  := iOffsetY;
    LItem.TextAlign      := TTextAlign.taLeading;
    LItem.Trimming       := TTextTrimming.ttCharacter;
    LItem.IsDetailText   := False;
    LItem.Width          := iWidth;
    LItem.Height         := iHeight;
    LItem.Text           := strText;
    LItem.Visible        :=vis;

  end;

Kullanıcı avatarı
dogan
Üye
Mesajlar: 173
Kayıt: 17 Eki 2014 10:11

Re: Xmlden listview' weri çekme

Mesaj gönderen dogan »

gaus yazdı:Aşağıdaki kodda gelen xml değerlerini parse edip Listviewin bir itemina istediğm kadar xml içindeki değerleri pozisyon pozisyon yerleştirmemi sağlıyor.
Buradan yola çıkarak istediğiniz gibi kullanabilirsiniz.
ListeyeEkle procedürü @mrman hocamızın Rss parse konusundaki muazzam procedürün minik değişmiş halidir.
onuda koydum kullanabilirsiniz

Kod: Tümünü seç

 aitem           : TListViewItem;
 button,button1  : TListItemTextButton;
 LLabel1,LLabel2,
 LLabel3,Llabel4,
 Ldata,  LData1,
 LData2, LData3,
 LData5, LData4  : TListItemText;
 
 begin
      xml        := LoadXMLData(result.RESULT);//Bir xml document oluşturulmak zorunda.Ben string değeri alıyorum direk.O şekilde çeviriyorum
      resultnode := xml.ChildNodes.FindNode('DATA').ChildNodes.FindNode('NewDataSet');//Burada xmlin içine giriyorum.Tekrar ChildNode FinNode yaparak istediğiniz kadar içeri girebilirsiniz
   for I := 0 to resultnode.ChildNodes.Count-1 do
    begin
     rownode := resultnode.ChildNodes.Get(i);//alt nodları al demek
     aitem:= lw_bakiye.Items.Add;//listeye ekleme olayı başlıyor
     aitem.Height:=120;
     aitem.Text:='';
         //--------------------------Yazı Alanları-----------------
         //--------------------------------------------------------
         ListeyeEkle( AItem, LLabel2, 'Bas2', 'Tür   :',   4,  40, 500, 20, 10, TAlphaColorRec.White,    True );
         ListeyeEkle( AItem, LLabel3, 'Bas3', 'Fiyat :',   4,  60, 500, 20, 10, TAlphaColorRec.White,    True );
         ListeyeEkle( AItem, LLabel3, 'Bas3', 'Borç   :',  4,  80, 500, 20, 10, TAlphaColorRec.White,    True );
         ListeyeEkle( AItem, LLabel4, 'Bas4', 'Alacak :', 100,  80, 500, 20, 10, TAlphaColorRec.White,   True );
         ListeyeEkle( AItem, LLabel4, 'Bas4', 'Tarih  :',  4, 100, 500, 20, 10, TAlphaColorRec.White,    True );
         //--------------------------Data Alanları-----------------
         //--------------------------------------------------------
         ListeyeEkle( AItem, LData , 'baslik',rownode.ChildNodes.FindNode('ACIKLAMA').Text,   4,  20, 500, 20, 12, TAlphaColorRec.Lightskyblue,True );
         ListeyeEkle( AItem, LData1, 'tur',   rownode.ChildNodes.FindNode('ISLEMTIPI').Text, 54,  40, 500, 20, 10, TAlphaColorRec.Lightyellow, True );
         ListeyeEkle( AItem, LData2, 'bfiyat',rownode.ChildNodes.FindNode('BFIYAT').Text,    54,  60, 500, 20, 10, TAlphaColorRec.Lightblue,   True );
         ListeyeEkle( AItem, LData3, 'borc',  rownode.ChildNodes.FindNode('BORC').Text,      54,  80, 500, 20, 10, TAlphaColorRec.Lightgreen,  True );
         ListeyeEkle( AItem, LData4, 'alacak',rownode.ChildNodes.FindNode('ALACAK').Text,   154,  80, 500, 20, 10, TAlphaColorRec.Lightgreen,  True );
         ListeyeEkle( AItem, LData4, 'tarih', rownode.ChildNodes.FindNode('TARIH').Text,     54, 100, 500, 20, 10, TAlphaColorRec.Lightyellow, True );
         aitem.Objects.AccessoryObject.Visible := False;
    end;
end;

//burada listeye ekle procedurü @mrman hocamızın rss/parse konusundaki listview ekleme procedürü

Procedure Tfrm_main.ListeyeEkle( AItem:TListViewItem; LItem: TListItemText;strRefKod, strText:String; iOffsetX, iOffsetY, iWidth,iHeight, iFontSize:Integer; iFontColor: LongInt;vis:boolean);
  begin
    AItem.Objects.GlyphButton.Visible := false;
    LItem                := TListItemText.Create(AItem);
    LItem.Name           := strRefKod;
    LItem.Font.Size      := iFontSize;
    LItem.TextColor      := iFontColor;
    LItem.Align          := TListItemAlign.Leading;
    LItem.VertAlign      := TListItemAlign.Leading;
    LItem.PlaceOffset.X  := iOffsetX;
    LItem.PlaceOffset.Y  := iOffsetY;
    LItem.TextAlign      := TTextAlign.taLeading;
    LItem.Trimming       := TTextTrimming.ttCharacter;
    LItem.IsDetailText   := False;
    LItem.Width          := iWidth;
    LItem.Height         := iHeight;
    LItem.Text           := strText;
    LItem.Visible        :=vis;

  end;


Selam; databaseden listviewe veri çekme alanı yani listview kolon ekleme sıkıntısı olduğundan ve yaklaşık databaseden 6 adet alan çekeceğim bu kodları xml değilde FDQuery kullanarak databaseden veri nasıl çekebilirim...
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Xmlden listview' weri çekme

Mesaj gönderen fesiharslan »

Merhaba;
daha önce açmış olduğunuz konu başlığı altında bir örnek paylaştım.
viewtopic.php?f=36&t=35663&p=192255#p192255
Cevapla