Quick rapor Garip bir hata

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
nosedive
Üye
Mesajlar: 238
Kayıt: 16 May 2004 07:48

Quick rapor Garip bir hata

Mesaj gönderen nosedive »

Ayrı bir formda kullanıcı runtime oluşturulan label leri mouse ile taşıyıp konumlayarak db deki alanların rapor üzerinde yerlerini belirliyor...Yani Qrep de tasarım anının çalışma zamanında olduğunu düşünün..

Bu Qrepde konumlanan labellerin left ve top larını bir txt de tutuyor ordan da yazdırma nında qrep i çağırarak yazdırma yapıyoruz...

ancak gridde bulunan o an seçili olan bir kaydı tek olarak yazdırdığımız zaman sorun yok..

fakat bütün db yi çağır dediğimiz zaman, yazıcıya gönderince bilirsiniz qrep de küçük bir progres bar çıkar yazıcıya gönderme tamamlanınca kaybolur. bu basit yazdırmalarda hemen gelip gider göze bile görünmez....ancak dediğim gibi dbdeki kayıtların hepsini çağır dediğim zaman...sonsuz bir döngü oluşuyor...ve db deki sadece son kaydı gönderiyor yazcıya...ve o progres bar a ben cancel diyene kadar 10 binlerce adet çıktı yolluyor...

şimdi bu garip bir sorun...bununla karşılaşmış olan boyle bişi duymuş olan biri varmı aramızda...bir muhasebe programında aynı bu mantıkla fatura tasarlama görmüştüm...acaba bu şekilde bir sorunla karşılaşmış olabilimisiniz.....yorum yapabilecek neden olduğunu tahmin edebilecek varmı

off ooff :)
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

Kodunu yazsaydın şura dpğru şura yanlış diyebilirdik ama sadece olayı anlatmışsın kestirmek zor. Fakat yazdırmadan önce SQL kullanıyorsan where ile şart koyarsan sadece ilgili kayıt yazılır. table ise filter kullanabilirsin.

hiç başıma böyle bir olay gelmedi...

saygılar...
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Kullanıcı avatarı
nosedive
Üye
Mesajlar: 238
Kayıt: 16 May 2004 07:48

Mesaj gönderen nosedive »

Kod: Tümünü seç

var Xlist: TStringList;
  a, b, i, j, inds: integeR;
  str, welc,kl: string;
