Page 1 sur 2

Compteur différents suivant champs

MessagePublié: 11 Juin 2014 à 10:06
par Heldenn
Bonjour à tous

Je me permets de revenir vers vous, car il me reste un seul et ULTIIIIMMMME petit point sur mon cahier des charges, et malheureusement, celui-ci me pose problème


Dans ma base, j'ai un bouton radio avec 4 domaines/choix, suivant le domaine, le doc n'est pas enregistré dans la même vue


J'aimerai, que chaque domaine est un compteur qui compte les fiches (ex : SUR14001, SUR14002,...)(ENV14001, ENV14002,...)(TR14001, TR14002,..) (RP14001, RP14002)

Dans un premier temps, j'ai repris le chrono d'une autre base qui fonctionne sur celle-ci, mais pas sur la mienne, sur ma base le compteur ne s'incrémente pas de fiche en fiche

dans la version qui marche, voila comment ca se passe :
J'ai deux champs cachés :


Numero :

Tmp := @Text(@DbColumn("" : "NoCache"; ""; "Fichedecision par numero2"; 1));
TmpNum2 := @Right("000"+@Text(@If(@IsError(Tmp) | Tmp = ""; "1"; @Text(@TextToNumber(@Subset(Tmp; 1)) + 1)));3);
@If((Numero="") & @IsDocBeingSaved;TmpNum2;Numero)


AffNum :

@Right("00"+@Text(Numero);3)

J'ai un troisième champs, lui affiché dans lequel sera affiché le numéro de la fiche :

NumChrono:

@Text(@Year(@Now))+"-"+@Right("00"+@Text(Numero);3)


Dans ma vue "Fichedecision par numero2" j'ai deux colonnes:

la première (caché) qui renvoient la valeur du champ Numero

et la deuxième qui affiche NumChrono

Malheureusement, je n'arrive même pas à exploiter ceci sur ma base..


Merci de votre aide

Re: Compteur différents suivant champs

MessagePublié: 11 Juin 2014 à 13:44
par Jérôme Deniau
la vue existe bien dans la base?
La vue contient bien un document
Elle est bien triée dans le bon ordre....

Re: Compteur différents suivant champs

MessagePublié: 12 Juin 2014 à 08:41
par Heldenn
Hello, oui, tout cela est bon

Re: Compteur différents suivant champs

MessagePublié: 12 Juin 2014 à 13:27
par Heldenn
Bonjour, je pense avoir trouvé une solution plus ou moins efficace, j'ai crée une vue :

Compteur, dans celle-ci s'affiche tous les docs, ainsi que : N° dans vue.


Dans mon masque, je vais ajouter un champ calculé qui reprendra se nombre une fois le doc enregistré, mais comment faire pour qu'il n'affiche que la valeur correspondante, et non toute la colonne


J'ai essayé avec @Dbcolumn, mais il m'affiche toute la colonne, et avec un @DBLookup, je ne sais pas quoi mettre comme mot clé


Merci beaucoup

Re: Compteur différents suivant champs

MessagePublié: 13 Juin 2014 à 11:37
par Jérôme Deniau
en colonne un mettre une formule ou un champ qui renvoie ce que l'on recherche, d'après la demande SUR,ENV TR, RP et rechercher dessus

mais comme il y a plusieurs possibilités méthodes, etc..... c'est du spécifique

autre solution une vue par type, si les documents ne peuvent pas être supprimés dans la base faire un @elements(nombre de docs de la vue)
utiliser un profil ou un document de type compteur pour le type (SUR, ENV, etc), faire un lock sur la base verrouiller le document lire la valeur, faire plus un récupérer, libérer le document) etc.....

Re: Compteur différents suivant champs

MessagePublié: 13 Juin 2014 à 12:32
par Heldenn
Salut Jérôme, j'ai trouvé une solution qui marche :
Dans mon masque, j'ai crée 4 champs :

NumeroSUR :

Tmp := @Text(@DbColumn("" : "NoCache"; ""; "Compteur Surete"; 1));
TmpNum2 := @Right("000"+@Text(@If(@IsError(Tmp) | Tmp = ""; "1"; @Text(@TextToNumber(@Subset(Tmp; 1)) + 1)));3);
@If((Numero="") & @IsDocBeingSaved;TmpNum2;Numero)

NumeroENV:
Tmp := @Text(@DbColumn("" : "NoCache"; ""; "Compteur Environnement"; 1));
TmpNum2 := @Right("000"+@Text(@If(@IsError(Tmp) | Tmp = ""; "1"; @Text(@TextToNumber(@Subset(Tmp; 1)) + 1)));3);
@If((Numero="") & @IsDocBeingSaved;TmpNum2;Numero)

