18. september 2003 - 11:17Der 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.
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)
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.
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.
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"
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.
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.
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.
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.