ClientDataSet ve XMLTransformProvider Kullanarak Döngü Kurma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
F.Atagun
Üye
Mesajlar: 158
Kayıt: 01 Oca 2008 01:56

ClientDataSet ve XMLTransformProvider Kullanarak Döngü Kurma

Mesaj gönderen F.Atagun »

sa,
Bir döngü kurmaya çalışıyorum. 2 tane Gridim var.
Soldaki Gridde listelenen XML dosyalarının içeriklerini sağdaki gride aktarmaya calışıyorum.

İlk XML Dosyasındaki kayıtları aşağıdaki kodla sağdaki gride başarıyla aktarıyorum.
SIRA 2. Xml'e geldiğinde ClientDataSet'i kapatıp açıyorum XMLi yüklüyorum. Ama 2. XMLdeki tüm kayıtlar ClientDataSet'i dogru kullanamamandan ötürü boş geliyor, ve boş satır ekliyor gride.

Anladığım kadarıyla ClientDataSet'i yanlış yerde açıp kapatıyorum. Birçok alternatif denememe rağmen Döngüdeki hatayı bulamadım.

Farklı bir göz olarak yorumlamanızı rica edebilirmiyim acaba ? Göremediğim nokta neresidir ?

Teşekkürler

Kullandığım kod aşağıdadır.

Kod: Tümünü seç

procedure TForm113.btn2Click(Sender: TObject);
var
  i :Integer;
  a :Integer;
begin
   Durum.Visible:=True;
   Durum.Caption:='Bekleyiniz, Yükleniyor...';
   Durum.Update;


     for i:=0 to Form113.Grid2.RowCount-1 do
     begin
               ClientDataSet1.Active:=FAlse;
               XMLTransformProvider1.TransformRead.TransformationFile:='W:\Xmller\1_Detay.xtr';
               XMLTransformProvider1.XMLdataFile:='W:\Xmller\'+Grid2.Cell[1, i].AsString;
               ClientDataSet1.Active:=tRUE;

         with Grid2 do begin

                for a := 0 to  ClientDataSet1.RecordCount-1 do
                begin

                      Grid1.AddRow;
                      Grid1.Cell[1, a].Asstring :=ClientDataSet1.Fields[0].Asstring;   // BölümNo
                      Grid1.Cell[2, a].Asstring :=ClientDataSet1.Fields[3].Asstring;  // ÜrünNo
                      Grid1.Cell[3, a].Asstring :=ClientDataSet1.Fields[9].Asstring; // ÜrünAçıklaması
                      ClientDataSet1.Next;
                end;
              end;
     end;
   Durum.Visible:=True;
   Durum.Caption:=Yükleme Tamamlanmıştır...';
   Durum.Update;
   Label5.Caption:='Listelenen Kayıt Sayısı : '+inttoStr(Grid1.RowCount);
end;
:N)
Cevapla