hallo
Habe gerade mal getestet.
Folgendes Script Funktioniert ohne Probleme:
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Call ws.CurrentDocument.Document.ReplaceItemValue( "test" , "Hallo Welt" )
Call ws.CurrentDocument.Refresh
End Sub
Der berechnete text mit der Formel zeigt "Hallo Welt" nach dem Refresh.
Einzige Problem: Wenn eine Eingabevalidierung zuschlägt (@Failure), dann wird der Text nicht angezeigt.
Warum verwendest Du denn so eine "große" Formel.
Wie ich das sehe, möchtest Du die Anzahl der Einträge je "Kategorie" anzeigen.
Dann genügt das:
_wert := @DbLookup("":"NocCache";"":"WBKHelp.nsf";"Anzahl_HCL";"1";"Anzahl");
@if( @IsError( _wert ) ; "0" ; @Text( @Elements( _wert ) ) )
Hi,
...
aber laut Hilfe müsste
_wert := @DbLookup("Notes":"NoCache";"":"WBKHelp.nsf";"Anzahl_HCL";"1";Anzahl);
@If( _wert = "" ; "0" ; @Text( @Elements( _wert ) ) )
das Feld wiedergeben
nein es gibt die Anzahl der gefundenen Elemente für "1" zurück, nicht den Inhalt des Feldes "Anzahl".
Du müsstest 3 Einträge (@Elements->Elemente einer Liste!) für den Lookup zurückerhalten,
damit @Elements(_wert) = 3 ist ....
Hast Du nur einen Eintrag (egal ob in "Anzahl" 5 oder 10 oder 10000 oder "schlagmichtot" steht)
erhälst du auch @Elements(_wert) = 1.
wie wäre es mit
@If( _wert = "" ; "0" ; @Text(_wert ) )
statt
@If( _wert = "" ; "0" ; @Text( @Elements( _wert ) ) )
?
und mit Fehlerbehandlung (die würde ich wieder aufnehmen! - sonst gibts irgendwann probleme!)
@If(@IsError(_wert); "FEHLER";
_wert = "" ; "0" ;
@Text(_wert )
)
und eventuell noch schauen ob du wirklich eine Zahl oder einen String hast (sonst gibt bei @Text(_wert) auch wieder einen fehler).
@If(@IsError(_wert); "FEHLER";
@IsNumber( _wert) ; @Text(_wert ) ;
_wert ="";"0";
_wert
)
Ausserdem musst Du, wenn Anzahl das Feld ist dieses in "" schreiben, wie Axel schon sagt:
Du musst natürlich den Feldnamen Anzahl noch in Anführungszeichen setzen.
also so:
@DbLookup("Notes":"NoCache";"":"WBKHelp.nsf";"Anzahl_HCL";"1";"Anzahl");
Gruss, Pete(r)