Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Notes-Domino am 16.06.05 - 18:18:18
-
Hallo Zusammen!
Hab eine Frage an euch...
möchte aus einem View, der nach dem Erstellungsdatum sortiert ist, das letzte Element (ID) auslesen und um 1 erhöhen... (fortlaufende ID)
hab folgenden Quelltext, der eigentlich die letzte ID ohne 1 hochzählen in einem Computed Field (TEXT):
x:=@DbColumn("Notes":"";"":"";test-bedingt;1);
b:=@Subset(x;-1);
c:=@Text(b);
c
Jedoch zeigt er einen Fehler an, weiß wer wieso??
Find den fehler nicht!
Liebe Grüße,
Carsten
-
Wie wäre es, wenn Du den Text der Fehlermeldung verraten würdest? Oder ist die streng geheim? :P
-
mit test-bedingt verweist Du auf eine Variable. Hast Du diese und diese beinhaltet den Ansichtsnamen ? Wenn nicht und dies ist der Ansichtsname selber, solltest Du diesen logischerweise in Anführungszeichen setzen.
Bernhard
PS: Wie ist Dein Konzept, doppelte Nummern zu vermeiden / zu korrigieren ? In welcher Situation bildest Du die Nummer ? Diese Fragen nur, damit Du nicht in eine typische Anfängerfalle stolperst, über die Du hier aber sicher schon gelesen hast im Forum.
-
hab jetzt folgenden Code entwickelt:
liste := @DbColumn("Notes":"";"":"";"test";1);
b :=@Subset(liste;-1);
b
er gibt mir nun die letzte ID aus (Textform)!
Schaffe es nun nicht es als zahl umzuwandeln und um 1 zu erhöhen! :(
Fortlaufende Nummer verlangt die Aufgabenstellung :(
Freu mich um hilfe
-
@ToNumber(value)
???
-
liste := @DbColumn("Notes":"";"":"";"test";1);
b :=@Subset(liste;-1);
b := @ToNumber(b);
b=b+2;
b
funktioniert nicht... :-\
-
"... funktioniert nicht..." ist eine Null-Aussage. Und Du hast noch einige Fragen nicht beantwortet. Bis dahin bleibt das wirklich gefährliches Gefrickel, was Du da betreibst.
Bernhard
-
Kurz und bündig inkl. Error handling so:
liste := @DbColumn("Notes":"NoCache";"";"test";1);
@If(
@IsError(liste);
1;
@Elements(liste) = 1;
liste + 1;
@Subset(liste;-1) + 1
)
Andreas
-
hmm... hätte das auch lieber mit @Unique etc. gemacht aber die Aufgabenstellung verlangt es so :-:
hab aber noch ein Problem wo ich keinen rat weiß...
wenn ich die ID dann aus einem buchstaben und einer zahl zusammensetzen möchte wie z.b. A001 und ich 001 als Zahl definiere und um 1 erhöhe und anschließend wieder als text deklariere schreibt er mit nur A1.. wie erhalte ich die nullen?
Würd mich sehr um hilfe freuen!
-
Dann musst Du in der 1. Spalte der Ansicht nur die Zahl anzeigen, also sowas wie
@TextToNumber(@Right(Feldname;"A"))
und dann
liste := @DbColumn("Notes":"NoCache";"";"test";1);
zahl := @If(
@IsError(liste);
1;
@Elements(liste) = 1;
liste + 1;
@Subset(liste;-1) + 1
);
"A" + @Text(zahl)
Ich denke, damit sollte der Weg klar sein, auch wenn es dann "B" anstelle von "A" ist ;D
Andreas
-
Dann liefere ich mal noch die Nullen dazu ;D
Die letzte Zeile von Andreas' Code muss lauten:
"A" + @Right ("000" + @Text(zahl); 3)
Und : "001" kannst Du nicht als Zahl definieren, "Notes-Domino". Das ist immer nur als String darstellbar. Diese Begrifflichkeit zu verstehen ist extrem wichtig.
HTH,
Bernhard