NumeroRP:
Tmp := @Text(@DbColumn("" : "NoCache"; ""; "Compteur Radioprotection"; 1));
TmpNum2 := @Right("000"+@Text(@If(@IsError(Tmp) | Tmp = ""; "1"; @Text(@TextToNumber(@Subset(Tmp; 1)) + 1)));3);
@If((Numero="") & @IsDocBeingSaved;TmpNum2;Numero)

NumeroTRA:
Tmp := @Text(@DbColumn("" : "NoCache"; ""; "Compteur Transport"; 1));
TmpNum2 := @Right("000"+@Text(@If(@IsError(Tmp) | Tmp = ""; "1"; @Text(@TextToNumber(@Subset(Tmp; 1)) + 1)));3);
@If((Numero="") & @IsDocBeingSaved;TmpNum2;Numero)

J'ai aussi crée 4 vue :

- Compteur Surete
- Compteur Environnement
- Compteur Radioprotection
- Compteur Transport
dans chaque vue, je n'affiche que la domaine souhaité (surete,...)

dans ces vues, je mets une colonne qui affiche le numéro du doc dans l'ordre

Et enfin, j'ai un champ NumChrono:

@If(
TypeEve = "SURETE" ; "SUR"+"-"+@Text(@Year(@Now))+"-"+@Right("00"+@Text(NumeroSUR);3);
TypeEve = "ENVIRONNEMENT" ; "ENV"+"-"+@Text(@Year(@Now))+"-"+@Right("00"+@Text(NumeroENV);3);
TypeEve = "RADIOPROTECTION" ; "RP"+"-"+@Text(@Year(@Now))+"-"+@Right("00"+@Text(NumeroRP);3);
TypeEve = "TRANSPORT" ; "TRA"+"-"+@Text(@Year(@Now))+"-"+@Right("00"+@Text(NumeroTRA);3);"")

ce qui m'affiche suivant le domaine

SUR-2014-001
RP-2014-001
ENV-2014-001
TRA-2014-001

Mais lorsque je sauvegarde une seconde fiche dans un domaine, la elle reprends la chrono global :

Exemple:

Je crée une fiche surete : SUR-2014-001
J'en crée une seconde : SUR-2014-002
Je crée une fiche environnement : ENV-2014-001
Je recrée une fiche surete : SUR-2014-004 ( au lieu de 003)

D’où cela peut-il venir ?

Re: Compteur différents suivant champs

MessagePublié: 13 Juin 2014 à 13:16
par Heldenn
Et encore, cela ne me semble pas très stable x)

Re: Compteur différents suivant champs

MessagePublié: 13 Juin 2014 à 15:41
par Jérôme Deniau
Faudrait vérifier le retour du dbcolumn pour être sûr qu'il ne soit pas en @error (sinon toujours 1) ensuite @text(@texttonumber()) inutile ;-) ce serait plutôt

@text
(

@texttonumber
(
@subset(tmp;-1)
)
+1
)

Mais je n'ai pas mes lunettes.....

Re: Compteur différents suivant champs

MessagePublié: 13 Juin 2014 à 15:46
par Jérôme Deniau
Oublie je viens de retrouver mes lunettes

Re: Compteur différents suivant champs

MessagePublié: 13 Juin 2014 à 15:49
par Jérôme Deniau
Quand tu dis dans l'ordre pour la vue tu penses ordre descendant (4,3,2,1,0) ? pas ascendant?

Re: Compteur différents suivant champs

MessagePublié: 13 Juin 2014 à 21:04
par Heldenn
Hello, je tente ça Lundi, simple question a quoi correspond le TMP ?

Re: Compteur différents suivant champs

MessagePublié: 16 Juin 2014 à 10:44
par Jérôme Deniau
? ben au code fourni

Tmp := @Text(@DbColumn("" : "NoCache"; ""; "Compteur Surete"; 1));

Re: Compteur différents suivant champs

MessagePublié: 16 Juin 2014 à 12:59
par Heldenn
Ah oui, pas con


je trouvais nul part sur internet, tout s'explique....


Malheureusement mon compteur ne fonctionne plus depuis ce matin (étrange) il m'affiche SUR-2014-ROR au lieu du numéro x)

Re: Compteur différents suivant champs

MessagePublié: 16 Juin 2014 à 13:38
par Michael DELIQUE
un peu de lecture c'est pour le dblookup mais le dbcolumn c'ets presque pareil => viewtopic.php?f=17&t=21093

Re: Compteur différents suivant champs

MessagePublié: 24 Juin 2014 à 09:46
par Heldenn
Bonjour à tous, cela fonctionne, merci beaucoup de votre aide ! ( encore une fois )