Suchergebnisse

Suchergebnisse 1-30 von insgesamt 30.

  • Benutzer-Avatarbild

    Hi Leute bin seit Tagen dabei eine Lösung für mein Problem zu finden, leider ohne Erfolg. Ich versuche eine Rechnung als PDF zu drucken. Die Rechnung ist in mehreren Seiten und aufgebaut, die Rechnungspositionen werden tabellarisch dargestellt. Page 1 => Rechnungskopf, kurzer Text, und dann die Rechnungsaufstellung, ggf. Seitenende falls nichts mehr zu drucken da ist und genügend Platz vorhanden Page 2 => fortlaufende Rechnungsaufstellung, ggf. Seitenende falls nichts mehr zu drucken da ist und …

  • Benutzer-Avatarbild

    @VaporiZed, danke das du dir die Zeit nimmst. Sowas hatte ich bereits befürchtet, ich weiß allerdings nicht wie. Den String kann ich mit e.graphics.measurestring messen, ist auch im code enthalten. Hatte gehofft, das ich den Text an gleicher stelle auf nächster Seite fortführen kann. @RodFromGermany hatte das in seinem Tutorial behandelt, allerdings war dort die Quelle eine RichTextBox wenn ich nicht falsch liege. Die zu druckende Datarow bzw. Zelle kenne ich ja. Greife darauf typisiert zu. Soll…

  • Benutzer-Avatarbild

    Hallo Leute werde morgen das Demo-Projekt erstellen und hochladen. Wie schon gesagt, klappt das drucken. Aber halt nicht gesplittet. Hab die Seiten zwar aufgeteilt in page 1, page 2, aber daran liegts ja nicht. Wenn ich in der For schleife stecke und die datarow drucke muss ich wenn die seite voll ist, eine neue seite erzeugen und nach der zuletzt gedruckten stelle weiterdrucken. Und da weiss ich halt nicht wie. Hoffe ihr habt nen Ansatz. Werde mich da morgen ran setzen.

  • Benutzer-Avatarbild

    Hi hab ein demo projekt erstellt und as projekt gezippt. Habs getestet. Für die app wird eine xml datei benötigt, die auf dem desktop liegen sollte. Hab ich dabei gepackt. Hoffe das mir jemand helfen kann.

  • Benutzer-Avatarbild

    Hi Leute das was @RodFromGermany im letzten Post im Bild zeigt, hatte ich vorher und kam nicht weiter. Werde ich nachstellen und das Projekt neu hochladen. Bei mir lief der Text bis Seitenende, wurde aber auf der Folgeseite nicht fortgeführt. Auf der neuen Seite wurde mit der nächsten DataRow fortgeführt. Hab dann einen Weg gefunden, die nächste DataRow auf der neuen Seite zu drucken, aber da kann es halt passieren, das eine Seite zur hälfte leer bleibt, was ja nicht so schön ist auf Paper. Viel…

  • Benutzer-Avatarbild

    Hallo @RodFromGermany Zitat von RodFromGermany: „Ich erwarte von Dir, dass Du mit e.Graphics.MeasureString() erkennst, dass das Papier nicht reicht und dann sofort die nächste Seite bedruckst.“ Ich habe deinen Code übernommen und auch Code extrahiert, so wie du geschrieben hast. Allerdings hänge ich noch an der Stelle, das der Druck zwar funzt, aber nicht halbe Absätze geschrieben und auf der nächste Seite fortgeführt werden. Ich kann die Datarow abbrechen und auf der nächste Seite fortführe, si…

  • Benutzer-Avatarbild

    Um ehrlich zu sein, weiß ich nicht weiter. Ich habe: Anbei der Code für Pagenb = 0 VB.NET-Quellcode (44 Zeilen)

  • Benutzer-Avatarbild

    VB.NET-Quellcode (120 Zeilen)

  • Benutzer-Avatarbild

    @RodFromGermany, hab den Code nun Kommmentaren versehen. wie meinst du das mit "in der genau ein Textbaustein gedruckt wird"? Soll ich den Druckinhalt erst mal auf einen String abändern? Die zu druckenden Texte passen in der Regel immer in eine Zeile. Nur bei der Zelle mit "Leistung" ist der Inhalt oftmals länger. Ich habe jetzt mal den kompletten Code geposted, den Druck für Seite 2 habe ich weggelassen. War mir nicht sicher, ob du den sehen wolltest. (Versteckter Text)

  • Benutzer-Avatarbild

    Ok, verstehe. Dazu müsste ich ja nur die For-Schleife rausnehmen. Dann wird genau 1 DataRow gedruckt.

  • Benutzer-Avatarbild

    Also For-Schleife wieder rein. Aktuell sieht der Code nicht vor, das ich zwischen den Seiten unterscheide, also sprich: VB.NET-Quellcode (7 Zeilen) ist nicht mehr enthalten. Ich fange oben an, durchlaufe die Schleife, wenn die Seite nicht ausreicht, wird eine neue gedruckt. Das klappt jetzt aber nur bis Ende Seite 1, siehe Bild. Auf Seite 2 ist nichts mehr gedruckt.

  • Benutzer-Avatarbild

    Ich habs jetzt hinbekommen, das die Seiten gedruckt werden. Allerdiongs wird der Druck der DataRow nicht an der Stelle fortgeführt, an der aufgehört wurde. Aber es wird erkannt wo das Seitenende ist und auf der nächsten Seite weiter gedruckt. (Versteckter Text) Wie schaffe ich es nun, das der Druck an richtiger Stelle fortgeführt wird? Wenn ich die Variable Indextext (stellt die Position des Textes dar) nicht Null setze, bekomme ich die Fehlermeldung: "startindex cannot be larger then length of …

  • Benutzer-Avatarbild

    Hi @RodFromGermany also mit der for schleife durchlaufe ich das dataset. Soll ich nun die Flag dort einarbeiten und dabei prüfen ob die zu druckende zeile auf die seite passt? Bin gerade total überfragt und komme auch nicht mehr weiter. wie soll das aussehen? Dim Flag = DruckeTextBaustein(row1.leistung, row1.pos, row1. menge, etc…) If Flag(row1.leistung.length) > indextext then? End if weiss nicht wirklich was ich da machen soll. Kann auch die Anzahl Zeilen abfragen und wenn die maximale Zeilena…

  • Benutzer-Avatarbild

    Hallo @RodFromGermany 1. ich würde behaupten, das ich Anfänger bin, mehr nicht. Flag ist für mich komplett neu und habe ich vorher auch noch nie gehört, daher bin ich auch gerade etwas überfordert. Habe mir das Wissen über Jahre angeeignet, hier aus dem Forum mit eurer Hilfe und Tutorials, viel auch über Google. 2. Denke, das dein Datentyp ein Boolean ist. Also wahr oder falsch, daher die IF Abfrage danach. 3. Meiin Snippet ergibt dann natürlich keinen Sinn. Ich könnte über die Zeilenhöhe abfrag…

  • Benutzer-Avatarbild

    Mag sein, das das ein elementarer Begriff ist, mir war er nicht bekannt. Ok, dann mach ich mich mal schlau wie ich das verwenden kann.

  • Benutzer-Avatarbild

    @VaporiZed, den gleichen Gedanken hatte ich auch. Ich hab mir gedacht, das ich den restlichen platz berechne und schaue, ob mein String da rein passt. Wenn nicht, den Text splitten und auf nächster Seite drucken. Muss nun noch klären, wie ich das angehe.

  • Benutzer-Avatarbild

    @RodFromGermany, wenn du meine Posts gelesen hättest, wüsstest du das ich versuche, das umzusetzen was du geschrieben hast. Leider scheiterts daran, das mir das Wissen dazu fehlt, was du mir empfiehlst. Also nicht gleich sauer sein, aber einiges was du emfpiehlst sprengt meinen aktuellen Wissensstand. Ich bin immer noch dabei, die Posts nachzuarbeiten und leider auch ein wenig genervt und versuche meinerseits wege zu finden, die ich verstehen und nachvollziehen kann. Leider dauert das alles sehr…

  • Benutzer-Avatarbild

    @RodFromGermany habe meinen Demo-Code gemäß Post 19 mal angepasst. (Versteckter Text) Es wird genau ein Textbaustein gedruckt. Aber wie komme ich nun weiter? Kann das alles in eine For-Schleife einbinden, die bindingsoruce durchlaufen. Muss aber die Variable Indextext (Zähöer der gedruckten Buchstaben) auf Null setzen, da ich sonst eine Fehlermeldung bekomme "startindex cannot be longer then length of string". @ErfinderDesRades Die Tabelle die ich drucke, baut auf einer typisierten DataTable auf…

  • Benutzer-Avatarbild

    @RodFromGermany, verstehe nicht was du mit Zitat: „ @silverbob76GE Du hast das mit der BindingSource doch schon gelöst gehabt.“ meinst. Mein Problem war ja nie die BindingSoruce, oder ich verstehe gerade was völlig falsch. Anyway. Du sagst, in der Prozedur soll ich den verleibenden Platz ausmessen, verstehe ich. Mit VB.NET-Quellcode (1 Zeile). Das sagt mir, wie viel Platz ich für den Druck meines Strings benötige, richtig? Diesen Druckbereich muss ich nun mit dem restlich vorhandenen Druckbereic…

  • Benutzer-Avatarbild

    Ok, verstehe. Dann müsste ich nun quasi rechnen: länge des textes - gedruckter text = noch zu druckender Text auf neuer Seite Die länge des gedruckten Texts wird über die Variable TotalCharsPrinted dargestellt. Wenn ich nun VB.NET-Quellcode (1 Zeile) angebe, dann müsste doch auf der nächsten Seite an der Stelle angefangen werden, wo der Druck vorher aufgehört hat. Das wäre ja dann der StartIndex (bei mir als Variable indextext). Diesen setze ich in der For-Schleife aber auf Null, da ich sonst ei…

  • Benutzer-Avatarbild

    Ich versuchs. Werd deswegen später bestimmt noch mal nerven. Danke

  • Benutzer-Avatarbild

    @ErfinderDesRades das die komplette gemessen wird und nicht passt, und dann komplett auf neuer seite gedruckt wird, klappt ja schon. Aber dann kanns passieren, das die seite zwei datarow als einzeiler hat und der rest der seite leer ist, weil die dritte rowzeile sehr lang ist. Das will ich ja nicht. Die seite sollte möglichst so voll wie geht gedruckt werden. Han noch mal ein Screenshot gemacht. Genau das will ich nicht. Da ist 3/4 der ersten Seite leer.

  • Benutzer-Avatarbild

    @RodFromGermany, ich arbeite gerade Post 19 durch. jetzt verstehe ich, warum du woltlest das ich erst mal 1 textbaustein drucke. Wenn ich ohne For-Schleife arbeite, also so tue als hätte ich einen Fliesstext, dann wird dieser auch umgebrochen. Siehe Screenshot. Wenn ich das jetzt richtig einsetze, müsste ich abfragen - wann meine DataRow zu lang für den Druck auf einer Seite wird, und dann die Methode für den Druck auf mehreren Seiten wählen. - falls nicht, normal drucken. Ok, das die Theorie, d…

  • Benutzer-Avatarbild

    Hab die Anwendung ohne obj und bin gezippt. Ist nbe xml drin, die au fden desktop muss. Der Fehler kommt in der If Anweisung, bei "Dim sb as New System.Text.StringBuilder(row1.leistung.Substring(Me.indextext))" VB.NET-Quellcode (45 Zeilen)

  • Benutzer-Avatarbild

    @RodFromGermany, das hab ich auch gemacht und einen screenshot in Post 50 geposted. Der Textbaustein klappt mit dem Code aus Post 19 wunderbar. Hab mir gedacht, das ich dann das in eine For-Schleife einbinden muss, in der abgefragt wird wie viel Platz da ist. Erst nach dieser Prüfung soll entschieden werden, welcher Druckvorgang ausgelöst wird. Hab den screenshot noch mal angehängt. Fortlaufender Druck über 2 Seiten.

  • Benutzer-Avatarbild

    @RodFromGermany das wäre schön, sowiet bin ich leider nicht. Wie ich vorher schon geschrieben habe, bekomme ich immer ne Fehlermeldung "startindex cannot be larger then length of string". Der einzelne Textbaustein klappt. Ich hatte daher ja auch die Solution gezippt und angehängt, damit man das besser nachvollziehen kann.Wei0 nicht was ich falsch mache.

  • Benutzer-Avatarbild

    @ErfinderDesRades mit bs.movenext muss ich eine neue DataRow betreten, sonst werden die nächsten DataRow ja ncht gedruckt. Wenn ich indeText zurücksetze, wird der restliche Text von Seite 1 nicht zu Ende gedruckt, der Druck geht dann mit der neuen DataRow los. Wenn ich den nicht zrücksetze, kommt die Fehlermeldung => "startindex cannot be larger then length of string". Drehe mich iwie im Kreis. @RodFromGermany Zitat: „@silverbob76GE Wir wollten doch eine in sich geschlossene Routine schreiben, d…

  • Benutzer-Avatarbild

    Werde heute noch ne demo app hochladen. aber vielleicht kurz was zum stringbuilder: muss ich eventuell auf seite 2 den zaehler indextext so lassen, aber dafür charactersfitted auf die komplette textlänge setzen? Das probier ich noch aus, bin noch unterwegs. Hab die Datei mal angehängt. Der Ansatz von oben hat nix gebracht. Hoffe das jemand ne Antwort hat.

  • Benutzer-Avatarbild

    @ErfinderDesRades hab die Solution runtergeladen und ausprobiert. Der Seitenwechsel mit fortlaufendem Text klappt. VB.NET-Quellcode (1 Zeile) Extremes Danke für die Lösung. Danke an alle, die an diesem Thread mitgewirkt haben.

  • Benutzer-Avatarbild

    @ErfinderDesRades werd die Tips versuchen umzusetzen. Der code den ich geschrieben habe ist vom letzten Jahr, bastle schon ziemlich lange dran, immer wieder mal. Und jedes mal wirds ein wenig besser. Bin mit vielem im meiner app noch nicht zu frieden, aber grösstenteils funktioniert sie. Jetzt mit dem drucken bin ich einen grossen schritt weiter.