Domino 9 und frühere Versionen > Entwicklung

Initialien mit Lotusscript holen

<< < (2/3) > >>

chriss76:
Hallo Bernhard,

beim Anlegen neuer Bestellungen als Notesdokument muss eine eindeutige Nummer
vergeben werden. Diese Nummer will ich per Lotusscript generieren.
Dazu nehme ich den Zeitpunkt der Dokumentenerstellung(Datum, Uhrzeit) + die Initialien (also Hein Blöd ==> HB)
des Dokumentenerstellers (Commonusername).

Das ist meine Aufgabenstellung!
Und Du hast natürlich Recht, dann wird es Probleme mit Doppelnamen usw. geben.

Hast für dieses Problem noch eine andere Lösung?
Leider kann ich die Art der Nummernvergabe nicht ändern, weil sie schon länger so besteht (mit Hilfe von Formeln), aber ich will sie in Lotusscript abbilden.

Die Formel sieht so aus:

monat:=@If(@Month(@Now)<10;"0" + @Text(@Month(@Now));@Text(@Month(@Now)));
tag:= @If(@Day(@Now)<10;"0" + @Text(@Day(@Now));@Text(@Day(@Now)));
std:=@If(@Hour(@Now)<10;"0" + @Text(@Hour(@Now));@Text(@Hour(@Now)));
min:=@If(@Minute(@Now)<10;"0" + @Text(@Minute(@Now));@Text(@Minute(@Now)));
sek:=@If(@Second(@Now)<10;"0" + @Text(@Second(@Now));@Text(@Second(@Now)));

@Left(@Name([CN];@UserName);1) + @Left(@Right(@Name([CN];@UserName);" ");1) + @Text(@Year(@Now)) +monat + tag + std + min + sek
aber ich brauche es in Lotusscript!

Grüsse Chris


Leider kann

umi:
evtl. den Teil mit dem @username einfach in ein Evaluate packen?

Thomas Schulte:
Man könnte auch den linken Teil von @unique nehmen.
Da wird der Name des aktuellen Benutzers verwendet und zwar in der Form, das der erste Buchstabe des Vornamens, die ersten beiden Buchstaben des Nachnamens und der letzte Buchstabe des Nachnamens verwendet wird.
Uniquenumber = Evaluate(|@unique|)
Initials = Left(Uniquenumber,2)

Wobei ich an deiner Stelle auch über den Sinn dieser Nummernvergabe nachdenken würde.
@Unique ist da dann als Ganzes doch deutlich einfacher.

diali:

--- Code: ---dim session as New NotesSession
monat = right( "00" & Month(Now), 2)
tag = right( "00" & Day(Now), 2)
std = right( "00" & Hour(Now), 2)
min = right( "00" & Minute(Now), 2)
sek = right( "00" & SecondDay(Now), 2)

x = 0
i = 1
while x = 0
  If Asc(right(session.CommonUsername, i)) = asc(" ") then
    x = (length(session.CommonUsername) - i) + 1
  end if
  i = i + 1
Wend

left(Session.CommonUserName,1) & left(right(session.CommonUserName, x),1) & Year(Now) & monat & tag & std & min & sek
--- Ende Code ---

habs nicht getestet - eventuell muss x noch um eine Stelle korigiert werden.

Doppelte Vornamen mit einem Space würde ich vermeiden, wir haben da beim Umbenennen schon massive Probleme bekommen, weil Notes dann nur den ersten Vornamen als Vornamen und den Rest als Nachnamen verwendet.

klaussal:

--- Zitat von: klauss am 20.09.05 - 08:38:54 ---Ich hab das mal so gelöst:


--- Code: ---__number:=@ReplaceSubstring(@Text(@Time(@Now));":";"")
+"-"+ @ReplaceSubstring(@Text(@Date(@Today));".";"");
_supporter:=@Name([CN];@UserName);
_RequestNumber:=
@UpperCase(@Left(@Word(_supporter; " "; 1); 2) +
@Left(@Word(_supporter; " "; 2); 1)) +
_number;
OrderNumber := OrderNumber;
@If(@IsNewDoc;@SetField("OrderNumber";_RequestNumber);"");
@Command( [FileSave] )
--- Ende Code ---

Wird über eine Schaltfläche "Speichern" ausgelöst.

--- Ende Zitat ---

Das ergibt z.Bsp. so etwas: AXW092143-27082004

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln