Avatar billede -thomas- Nybegynder
18. september 2003 - 11:17 Der er 18 kommentarer og
2 løsninger

Fortløbende numre

Jeg er ved at lave en formular i Domino, og skal til denne bruge et felt med et unikt nummer.
Jeg ved godt jeg kan gøre dette med @Unique, men jeg ville gerne have, at det i stedet var et fortløbende nummer istedet.

Hvordan gøres dette nemmest?
Avatar billede cdelicht Nybegynder
18. september 2003 - 11:26 #1
Lav et profil dokument med et felt med et nummer i
Hver gang du så gemmer et ny oprettet dokument tæller du din tæller op med en. Det gør du i det nye dokuments QueryClose.
Husk at teste for
1) at dokumentet har været gemt når du lukker det (= ikke cancel oprettelse)
2) at dokumentet ikke har et nummer i forvejen (=ikke nyt)
Avatar billede -thomas- Nybegynder
18. september 2003 - 11:35 #2
Er ikke så sej til notes - gider du uddybe din forklaring lidt evt. med lidt eksempler?
18. september 2003 - 11:46 #3
Det er efter min erfaring lidt farligt at gemme nummerværdien i et profildokument, da man kan komme ud for at klienten cacher værdierne fra profildokumentet, så man kan få det samme nummer to gange. Det er bedre, at lave et opslag i et view sorteret på numre, f.eks. sådan her:

_number:=@Subset(@DbColumn( "" : "NoCache" ; "" ; "Count" ; 1 );1);
FIELD ID := @If(@IsError(_number) | _number="";1;_number+1)

I den første kodelinie henter jeg den første kolonne (med @DbColumn) i et view, der hedder Count, som er sorteret på ID-nummeret, og tager derefter det første element i den kolonne (med @Subset). Derefter sætter jeg feltet ID til værdien +1 (hvis der er fejl i opslaget sættes værdien til 1, da det så må være det første dokument).

Koden bør sættes i QuerySave og ikke QueryClose, da det kan være at brugeren ønsker at lukke dokumentet uden at gemme.
18. september 2003 - 11:53 #4
Til cdelicht: Jeg havde overset, at du skrev, at man skal huske at teste for om dokumentet har været gemt. Undskyld. Jeg tror nu stadig det er bedre at sætte nummerværdien i QuerySave, da man så får reserveret nummeret, så et dokument, der er oprettet senere ikke får et lavere nummer.
Avatar billede -thomas- Nybegynder
18. september 2003 - 11:54 #5
kaspertm> jeg kigger lige på det og vender tilbage hvis (når) jeg ikke kan finde ud af det. tak for hjælpen.
Avatar billede -thomas- Nybegynder
18. september 2003 - 12:01 #6
Jeg har nu gjort følgende:
- Oprettet et felt i formen kaldet ID
- Oprettet et view kaldet COUNT med én kolonne: ID
- Copy/pastet din kode ind i QuerySave i formen

Jeg får følgende fejl (script-fejl):
"Unexpected =; Expected: Statement"

Hvad gør jeg galt?
Avatar billede -thomas- Nybegynder
18. september 2003 - 12:02 #7
Aah undskyld kom til at kopiere ind i Lotus script - har nu kopieret det ind i Formula og får:

No main or selection expression in formula: ')'

Det er sidste ) der giver problemet.
Avatar billede -thomas- Nybegynder
18. september 2003 - 12:04 #8
Næ, nu giver den bare:

No main or selection expression in formula: ''
men jeg ved ikke hvad fejlen er?
18. september 2003 - 12:46 #9
Slut af med en linie, hvor der bare står @Success
18. september 2003 - 13:02 #10
Husk at ID kolonnen i Count view'et skal være sorteret (i stigende orden/ascending)
Avatar billede -thomas- Nybegynder
18. september 2003 - 13:33 #11
Når jeg gemmer et dokument, vil det ikke vises i mit sædvanlige view, hvis dette står i QuerySave:

_number:=@Subset(@DbColumn( "" : "NoCache" ; "" ; "Count" ; 1 );1);
FIELD ID := @If(@IsError(_number) | _number="";1;_number+1);
@Success


Bliver dokumentet slet ikke gemt?
Avatar billede -thomas- Nybegynder
18. september 2003 - 13:43 #12
Har fundet det - men mit ID-felt bliver ikke udfyldt med noget nummer.

Skal det bare være et alm. tekstfelt kaldt ID?
Avatar billede -thomas- Nybegynder
18. september 2003 - 13:48 #13
Har tjekket at der ligger nogle poster i count-viewet - der ligger nu fem, men ingen af dem har en værdi i ID.

Har lige sat pointene lidt op, når jeg nu er så besværlig :)
18. september 2003 - 13:54 #14
ID feltet skal være et talfelt. Det er nok det der er problemet.
Avatar billede -thomas- Nybegynder
18. september 2003 - 14:03 #15
Feltet ID er nu af typen Number (Editable), men stadig ingen forskel. Nogen forslag til hvad det kan skyldes?
18. september 2003 - 14:10 #16
Det lyder meget mystisk. Jeg har prøvet at lave en formular, hvor der kun er et felt, der hedder ID og ovenstående kode i QuerySave, og der bliver dokumentet gemt og vist i views. Evt. kan du sende databasen til mig på kgm@codan.dk, så kan jeg kigge på det.
Avatar billede -thomas- Nybegynder
18. september 2003 - 14:11 #17
Hmm.. de bliver gemt, men ikke længere vist i mit gamle view, hvis jeg har koden i QuerySave. De får alle tildelt ID: 1. Nogen gode forslag?
Avatar billede -thomas- Nybegynder
18. september 2003 - 14:14 #18
Det var da underligt... jeg prøver lige at lege lidt videre med det, og ser om jeg ikke kan løse det. Jeg vender tilbage, når jeg har fået kigget lidt mere på det. Foreløbig mange tak for hjælpen.
Avatar billede -thomas- Nybegynder
01. oktober 2003 - 16:42 #19
Hej igen, nu har jeg fået afprøvet det en gang til - denne gang fra en helt blank form.

Nu tæller den fint nok, når jeg gemmer, men af en eller anden grund kun til 2. Derefter får ID i alle efterfølgende forms værdien 2, når jeg gemmer. Dvs: 1, 2, 2, 2, 2 osv.

Nogen som helst idé til hvad det kan skyldes?
Avatar billede -thomas- Nybegynder
02. oktober 2003 - 09:40 #20
Jeg lukker og opretter et nyt spg.: http://www.eksperten.dk/spm/408564
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester