Brief per Script generieren

FM Clients alle Versionen (außer FM-Mobile) und Betriebssysteme
Forumsregeln
Sie befinden sich im Archivforum! Sie können hier alte Beiträge lesen und vorhandene Diksussionen ergänzen.
Neue Diskussionen können Sie in diesem Archiv nicht erstellen!

Brief per Script generieren

Beitragvon schraube » Mi 30. Jan 2008, 16:22

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.
Nachrichtensymbol: Bild
FileMaker Client Version: FM Client 8.0

Hallo mal wieder!

Es ist mir fast unangenehm, mich hier schon wieder zu melden, weil das Problem, welches ich jetzt habe, wahrscheinlich sehr einfach zu lösen ist, ich aber einfach nicht drauf komme!

Ich habe eine größere Eingabemaske erstellt, alle Beziehungen funktionieren, und aus den Daten soll jetzt ein Brief zusammengesetzt werden. Und da ich nicht noch lauter neue Felder für die 3 verschiedenen Brieftypen anlegen möchte (und somit die Daten alle doppelt und dreifach an verschiedener Stelle stehen hätte), habe ich es mir folgendermaßen gedacht:

Ich schreibe mir einfach ( :-) ) ein Script in welchem sinngemäß folgendes steht und lasse mir sämtliche Feldinhalte aber auch bestimmten Text in ein großes Textfeld "hineinschreiben", mit allen richtigen Formatierunen und Abständen usw.:

Wenn Patient stationär, dann Betreffszeile "stationäre Behandlung vom.. bis ..." einfügen, dann Diagnosen aus Feldern Diagn1, Diagn2 und Diagn3 holen, darunter im richtigen Abstand einfügen, dann die Therapie (fett gedruckt) aus den entsprechenden Felder holen + darunter einfügen; wenn Felder "ambulante Kontrolle" und "stationäre Wiederaufnahme" leer sind, den Satz "Behandlung hier abgeschlossen" einfügen, wenn "ambulante Kontrolle" nicht leer ist, bitte Datum und Uhrzeit und Wiedervorstellungsgrund aus den entsprechenden Feldern holen und an einer bestimmten Stelle eintragen, usw.

Mein Problem ist, daß die angebotenen Scriptschritte mir irgendwie nicht genug Freiheiten lassen. Wie sage ich: "hole Inhalt von Feld X, wenn Feld Y dann folgende Bedingung erfüllt wähle den Satz "xyz" und setze dies dann alles in das Textfeld xy mit Abstand x"?
Warum kann ich z.B. die Funktion "Falls" nicht als Scriptschritt benutzen (habe sie nicht gefunden...) oder bin ich zu blöd? (Weil ich ja auch wenn... benutzen könnte?)

Ich könnte mir sogar eine Lösung vorstellen, bei welcher nur ein Script abläuft und am Ende ein Ausdruck steht, ich müßte den Brief gar nicht am Bildschirm sehen müssen.

Ich würde mich riesig über einen Hinweis freuen! Vielleicht hat jemand einen Tipp, wie das ganze mal ins rollen kommen könnte. Wenn ich mir so die anderen Beiträge ansehe, dann scheinen die Scripte doch jede Menge herzugeben...

Vielen Dank schon im Voraus!!!
Filemaker Pro 8.5
schraube
 
Beiträge: 12
Registriert: Do 17. Jan 2008, 01:00
Wohnort:

Antwort

Beitragvon macphisto » Mi 30. Jan 2008, 19:20

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.

Hallo schraube,

warum nimmst Du nicht einfach ein Textfeld und sagst ihm dort per Berechnung, was er reinschreiben soll? Dann hast Du auch wirklich eine Kontrolle über die Formatierungen etc.

Grüße, Stefan
macphisto ;-)
DESK - stefan[dot]kolodzey[at]nextime[dot]de
MacOS 10.6 auf Intel Duo 2 2.66 GHz; FM10 Adv
macphisto
 
Beiträge: 305
Registriert: Fr 26. Okt 2007, 00:00
Wohnort: Regensburg

Antwort

Beitragvon mediaterminator » Mi 30. Jan 2008, 20:41

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.

@ macphisto: ...na das erscheint mir doch etwas um's Eck gelöst.

Ein Brief besteht im Wesentlichen aus 6 Bereichen: Anschrift, Ort/Datum, Betreffzeile, Anrede, Textteil und Grussformel

