Announcement

Collapse
No announcement yet.

Wer kann mir beim Ausdrucken eines DBGrid helfen ??

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wer kann mir beim Ausdrucken eines DBGrid helfen ??



    Hallo ihr alle,

    arbeite gerade an einem Kassenprogramm .
    Habe aber da ein Problem mit dem Ausdrucken eines DBGrid´s.

    Ich bekomme immer nur einen Datensatz gedruckt.

    Habe das auch schon mit " while not Table2. EOF do " versucht nix geht.

    Hier mein Drucker Modul

    Vielen Dank Egon

    //************************************************** ************
    Printer.Canvas.Font.Name:='arial'; // Schriftgröße für Quittung
    Printer.Canvas.Font.Size:=16;
    Printer.Canvas. font.Style:=[fsBold];

    Printer.Canvas.TextOut(0,270,'Quittung :'+' '+IntToStr(VQuittung));
    Printer.Canvas.Font.Name:='arial';
    Printer.Canvas.Font.Size:=16;
    Printer.Canvas. font.Style:=[];

    Printer.Canvas.Font.Name:='arial'; // Schriftgröße für Datum
    Printer.Canvas.Font.Size:=12;
    VDatum:=table1.fieldbyname('DATUM').asString ;
    Printer.Canvas.TextOut(450,270,'Datum :'+' '+VDatum);
    //************************************************** ***************************************

    // Schriftgröße für Artikel ... u.s.w
    Printer.Canvas.Font.Name:='arial';
    Printer.Canvas.Font.Size:=14;
    Printer.Canvas.TextOut(10,350,'Nr Artikel Anz. EP. Rab. Ges.');
    Printer.Canvas.TextOut(1,355,'____________________ ____________________________________');
    Printer.Canvas.TextOut(0,410,IntToStr(xLfn));
    Printer.Canvas.TextOut(80,410,VArtikel);
    VVerkaufspreis:=table2.fieldbyname('VERKAUFSPREIS' ).asCurrency;
    sum := sum +(vverkaufspreis);// * Vmenge);
    Format_VKPreis:=format ('%n',[sum]);
    Printer.Canvas.TextOut(360,410,Format_VKPreis);
    Printer.Canvas.TextOut(80,410,VArtikel);
    VMenge:=table2.fieldbyname('MENGE').asInteger;
    Printer.Canvas.TextOut(245,410,IntToStr(VMenge));
    Printer.Canvas.TextOut(500,410,DBRabatt.Text+''+'% ');
    //************************************************** ***************************************
    //************************************************** ***************************************
    Printer.Canvas.Font.Name:='control'; // Steuercode für Bondrucker und Schublade
    Printer.Canvas.Font.Size:=10;
    Printer.Canvas.TextOut(0,0,'A');
    //************************************************** ***************************************

  • #2
    Hallo,

    wo ist denn die Schleife?
    Und vielleicht vorher das Dataset auf First setzen.

    Grüße

    Julia

    Comment


    • #3
      Hallo Julia,
      vielen Dank für den Tip.

      Ich habe das nun in eine Schleife gebunden,aber nicht´s geht.

      WO MACHE ICH DEN FEHLER ?????

      Gruß Egon


      /************************************************** ************
      printer.begindoc;

      //************************************************** ************
      with Printer do // Druckt Image auf Bon
      try
      ScaleX:=
      GetDeviceCaps(Handle , logPixelsX) div PixelsPerInch;
      ScaleY:=
      GetDeviceCaps(handle,logPixelsY) div PixelsPerInch;
      R :=Rect(10,0 , Image1.Picture.width * ScaleX,
      Image1.picture.Height * ScaleY);
      canvas.StretchDraw(r , Image1.picture.Graphic);
      finally
      end;
      //************************************************** ************
      //************************************************** ************
      Printer.Canvas.Font.Name:='arial'; // Schriftgröße für Quittung
      Printer.Canvas.Font.Size:=16;
      Printer.Canvas. font.Style:=[fsBold];

      Printer.Canvas.TextOut(0,270,'Quittung :'+' '+IntToStr(VQuittung));
      Printer.Canvas.Font.Name:='arial';
      Printer.Canvas.Font.Size:=16;
      Printer.Canvas. font.Style:=[];

      Printer.Canvas.Font.Name:='arial'; // Schriftgröße für Datum
      Printer.Canvas.Font.Size:=12;
      VDatum:=table1.fieldbyname('DATUM').asString ;
      Printer.Canvas.TextOut(450,270,'Datum :'+' '+VDatum);
      //************************************************** ***************************************
      Table2.DisableControls; // Schleife
      sum := 0;
      Table2.First;

      while not Table2.EOF do
      begin
      // Schriftgröße für Artikel ... u.s.w
      Printer.Canvas.Font.Name:='arial';
      Printer.Canvas.Font.Size:=14;
      Printer.Canvas.TextOut(10,350,'Nr Artikel Anz. EP. Rab. Ges.');
      Printer.Canvas.TextOut(1,355,'____________________ ____________________________________');
      Printer.Canvas.TextOut(0,410,IntToStr(xLfn));
      Printer.Canvas.TextOut(80,410,VArtikel);
      VVerkaufspreis:=table2.fieldbyname('VERKAUFSPREIS' ).asCurrency;
      sum := sum +(vverkaufspreis);// * Vmenge);
      Format_VKPreis:=format ('%n',[sum]);
      Printer.Canvas.TextOut(360,410,Format_VKPreis);
      Printer.Canvas.TextOut(80,410,VArtikel);
      VMenge:=table2.fieldbyname('MENGE').asInteger;
      Printer.Canvas.TextOut(245,410,IntToStr(VMenge));
      Printer.Canvas.TextOut(500,410,DBRabatt.Text+''+'% ');
      //************************************************** ***************************************

      Table2.Next ;
      Table2.EnableControls;


      //************************************************** ***************************************
      Printer.Canvas.Font.Name:='control'; // Steuercode für Bondrucker und Schublade
      Printer.Canvas.Font.Size:=10;
      Printer.Canvas.TextOut(0,0,'A');
      //************************************************** ***************************************

      end;
      printer.enddoc; // Druck Ende

      //************************************************** **********

      Comment


      • #4
        Hmm, Du kannst bei Textout doch nicht immer an dieselbe Stelle drucken...
        Ich kenne mich damit nicht wirklich gut aus, aber ich denke, du müsstest zumindest den X-parameter für Textout hochsetzen bei jedem Schleifendurchlauf.

        Comment


        • #5
          DBgrid drucken


          Hallo Julia,

          ob du´s glaub´s oder nicht ,das Funktioniert.

          Gruß Egon

          PS:

          Kommer erst Heute dazu mich zu bedanken.

          Comment

          Working...
          X