Seite 1 von 1

Hilfe für Drucker gesucht

Verfasst: 19.04.2008 21:41
von Ironsmurf
Hallo zusammen

ich möchte gerne meine Datenbank zu Papier bringen.
Habe es als Konsolenprogramm konzipiert.
Leider werde ich nicht aus den Druckerbefehlen schlau
Vieleicht kann mir jemand ein Beispiel geben.

Hier ist die Structure der Datenbank

Code: Alles auswählen

Structure Movie
           Code$
           Name$
           Star$
           Info$
           Regi$
           Jahr$
           Lang$
           Trai$
           Stat$
           Form$
           LiMo$
  EndStructure

 DVD (00144) \ Code$ = ""
  DVD (00144) \ Name$ = ""
  DVD (00144) \ Star$ = ""
  DVD (00144) \ Info$ = ""
  DVD (00144) \ Regi$ = ""
  DVD (00144) \ Jahr$ = ""
  DVD (00144) \ Lang$ = ""
  DVD (00144) \ Trai$ = ""
  DVD (00144) \ Stat$ = ""
  DVD (00144) \ Form$ = ""
  DVD (00144) \ LiMo$ = ""

SortStructuredArray(DVD(), 0, OffsetOf(Movie\Name$), #PB_Sort_String)
  PrintN("")
   For index = 1 To 19999
    AusgabeFilm$ = DVD(index)\Name$

Wie muß das Programm ausehen, damit ich einen alphabetischen Ausdruck bekomme ( Code$ & Name$ ) sind die beiden in Frage kommenden Variablen für den Ausdruck

Vielen Dank für eure Hilfe im voraus.


Re: Hilfe für Drucker gesucht

Verfasst: 19.04.2008 21:53
von scholly
Ironsmurf hat geschrieben:ich möchte gerne meine Datenbank zu Papier bringen.
Konkret helfen kann ich Dir momentan leider nicht, weil ich mit meiner Video-Verwaltung noch weit davon entfernt bin, aber wäre es nicht eine Option für Dich, die Ausgabe in der gewünschten Form zuerst in ein File zu schreiben und das dann "von Hand" auszudrucken?

Verfasst: 20.04.2008 00:21
von Phil
Du musst dir deinen Druckbereich einfach wie ein leeres Blatt Papier vorstellen, auf dem du mit der DrawText() Funktion an einer beliebigen Stelle deinen Text "hinstempeln" kannst. Das heißt aber, das du für jede neue Zeile deine "Stempelposition" verändern musst.
Das Beispiel ist nicht ausgereift, soll einfach nur zeigen, wie es prinzipiell geht.
Es druckt beispielsweise auch leere Inhalte aus und beginnt keine neue Seite. Spiel einfach damit rum. Ich hoffe es hilft dir ein bisschen.

Code: Alles auswählen

Structure Movie
           Code$
           Name$
           Star$
           Info$
           Regi$
           Jahr$
           Lang$
           Trai$
           Stat$
           Form$
           LiMo$
  EndStructure
  

Procedure Drucken(DVD.Movie(1)) ; die 1 steht für Array mit einer Dimension

If PrintRequester()
  If StartPrinting("Ausdruck des Arrays")
    
    Breite = PrinterPageWidth()
    Hoehe = PrinterPageHeight()
    mmY = Hoehe / 288 ; 288 mm ist bei mir die Höhe der tatsächlichen Druckseite
    mmX = Breite / 200 ; 200 mm ist bei mir die Breite der tatsächlichen Druckseite
    ptY = mmY * 0.265 ; dieser Faktor ist gemessen im Vergleich mit Word um Schriftgrößen in Punkten anzugeben
    ptX = mmX * 0.265 ; hier wurde einfach der selbe Faktor genommen

    LoadFont(0,"Arial",12*ptY)


    
    ; Ab hier gehts los mit Drucken!
    If StartDrawing(PrinterOutput())
 
      DrawingFont(FontID(0))
      
      For i=1 To 10    
        DrawText(X,i*10*mmY,DVD(i)\Code$)
        DrawText(X+50*mmX,i*10*mmY,DVD(i)\Name$)
      Next i

    StopDrawing() ; Schluss mit Drucken
    EndIf
  StopPrinting()
  EndIf
EndIf

EndProcedure

Dim DVD.Movie(10)
  DVD (3) \ Code$ = "Code1"
  DVD (3) \ Name$ = "Name1"
  DVD (3) \ Star$ = "Star1"
  DVD (3) \ Info$ = "Info1"
  DVD (3) \ Regi$ = "Regi1"
  DVD (3) \ Jahr$ = "Jahr1"
  DVD (3) \ Lang$ = "Lang1"
  DVD (3) \ Trai$ = "Trai1"
  DVD (3) \ Stat$ = "Stat1"
  DVD (3) \ Form$ = "Form1"
  DVD (3) \ LiMo$ = "LiMo1"  
  
  
SortStructuredArray(DVD(), 0, OffsetOf(Movie\Name$), #PB_Sort_String)

Drucken(DVD())
End

Verfasst: 20.04.2008 17:17
von Ironsmurf
Vielen Dank erstmal

er druckt schon mal, denn Rest finde ich noch heraus.