Dienstag, 9. März 2010

Notes Felder im Client ändern

ich hatte wiedereinmal das Problem, dass ich einen Feldinhalt in einem Notesdokument anzeigen und ändern musste. Die Suche nach einem geeigneten Script für ein Toolbar-Icon war erfolgreich. Der Post ist zwar nicht neu - aber die Lösung sehr hilfreich.
Hier der Link zum Wohill Blog

Das Resultat sieht dann so aus:




Es werden nicht nur die verfügbaren Felder, sondern auch gleich deren Inhalt angezeigt. Jetzt muss nur noch das richtige Feld gefunden werden - anklicken und den Inhalt ändern - fertig.

Hier der Code für das Icon:

choices := @DocFields;
fullChoices := @Transform(choices; "x"; x + " = " +
@Implode(@Text(@GetField(x)); ";"));
fieldName := @Prompt([OkCancelEditCombo]; "Field Name"; "Select a field
name from the combobox list."; "";

FullChoices);
fieldName := @Left(fieldName; " = ");
oldValue := @GetField(fieldname);
newValue := @Explode(@Prompt([OkCancelEdit]; "New Field Value"; "Please
enter the new field value." + @Char(13) +

"For multivalues -- don't put space after ;"; @Implode(@Text(oldvalue);
";")); ";");
adjValue :=
@If(@IsNumber(oldValue); @TextToNumber(newValue);
@IsTime(oldValue); @TextToTime(newValue); newValue);
@If(!@IsError(adjValue);
@Do(@SetField(fieldName; adjValue); @Prompt([Ok]; "Field change
completed"; "Old field value: " + @Text(oldValue)

+ @Char(13) + @Char(13) + "has been changed to" + @Char(13) + @Char(13) +
"new field value: " + @Text(newValue)));
@Prompt([YesNo]; "Change field value"; "New value not of same type as old
value. Set field to text?");
@SetField(fieldName; newValue); "")