Ein Kunde kann gewöhnlich mehrere Briefe bekommen, also gibt es eine Tabelle "Brief" mit eindeutiger Verknüpfung zum Kunden per Indexfeld. Ein eigenes (Druck-)layout für den Brief braucht's sowieso. Das beruht auf der Tabelle "Brief".
> Das Adressfeld wird über die Beziehung mit den Adressdaten des Kunden als Platzhalter angelegt.
> Die Ort/Datumzeile besteht ebenfalls aus Platzhaltern, nämlich dem Ort, Komma - tja und nun ist's Ermessenssache, eigentlich reicht "//" für das aktuelle Datum, ich persönlich würde ein Datumsfeld in der Brieftapelle anlegen. Man will ja später mal nachsehen können, wann der Brief geschrieben wurde. Das Feld kann ja automatisch mit dem Erstellungsdatum des Datensatzes gefüllt werden.
> Die Betreffzeile könnte theoretisch aus einem Auswahlfeld bestehen - entweder als immer wieder überschreibbares Globalfeld, oder aber als eigenes Feld der Tabelle "Brief". Eine gut strukturierte DB "weiss" meistens, was jetzt kommt, und kann den Betrefftext schon mal einsetzen.
> Die Anrede würde ich nicht als Platzhalter setzen, sondern in das Textfeld vorschreiben, so kann der Benutzer dort noch mal ein wenig variieren (den komplizierte Titel weglassen, auf "Du" schreiben etc.)
> Das Textfeld ist, denke ich, soweit klar. Alles, was man an Standardformulierungen schon weiss, kann halt per Script vorgeschrieben werden.
> Die Grussformel kann ebenfalls schon im Textfeld vorgeschrieben sein. Wer sie fest angeben möchte, sollte halt daran denken, ein zweites Layout zu setzen, das den Textteil dann auch als Platzhalter enthält und für diesen die Grösseangleichung setzen, sonst kann es passieren, dass zwischen dem Text und der Grussformel 8 unschöne Zeilen Abstand stehen.

Einziger Nachteil: Wenn sich die Adresse des Kunden ändert, liegt der Brief nicht mehr in der ursprünglichen Form an. Dort, wo das für später wichtig ist, muss die Tabelle Brief halt tatsächlich ein zusätzliches Feld "Anschrift" bekommen, das automatisch mit den (kompletten) Adressdaten des Empfängers gefüllt wird.

Eine interessante und relativ sichere Lösung für die Dokumentation von Briefen ist, das Ganze parallel als PDF zu hinterlegen, so spart man die ganze Speicherung von Betreffzeile, Adresse etc. und es ist quasi "dokumentenecht"

Grüsse
Martin
Und denken Sie immer daran: Der Computer macht das, was Sie ihm sagen. Auch, wenn Sie es anders gemeint haben.
(Aus der Betriebsanleitung eines A5120, 1982)
mediaterminator
 
Beiträge: 326
Registriert: Mi 14. Jun 2006, 00:00
Wohnort: Pforzheim

Antwort

Beitragvon macphisto » Do 31. Jan 2008, 10:28

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.

@ Mediaterminator: na ja, "ums Eck" nicht gerade.

Hallo zusammen!

Nein, ich benutze das, um ausserhalb der (sowieso) bestehenden Briefdatei auch Anschreiben erstellen zu können, ohne den ganzen Aufwand eines eigenen Layouts pro Tabelle haben zu müssen..
Und innerhalb der Briefdatei, um eMails zu erstellen.
Ab FM 8.5 mit der Funktion "Liste" eleganter gelöst, vorher sah's in etwas so aus:

**********
"¶¶¶" &
Anschrift & "¶¶¶" &
TextStilZufügen ( Betreff ; Fett) & "¶¶" &
Anrede Anspr.partner & "¶¶" &
Falls (Text1 ≠ ""; Text1 & "¶¶";) &
Falls (Text2 ≠ ""; TextStilZufügen (Text2 ; Fett) & "¶¶";) &
Falls (Zusatzangaben ≠ ""; Zusatzangaben & "¶¶";) &
Falls (Text3 ≠ ""; Text3 & "¶¶¶";) &
Absendergrußzeile & "¶" &
GS|Daten_GS|Nr.::Firmenname & "¶¶¶" &

Falls (IstLeer (U.schrift i.V.);U.schrift i.A.;
Falls (IstLeer (U.schrift i.A.);U.schrift i.V.;
U.schrift i.V. &" " & U.schrift i.A.))

& "¶¶" &

GS|Übersicht_GS.Nr._Pers.Nr.Absender::Absender für eMail
**********
(-- in der Darstellung im Forum scheint aus dem Begriff "ungleich leer" irgendwie "&#8800" zu werden? Bitte das korrekt zu lesen, auch wenn's anders erscheint.--)

Das Ganze als berechneter Wert, der nach Erstellung auch noch veränderbar wäre und gespeichert bleibt als eigener Datensatz.
Ist hier wie gesagt für eine eMail gewesen, man müßte das für Briefe noch mehr dem Briefbogen anpassen.

Also, wenn das zu sehr um die Ecke ist, bitte ich um Entschuldigung.
Schien mir nur ein Lösungsansatz für das Problem von schraube zu sein.

Schöne Grüße, Stefan

macphisto ;-)
DESK - stefan[dot]kolodzey[at]nextime[dot]de
MacOS 10.5.1 auf Tower PPC G4 Dual 1,25 Ghz; FM9 Adv

<font size=1>[ Diese Nachricht wurde editiert von : macphisto am 31.01.2008 09:30 ]</font>

[ Diese Nachricht wurde editiert von : macphisto am 31.01.2008 09:31 ]
macphisto ;-)
DESK - stefan[dot]kolodzey[at]nextime[dot]de
MacOS 10.6 auf Intel Duo 2 2.66 GHz; FM10 Adv
macphisto
 
Beiträge: 305
Registriert: Fr 26. Okt 2007, 00:00
Wohnort: Regensburg

Antwort

Beitragvon schraube » Do 31. Jan 2008, 15:20

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.
Nachrichtensymbol: Bild

@ macphisto
Nee, sieht gar nicht so "um die Ecke" aus. Vielen Dank, muß ich mal ausprobieren, ich muß mir auch noch mal die FUnktion "Berechne" richtig ansehen.

@ mediaterminator
Vielen Dank auch für die Ausführungen. Ich hatte mir das eigentlich so überlegt, gar keine neue Tabelle für Brief anzulegen, sonder in der bestehenden Tabelle "Behandlung" ein weiteres Textfeld anzulegen ("BrieftTextFeld") und dort alle notwendige Information per Script reinschreiben zu lassen. Und den Anschreiben-Bereich dann halt per Platzhalter. Eine Schwierigkeit gab es dort aber, wenn ich einen Platzhalter einfüge (z.B. "VerlaufStationärerAufenthalt"), und in dem Feld "VerlaufStationärerAufenthalt" steht aber in einem Datensatz nichts drin, dann bleibt die Beschriftung für das Feld im Brief stehen. Deshalb dachte ich, man könne das besser mit einem Skript lösen, welchem man sagt: wenn im Feld "VerlaufStationärerAufenthalt" was drin steht, dann schreibe bitte erst "Verlauf des stationären Aufenthaltes", mach dann einen Absatz und füge dann den Inhalt des Feldes "VerlaufStationärerAufenthalt" ein, wenn nichts im Feld steht, dann füge auch gar nichts ein.

Wie auch immer, ich probiere mal dieVorschläge aus!

Ulrich
Filemaker Pro 8.5
schraube
 
Beiträge: 12
Registriert: Do 17. Jan 2008, 01:00
Wohnort:

Antwort

Beitragvon macphisto » Do 31. Jan 2008, 17:40

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.

Hallo Ulrich (besser als schraube!),

das mit dem "berechneten Wert" ist keine Funktion wie "berechne" sondern eine Einstellung der Felddefinition, um da mal keine Mißverständnisse aufkommen zu lassen.

Dein Problem Platzhalter:

Ist bei meinem Beitrag ja ein wenig "verwaschen" wegen der Darstellung, aber genau dafür ist es gut:

Textfeld definiert für Platzhalter Feldbeschriftung
Wenn ( Nicht IstLeer ( VerlaufStationärerAufenthalt ); "Verlauf Stationärer Aufenthalt:" ; "")

Dann erscheint "Verlauf Stationärer Aufenthalt:" nur, wenn in dem Feld VerlaufStationärerAufenthalt auch was drinsteht.

Bloß, wenn man die Felder alle eh schon hat, kann man die auch gleich ins Layout packen und nicht mit den Platzhaltern arbeiten.


