Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Nils
Anmeldungsdatum: 24.03.2006 Beiträge: 191
|
Verfasst am: 10.12.2012, 11:38 Titel: Titelzeile beim Ausdrucken programmieren |
|
|
Hi Gemeinde!
Habe da eine kleine Programmfrage. Ich will eine Tabelle ausdrucken(ziemlich lange) und dadurch Platz sparen, dass ich über jede Spalte den Spaltennamen schreibe.
Diese Spaltennamen sollen auf jedem neuen Papierblatt als Zeile ausgedruckt werden.
Da ich gerne mit QBasic .txt-Dateien erzeuge und dort so schön Seitennummer und Filename autom. ausgedruckt werden, will ich das eben in die .txt-Dateien hineintun.
Bitte um Hilfe
Grüße aus dem Tauwetter
Nils _________________ Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!! |
|
Nach oben |
|
|
HorstD
Anmeldungsdatum: 01.11.2007 Beiträge: 107
|
Verfasst am: 10.12.2012, 16:00 Titel: |
|
|
Code: | DIM spname AS STRING
DIM seite AS INTEGER
DIM maxze AS INTEGER
DIM i AS INTEGER
DIM x AS INTEGER
seite = 1
maxze = 55
spname = "Spalte1 Spalte2 spalte3"
'OPEN "lpt1" FOR OUTPUT AS #1
OPEN "ausgabe.txt" FOR OUTPUT AS #1
PRINT #1, spname
PRINT #1, STRING$(50, "_")
PRINT #1,
FOR i = 1 TO 200
PRINT #1, "Zeile" + STR$(i)
IF i MOD maxze = 0 THEN
PRINT #1,
PRINT #1,
PRINT #1, SPACE$(60) + "Seite" + STR$(seite)
PRINT #1, CHR$(12)
PRINT #1, spname
PRINT #1, STRING$(50, "_")
PRINT #1,
seite = seite + 1
END IF
NEXT
x = i MOD maxze
IF x THEN
FOR i = 1 TO maxze - x
PRINT #1,
NEXT
PRINT #1, SPACE$(60) + "Seite" + STR$(seite)
END IF
CLOSE
|
|
|
Nach oben |
|
|
Nils
Anmeldungsdatum: 24.03.2006 Beiträge: 191
|
Verfasst am: 10.12.2012, 16:28 Titel: |
|
|
Hi HorstD:
Das ging ja richtig schnell! Danke!
Habe allerdings noch keine Ahnung, was dein Code so richtig macht und an welcher Stelle ich den einfügen soll.
-Ich erzeuge ja schon eine datei, kann also keinen weiteren open-Befehl gebrauchen.
-Verstehe noch nicht was die Variablen "seite" und "maxze" da bewirken.
Hast Du das aus einem bereits geschriebenen Programm rausgenommen?
Grüße
Nils _________________ Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!! |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 10.12.2012, 17:12 Titel: |
|
|
So wie ich das beim überfliegen sehe, ist "seite" die aktuelle Seitenzahl und "maxze" die maximale Zeilenzahl pro Seite. Das Programm schreibt dir die Daten formatiert in eine neue Datei - diese müsstest du dann nur noch regulär ausdrucken (dabei "maxze" anpassen), oder stattdessen OPEN "lpt" aktivieren, also Ausgabe direkt an den Drucker. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
Nils
Anmeldungsdatum: 24.03.2006 Beiträge: 191
|
Verfasst am: 10.12.2012, 19:09 Titel: |
|
|
@HorstD:
-Ich weiß nicht, wieviele Zeilen ich erzeuge.
-IUch bestimme nicht den Seitenumbruch, sondern Wordpad.
-Nicht ich vergebe die Seitenzahlen, sondern Wordpad!
-WP schreibt auch den Dateinamen in die erste Zeile.
-Gibt es nicht eine Möglichkeit mittels einer Formatierungsanweisung das gleiche einfacher zu erreichen?
jedenfalls mal vielen Dank an Deine Adresse
Grüße Nils _________________ Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!! |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 10.12.2012, 19:36 Titel: |
|
|
Mach doch mal einen "Probeausdruck" - Druckvorschau reicht, dann siehst du, wie viele Zeilen reinpassen, bevor eine neue Seite beginnt. Nicht wirklich sauber, könnte aber funktionieren. Und wenn er die aktuelle Seitenzahl nicht dazu schreiben soll - lass sie einfach weg.
Ansonsten: http://www.freebasic-portal.de/befehlsreferenz/lprint-anweisung-349.html: LPRINT statt PRINT. Ungetestet, ob das auch wirklich in einem modernen Windowssystem funktioniert. Da steht dabei, wie du einen Seitenumbruch erzeugst. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
HorstD
Anmeldungsdatum: 01.11.2007 Beiträge: 107
|
Verfasst am: 11.12.2012, 00:52 Titel: |
|
|
Hier eine angepasste Version.
Wenn du damit nicht klarkommst, musst du deinen Code zeigen.
Code: |
DIM spname AS STRING
DIM maxze AS INTEGER
DIM i AS INTEGER
maxze = 52 'Max. Zeilen deiner Tabelle pro Seite (evtl. anpassen)
spname = "Spalte1 Spalte2 spalte3" ' Spaltenueberschrift (Beispiel)
OPEN "ausgabe.txt" FOR OUTPUT AS #1 'ausgabe.txt durch deinen Dateinamen ersetzen
PRINT #1, spname 'Spaltenueberschrift
PRINT #1, STRING$(50, "_") 'Strich (nur als Beispiel)
PRINT #1, 'Leerzeile (nur als Beispiel)
FOR i = 1 TO 200 'nur als Beispiel
PRINT #1, "Zeile" + STR$(i) 'durch deine Tabellenzeilen ersetzen
IF i MOD maxze = 0 THEN 'Wenn max. Zeilenanzahl erreicht, dann
PRINT #1, CHR$(12) 'Seitenumbruch
PRINT #1, spname 'Spaltenueberschrift
PRINT #1, STRING$(50, "_") 'Strich
PRINT #1, 'Leerzeile
END IF
NEXT
CLOSE
|
|
|
Nach oben |
|
|
|