Domino 9 und frühere Versionen > ND8: Entwicklung

Frage zu Implode

<< < (3/4) > >>

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