Domino 9 und frühere Versionen > ND8: Entwicklung
Frage zu Implode
ascabg:
Hallo,
Weil GetItemValue Dir eben einen Array zurueckliefert.
Und CStr kann keinen Array verarbeiten.
Andreas
koehlerbv:
--- Zitat von: wittmann_franz am 20.03.13 - 09:54:49 ---Selbst wenn ich in der Maske ein zusätzliches Feld verwende welches mittels @Text(Zahl) den Wert dann als Text umdreht kommt es zum Fehler.
--- Ende Zitat ---
Nein, damit kommt es zu keinem Fehler. Den musst Du andersartig verursachen. Aber mangels Glaskugel ...
Vielleicht tust Du Dich auch leichter, wenn Du mit Evaluate auf @functions zurückgreifst, weil Du Dir hierdurch Schleifen in LS sparst. Sowas hier tut:
--- Code: ---_list := 1 : 2 : 3;
_result := @Implode (@Text (_list); @NewLine);
@Prompt ([OK]; "Result"; _result)
--- Ende Code ---
Wichtig ist natürlich nur die 2. Zeile.
HTH,
Bernhard
Peter Klett:
Oder Du baust Dir eine kleine Function, die den Wert eines beliebigen Arrays als Textliste zurückgibt
Function TextArray (array As Variant) As Variant
Dim tarray As Variant
tarray = array
Forall ta in tarray
ta = Cstr (ta)
End Forall
TextArray = tarray
End Function
Diese Function verwendest Du statt Cstr
Implode(TextArray(dcdoc.GetItemValue("WertalsZahl")))
Ungetestet, geht bestimmt noch eleganter und hat auch kein Errorhandling, sollte aber prinzipiell tun ...
wittmann_franz:
Hallo nochmal zusammen,
ich scheitere schon wieder am nächsten Schritt.
Komme einfach nicht mit Variant, Array und String und das ganze in Verbindung klar. >:(
Hoffe also weiterhin auf Tipps von Euch.
Habe Peters Ansatz mal umgesetzt, leider ohne Erfolg, weiterhin ein Typ Mismatch.
Bernhard, Deinen Vorschlag habe ich nun in der Maske mit einem neuen berechneten Feld umgesetzt.
Klappt wunderbar, es werden die vielen Felder sauber so wie ich das gern möchte zusammengesetzt, und mit @Text bei den entsprechenden Felder mit Zahlenwerten klappt es dann mit @Implode auch. Habe jetzt also ein Feld mit den von mir gewünschten Feldern zusammengesetzt.
Nun greife ich mir dieses in meinem Script wieder mit
vHotlineFelderErg = dcdoc.GetItemValue("AbgleichGIS_AlleFelder")
So weit so gut .... im Debugger sehe ich sehr schön, das die Werte als String unterhalb des Variant angezeigt werden.
Das ganze wird nun zu einer SQL Abfrage verarbeitet:
qry.SQL = "INSERT INTO " & sdatatable & " (" & sOracleFelder & ") VALUES ('" & vHotlineFelderErg & "')"
Warum kommt es an der Stelle ('" & vHotlineFelderErg & "')" wieder zum Typ Mismatch.
Habe auch bereits & cstr(vHotlineFelderErg) & probiert, leider auch ohne Erfolg.
Ich weiß nicht mehr weiter.
Peter Klett:
vHotlineFelderErg = dcdoc.GetItemValue("AbgleichGIS_AlleFelder") (0)
Ein Item ist IMMER ein Array, auch wenn es nur einen Wert hat. Willst Du einen String aus einem Item mit einem einfachen Wert, brauchst Du die Null.
EDIT: Das steht auch schon in Andreas Antwort #10
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln