Formulareditor
Moderator: Forum Moderatoren
Forumsregeln
TM-Startforum - "offen für alle Themen".
Beiträge, die in einen anderen Bereich passen, werden bei Bedarf verschoben.
TM-Startforum - "offen für alle Themen".
Beiträge, die in einen anderen Bereich passen, werden bei Bedarf verschoben.
-
JoergS_inaktiv
- Beiträge: 83
- Registriert: Dienstag 9. Januar 2007, 14:39
- 19
- Wohnort: Schleswig
- Kontaktdaten:
Formulareditor
hallo,
suche einen kleinen Tipp zur Formularerstellung:
Ich möchte gerne von einem TM-Formular "HM-VO.tmf" ein zweites Formular "HM-text.tmf" aufrufen. Einen im einem Textfeld des ersten Formulars eingegebe-nen Text (z.B. "W" oder "E" o.ä.) möchte ich (als Parameter) an das zweite Formular übergeben, um dort mit diesem zu arbeiten.
Das aufrufende Formular enthält nur ein Texteingabefeld mit Namen "SchluesselIn" und unten angegebenen (abgespeckten) Code. Wenn ich hier im Texteinga-befeld ein "W" eintrage und dann über die Tastenkombinationen "Alt+d" und dann "m" das Formular in den Druckmanager gebe, wird vor dem Druck das zweite Formular HM-text.tmf aufgerufen. Dabei soll der Inhalt des Texteingabefelds als Parameter übergeben werden.
Formular HM-VO.tmf -------------------------------------------->
Option Explicit
dim Patform
DIM Api,File
Set PatForm = CreateObject("TMFTools.StandardFormular")
Set Api = PatForm.Api
Dim Param
Sub Form_QueryPrint( ByVal Cancel )
if SchluesselIn.Text = "W" then
Param = SchluesselIn.Text
Set Param=CreateObject ("TMAuto.ParameterList")
App.OpenForm "test\HM-text.tmf",Param
end if
if SchluesselIn.Text = "E" then
Param = SchluesselIn.Text
Set Param=CreateObject ("TMAuto.ParameterList")
App.OpenForm "test\HM-text.tmf",Param ' "Param" soll als Parameter übergeben werden
end if
End Sub
---------------------------------------------------------------<
Im zweiten (aufgerufenen) Formular findet sich ebenfalls nur ein Texteingabefeld "hm", dessen Inhalt vom übergebenen Parameter (Inhalt des Texteingabefelds des 1. Formulars) abhängig sein soll und dieser Code:
Formular Hm-text.tmf ----------------------------------------->
Option Explicit
dim texta, textb
texta = "Text-A" 'Anzeigetext Variante 1
textb = "Text-B" ' 2
Sub Form_OnLoad
Call fillHM
end sub
sub fillHM
'if Param = W then
hm.Text = texta
'end if
end sub
---------------------------------------------------------------<
Wenn ich im 2. Formular die Zeilen " 'if Param = W then" und " 'end if" auskommentiere, bekomme ich bei der Ausführung die Fehlermeldung:
" Source:'Laufzeitfehler in Microsoft VBScript'
Line:15 Char:4
Error:0 'Variable ist nicht definiert: 'Param' ' "
Meine Frage ist jetzt: wie bekomme ich den Parameter "Param" übergeben, so dass das Script korrekt läuft?
Für Ihre Hilfe - Vielen Dank!
joergschoenen
suche einen kleinen Tipp zur Formularerstellung:
Ich möchte gerne von einem TM-Formular "HM-VO.tmf" ein zweites Formular "HM-text.tmf" aufrufen. Einen im einem Textfeld des ersten Formulars eingegebe-nen Text (z.B. "W" oder "E" o.ä.) möchte ich (als Parameter) an das zweite Formular übergeben, um dort mit diesem zu arbeiten.
Das aufrufende Formular enthält nur ein Texteingabefeld mit Namen "SchluesselIn" und unten angegebenen (abgespeckten) Code. Wenn ich hier im Texteinga-befeld ein "W" eintrage und dann über die Tastenkombinationen "Alt+d" und dann "m" das Formular in den Druckmanager gebe, wird vor dem Druck das zweite Formular HM-text.tmf aufgerufen. Dabei soll der Inhalt des Texteingabefelds als Parameter übergeben werden.
Formular HM-VO.tmf -------------------------------------------->
Option Explicit
dim Patform
DIM Api,File
Set PatForm = CreateObject("TMFTools.StandardFormular")
Set Api = PatForm.Api
Dim Param
Sub Form_QueryPrint( ByVal Cancel )
if SchluesselIn.Text = "W" then
Param = SchluesselIn.Text
Set Param=CreateObject ("TMAuto.ParameterList")
App.OpenForm "test\HM-text.tmf",Param
end if
if SchluesselIn.Text = "E" then
Param = SchluesselIn.Text
Set Param=CreateObject ("TMAuto.ParameterList")
App.OpenForm "test\HM-text.tmf",Param ' "Param" soll als Parameter übergeben werden
end if
End Sub
---------------------------------------------------------------<
Im zweiten (aufgerufenen) Formular findet sich ebenfalls nur ein Texteingabefeld "hm", dessen Inhalt vom übergebenen Parameter (Inhalt des Texteingabefelds des 1. Formulars) abhängig sein soll und dieser Code:
Formular Hm-text.tmf ----------------------------------------->
Option Explicit
dim texta, textb
texta = "Text-A" 'Anzeigetext Variante 1
textb = "Text-B" ' 2
Sub Form_OnLoad
Call fillHM
end sub
sub fillHM
'if Param = W then
hm.Text = texta
'end if
end sub
---------------------------------------------------------------<
Wenn ich im 2. Formular die Zeilen " 'if Param = W then" und " 'end if" auskommentiere, bekomme ich bei der Ausführung die Fehlermeldung:
" Source:'Laufzeitfehler in Microsoft VBScript'
Line:15 Char:4
Error:0 'Variable ist nicht definiert: 'Param' ' "
Meine Frage ist jetzt: wie bekomme ich den Parameter "Param" übergeben, so dass das Script korrekt läuft?
Für Ihre Hilfe - Vielen Dank!
joergschoenen
- wahnfried
- Beiträge: 3180
- Registriert: Freitag 13. Januar 2006, 23:46
- 20
- Wohnort: Braunschweig
Re: Formulareditor
Hallo,
im zweiten Formular ist ja auch "param" nicht definiert (im ersten schon):
ergänzen Sie entweder in der Zeile "dim texta, textb" noch den Begriff ", param"
oder setzen Sie an den Anfang der "Sub fillHM" eine Zeile "dim param"
(vielleicht war's das schon?)
Eine schone Lehrstunde, wie man mehrere Textbausteine in ein aufzurufendes Formular übergeben kann, finden Sie in den Ärztlichen Attesten, bei denen von der DinA5-Version per Buttonklick Text und Betreff in das DinA4-Attest übernommen werden. Passwort "tmtest"... (das kann man sogar "höher schachteln", so daß man sich in einem "Attest zweite Seite" die erste DinA4-Seite in einem eigenen Fensterchen anzeigen lassen kann, um beim Weiterschreiben ggfs. auf Gliederungspunkte der ersten Seite Bezug zu nehmen, sie kopieren kann oder so...)
Grüsse, Wahnfried
im zweiten Formular ist ja auch "param" nicht definiert (im ersten schon):
ergänzen Sie entweder in der Zeile "dim texta, textb" noch den Begriff ", param"
oder setzen Sie an den Anfang der "Sub fillHM" eine Zeile "dim param"
(vielleicht war's das schon?)
Eine schone Lehrstunde, wie man mehrere Textbausteine in ein aufzurufendes Formular übergeben kann, finden Sie in den Ärztlichen Attesten, bei denen von der DinA5-Version per Buttonklick Text und Betreff in das DinA4-Attest übernommen werden. Passwort "tmtest"... (das kann man sogar "höher schachteln", so daß man sich in einem "Attest zweite Seite" die erste DinA4-Seite in einem eigenen Fensterchen anzeigen lassen kann, um beim Weiterschreiben ggfs. auf Gliederungspunkte der ersten Seite Bezug zu nehmen, sie kopieren kann oder so...)
Grüsse, Wahnfried
-
Stefan
- Beiträge: 546
- Registriert: Dienstag 15. August 2006, 23:46
- 20
- Wohnort: Land Brandenburg
Re: Formulareditor
Hallo joergschoenen,
woher haben Sie denn das Beispiel? Ich konnte es leider nicht ausprobieren aber das Problem ist, dass 'Param' durch die Deklaration in 'HM-VO.tmf' nicht automatisch in 'Hm-text.tmf' "bekannt" ist.
Wahnfried sprach die fehlende Deklaration schon an und zusätzlich müssen Sie 'Param' o.ä. den übergebenen Parameter aus 'HM-VO.tmf' zuweisen.
Mit 'OpenArgs' müssten Sie an den übergebenen Parameter von 'HM-VO.tmf' kommen, welchen Sie beim Start des Formulars ('Sub Form_OnLoad') der deklarierten Variablen übergeben. Diese überprüfen Sie dann auf den Wert 'E' oder 'W'.
woher haben Sie denn das Beispiel? Ich konnte es leider nicht ausprobieren aber das Problem ist, dass 'Param' durch die Deklaration in 'HM-VO.tmf' nicht automatisch in 'Hm-text.tmf' "bekannt" ist.
Wahnfried sprach die fehlende Deklaration schon an und zusätzlich müssen Sie 'Param' o.ä. den übergebenen Parameter aus 'HM-VO.tmf' zuweisen.
Mit 'OpenArgs' müssten Sie an den übergebenen Parameter von 'HM-VO.tmf' kommen, welchen Sie beim Start des Formulars ('Sub Form_OnLoad') der deklarierten Variablen übergeben. Diese überprüfen Sie dann auf den Wert 'E' oder 'W'.
Gruß
Stefan
Stefan
- wahnfried
- Beiträge: 3180
- Registriert: Freitag 13. Januar 2006, 23:46
- 20
- Wohnort: Braunschweig
Re: Formulareditor
welchen Druckmanager meinen Sie? Wenn es der TurboMed-Druckmanager in einem Mehrplatzsystem wäre, hätte ich die Frage, wie bei einem lokal verarbeiteten "param" die Übergabe an einen druckenden (anderen) PC erfolgt. Wenn dagegen der Druck vom selben PC aus erfolgt, an dem der Druckauftrag gestellt ist, ist der "param" noch bekannt, sofern nicht erneut ein gleichartiges Formular verarbeitet wurde (dann wäre "param" inzwischen durch das weitere Formular umdefiniert?).JoergSchoenen hat geschrieben:Ich möchte gerne von einem TM-Formular "HM-VO.tmf" ein zweites Formular "HM-text.tmf" aufrufen. Einen im einem Textfeld des ersten Formulars eingegebe-nen Text (z.B. "W" oder "E" o.ä.) möchte ich (als Parameter) an das zweite Formular übergeben, um dort mit diesem zu arbeiten.
Das aufrufende Formular enthält nur ein Texteingabefeld mit Namen "SchluesselIn" und unten angegebenen (abgespeckten) Code. Wenn ich hier im Texteinga-befeld ein "W" eintrage und dann über die Tastenkombinationen "Alt+d" und dann "m" das Formular in den Druckmanager gebe, wird vor dem Druck das zweite Formular HM-text.tmf aufgerufen. Dabei soll der Inhalt des Texteingabefelds als Parameter übergeben werden.
...und was ist mit anderen Eingaben als "W" und "E"? wäre da nicht ein: else tmtools.msgbox "wollense mir veräppeln?" vor dem letzten "end if" sinnvoll?JoergSchoenen hat geschrieben:Formular HM-VO.tmf -------------------------------------------->
Option Explicit
dim Patform
DIM Api,File
Set PatForm = CreateObject("TMFTools.StandardFormular")
Set Api = PatForm.Api
Dim Param
Sub Form_QueryPrint( ByVal Cancel )
if SchluesselIn.Text = "W" then
Param = SchluesselIn.Text
Set Param=CreateObject ("TMAuto.ParameterList")
App.OpenForm "test\HM-text.tmf",Param
end if
if SchluesselIn.Text = "E" then
Param = SchluesselIn.Text
Set Param=CreateObject ("TMAuto.ParameterList")
App.OpenForm "test\HM-text.tmf",Param ' "Param" soll als Parameter übergeben werden
end if
End Sub
---------------------------------------------------------------<
...und wo bleibt "Text-B"?JoergSchoenen hat geschrieben:Im zweiten (aufgerufenen) Formular findet sich ebenfalls nur ein Texteingabefeld "hm", dessen Inhalt vom übergebenen Parameter (Inhalt des Texteingabefelds des 1. Formulars) abhängig sein soll und dieser Code:
Formular Hm-text.tmf ----------------------------------------->
Option Explicit
dim texta, textb
texta = "Text-A" 'Anzeigetext Variante 1
textb = "Text-B" ' 2
Sub Form_OnLoad
Call fillHM
end sub
sub fillHM
'if Param = W then
hm.Text = texta
'end if
end sub
---------------------------------------------------------------<
...Sie meinen sicher: wenn man die Auskommentierung = Zeilen-Inaktivierung durch die vorangestellten Apostrophe entfernt?JoergSchoenen hat geschrieben:Wenn ich im 2. Formular die Zeilen " 'if Param = W then" und " 'end if" auskommentiere, bekomme ich bei der Ausführung die Fehlermeldung:
" Source:'Laufzeitfehler in Microsoft VBScript'
Line:15 Char:4
Error:0 'Variable ist nicht definiert: 'Param' ' "
Grüsse, Wahnfried
-
JoergS_inaktiv
- Beiträge: 83
- Registriert: Dienstag 9. Januar 2007, 14:39
- 19
- Wohnort: Schleswig
- Kontaktdaten:
Re: Formulareditor
hallo Wahnfried und Stefan,
erst mal Danke für die Rückmeldungen!
ad 1) im zweiten Formular habe ich absichtlich "Param" nicht definiert, weil es ja keine neue Variable sondern ein Übergabe-Wert sein soll. Habe es jetzt doch mal probiert - Fehlermeldung: " Variable W nicht definiert", dann in "sub fillHM" eine Zeile geändert: 'if Param = "W" then' (also W in " "), => Script läuft ohne Fehlermeldung, zeigt aber nicht den gewünschten Text, da der Übergabetext nicht in "Pa-ram" angekommen ist.
ad 2) sehr interessantes Formular "Ärztliches Attest"!, habe mir das jetzt mal angesehen und versu-che mal daran herum. Sieht so aus, als ob das meine Fragen lösen könnte!!! - Vielen Dank für den Tipp!!!
ad 3) "Mit 'OpenArgs' müssten Sie an den übergebenen Parameter von 'HM-VO.tmf' kommen, wel-chen Sie beim Start des Formulars ('Sub Form_OnLoad') der deklarierten Variablen übergeben." - Genau das ist mein Problem! Wie funktioniert das. Vielleicht finde ich das ja in "Ärztliches Attest".
ad 4) Der Druckmanager ist mir ganz egal. Will das Formular ja nur vor dem Druck prüfen.
(letztlich geht es mir um das alte Formular "Heilmittelverordnung Physikalischen Therapie 7_2004.tmf", welches ich statt der neuen Verordnung "Heilmittelverordnung gemäss Heilmittelrichtli-nien" verwenden möchte. Statt dessen möchte ich eigene Hilfen und Prüfungen einbauen.)
Wenn ich das Formular ausgefüllt habe und mit "Alt + d" + "d" + <OK> ausdrucken möchte, soll vor dem Druck diese Prüfung laufen.
ad 5) Natürlich sollen im fertigen Formular andere Eingaben als "W" oder "E" abgefragt werden, nämlich die Heilmittelschlüssel wie z.B. "WS1a" oder "ZN1b". Und die Abfrage soll nicht über einzelne "if"´s sondern über eine "case"-Reihe laufen und zusätzlich MsgBox-Meldungen bei ungültigen oder fehlenden Schlüsseln. Die geposteten Formulare sind aber völlig abgespeckte Test-Versionen.
ad 6) das mit dem "auskommentieren" haben Sie richtig verstanden.
Zunächst noch mal besten Dank. Werde berichten, wenn das Formular läuft.
JoergSchoenen
erst mal Danke für die Rückmeldungen!
ad 1) im zweiten Formular habe ich absichtlich "Param" nicht definiert, weil es ja keine neue Variable sondern ein Übergabe-Wert sein soll. Habe es jetzt doch mal probiert - Fehlermeldung: " Variable W nicht definiert", dann in "sub fillHM" eine Zeile geändert: 'if Param = "W" then' (also W in " "), => Script läuft ohne Fehlermeldung, zeigt aber nicht den gewünschten Text, da der Übergabetext nicht in "Pa-ram" angekommen ist.
ad 2) sehr interessantes Formular "Ärztliches Attest"!, habe mir das jetzt mal angesehen und versu-che mal daran herum. Sieht so aus, als ob das meine Fragen lösen könnte!!! - Vielen Dank für den Tipp!!!
ad 3) "Mit 'OpenArgs' müssten Sie an den übergebenen Parameter von 'HM-VO.tmf' kommen, wel-chen Sie beim Start des Formulars ('Sub Form_OnLoad') der deklarierten Variablen übergeben." - Genau das ist mein Problem! Wie funktioniert das. Vielleicht finde ich das ja in "Ärztliches Attest".
ad 4) Der Druckmanager ist mir ganz egal. Will das Formular ja nur vor dem Druck prüfen.
(letztlich geht es mir um das alte Formular "Heilmittelverordnung Physikalischen Therapie 7_2004.tmf", welches ich statt der neuen Verordnung "Heilmittelverordnung gemäss Heilmittelrichtli-nien" verwenden möchte. Statt dessen möchte ich eigene Hilfen und Prüfungen einbauen.)
Wenn ich das Formular ausgefüllt habe und mit "Alt + d" + "d" + <OK> ausdrucken möchte, soll vor dem Druck diese Prüfung laufen.
ad 5) Natürlich sollen im fertigen Formular andere Eingaben als "W" oder "E" abgefragt werden, nämlich die Heilmittelschlüssel wie z.B. "WS1a" oder "ZN1b". Und die Abfrage soll nicht über einzelne "if"´s sondern über eine "case"-Reihe laufen und zusätzlich MsgBox-Meldungen bei ungültigen oder fehlenden Schlüsseln. Die geposteten Formulare sind aber völlig abgespeckte Test-Versionen.
ad 6) das mit dem "auskommentieren" haben Sie richtig verstanden.
Zunächst noch mal besten Dank. Werde berichten, wenn das Formular läuft.
JoergSchoenen
-
Stefan
- Beiträge: 546
- Registriert: Dienstag 15. August 2006, 23:46
- 20
- Wohnort: Land Brandenburg
Re: Formulareditor
Hallo JoergSchoenen,
Beim Ärztlichen Attest läuft die Parameter-Weitergabe über eine Parameter-Liste.
Die Liste wird erzeugt:
und dann mit den Werten "gefüllt".
Wie genau dann auf die übergebenen Werte zugegriffen wird habe ich noch nicht gefunden.
Mit 'OpenArgs' lag ich falsch. Das gibt es bei VBA und TM arbeitet ja mit VBScript.JoergSchoenen hat geschrieben:...
ad 3) "Mit 'OpenArgs' müssten Sie an den übergebenen Parameter von 'HM-VO.tmf' kommen, wel-chen Sie beim Start des Formulars ('Sub Form_OnLoad') der deklarierten Variablen übergeben." - Genau das ist mein Problem! Wie funktioniert das. Vielleicht finde ich das ja in "Ärztliches Attest".
...
Beim Ärztlichen Attest läuft die Parameter-Weitergabe über eine Parameter-Liste.
Die Liste wird erzeugt:
Code: Alles auswählen
Set params = CreateObject ("TMAuto.ParameterList") Code: Alles auswählen
params.Add Behandlungsfall, "Behandlungsfall"
params.Add Patient, "Patient"
...
Gruß
Stefan
Stefan
-
rfbdoc
- PowerUser
- Beiträge: 3065
- Registriert: Sonntag 30. April 2006, 19:31
- 20
- Hat sich bedankt: 56 mal
- Hat Dank erhalten: 100 mal
Re: Formulareditor
Ich habe den thread nicht im einzelnen verfolgt, vielleicht hilft ihnen dies weiter.
Im vorliegenden Fall soll der Wert des Feldes DatumY im Startformular in das Feld DatumB des Folgeformulars übernommen werden:
Im ersten Schritt wird im Startformular eine neue Variable "PDatumB" als Objekt definiert
set PDatumB= CreateObject("TMAuto.Parameter")
Im zweiten Schritt wird dem Objekt ein Wert aus dem Starformular zugeteilt:
PDatumB.Value = DatumY.Text (DatumY ist im Formular als Datenfeld vorhanden)
Im dritten Schritt eine Liste der zu übergebenden Werte erstellt (hier besteht die Liste jetzt nur aus einem Wert)
Set List=CreateObject ("TMAuto.ParameterList")
List.Add PDatumB
Im Anschluss wird das Folgeforumlar aufgerufen (bei mir aus dem Unterordner \Formulare\SelbsterstellteFormulare
Set DialogFenster=App.OpenForm ("$\TurboMed\Formulare\SelbsterstellteFormulare\Abmeldung.tmf",List)
Damit ist das Skript im Startformular abgeschlossen
Beispiel aus dem Skript des Startformulars
Sub Folgeseite
Dim FormList,DialogFenster,list
Dim PdatumB
set FormList = CreateObject("TMAuto.StringList")
set PDatumB = CreateObject("TMAuto.Parameter")
PDatumB.Value=DatumY.Text
FormList.clear
Set List=CreateObject ("TMAuto.ParameterList")
List.Add Patient, "Patient"
List.Add Behandlungsfall, "Behandlungsfall"
List.Add PDatumB, "PDatumB"
Set PatForm.Behandlungsfall = Behandlungsfall
Set DialogFenster=App.OpenForm ("$\TurboMed\Formulare\SelbsterstellteFormulare\Abmeldung.tmf",List)
End sub
Im Folgeformular werden der so weitergegebene Wert PDatumB übernommen mit der Syntax
DatumB.Text=PDatumB.Value
(In dem neu aufgerufenem Formular ist das Datenfeld DatumB vorhanden)
Nun hat das Feld DatumB des Folgeformulars den Wert aus dem Datenfeld DatumY des Startformulars.
Beispiel aus dem Skript des Folgeformulars:
DatumB.Text=PDatum.Value
Viel Erfolg
Im vorliegenden Fall soll der Wert des Feldes DatumY im Startformular in das Feld DatumB des Folgeformulars übernommen werden:
Im ersten Schritt wird im Startformular eine neue Variable "PDatumB" als Objekt definiert
set PDatumB= CreateObject("TMAuto.Parameter")
Im zweiten Schritt wird dem Objekt ein Wert aus dem Starformular zugeteilt:
PDatumB.Value = DatumY.Text (DatumY ist im Formular als Datenfeld vorhanden)
Im dritten Schritt eine Liste der zu übergebenden Werte erstellt (hier besteht die Liste jetzt nur aus einem Wert)
Set List=CreateObject ("TMAuto.ParameterList")
List.Add PDatumB
Im Anschluss wird das Folgeforumlar aufgerufen (bei mir aus dem Unterordner \Formulare\SelbsterstellteFormulare
Set DialogFenster=App.OpenForm ("$\TurboMed\Formulare\SelbsterstellteFormulare\Abmeldung.tmf",List)
Damit ist das Skript im Startformular abgeschlossen
Beispiel aus dem Skript des Startformulars
Sub Folgeseite
Dim FormList,DialogFenster,list
Dim PdatumB
set FormList = CreateObject("TMAuto.StringList")
set PDatumB = CreateObject("TMAuto.Parameter")
PDatumB.Value=DatumY.Text
FormList.clear
Set List=CreateObject ("TMAuto.ParameterList")
List.Add Patient, "Patient"
List.Add Behandlungsfall, "Behandlungsfall"
List.Add PDatumB, "PDatumB"
Set PatForm.Behandlungsfall = Behandlungsfall
Set DialogFenster=App.OpenForm ("$\TurboMed\Formulare\SelbsterstellteFormulare\Abmeldung.tmf",List)
End sub
Im Folgeformular werden der so weitergegebene Wert PDatumB übernommen mit der Syntax
DatumB.Text=PDatumB.Value
(In dem neu aufgerufenem Formular ist das Datenfeld DatumB vorhanden)
Nun hat das Feld DatumB des Folgeformulars den Wert aus dem Datenfeld DatumY des Startformulars.
Beispiel aus dem Skript des Folgeformulars:
DatumB.Text=PDatum.Value
Viel Erfolg
R.F.B.
-
JoergS_inaktiv
- Beiträge: 83
- Registriert: Dienstag 9. Januar 2007, 14:39
- 19
- Wohnort: Schleswig
- Kontaktdaten:
Re: Formulareditor
hallo,
habe jetzt mit dem "Ärztlichen Attest" herumgespielt (Dank für den Tipp) und die Scripts dahingehend verändert:
HM-VO.tmf --------------------------------->
Option Explicit
dim Patform
DIM Api,File
Set PatForm = CreateObject("TMFTools.StandardFormular")
Set Api = PatForm.Api
Dim Param
Sub Form_QueryPrint( ByVal Cancel )
dim params
dim ge_text
dim tmp_text
Set ge_text = CreateObject ("TMAuto.Parameter")
Set params = CreateObject ("TMAuto.ParameterList")
tmp_text = SchluesselIn.Text 'Inhalt des Texteingabefelds
ge_text.value = tmp_text
params.Add ge_text, "ge_text"
App.OpenForm "test\HM-text1.tmf", params '"
' Dim WshShell
' Dim iReturn
' Dim sMessage, sTitel
' sMessage = "Eingaben korrekt?"
' sTitel = "Eingabekontrolle"
' Set WshShell = CreateObject("WScript.Shell")
' iReturn = WshShell.Popup(sMessage,5 , sTitel , vbOKCancel + vbExclamation )
' Select Case iReturn
' Case vbOk
' Case vbCancel
' Cancel.Value = true
' End select
End Sub
--------------------------------------------------<
HM-text1.tmf --------------------------------->
Option Explicit
dim Patform
Set PatForm = CreateObject("TMFTools.StandardFormular")
Sub Form_OnLoad
Formatdaten_laden
end sub
Sub Formatdaten_laden
dim uebergabe, ges_text
on error resume next
Set uebergabe = ge_text
ges_text = uebergabe
hm.Text = ges_text
end sub
--------------------------------------------------->
So klappt das schon ganz gut mit der Parameterübergabe. Der Inhalt des Texteingabefeld "SchluesselIn" wird ins zweite Formular übernommen (Feld "hm").
Weil ich das zweite Formular aber über die Druck-Start Prozedur gestartet habe, wird mit dem Aufruf dieses Formulars die Druck-Prozedur zuende gebracht und das erste Formular geschlossen. Das kann ich verhindern, wenn ich den oben auskommentierten Absatz aktiviere. Es wird eine Auswahlbox eingeblendet, in der ich mit "Cancel" den Druck stoppen oder mit "OK" zuende bringen kann. Allerdings wird das zweite Fenster dadurch nicht geschlossen. - Werde weiter berichten.
(Zweck des Ganzen: s. Posting heute um 06:01, Punkt 4)
JoergSchoenen
habe jetzt mit dem "Ärztlichen Attest" herumgespielt (Dank für den Tipp) und die Scripts dahingehend verändert:
HM-VO.tmf --------------------------------->
Option Explicit
dim Patform
DIM Api,File
Set PatForm = CreateObject("TMFTools.StandardFormular")
Set Api = PatForm.Api
Dim Param
Sub Form_QueryPrint( ByVal Cancel )
dim params
dim ge_text
dim tmp_text
Set ge_text = CreateObject ("TMAuto.Parameter")
Set params = CreateObject ("TMAuto.ParameterList")
tmp_text = SchluesselIn.Text 'Inhalt des Texteingabefelds
ge_text.value = tmp_text
params.Add ge_text, "ge_text"
App.OpenForm "test\HM-text1.tmf", params '"
' Dim WshShell
' Dim iReturn
' Dim sMessage, sTitel
' sMessage = "Eingaben korrekt?"
' sTitel = "Eingabekontrolle"
' Set WshShell = CreateObject("WScript.Shell")
' iReturn = WshShell.Popup(sMessage,5 , sTitel , vbOKCancel + vbExclamation )
' Select Case iReturn
' Case vbOk
' Case vbCancel
' Cancel.Value = true
' End select
End Sub
--------------------------------------------------<
HM-text1.tmf --------------------------------->
Option Explicit
dim Patform
Set PatForm = CreateObject("TMFTools.StandardFormular")
Sub Form_OnLoad
Formatdaten_laden
end sub
Sub Formatdaten_laden
dim uebergabe, ges_text
on error resume next
Set uebergabe = ge_text
ges_text = uebergabe
hm.Text = ges_text
end sub
--------------------------------------------------->
So klappt das schon ganz gut mit der Parameterübergabe. Der Inhalt des Texteingabefeld "SchluesselIn" wird ins zweite Formular übernommen (Feld "hm").
Weil ich das zweite Formular aber über die Druck-Start Prozedur gestartet habe, wird mit dem Aufruf dieses Formulars die Druck-Prozedur zuende gebracht und das erste Formular geschlossen. Das kann ich verhindern, wenn ich den oben auskommentierten Absatz aktiviere. Es wird eine Auswahlbox eingeblendet, in der ich mit "Cancel" den Druck stoppen oder mit "OK" zuende bringen kann. Allerdings wird das zweite Fenster dadurch nicht geschlossen. - Werde weiter berichten.
(Zweck des Ganzen: s. Posting heute um 06:01, Punkt 4)
JoergSchoenen
- wahnfried
- Beiträge: 3180
- Registriert: Freitag 13. Januar 2006, 23:46
- 20
- Wohnort: Braunschweig
Re: Formulareditor
wofür dient die doppelte Ersetzung (Umweg über tmp_text)? Wenn der Inhalt von "SchluesselIn" nicht noch modifiziert/ergänzt werden soll, reicht doch "ge_text.value = SchluesselIn.text" ??JoergSchoenen hat geschrieben:hallo,
habe jetzt mit dem "Ärztlichen Attest" herumgespielt (Dank für den Tipp) und die Scripts dahingehend verändert:
HM-VO.tmf --------------------------------->
...
Sub Form_QueryPrint( ByVal Cancel )
dim params
dim ge_text
dim tmp_text
Set ge_text = CreateObject ("TMAuto.Parameter")
Set params = CreateObject ("TMAuto.ParameterList")
tmp_text = SchluesselIn.Text 'Inhalt des Texteingabefelds
ge_text.value = tmp_text
params.Add ge_text, "ge_text"
App.OpenForm "test\HM-text1.tmf", params '"
Auch hier würde ich den Umweg über "ges_text" nicht für nötig halten und direkt nach "set uebergabe = ge_text" anschließen mit "hm.text = uebergabe"JoergSchoenen hat geschrieben:HM-text1.tmf --------------------------------->
...
Sub Formatdaten_laden
dim uebergabe, ges_text
on error resume next
Set uebergabe = ge_text
ges_text = uebergabe
hm.Text = ges_text
end sub
--------------------------------------------------->
Warum denn das Eingabefeld für den/die Parameter erst durch die Druck-Prozedur starten?? Als Übungsaufgabe ganz schön, für den von Ihnen mitgeteilten Zweck m.E. zu endgültig.JoergSchoenen hat geschrieben:Weil ich das zweite Formular aber über die Druck-Start Prozedur gestartet habe, wird mit dem Aufruf dieses Formulars die Druck-Prozedur zuende gebracht und das erste Formular geschlossen. Das kann ich verhindern, wenn ich den oben auskommentierten Absatz aktiviere. Es wird eine Auswahlbox eingeblendet, in der ich mit "Cancel" den Druck stoppen oder mit "OK" zuende bringen kann. Allerdings wird das zweite Fenster dadurch nicht geschlossen.
Wenn ich Eintragungen für das Formular vorbereiten will, brauche ich evtl. ein Schaltfeld mit Hotkey wie im Attest den Schalter für das Übertragen auf A4-Attest, dem ich auch eine Funktionstaste zuweisen kann.
Im Falle der Heilmittelverordnung öffne ich bereits jetzt vom Eintragsfeld der Therapieform per F4 die Liste der Langrezepteinträge, vom Eintragsfeld für Diagnosen per F11 die Diagnosen des Patienten, vom Therapieziel- und Begründungsfeld per F4 die Zeilenmakros. Eine Auswahlliste aller Kodierungen - möglichst mit Anzeige des betr. Abschnittes der HM-Richtlinien in einem Extra-Feld - fehlt allerdings wirklich. Man kann es so regeln, daß ein Global-Schalter die ganze Auswahlen-Reihe nacheinander anstößt, die Auswahlen vom Eintragsfeld wie bisher immer nur dieses Feld bearbeiten.
Bei Schaltern brauche ich für jeden Schalter sowohl die Aktivierungsprozedur per Mausklick als auch per Hotkey-Tastenkombination - und beides ruft dann die jeweilige Sub zum Öffnen der Auswahlliste oder eines Eintragsfeldes (oder eben nacheinander alle Auswahlmöglichkeiten, deren Aufruf-Sub's ja alle bereits da sein müssen...) auf, deren Auswahl per Enter, Esc oder "OK-Schalter" direkt in die Variablen zur Ersetzung des Inhaltes des betr. Feldes im HMVPT-Formular 7_2004 übernommen wird (ggfs als Anfügung zum bisherigen Inhalt des Feldes). Schließlich möchte ich mich möglicherweise nochmal anders entscheiden und nochmal (anders) auswählen - oder beim Wieder-Aufruf des in der F3 beim Drucken oder Verlassen abgespeicherten Formulars soll die Auswahl ebenfalls nochmal neu erfolgen können.
Und beim primären Aufruf des Heilmittelverordnungs-Formulars könne in der "Sub Form_OnLoad" der "Alles-Nacheinander-Auswahlschalter" irgendwann nach dem "FuelleKopf" automatisch aufgerufen werden... Sowas würde ich sukzessive dem Heilmittelverordnungsformular implementieren, wenn das Konzept zum Arbeitsablauf "Füllen des Formulars" und "Korrigieren von Einträgen" steht.
Tipp zum Arbeiten mit dem Formulareditor: nach wenigen erfolgreichen Schritten in der Weiterentwicklung immer unter neuem Namen abspeichern und dann weiterverändern. Man macht manchmal Fehler, die man bereut, wenn man nicht auf einen kurz zurückliegenden Zwischenschritt zurückgreifen kann. Schalter im Layout und die dazugehörigen Sub's im Quelltext kann man gut aus anderen Formularen kopieren und anpassen.
Grüsse, Wahnfried
Wer ist online?
Mitglieder in diesem Forum: Ahrefs [Bot], Bing [Bot], Google [Bot], Semrush [Bot] und 5 Gäste