Schöne Grüße nochmal, Stefan
macphisto ;-)
DESK - stefan[dot]kolodzey[at]nextime[dot]de
MacOS 10.6 auf Intel Duo 2 2.66 GHz; FM10 Adv
macphisto
 
Beiträge: 305
Registriert: Fr 26. Okt 2007, 00:00
Wohnort: Regensburg

Antwort

Beitragvon mediaterminator » Fr 1. Feb 2008, 00:43

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.

@ macphisto: deswegen musst Du Dich ja nicht gleich entschuldigen ;-) Es gibt halt verschiedene Wege, sonst wär's ja auch langweilig.

@ schraube: Wenn Du sicher bist, dass Du mit dem einen Feld beim Patientendatensatz auskommst - kein Problem. Ich wäre davon ausgegangen, dass es da ja auch mal mehrere Einträge zu einem Patienten geben kann, und die Daten von den alten Dokumenten ja nicht überschrieben werden sollten. Mein Vorschlag funktioniert auch mit einem Feld in der Haupttabelle, und die ganzen Beziehungsangaben fallen dann halt einfach weg.
Für das Feld mit "Verlauf stationärer Aufenthalt hat Dir Stefan schon die beste Lösung genannt; bleibt mir nur noch die Frage: Warum versucht Ihr unbedingt, die Platzhalter zu vermeiden? Wenn sie auch sonst einige Nachteile haben, für ein Drucklayout sind sie meines Erachtens die beste Lösung. Und man erspart sich die ganzen Textformatierungsbefehle. Aber wenn es funktioniert, dann ist der Weg ja auch egal.

Grüsse
Martin
Und denken Sie immer daran: Der Computer macht das, was Sie ihm sagen. Auch, wenn Sie es anders gemeint haben.
(Aus der Betriebsanleitung eines A5120, 1982)
mediaterminator
 
Beiträge: 326
Registriert: Mi 14. Jun 2006, 00:00
Wohnort: Pforzheim

Antwort

Beitragvon schraube » Di 5. Feb 2008, 08:15

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.
Nachrichtensymbol: Bild

@ mediaterminator

Ich finde ja Platzhalter eigentlich auch eine schicke Sache, aber wie gesagt, habe ich es nicht hinbekommen, das Textfeld so anzulegen, dass die Feldbeschriftung auch nur dann erscheint/angezeigt wird, wenn in dem jeweiligen Feld auch was drin steht, bei mir sieht das dann so aus:

Verlauf: allergische Reaktion
-> wenn was im Feld "Verlauf" drin steht

Verlauf:
-> wenn nichts im Feld "Verlauf" drin steht, dann bleibt die Beschriftung da halt so stehen

Und irgendwie rücken die Absätze auch nicht auf, wenn mal was freibleibt, vielleicht liegt das aber auch am Blätternmodus, ich hatte noch keinen Ausdruck probiert.

Noch eine Frage: kann man in einer Formel eigentlich auch einen Tabstopp im Textformat unterbringen?

Viele Grüße,

Ulrich
Filemaker Pro 8.5
schraube
 
Beiträge: 12
Registriert: Do 17. Jan 2008, 01:00
Wohnort:

Antwort

Beitragvon macphisto » Di 5. Feb 2008, 12:03

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.
Angehängte Datei: http://www.filemakerprofis.de/forumupload/20080205_110300_2056.zip

Hallo Schraube,

anbei mal eine kleine Datei zum Spielen.

Natürlich musst Du in den Seitenansichtsmodus gehen, um zu sehen , was FM drucken will.

Probiers halt mal aus,

Grüße, Stefan
macphisto ;-)
DESK - stefan[dot]kolodzey[at]nextime[dot]de
MacOS 10.6 auf Intel Duo 2 2.66 GHz; FM10 Adv
macphisto
 
Beiträge: 305
Registriert: Fr 26. Okt 2007, 00:00
Wohnort: Regensburg

Antwort

Beitragvon schraube » Mi 6. Feb 2008, 00:02

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.

Hallo Macphisto,

vielen Dank für die Datei, sehr cool! Bin gerade am rumprobieren, langsam lichtet sich das dichte Nebelfeld im Tal der Funktionen. Ist dann ja fast netter, mit Textfeldern zu arbeiten.

Und kaum klärt sich das eine, entstehen weitere Fragen... :

