ClientDataSet ve XMLTransformProvider İle XML Okumak

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Kullanıcı avatarı
veliadiguzel
Üye
Mesajlar: 197
Kayıt: 09 Tem 2003 02:11
Konum: Gebze/Kocaeli
İletişim:

Mesaj gönderen veliadiguzel »

s.a.

en sonunda bende bulaştım bu XML işine biraz kurcalayayım dedim ufak bir not nested alanları da dbgridde gösterebiliyoruz tek dosyada master detail gibi oluyo bence bayaa kullanışlı

delphideki örnek XMLprovider programına bir adet grid ve data source eklerseniz ve clientdatasetin fieldlerini de yuklerseniz.

aşağıdaki gibi ufak bir kodla nested alanları dbgridde gösterebiliyoruz.

belki birine lazım olur bazen insanın kafası duruyoda :);

Kod: Tümünü seç

DataSource2.DataSet:=ClientDataSet1item.NestedDataSet;
F.Atagun
Üye
Mesajlar: 158
Kayıt: 01 Oca 2008 01:56

Re:

Mesaj gönderen F.Atagun »

veliadiguzel yazdı:
aşağıdaki gibi ufak bir kodla nested alanları dbgridde gösterebiliyoruz.

Kod: Tümünü seç

DataSource2.DataSet:=ClientDataSet1item.NestedDataSet;
Teşekkürler Çok faydalı bir konu olmuş.
Tüm adımları başarıyla uyguladımfakat bir yerde takıldım.


Benim takıldığım nokta Veli arkadaşımızın vermiş olduğu kodu kullanarak nested alanları görebilmekle alakalıdır.

Vermiş olduğu kodda sanki bir hata var gibi yada ben bir türlü beceremedim.
Tam olarak nereye yazacağız bu kodu?

Teşekkürler


Not:
Aşağıdaki adreste ( ben henüz çözemedim, üstünde çalışıyorum ) konuyla ilgili çok güzel bir açıklama var. Bakmak isteyen olabilir

https://forums.codegear.com/thread.jspa ... 0&tstart=0
F.Atagun
Üye
Mesajlar: 158
Kayıt: 01 Oca 2008 01:56

Re: ClientDataSet ve XMLTransformProvider İle XML Okumak

Mesaj gönderen F.Atagun »

Burda çözümü varmış arkadaşlar

http://delphi.about.com/gi/dynamic/offs ... %2C00.html


Burda da Örneği Varmış, ama üye olmak gerekiyor
http://codecentral.codegear.com/Item.aspx?id=19633
emrahgs
Üye
Mesajlar: 110
Kayıt: 08 Tem 2008 06:25
Konum: Antalya

Re: ClientDataSet ve XMLTransformProvider İle XML Okumak

Mesaj gönderen emrahgs »

merhaba
Çok güzel bir paylaşım olmuş bahsettiğiniz şekilde örnek yaptım ama
şuan yapmam gereken işte sürekli değişen xml dosyalarını sql database ine akataracağım ama
her defasında bu xml i xmlmapper ı kullanarak xtr dosyası yapamam
acaba xtr dosyasını oluşturmanın başka bir yolunu bulan oldumu.
Teşekkürler.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re:

Mesaj gönderen conari »

vkamadan yazdı:@conari ,
bunun pratik bir şekilde yapılabilceğini düşünmüyorum, biraz araştıra yaptım konuyla ilgili, delphi yardımında bile derki Transformation dosyasını xmlmapper ile oluştur, TXMLTransform nesnesi de bu mapper ile oluşan xtr den datapacked oluşturuyormuş bir kaç test yaptım TXMLTransform beni ümitlendirdi ancak Help tede öğrendim maalesef yapılamıyor.İllede elimizde Shema olucak.

@conari , XML Mapper aracınıda delphide yapmışlar sonuçta bir şekilde yapılır ama hali hazırda bir sınıf sunmamış adamlar nedense üzerinde biraz çalışmak lazım.
Kolay gelsin.
2009 da belki bunun ile ilgili bazı sınıflar yayınlanmıştır.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
emrahgs
Üye
Mesajlar: 110
Kayıt: 08 Tem 2008 06:25
Konum: Antalya

