Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Notes-Domino am 16.06.05 - 18:18:18

Titel: @DbColumn und weiteres
Beitrag 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

Titel: Re: @DbColumn und weiteres
Beitrag von: Semeaphoros am 16.06.05 - 18:26:46
Wie wäre es, wenn Du den Text der Fehlermeldung verraten würdest? Oder ist die streng geheim?   :P
Titel: Re: @DbColumn und weiteres
Beitrag von: koehlerbv am 16.06.05 - 18:31:10
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.
Titel: Re: @DbColumn und weiteres
Beitrag von: Notes-Domino am 16.06.05 - 18:34:45
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
Titel: Re: @DbColumn und weiteres
Beitrag von: m3 am 16.06.05 - 18:37:08
@ToNumber(value)
 ???
Titel: Re: @DbColumn und weiteres
Beitrag von: Notes-Domino am 16.06.05 - 18:39:47
liste := @DbColumn("Notes":"";"":"";"test";1);
b :=@Subset(liste;-1);
b := @ToNumber(b);
b=b+2;
b

funktioniert nicht...    :-\
Titel: Re: @DbColumn und weiteres
Beitrag von: koehlerbv am 16.06.05 - 18:41:25
"... 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
Titel: Re: @DbColumn und weiteres
Beitrag von: Glombi am 16.06.05 - 18:42:55
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
Titel: Re: @DbColumn und weiteres
Beitrag von: Notes-Domino am 16.06.05 - 19:00:32
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!
Titel: Re: @DbColumn und weiteres
Beitrag von: Glombi am 16.06.05 - 19:04:18
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
Titel: Re: @DbColumn und weiteres
Beitrag von: koehlerbv am 16.06.05 - 20:31:20
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