Gibt es die Möglichkeit, in einer Formel genau anzugeben, wo das Text stehen soll?
Bsp: Ich möchte in EINER Zeile eintragen:

(linksbündig) (rechts an der Seite)
Rechtes Bein = Schwellung Linkes Bein = unauffällig
Rechter Fuß = ... Linker Fuß = ....

Mein Eintrag in der Formel sähe dann so aus:

Falls (NICHT IstLeer (RechtesBein) ; "Rechtes Bein = " & RechtesBein)

Falls (NICHT IstLeer (LinkesBein) ; "Linkes Bein = " & LinkesBein)

Jetzt will ich aber den Eintrag "Linkes Bein" genau an einer Position im rechten Bereich des Feldes haben (z.B. bei Position 40, also nach 40 Zeichen), damit ich dann in der nächsten Zeile die gleiche Position für "Linker Fuß" auch angeben kann, und mir nicht alles abhängig von der Länge des Anfangs der Zeile munter hin und herrutscht.

In dbase gab es einen Befehl (at 40), gibt es den hier auch?

Gruß,

Ulrich


[ Diese Nachricht wurde editiert von : schraube am 06.02.2008 00:31 ]
Filemaker Pro 8.5
schraube
 
Beiträge: 12
Registriert: Do 17. Jan 2008, 01:00
Wohnort:

Antwort

Beitragvon macphisto » Mi 6. Feb 2008, 20:33

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.

Hallo schraube,

innerhalb eines Textfeldes kannst Du Tabs setzen.
Du kannst per Skript mehrere Feldinhalte auswählen und mit Tabs in ein anderes Feld einsetzen. (auch Formatierungen bleiben erhalten, wenn Du willst.)
** suchabfrage nach den gewünschten Datensätzen in einem Layout, dass nur die Felder beinhaltet, die Du auch haben willst, Befehl: Alle Abfragen/Datensätze kopieren, Gehe zu Feld: (...), einsetzen. **
(--Einer der ganz wenigen Fälle, in denen ich die Zwischenablage noch nutze, weil mir das mit den ganzen Variablen setzen per Schleife einfach zu Aufwendig zu Programmieren war... reine Faulheit, besser wäre das...--)

Du musst auch ein wenig experimentieren, was Deinen Erwartungen am Besten entspricht; Du kannst auch mehrere Felder ins Layout nehmen, per Angleichen / Ausgeben leere Felder quasi "aus dem Druck entfernen", etc.

Es führen viele Wege nach Rom, und wenn Du vorhast, mehr mit FM zu machen, hilft nur eins: testen, testen, testen....

Deswegen war meine Beispieldatei z.B. unkommentiert (aber mit: angleichen/ausgeben, wie Du in der Seitenansicht viell. gemerkt hast).

Grüße nochmal,

Stefan

P.S.: bin leider bis Dienstag nicht im Forum, also viel Spass bis dahin.
macphisto ;-)
DESK - stefan[dot]kolodzey[at]nextime[dot]de
MacOS 10.6 auf Intel Duo 2 2.66 GHz; FM10 Adv
macphisto
 
Beiträge: 305
Registriert: Fr 26. Okt 2007, 00:00
Wohnort: Regensburg

Re: Brief per Script generieren

Beitragvon Kurtis » Di 13. Jul 2010, 00:18

Hallo, existiert dieses Forum noch?
Ich hänge mich hier mal ran, mit der Anmerkung, dass ich absoluter Script-Neuling bin.

Folgendes möchte ich machen:

Ich habe eine Datenbank mit Publikationen. Einige von ihnen haben ISBN-Nummern, andere nicht. Für jede Publikation lege ich ein Cover an. Nun möchte ich, dass die ISBN-Nummer angezeigt wird, aber nur dort, wo es auch eine gibt. Also etwa so:

Titel 1
ISBN: 123-45678-9
Andere Infos

Titel 2
Andere Infos

aber nicht

Titel 2
ISBN:
Andere Infos

Wenn ich den Thread hier lese, ist mir immer noch nicht klar, wohin was kommt, welche Zusatzfelder ich anlegen muss, usw. Könnte mir jemand geduldig erklären, was ich da machen kann?

Für jede Hilfe dankbar:
Kurtis
Kurtis
 
Beiträge: 1
Registriert: Mo 12. Jul 2010, 23:58


Zurück zu FM Clients

cron