Re: ClientDataSet ve XMLTransformProvider İle XML Okumak

Mesaj gönderen emrahgs »

yapmak istediğim projede xml formatında gelen fatura,tahsilat gibi evrakları sql server db import yapmak
mesala gelen fatura xml lerinde tip aynı sadece içerisindeki kayıt yoğunluğu değişir
bunun için fatura için birtane xtr hazırlayıp
sonra xtr nin içerisindeki

<FIELDS>
<FIELD attrname="DBOP" fieldtype="string" WIDTH="3"/>
<FIELD attrname="TARIH" fieldtype="string" WIDTH="15"/>
<FIELD attrname="MAKBUZNO" fieldtype="string" WIDTH="20"/>
<FIELD attrname="CARIKODU" fieldtype="string" WIDTH="25"/>
<FIELD attrname="STKODU" fieldtype="string" WIDTH="25"/>
<FIELD attrname="DAGKODU" fieldtype="string" WIDTH="25"/>
...

WIDTH değerlerini notebad den maximum değerler yapıp kaydettim
bu şekkilde xml dosyalarının içeriği değişsede dataset e geliyor

sizce bu yöntem güvenilirmidir?
Kullanıcı avatarı
metemete
Üye
Mesajlar: 422
Kayıt: 21 Mar 2004 12:30
Konum: samsun
İletişim:

Re: ClientDataSet ve XMLTransformProvider İle XML Okumak

Mesaj gönderen metemete »

hocam resimler gitmiş map olusturmayı goremedım
mümkünmüdür bir daha yollasan
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: ClientDataSet ve XMLTransformProvider İle XML Okumak

Mesaj gönderen vkamadan »

metemete yazdı:hocam resimler gitmiş map olusturmayı goremedım
mümkünmüdür bir daha yollasan
Merhaba ,
üstünden çok uzun zaman geçti bir kaç sefer sunucu değiştirdik dosyalarında yedeği yoktu, yeniden çekip göndermem lazım , ilk müsait zamanda koyarım.
İyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: ClientDataSet ve XMLTransformProvider İle XML Okumak

Mesaj gönderen vkamadan »

Makale ile ilgili resimleri güncelledim..
İyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
AraGorN
Üye
Mesajlar: 28
Kayıt: 30 Eyl 2003 02:02
Konum: Bornova - İzmir
İletişim:

Re: ClientDataSet ve XMLTransformProvider İle XML Okumak

Mesaj gönderen AraGorN »

Selamlar, aynen burdaki işlemleri yapmama rağmen client dataset üzerinde hiç veri görmüyorum. içeriğine baktığım xml i dosya olarak ekledim. xmlmapper ile açıp xtr dosyası da oluşturdum. XmlMapper da DataTableGW1 isimli node a sağ tıklayıp childları ekledim ve transaction ı yarattım ama veriyi göstermiyor, yardımcı olursanız çok sevinirim.
Dosya ekleri
deneme.rar
(28.68 KiB) 393 kere indirildi
AraGorN
Üye
Mesajlar: 28
Kayıt: 30 Eyl 2003 02:02
Konum: Bornova - İzmir
İletişim:

Re: ClientDataSet ve XMLTransformProvider İle XML Okumak

Mesaj gönderen AraGorN »

tabi herkes dosyayı indirip bakmayabilir kısaca yazarsam dosya içeriğini, xml yapısı biraz farklı sanki şöyle ki

Kod: Tümünü seç

<soap:Envelope>
  <soap:Body>
    <MGW1Response>
      <MGW1Result>
       <xs:schema id="DataSetGW" targetNamespace="http://tempuri.org/DataSetGW.xsd" attributeFormDefault="qualified" elementFormDefault="qualified">
          <xs:element name="DataSetGW" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msdata:EnforceConstraints="False">
             <xs:complexType>
               <xs:choice minOccurs="0" maxOccurs="unbounded">
                 <xs:element name="DataTableGW1">
                    <xs:complexType>
                      <xs:sequence>
                         <xs:element name="AA1" minOccurs="0">
                             <xs:simpleType>
                               <xs:restriction base="xs:string">
                                    <xs:maxLength value="20"/>
                              </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
