Domino 9 und frühere Versionen > ND6: Entwicklung
ColumnValues --- Variant does not contain a container
Semeaphoros:
Zuerst einmal, herzlich willkommen im Forum, kleines sigma ....
Die Bemerkung von Thomas ist schonmal beachtenswert, isArray ist zwar nicht verkehrt hier, aber sinnlos (und liefert wie es aussieht zwar ein korrektes, aber unerwartetes Resultat zurück).
Da Doc.ColumValues ja offensichtlich ein Feld ist, ist auch per definition klar, wie diese Eigenschaft des Dokumentes aussieht: ein eindimenstionaler Array. ColumnValues(0) ist also in jedem Fall ein skalarer Wert und damit überrascht es, dass man überhaupt auf die Fehlerzeile lossteuert, ich hätte jetzt erwartet, dass immer der else-Zweig ausgeführt wird. Offensichtlich überprüft IsArray in dieser Situation nicht den Inhalt der Array-Zelle 0, sondern gibt True zurück, weil ColumnValue selbst ein Array ist.
Weiter, v ist nach der Zuweisung
v=doc.ColumnValues(0)
ein Skalar und die Zuweisung sp(0)=V(0) dürfte dann die Fehlermeldung werfen (und nicht die markierte Zeile)
littleS:
Danke erstmal.
Wie kann ich denn, falls die Fehlermeldung in der Zeile davor also bei sp(0)=v(0) erzeugt wird, die Fehlermeldung abfangen, um dann den Benutzer in einer MessageBox zu bitten, mir seine letzten Aktionen zu mailen, damit ich versuchen kann, den Fehler zu reproduzieren.
Würde anstelle von sp(0)=v(0) folgendes klappen:
if (v(0)) then
sp(0)=v(0)
else
MessageBox....
end if
Semeaphoros:
Der gesamte Code scheint mir ziemlich nutzlos zu sein. Was da vermutlich erreicht werden soll, ist wohl mit einer einzigen Zeile abzudecken:
sp = doc.ColumnValues
koehlerbv:
Den Code, den Du dort vorgefunden hast, kannst Du locker unter "ganz, ganz übel" verbuchen. Besteht die Möglichkeit, dass Du den einfach wegwerfen kannst, um ihn neu zu machen ? Ein grosser Schaden kann da nicht entstehen ...
Nur ein paar Beispiele:
--- Code: ---dim v,sp(2) as variant
--- Ende Code ---
Eine Deklaration der schlampigsten Sorte. v ist Variant (ohne das das separat deklariert wurde), sp ist ein dreielementiges Array des Typs Variant. Sauber wäre:
--- Code: ---Dim v as Variant
Dim sp (0 to 2) as Variant 'wenn den Variant der Weisheit ketzter Schluss ist - und das sollte es nicht sein !!!
--- Ende Code ---
--- Code: ---if IsArray(doc.ColumnValues(0)) then
--- Ende Code ---
doc.ColumnValues (0) ist niemals ein Array, sondern immer ein skalarer Wert. Ein Element eines Arrays (was ein Item eines Dokuments immer ist !) ist immer skalar. Diese Zeile ist also einfach ... Dummfug !
Ich mag' das jetzt wirklich nicht weiter ausdehnen. Du hast da keinen Code, sondern Kot übernommen. Schmeiss es weg und mach eine brauchbare Lösung. Wir helfen, wo es für Dich erforderlich erscheint.
Bernhard
littleS:
Hallo,
danke für das Angebot, ich werde dann wohl noch öfters hier Fragen stellen. Also ihn wegwerfen und neu machen geht wohl eher nicht, da ich mich zum einen erst seit knapp 2 Wochen mit Lotus Notes beschäftige und zum zweiten die Kunden auf die Abarbeitung von Fehlerreports warten ::).
Mittelfristig werde ich vermutlich die Module erstmal mal mit Kommentaren versehen, falls ich denn verstehen sollte, was da ursprünglich gemacht werden sollte.
Also in ColumnValues(0) steht ein Datum, in ColumnValues(1) steht Datum Uhrzeit und in ColumnValues(2) steht wiederum Datum Uhrzeit. Macht es dann die Abfrage IsArray(doc.ColumnValues(0)) immer noch keinen Sinn?
Die View Set doc = view.GetDocumentByKey(Datevalue(terminb)) enthält, so wie ich das sehe, alle Termine die an dem Datum "terminb" stattfinden, die einzelnen Spalten dieser View sind Datum, Datum und Uhrzeit des Terminbeginns, Datum und Uhrzeit des Terminendes, und sollen wohl nach sp(0), sp(1), sp(2) kopiert werden.
Viele Grüße
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln