Newsgroup: it.comp.appl.notes-domino
Titolo: incremento di contatori.

salve a tutti.
ho un problema serio.
devo creare dei documenti e numerarli con un contatore incrementale, ma non
so come fare.
utilizzo per adesso solo i comandi chiocciola.
come posso fare?
grazie
soham

 wrote in message 8umje7$ruh$1...@nslave3.tin.it...

 Utilizzando solo i comandi @ č possibile ma non puoi essere sicuro del
risultato (ossia puoi avere numeri doppi)
Il metodo č trovare l'ultimo numero utilizzato con il @dbcolumn. Attenzione
che le dimensioni del risultato del @Dbcolumn deve essere inferiore ai 64k
(anzi qualcosa di meno). Ciň vuol dire che la vista deve essere
conevnientemente filtrata.
Al numero poi aggiungi 1 e lo memorizzi nel documento.
Meglio usare lo script. In questo caso puoi utilizare una vista d'appoggio e
vedere l'ultimo numero. Perň, dopo memorizzato il nuovo valore e salvato il
dopcumento puoi verificare che per caso non ci sia un altro documento
salvato con lo stesso numero. Se fosse successo ripeti l'operazione.
Se vuoi invece ti fai un applicazione server su una macchina che ti
restituisca il numero univoco.
Fulvio Rogantin

 soham
In un'occasione ho utilizzato un documento con una form con un campo
numerico, creando un documento (con un'altra form) l'evento post open si
leggeva il documento numeratore faceva +1 e aggiornava. Questo metodo
funziona solo se il database con il numeratore è unico, cioè non puoi
avere repliche. In seguito mi sono scritto una dll che, via socket,
chiede un nuovo numero ad un socket server numeratore: ed ho risolto i
miei problemi.
-- 
Dr. Ugo Gagliardelli, Modena, Italy
Spaccamaroni andate a cagare/Spammers not welcome

miei problemi.
Scusa ma qui devo dar man forte a Fulvio (visto che oltretutto ho scoperto
che divide con me le tragedie di GalaFlat ;-) ).
Non esiste un bisogno assoluto di un socket server, basta una funzione
LotusScript che pesca il documento con il contatore da una vista di lavoro
("($Protocollo)"?) e che esegue una Do Loop While Not doc.Save(False, False)
incrementendo il campo.
<EX.CODE>
    .
    .
    .
    Do
        Set doc = view.GetFirstDocument
        If doc Is Nothing Then
            Set doc = New NotesDocument (db)    ' Questo è critico ma nei
miei vecchi script ho la soluzione
            doc.Numero = 1
        Else
            doc.Numero = doc.Numero(0) + 1
        End If
    Loop While Not doc.Save(False, False)
    nomefunzione = doc.Numero(0)
End Function
</EX.CODE>

 incrementendo il campo.
Se però il db è distribuito effettivamente non fonziona a questo punto si
debbono percorrere altre strade.
Attenzione però all'analisi delle necessità, alle volte la numerazione può
essere un processo batch, altre volte non occorre una numerazione ma serve
un identificatore univoco (in questo caso c'è già)
Ciao Fulvio

Sull' ng fratello è stato postato questo link:
http://users.sgi.net/~stempb/lotus_notes.htm
Trovi uno zip con un esempio
Fulvio

Trovi uno zip con un esempio
Ma l'hai scaricato (l'avevo già visto ed ho tentato una non proprio
azzeccata risposta)?
A me pare una chiavica.

 wrote in message
bL_P5.5472$wW2.2...@news1.giganews.com...

Non l'avevo visto...ritiro quanto detto.
Fulvio

...


 E poi, quando gli hai fornito la soluzione nessuno ti ringrazia.
Il livello medio effettivamente è basso, devo dire che guardarlo non fa male
perchè alle volte si trovano cose interesanti.
Sui ringraziamenti effettivamente....comunque anche qui non scherziamo con
qualcuno che prende l'NG come società di consulenza (vedi altro mio post)
Fulvio
PS: se non ti secca mi piacerebbe contattarti privatamente per un'idea che
vorrei "condividere" (per restare in tema e non andare OT). Se ti va il mio
indirizzo ce l'hai.

     .
E' esattamente quello che ho scritto, esempio compreso. Poi mi sembrava
corretto fare presente dei problemi riscontrati e di come li ho risolti,
per di più ho risolto anche la logica del numeratore che può fornire
stringhe diverse in base all'utente, all'applicazione, alla data, etc.
in pratica una protocollatura complessa.


...

:-)
L'avevo capito.
Ce l'ho anche io una versione pluriconfigurabile.
L'ultima "release" lo scritta insieme a quattro ragazzi a cui facevo un
corso. Abbiamo provato ad usare anche i Profiles ma non funzionano diverse
cose perché pare che il sistema li cachi (italianizzazione di cache, non
(troppo) volgare). Peccato perché avremmo potuto risparmiare la vista di
lavoro.
Ciao.