....
şeklinde kodlar var xml in başında sanırım schema tanımları bu oluyor ama bunun ne olduğunu tam bilmediğim için kalıyorum bu noktada aynı şekilde gelen veri bloğumda şu şekilde, yani yukardaki uuzuuun schema tanımlarından sonra veriler şu blok yapısında gelmeye başlıyor

Kod: Tümünü seç

<diffgr:diffgram>
  <DataSetGW>
    <DataTableGW1 diffgr:id="DataTableGW11" msdata:rowOrder="0">
      <AA1>124407</AA1>
      <AB1>2009-07-22T15:40:30+03:00</AB1>
      <AD1>AA 99 BB</AD1>
      <AE1>Idle Speed Start</AE1>
      <AF1>0</AF1>
      <AG1>29.339876174926758</AG1>
      <AH1>40.908920288085938</AH1>
      <AI1>125.47999572753906</AI1>
      <AJ1>9</AJ1>
      <AK1>0</AK1>
      <AL1>Türkiye</AL1>
      <AM1>İSTANBUL</AM1>
      <AN1>TUZLA</AN1>
      <AO1>Merkez</AO1>
      <AP1>ttt-Orhanlı Yolu</AP1>
      <AR1>107002.3984375</AR1>
      <AW1>yyyy</AW1>
      <MU1>167426</MU1>
      <AY1>35</AY1>
    </DataTableGW1>
xmlmapper la da baktığımda yani map edip transaction yarat dedikten sonra test düğmesine bastığımda veriler görünmüyor... hre gelen veri bloğumun başında ki " diffgr:id="DataTableGW11" msdata:rowOrder="0"" kısımlarını kaldırıp deneme bir xml dosyası yaptım gayet düzgün gösterdi verileri. sebebi ne olabilir?
AraGorN
Üye
Mesajlar: 28
Kayıt: 30 Eyl 2003 02:02
Konum: Bornova - İzmir
İletişim:

Re: ClientDataSet ve XMLTransformProvider İle XML Okumak

Mesaj gönderen AraGorN »

sanırım sorunumu çözdüm şimdi verileri okuyabiliyorum, sorun xmlmapper da oluşan dosyanın bir bug ıymış saırım. dosyanın başında ki

<XmlTransformation Version="1.0"><Transform Direction="ToCds" DataEncoding="utf-8"><SelectEach dest="DATAPACKET\ROWDATA\ROW" from="\soap:Envelope\soap:Body\MGW1Response\MGW1Result\diffgr:diffgram\DataSetGW\DataTableGW1">

ifadesin deki "from="\soap:Envelope\soap:Body\MGW...." kısmındaki ilk soap ı silmek gerekiyormuş... yani şöyle olacakmış....

<XmlTransformation Version="1.0"><Transform Direction="ToCds" DataEncoding="utf-8"><SelectEach dest="DATAPACKET\ROWDATA\ROW" from="\Envelope\soap:Body\MGW1Response\MGW1Result\diffgr:diffgram\DataSetGW\DataTableGW1">

yardımcı olan herkese teşekkür ederim.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: ClientDataSet ve XMLTransformProvider İle XML Okumak

Mesaj gönderen aslangeri »

yayında ve yapımda emeği geçen herkese teşekkür ediyorum arkadaşlar
Allah hepinizden razı olsun.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
GURGAH
Üye
Mesajlar: 22
Kayıt: 10 Ağu 2010 06:10

Re: ClientDataSet ve XMLTransformProvider İle XML Okumak

Mesaj gönderen GURGAH »

Hocam Rica Etsem Resimleri bir kez daha yükleyebilirmisiniz. ?
Cevapla