Seite 1 von 2

Formularerstellung

Verfasst: 03.02.2006 12:50
von real
Hi,

folgendes Problem, das nach einer Lösung sucht:
Ich habe ein Word-Formular, das ich derzeitig ausdrucke und per Hand ausfülle.

Was will ich:
Ich möchte es vereinfachen, indem ich das Formular am PC ausfülle, wo ich die Werte eingeben und mir dann das komplett ausgefüllte Formular ausdrucke. (Sieht besser aus als Handschrift :roll:)

Was will ich nicht:
Da sich das Formular nicht jede Woche ändert muss es nicht zwangsläufig als .doc vorliegen, sondern kann evtl. in irgendeinem Format vorliegen. Ich brauche also kein Programm, dass .doc-Dateien lesen kann.

Hat jemand von Euch vielleicht schon Ähnliches in PB programmiert und hat Sourcen, die sie/er freigeben kann bzw. Tipps, wie ich sowas angehen kann?

Danke schonmal
René

Verfasst: 03.02.2006 13:26
von Icke
Und wieso nicht unter Word direkt? Auch da kann man Bereiche gegen verändern schützen und im Prinzip genau das machen.

Verfasst: 05.02.2006 15:52
von real
Weil ich die Werte für das Formular direkt aus einer Datenbank auslesen und in's Formular eintragen möchte (momentan schreib ich sie praktisch aus einem Window ab). Word ist dazu nicht in der Lage...

Verfasst: 05.02.2006 16:12
von Thorsten1867
Ich erzeuge meine Formulare mit PurePDF (in PBOSL enthalten).

Ich füge meine Daten aus einer SQLite3-Datenbank in die Formulare ein und erzeuge daraus dann ein PDF.

(PS: In meinem Programm liegen die Formulare selbst als XML-Dateien vor, da man diese selbst erstellen bzw. bearbeiten kann. Das ist aber nicht notwendig, wenn es ich um ein festes Formular handelt.)

Verfasst: 06.02.2006 10:07
von real
Das hört sich interessant an und ähnelt dem, was ich brauche. Hast Du vielleicht Code-Snippets, die Du preisgeben kannst/willst? Ich hab mit PurePDF überhaupt noch nicht gearbeitet.

Interessant ist für mich: in welchem Format lege ich das Formular ab und wie packe ich da dynamisch meine Werte rein.

Verfasst: 06.02.2006 10:09
von real
Ich hatte mir das anfangs so gedacht, einen Canvas zu erzeugen, in die ich alles hineinschreibe. Dann würde ich das drucken... Aber ganz ohne Unterstützung dauert die Umsetzung wohl etwas länger. :cry:

Verfasst: 06.02.2006 10:53
von nicolaus
Hi

Also ich mach mir mein Formular als html datei.
Der vorteil ist das ich nur noch nen rechtsklick in das webgadget machen muß indem mir das formular angezeigt wird und da gleich auf drucken gehen kann.

Du kannst dir paar pics dazu auf SkyBeat anschauen unter screenshots. Da sind das die Bilder 10-14.

Ich habe im endeffekt den code für die HTML datei in meinem programm und alles was du in den Screenshots blau geschrieben siehst fülle ich dynamisch (wird aus einer SQLite DB gelesen.)

Gruß,
Nico

Verfasst: 06.02.2006 16:09
von Thorsten1867
real hat geschrieben:Das hört sich interessant an und ähnelt dem, was ich brauche. Hast Du vielleicht Code-Snippets, die Du preisgeben kannst/willst? Ich hab mit PurePDF überhaupt noch nicht gearbeitet.
Das ist vielleicht, nicht das beste Beispiel, aber das einzigste, das ich gerade zur Hand habe (ohne Datenbankeinbindung):

Code: Alles auswählen