begin
  if Dm1.QSonuc.Active = false then
  begin
    ShowMessage('Lütfen Önce Sinavi Seciniz');
    exit;
  end;
  if cb2.ItemIndex = 0 then fmkarnedrucktum.qr1.Page.Orientation := poPortrait
  else

    fmkarnedrucktum.qr1.Page.Orientation := poLandscape;

  globrecno := 1;
  FmKarnedrucktum.QRImage1.Enabled := false;
  FmKarneDrucktum.QRImage2.enabled := false;
  FmKarneDrucktum.QRImage3.enabled := false;
  FmKarneDrucktum.QRImage4.enabled := false;
  FmKarneDrucktum.QRImage5.enabled := false;
  FmKarneDrucktum.QRImage6.enabled := false;
  FmKarneDrucktum.QRImage7.enabled := false;
  FmKarneDrucktum.QRImage8.enabled := false;

  FmKarnedrucktum.QRImage1.picture := nil;
  FmKarneDrucktum.QRImage2.picture := nil;
  FmKarneDrucktum.QRImage3.picture := nil;
  FmKarneDrucktum.QRImage4.picture := nil;
  FmKarneDrucktum.QRImage5.picture := nil;
  FmKarneDrucktum.QRImage6.picture := nil;
  FmKarneDrucktum.QRImage7.picture := nil;
  FmKarneDrucktum.QRImage8.picture := nil;

  dm1.QSonuc.First;
  xlist := TStringList.Create;
  xlist.LoadFromFile(cb1.GetValuesWert);


  for i := 0 to 10 do
  begin
    XQLabel[i].Free;
    XQLabel[i] := nil;
    YQLabel[i].Free;
    YQLabel[i] := nil;
    Xlabela[i].Alan_Adi := '';
    Ylabela[i].Alan_Adi := '';
  end;


  for I := 0 to fmalanliste.ch2.items.count - 1 do
  begin
    XQAnaliz[i].Free;
    XQAnaliz[i] := nil;
    YQAnaliz[i].Free;
    YQAnaliz[i] := nil;
    XLabelS[i].Xlabel.Free;
    XLabelS[i].Xlabel := nil;
    XLabelS[i].Alan_Adi := '';
    YLabelS[i].Xlabel.Free;
    YLabelS[i].Xlabel := nil;
    YLabelS[i].Alan_Adi := '';
  end;
  for I := 0 to 15 do
  begin
    XCevap[i].Free;
    XCevap[i] := nil;
    YCevap[i].Free;
    YCevap[i] := nil;

    XCevapA[i].Xlabel.Free;
    XCevapA[i].Xlabel := nil;
    XCevapA[i].Alan_Adi := '';

    YCevapA[i].Xlabel.Free;
    YCevapA[i].Xlabel := nil;
    YCevapA[i].Alan_Adi := '';
  end;



  with FmKarneDrucktum do
  begin

     // Koordinatlarin alinidigi kisim
    //a := 0;

    a := 0;
    for i := 0 to Xlist.Count - 1 do
    begin
      if i = 0 then
      begin
        str := xlist[i];
        a := pos(';', str);
        b := a;
        a := Pos(';', Copy(str, b + 1, Length(str) - (b)));
        kl := Copy(str, b + 1, a - 1);
        if kl <> 'm' then
        begin
          ShowMessage('Acmaya calistiginiz dosya OKS icin tanimlanmamistir. Lütfen baska bir dosya seciniz');
          exit;
        end;
      end else if i = 1 then
      begin
        str := xlist[i];
        a := pos(';', str);
        GlobPixPerMMX := strtofloat(Copy(str, 1, a - 1));
        b := a;
        a := Pos(';', Copy(str, b + 1, Length(str) - (b)));
        GlobPixPerMMY := strtofloat((Copy(str, b + 1, a - 1)));
      end else
      begin
        str := xlist[i];
        a := pos(',', str);
        Welc := (Copy(str, 1, a - 1));
        b := a;
        a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
        inds := strtoint((Copy(str, b + 1, a - 1)));
        b := a + b;
        a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
        if Welc = 'X' then // öğrenci birinci bölüm..
        begin
          XLabela[inds].Alan_Adi := (Copy(str, b + 1, a - 1));
          if not Assigned(XqLabel[inds]) then
          begin
            Xqlabel[inds] := Tqrlabel.Create(FmKarneDruckTum);
            Xqlabel[inds].ParentReport := FmKarneDrucktum.Qr1;
            Xqlabel[inds].Parent := FmKarneDrucktum.QRBand1;
            XqLabel[inds].Enabled := true;
            XqLabel[inds].Visible := true;
            if inds = fmalanliste.ch1.Items.Count - 1 then
              XqLabel[inds].Font.Size := 14
            else
              XqLabel[inds].Font.Size := 10;
            XqLabel[inds].Font.color := clblack;
          end;
          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
          XqLabel[inds].size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
          XqLabel[inds].size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMY; //bu satır + - degeler verilerek karne çıktısı denenecek

        end else if Welc = 'S' then // sorular birinci bölüm..
        begin
          XLabelS[inds].Alan_Adi := (Copy(str, b + 1, a - 1));
          if not Assigned(XQANaliz[inds]) then
          begin
            XQAnaliz[inds] := TQRLabel.Create(FmKarneDruckTum);
            XQAnaliz[inds].ParentReport := FmKarneDruckTum.Qr1;
            XQAnaliz[inds].Parent := FmKarneDruckTum.QRBand1; ;
            XQAnaliz[inds].Visible := true;
            XQAnaliz[inds].Font.Size := 10;
            XQAnaliz[inds].Enabled := true;
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
       // YQAnaliz[inds].Caption := Dm1.Qsonuc.fieldbyname(XLabelS[inds].alan_adi).AsString;

            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            XQAnaliz[inds].size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX; // mm ' ye çevirme işlemi
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            XQAnaliz[inds].size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy; // mm ' ye çevirme işlemi

            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            XQAnaliz[inds].Tag := strtoint(Copy(str, b + 1, a - 1));

            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            XQAnaliz[inds].HelpKeyword := (Copy(str, b + 1, a - 1));
          end;
        end else if Welc = 'M' then // sorular ikinci bölüm...
        begin
          YLabelS[inds].Alan_Adi := (Copy(str, b + 1, a - 1));
          if not Assigned(YQANaliz[inds]) then
          begin
            YQAnaliz[inds] := TQRLabel.Create(FmKarneDruckTum);
            YQAnaliz[inds].ParentReport := FmKarneDruckTum.Qr1;
            YQAnaliz[inds].Parent := FmKarneDruckTum.QRBand1; ;
            YQAnaliz[inds].Visible := true;
            YQAnaliz[inds].Font.Size := 10;
            YQAnaliz[inds].Enabled := true;
          end;

          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
          YQAnaliz[inds].size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
          YQAnaliz[inds].size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;

          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
          YQAnaliz[inds].Tag := strtoint(Copy(str, b + 1, a - 1));

          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
          YQAnaliz[inds].HelpKeyword := (Copy(str, b + 1, a - 1));
        end else if welc = 'Y' then // öğrenci bilgileri ikinci bölüm...
        begin
          if RadioGroup1.ItemIndex = 0 then
          begin
            YLabela[inds].Alan_Adi := (Copy(str, b + 1, a - 1));
            if not Assigned(YqLabel[inds]) then
            begin
              Yqlabel[inds] := Tqrlabel.Create(FmKarneDrucktum);
              Yqlabel[inds].ParentReport := FmKarneDrucktum.Qr1;
              Yqlabel[inds].Parent := FmKarneDrucktum.QRBand1;
              YqLabel[inds].Enabled := true;
              YqLabel[inds].Visible := true;

              if inds = fmalanliste.ch1.Items.Count - 1 then // alan seçme listedindeki en son seçenek ise...yani Kurum adı ise
                YqLabel[inds].Font.Size := 14
              else
                YqLabel[inds].Font.Size := 8;
              YqLabel[inds].Font.color := clblack;
              b := a + b;
              a := Pos(',', Copy(str, b + 1, Length(str) - (b)));

              b := a + b;
              a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
              YqLabel[inds].Size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
              b := a + b;
              a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
              YqLabel[inds].Size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMY;
            end else
            begin
              YqLabel[inds].Free;
              YqLabel[inds] := nil;
            end;

          end;
        end else if welc = 'C' then // cevaplar birinci bölüm...
        begin
          XcevapA[inds].Alan_Adi := (Copy(str, b + 1, a - 1));
          if not Assigned(xcevap[inds]) then
          begin
            xcevap[inds] := Tqrlabel.Create(FmKarneDruckTum);
            xcevap[inds].ParentReport := FmKarneDruckTum.Qr1;
            xcevap[inds].Parent := FmKarneDruckTum.QRBand1;
            xcevap[inds].Enabled := true;
            xcevap[inds].Visible := true;
            xcevap[inds].Font.Size := 9;
            xcevap[inds].Font.color := clblack;
          end else
          begin
            xcevap[inds].Free;
            xcevap[inds] := nil;
          end;
          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));

          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
          xcevap[inds].size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
          xcevap[inds].size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMY;
          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
          xcevap[inds].Tag := strtoint(Copy(str, b + 1, a - 1));
          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
          xcevap[inds].HelpKeyword := (Copy(str, b + 1, a - 1));
          xcevap[inds].Font.Name := 'courier new';
          xcevap[inds].Font.Size := 6;

        end else if welc = 'T' then // cevaplar ikinci bölüm...
        begin
          YCevapA[inds].Alan_Adi := (Copy(str, b + 1, a - 1));
          if not Assigned(ycevap[inds]) then
          begin
            ycevap[inds] := Tqrlabel.Create(FmKarneDruckTum);
            ycevap[inds].ParentReport := FmKarneDruckTum.Qr1;
            ycevap[inds].Parent := FmKarneDruckTum.QRBand1;
            ycevap[inds].Enabled := true;
            ycevap[inds].Visible := true;
            ycevap[inds].Font.Size := 9;
            ycevap[inds].Font.color := clblack;
          end else
          begin
            ycevap[inds].Free;
            ycevap[inds] := nil;
          end;
          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));

          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
          ycevap[inds].size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
          ycevap[inds].size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMY;
          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
          ycevap[inds].Tag := strtoint(Copy(str, b + 1, a - 1));
          b := a + b;
          a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
          ycevap[inds].HelpKeyword := (Copy(str, b + 1, a - 1));
          ycevap[inds].Font.Name := 'courier new';
          ycevap[inds].Font.Size := 6;

        end else if welc = 'G' then // grafikler...   inds 1'deb 4 ' e kadar 1nci bölüm...
        begin
          if inds = 1 then
          begin
            QRImage1.enabled := true;

            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            QRImage1.size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            QRImage1.size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
          end else if inds = 2 then
          begin
            QRImage2.enabled := true;
            QRImage2.Picture.Bitmap := fmkarnex.tc2.TeeCreateBitmap(clWhite, fmkarnex.tc1.BoundsRect);
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            QRImage2.size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            QRImage2.size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
          end else if (inds = 3) then
          begin
            QRImage3.enabled := true;
            QRImage3.Picture.Bitmap := fmkarnex.tc3.TeeCreateBitmap(clWhite, fmkarnex.tc1.BoundsRect);
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            QRImage3.size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            QRImage3.size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
          end else if (inds = 4) then
          begin
            QRImage4.enabled := true;
            QRImage4.Picture.Bitmap := fmkarnex.tc4.TeeCreateBitmap(clWhite, fmkarnex.tc1.BoundsRect);
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            QRImage4.size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            QRImage4.size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
          end else if (inds = 5) and (RadioGroup1.ItemIndex = 0) then
          begin
            QRImage5.enabled := true;
            QRImage5.Picture.Bitmap := fmkarnex.tc1.TeeCreateBitmap(clWhite, fmkarnex.tc1.BoundsRect);
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            QRImage5.size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            QRImage5.size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
          end else if (inds = 6) and (RadioGroup1.ItemIndex = 0) then
          begin
            QRImage6.enabled := true;
            QRImage6.Picture.Bitmap := fmkarnex.tc2.TeeCreateBitmap(clWhite, fmkarnex.tc1.BoundsRect);
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            QRImage6.size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            QRImage6.size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
          end else if (inds = 7) and (RadioGroup1.ItemIndex = 0) then
          begin
            QRImage7.enabled := true;
            QRImage7.Picture.Bitmap := fmkarnex.tc3.TeeCreateBitmap(clWhite, fmkarnex.tc1.BoundsRect);
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            QRImage7.size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            QRImage7.size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
          end else if (inds = 8) and (RadioGroup1.ItemIndex = 0) then
          begin
            QRImage8.enabled := true;
            QRImage8.Picture.Bitmap := fmkarnex.tc4.TeeCreateBitmap(clWhite, fmkarnex.tc1.BoundsRect);
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            QRImage8.size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
            b := a + b;
            a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
            QRImage8.size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
          end;
        end;
      end;
    end;
    Dm1.QSonuc.First;
    Application.ProcessMessages;
    GlobNeeddata := true;
    if rg1.ItemIndex = 0 then FmKarneDrucktum.Qr1.Preview
    else
      FmKarneDrucktum.Qr1.Print;
  end;
Kullanıcı avatarı
nosedive
Üye
Mesajlar: 238
Kayıt: 16 May 2004 07:48

pardon

Mesaj gönderen nosedive »

açıklama yazmamışım...qsonuc form create olunca aktif...
Kullanıcı avatarı
nosedive
Üye
Mesajlar: 238
Kayıt: 16 May 2004 07:48

evet

Mesaj gönderen nosedive »

evet sorun devam ediyor....

acaba qrep ten kaynaklanan bişimi...yeni versiyon en son kaç var...onu yükselek onunla ilgilimi
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Bu kodların içinde bir düzenleme yapmanız gerektiğinde nasıl bir kod izleme yöntemi kullanıyorsunuz merak ettim..Açıkçası incelemeyi bile gözüm kesmedi :roll:
Cevapla