compteur

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

compteur

Messagepar debutant » 30 Avr 2003 à 14:34

Comment créer un champ compteur qui s'incremente à chaque création d'un nouveau docs?
debutant
 

Re: compteur

Messagepar PIERRE MOYSAN » 01 Mai 2003 à 08:25

Plusieurs possibilités :1.Une variable dans le notes.ini incrémentée à chaque enregistrement de document.Fonctions @setenvironment, @environment ou mot clé ENVIRONMENT : = valeurtexteducompteur.Attention, le notes.ini est celui de l'utilisateur. Un agent exécuté sur serveur permettrait de modifier le notes.ini du serveur2. Un masque de profil avec un champ numéro de compteur correspondant au dernier numéro pris.Dans le document à incrémenter :@getprofilefield pour récupérer la valeur courante du compteur afin de l'incrémenter@setprofilefield pour mettre à jour le compteur dans le masque de profil lors de l'enregistrement par exemple.3.Plus gourmand en ressources (index):Une vue affichant les numéros de compteur des documents dans une colonne@dbcolumn pour récupérer la plus grande valeur de compteur puis incrémentation +1 à l'enregistrement.Il y a encore d'autres possibilités, mais celles-ci sont assez simples. La deuxième solution est certainement la plus pratique. Attention cependant à gérer également un système de verrou pour éviter deux enregistrements simultanés et l'affectatin du même numéro de compteur à deux documents.Pierre MOYSANp.moysan@wanadoo.frhttp://pierremoysan.domino-technet.com
PIERRE MOYSAN
 

Re: compteur

Messagepar Raziel » 02 Mai 2003 à 13:35

Salut,La méthode avec le notes.ini me semble extrèmement litigieuse et assez compliqué à mettre en place (notamment sur le fait d'assurer l'unicité de la cléf)En effet, comme tu l'indique, si l'on passe par une var d'environnement, on utilise le notes.ini du client (ce qui rend de ce fait, le code totalement inutilisable pour le web) et donc, garantir l'unicité des cléf est impossible. On pourrais effectivement utilisé un agent programmé qui attaquerai le notes.ini du serveur. Mais ça me semble un peu excéssif pour juste un compteur. Ajouter à cela, le fait que je ne suis pas un partisant des variables d'environnement : à trop en abuser, on fini par pollué le notes.ini. En plus de cela, on est tributaire d'un élément extérieur à l'application et qui n'est pas sécurisé (on peux le modifier sans passer par l'appli).En ce qui me concerne, j'utilise la méthode 2 (le doc de profil). C'est un élément que j'utilise très très souvent car il se manie très bien et répond parfaitement au besoin en proposant une parfaite alternative aux vars d'environements.Voilà, c'était juste mon avis sur la question.
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: compteur

Messagepar debutant » 05 Mai 2003 à 09:12

J'ai trouvé une autre methode qui me génére un numero automatiquement la voici : @Right(@Text(@DocumentUniqueID );8) mais ta methode n°2 m'interesse peut tu être plus précis ???
debutant
 

Re: compteur

Messagepar Raziel » 05 Mai 2003 à 09:23

Salut,Exemple de la méthode 2.Sub Querysave(Source As Notesuidocument, Continue As Variant)Dim Session as new notessessionDim db as notesdatabaseDim DocProfil as notesdocumentDim Compteur as integerset db = Session.currentdatabase set DocProfil = db.getprofiledocument("NomDuDocDeProfil")while DocProfil.getitemvalue("IsLooked")(0) = "1"sleep(1)wendDocProfil.IsLooked = "1"DocProfil.save true, trueif DocProfil.hasitem("Compteur") thenCompteur = DocProfil.getitemvalue("Compteur")(0)Compteur = Compteur + 1DocProfil.Compteur = CompteurelseDocProfil.Compteur = 1Compteur = 1end ifDocProfil.IsLooked = "0"DocProfil.save true, trueEnd Sub
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: compteur

Messagepar Raziel » 05 Mai 2003 à 09:39

Petit complément d'infos :Je ne suis pas sûr que cette formule : @Right(@Text(@DocumentUniqueID );8) te génère un numéro unique.@DocumentUniqueID lui est un numéro unique (numéro composé de 32 chiffres).Tu peux aussi utiliser @unique qui te gènère une cléf aléatoire et unique composé des initiales du user et d'une succession de 5 chiffres (il me semble).
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: compteur

Messagepar debutant » 05 Mai 2003 à 10:26

@Right(@Text(@Unique);6)
debutant
 

Re: compteur

Messagepar debutant » 05 Mai 2003 à 10:30

Ton Exemple de la méthode 2 tu l'insères où ??? désolé je débute
debutant
 

Re: compteur

Messagepar Raziel » 05 Mai 2003 à 10:31

Non, juste @uniqueLa encore si tu ne prend qu'une partie d'une clé unique, tu ne peux pas garantir que cette clé partielle le sera aussi.
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: compteur

Messagepar Raziel » 05 Mai 2003 à 10:34

Tu peux par exemple l'insérer a la fin du querysave de ton masque.
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: compteur

Messagepar Raphaël » 05 Mai 2003 à 10:37

Resalut,dis moi, cette formule m'intéresse aussi, je l'ai mis dans un champ calculé dans mon masque. Je l'ai inséré dans le QuerySave, il faut faire autre chose?Raph
Raphaël
 

Re: compteur

Messagepar Raziel » 05 Mai 2003 à 10:43

Si tu as mis le @unique dans ton champ calculé (attention, il faut qu'il soit calculé à la création sinon il sera réévalué à chaque ouverture ou rafraichissement du doc), tu n'as pas besoin de le mettre lans le querysave de ton masque.En revanche, si tu utilise la méthode 2 donnée plus haut; là tu peux le mettre dans le querysave.
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: compteur

Messagepar Raphaël » 05 Mai 2003 à 10:53

Plus simplement, il n'y aurait pas un site ou on pourrait trouvé un exemple de base avec un compteur ainsi que sa remise à zéro tout fait?Parce que j'ai beau tout essayé, je n'arrive pas à lui faire gardé la valeur zéro!! Comprend pas....Raph
Raphaël
 

Re: compteur

Messagepar Raziel » 05 Mai 2003 à 10:58

Heu, j'comprends pas bien...Tu veux que ton compteur garde la valeur zéro ???Pour la remise à zéro du compteur, il suffit de faire :Dim Session as new notessessionDim db as notesdatabaseDim DocProfil as notesdocumentset db = Session.currentdatabase set DocProfil = db.getprofiledocument("NomDuDocDeProfil")DocProfil.Compteur = 0DocProfil.save true, trueEnd SubTu peux, par exemple, mettre ce code derrière un bouton qui réinitialiserai ton compteur.
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: compteur

Messagepar debutant » 05 Mai 2003 à 10:58

en faite j'ai créer un champ calculé à la création qui reprend les 6 chiffres ou lettres de @unique (@unique > qui te gènère une cléf aléatoire et unique composé des initiales du user et d'une succession de 5 chiffres style TTO-5M9DNR ) résultat je ne prend que 5M9DNR c'est pour des fiches de reclamations comme ça chaque reclam est unique.
debutant
 

Suivant

Retour vers Développement

cron