Procedure PDF_PunkteListe(gesamt, titel$) ; PDF Punkteliste
  ; titel$:  kuerzel$ | bez$ | datum$
  ;{ ========== StartPDFDoc ==========
  pdf_Create("P", "mm", #PDF_PAGE_FORMAT_A4)
  pdf_SetDisplayMode(#PDF_ZOOM_FULLWIDTH)
  ;pdf_DisplayPreferences("HideToolbar,DisplayDocTitle")
  pdf_SetTitle("Punkteverteilung")
  pdf_SetSubject("Punkteverteilung für Notenschlüssels") 
  pdf_SetAuthor("KvGS - (c) Thorsten Hoeppner")
  pdf_SetTopMargin(15)  
  pdf_SetLeftMargin(15)  
  pdf_SetRightMargin(15)  
  pdf_SetAutoPageBreak(1, 15) 
  pdf_AddPage()
  pdf_SetFillColor(224)
  ;} ==============================
  ;{ Kopfzeile
  pdf_SetFont("Arial","B",18)
  pdf_SetXY(20, 15) 
  pdf_SetFont("Arial", "", 16)
  pdf_SetLineWidth(0.4) 
  pdf_SetFont("Arial", "B", 16)
  pdf_Cell(16, 8, StringField(titel$, 1, "|"), 1, 0, #PDF_ALIGN_CENTER)
  pdf_SetFont("Arial", "B", 14)
  pdf_Cell(135, 8, " "+StringField(titel$, 2, "|"), 1, 0, #PDF_ALIGN_CENTER)
  pdf_SetFont("Arial", "B", 14)
  pdf_Cell(29, 8, StringField(titel$, 3, "|"), 1, 1, #PDF_ALIGN_CENTER)
  pdf_Rect(20, 24, 180, 258)
  pdf_SetLineWidth(0.3) 
  ;}
  ;{ Punkte
  pdf_SetXY(30, 31) 
  pdf_SetFont("Arial", "B", 10)
  pdf_Cell(36, 5, "Punkteverteilung", 1, 1, #PDF_ALIGN_CENTER, 1)
  For p = gesamt To 1 Step -1
    pdf_SetX(30)
    pdf_Cell(6, 6, Str(p), -11, 0, #PDF_ALIGN_RIGHT)
    pdf_Cell(20, 6, "", -14, 0)
    pdf_Cell(10, 6, "", -4, 1)
    pdf_SetX(30)
    pdf_Cell(6, 2, "", -11, 0)
    pdf_Cell(20, 2, "", -14, 0)
    pdf_Cell(10, 2, "", -4, 1)
  Next p
  pdf_SetX(30)
  pdf_Cell(6, 6, "0", -11, 0, #PDF_ALIGN_RIGHT)
  pdf_Cell(20, 6, "", -14, 0)
  pdf_Cell(10, 6, "", -12, 1) ;}
  pdf_SetFont("Arial", "", 8)
  pdf_SetXY(30,277)
  pdf_Cell(0, 4, "|  =  ganze Punkte       "+Chr(149)+"  =  halbe Punkte")
  ;{ ========== EndPDFDoc ==========
  pdf_Save("C:\Test.pdf")
  ;} ==============================
  Dim punkte.s(0)
EndProcedure

PDF_Liste(25, "DEU|Test-Formular|07.02.06") ; max.28!

Verfasst: 06.02.2006 17:40
von OptimusPrime
Mal was anderes :
Wenn die Werte schon in einer Datenbank vorhanden sind, dann kann man diese auch in Word importieren, bzw. den Umweg über Excel nehmen.

In OpenOffice gibt es z.B. auch die Möglichkeit, Daten direkt an den Writer zu geben und dieser kann das z.b. sogar automatisch in ein PDF umwandeln.

Ein Bekannter macht das gerade mit einer Java-Klasse.

Verfasst: 06.02.2006 17:43
von real
Danke! Leider will er irgendwie die Konstanten nicht erkennen... :-(

Fehler:

Code: Alles auswählen

Line 4: Constant not found: #PDF_PAGE_FORMAT_A4
Was kann ich falsch gemacht haben???

@nicolaus:
Die Idee ist auch nicht schlecht... Mal sehen, was sich leichter umsetzen lässt.

Danke an Euch beide schonmal!!! Das macht Hoffnung. :) [/code]