12.06.2008, 13:32
Beitrag #1
|
schonOK
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Jun 2008
8.2
2008
de
52072
Deutschland
|
Übergabe Variableninhalt an Report
Hallo Zusammen,
ich bin absoluter Neuling mit Diadem (komme von hbm-catman) und direkt von den vielen Möglichkeiten und der Geschwindigkeit begeistert.
Nun habe ich natürlich direkt auch eine Frage an die Profis:
Besteht eine einfache Möglichkeit aus dem Informationsbereich bei dem individuellen Eintrag "Source file path - N:4_Projekte7-021-STB " den Teil 07-021-STB abzutrennen und in einen Report einzufügen?
Vieleicht müsste man das irgendwie splitten, in eine Variable schreiben und diese Variable dann in den Report einfügen. Nur wie?
Gesplittet und als Box angezeigt habe ich es ja bekommen, nur weiter komme ich nicht:
Dim MyString, MyArray, Msg
MyString = "04_Projekte7-021-STB"
MyArray = Split(MyString, "", -1, 1)
Msg = MyArray(1)
MsgBox Msg
Vieleicht kann mir jemand von Euch helfen?
Vielen Dank im voraus
Gruß schonOK
|
|
|
13.06.2008, 12:00
Beitrag #2
|
Carpe_DIAdem
LVF-Gelegenheitsschreiber
 
Beiträge: 94
Registriert seit: Jul 2007
alle DIAdem-Versionen
1989
de
Deutschland
|
Übergabe Variableninhalt an Report
Hallo schonOK,
es gibt unterschiedliche Varianten aus einem String einen Teilstring zu bilden. Die VBS-Funktion Split ist eine; andere sind Left, Right oder Mid. Die Schwierigkeit besteht eher darin die geeigneten und eindeutigen Stellen zu definieren, die einen Teistring ausmachen.
Hier ein Beispiel:
dim sMyString, iPos, iLen, sMySubString
sMyString = "Source file path - N:4_Projekte7-021-STB"
iPos = InStr(sMyString, ":")
iLen = len(sMyString)
sMySubString = mid(sMyString, iPos + 1, iLen - iPos - 1)
msgbox sMySubString
Wenn sMyString aber wirklich ein Pfad ist, wird die obige Variante nicht ausreichen (und müsste im Übrigen auch mit "N:4" anfangen). Es können ggf. auch Unterverzeichnisse existieren. Dann ist vorher zu klären, ob beispielsweise nur der unterste Pfad relevant ist oder die letzten beiden oder ...
Dann kann auch eine Kombination aus den oben erwähnten Funktionen nötig sein.
Carpe DIAdem
|
|
|
16.06.2008, 12:27
Beitrag #3
|
schonOK
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Jun 2008
8.2
2008
de
52072
Deutschland
|
Übergabe Variableninhalt an Report
Vielen Dank für die Info's, Carpe.
Das Splitten hat nun soweit geklappt.
Ich müsste nun nur noch wissen, wie ich den Inhalt einer Variablen in einen Report einfügen kann.
Hier vertrau ich nochmal auf Deine Hilfe.
Gruß schonOK
' schrieb:Hallo schonOK,
es gibt unterschiedliche Varianten aus einem String einen Teilstring zu bilden. Die VBS-Funktion Split ist eine; andere sind Left, Right oder Mid. Die Schwierigkeit besteht eher darin die geeigneten und eindeutigen Stellen zu definieren, die einen Teistring ausmachen.
Hier ein Beispiel:
dim sMyString, iPos, iLen, sMySubString
sMyString = "Source file path - N:4_Projekte7-021-STB"
iPos = InStr(sMyString, ":")
iLen = len(sMyString)
sMySubString = mid(sMyString, iPos + 1, iLen - iPos - 1)
msgbox sMySubString
Wenn sMyString aber wirklich ein Pfad ist, wird die obige Variante nicht ausreichen (und müsste im Übrigen auch mit "N:4" anfangen). Es können ggf. auch Unterverzeichnisse existieren. Dann ist vorher zu klären, ob beispielsweise nur der unterste Pfad relevant ist oder die letzten beiden oder ...
Dann kann auch eine Kombination aus den oben erwähnten Funktionen nötig sein.
Carpe DIAdem
|
|
|
16.06.2008, 14:50
Beitrag #4
|
Carpe_DIAdem
LVF-Gelegenheitsschreiber
 
Beiträge: 94
Registriert seit: Jul 2007
alle DIAdem-Versionen
1989
de
Deutschland
|
Übergabe Variableninhalt an Report
Hallo schonOK,
alle Variablen, die im Script mit DIM deklariert werden, existieren nur in ihrem Kontext, längstens aber bis das Script beendet ist. Deshalb benötigst du globale Variablen. Diese sind, wenn sie einmal deklariert wurden, solange gültig wie DIAdem aktiv ist (oder die Variablen gelöscht wurden).
Es gibt so genannte Hilfsvariablen (R1, R2, ..., L1, L2, ..., T1, T2 ....) - eine Übersicht hierzu findest du im Modul SCRIPT >> Bearbeiten >> Hilfsvariablen. Ich kann sie aber nur bedingt empfehlen, da deren Namen nicht sehr aussagekräftig sind.
Besser sind globale Variablen mit dem Befehl GlobalDim zu definieren oder ein Script definieren, in dem mit DIM Variablen definiert sind und dieses Script als Anwenderbefehl anmelden.
In allen Fällen kann man in REPORT mit @@ auf auf diese Variable zugreifen - auch im Script. Beispiel für einen REPORT-Text im Script:
Call GraphObjOpen("Text1")
TxtTxt ="Daten"&VBCRLF&"präsentieren und"&VBCRLF&"dokumentieren mit" & @@sMyVar@@
Call GraphObjClose("Text1")
Carpe DIAdem
PS An den Inhalt der REPORT-Objekte kommst du mit CTRL-A wenn der Objektdialog geöffnet ist.
|
|
|
17.06.2008, 06:52
Beitrag #5
|
schonOK
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Jun 2008
8.2
2008
de
52072
Deutschland
|
Übergabe Variableninhalt an Report
' schrieb:Hallo schonOK,
alle Variablen, die im Script mit DIM deklariert werden, existieren nur in ihrem Kontext, längstens aber bis das Script beendet ist. Deshalb benötigst du globale Variablen. Diese sind, wenn sie einmal deklariert wurden, solange gültig wie DIAdem aktiv ist (oder die Variablen gelöscht wurden).
Es gibt so genannte Hilfsvariablen (R1, R2, ..., L1, L2, ..., T1, T2 ....) - eine Übersicht hierzu findest du im Modul SCRIPT >> Bearbeiten >> Hilfsvariablen. Ich kann sie aber nur bedingt empfehlen, da deren Namen nicht sehr aussagekräftig sind.
Besser sind globale Variablen mit dem Befehl GlobalDim zu definieren oder ein Script definieren, in dem mit DIM Variablen definiert sind und dieses Script als Anwenderbefehl anmelden.
In allen Fällen kann man in REPORT mit @@ auf auf diese Variable zugreifen - auch im Script. Beispiel für einen REPORT-Text im Script:
Call GraphObjOpen("Text1")
TxtTxt ="Daten"&VBCRLF&"präsentieren und"&VBCRLF&"dokumentieren mit" & @@sMyVar@@
Call GraphObjClose("Text1")
Carpe DIAdem
PS An den Inhalt der REPORT-Objekte kommst du mit CTRL-A wenn der Objektdialog geöffnet ist.
Vielen Dank,
hat alles geklappt.
|
|
|
| |