Page 1 sur 2

Probléme d'alignement de valeurs numériques

MessagePublié: 06 Jan 2010 à 21:36
par Bidouille
Bonjour à tous et re New Year avec tout ce qui va bien avec ....

Je bute sur un truc, qui va certainement en faire sourire certains ....

J'ai des champs typés numériques/monétaires/2 décimales/symbole monétaire.... il ont des valeurs implicites ou saisies ou calculée.

Je suis in-foutu/capable de les aligner à droite, quelque soit l'alignement choisit dans les propriétés des sus dit champs.

Là ou le "bas blesse", c'est que j'ai des champs de type "valeurs calculé" sous ou dessus qui sont correctement calés à droite. Cela fait désordre pour une bonne lisibilité (alignement sur la virgule des décimales) pour des comptables ou même un user std .

Ca fait plus d'une semaine que je cherche !!!! ( heu !!! je fais d'autres choses entre temps ....les recherches c'est à la maison.... comme d'autres :? :? :cry: :cry: !!!)

Infos :
Base : @formules
serveur : 6.54
Client : 6.x
OS : FenetreLogiciel

Ca me gave sérieux... c'est du visuel, donc c'est ce que voit les users !!!

Merci par avance ....

MessagePublié: 06 Jan 2010 à 21:45
par Bidouille
Houps ...précision

Ces champs sont dans un masque

MessagePublié: 06 Jan 2010 à 22:05
par roubech
tes champs sont directement dans le masques, ou dans des cellules de tableau ?

tu peux jouer sur l'alignement du paragraphe ou ajouter une tabulation droite ...

MessagePublié: 06 Jan 2010 à 22:17
par Bidouille
Salut,

Tout mes libéllés et/ou champs (quoi que ce soit d'ailleur..) sont, enfin pour moi, toujours dans un/des tableau(x).... sinon bonjour le m*erdier à l'affichage.

Mon pb c'est l'affichage du contenu du champs qui ne convient pas ...

Par contre je viens de me dire (à moi méme .... j'ai une vie intime qd mm) que mes champs sont au format de type "systeme d'exploitation". j'ai pas testé avec le format d'affichage type Notes ... (pas beau les crochets ...)

Merci

MessagePublié: 06 Jan 2010 à 23:07
par Bidouille
@roubech

précision :

ce n'est pas la position des champs que cherche à gérer mais le contenu à l'affichage

J'envoi un exemple demain ... là je vais dodo...

@+

MessagePublié: 07 Jan 2010 à 09:56
par Ahamay
Hello,

Moi j'aurait plutot tenter le coup avec une tabulation numerique...

J'ai testé et ça marche.... mais (bien vu) uniquement si les champs sont au format Notes !

MessagePublié: 07 Jan 2010 à 10:46
par Bidouille
Mouai ... c'est bien ce je pensais .
Je trouve ça un peu limite mais bon

Merci ...

fonction @

MessagePublié: 07 Jan 2010 à 18:23
par Maxime Choucroun
J'utilise cette fonction que j'ai crée moi-meme.
Je ne peux pas garantir son bon fonctionnement, car je ne l'utilise pas souvent. Mais elle fait des alignements pour les milliers.

Mais, si cela peut servir...

Bon courage


L'argument est ProduitPrix



stmp := ProduitPrix;
Calcul := @If( stmp != "";stmp;"0");

sSeparateur := ",";

sDecimal := @If( @Contains(Calcul;sSeparateur)=@True;"."+@Right(Calcul;sSeparateur); @Contains(Calcul;sSeparateur)=@True;","+@Right(Calcul;sSeparateur);"");
sDecimal_bis := @If ( @Length(sDecimal) = 0; ".00"; @Length(sDecimal) = 1;sDecimal + "00"; @Length(sDecimal) = 2;sDecimal + "0"; sDecimal );


sEntier := @If( @Contains(Calcul;",")=@True;@Left(Calcul;","); @Contains(Calcul;".")=@True;@Left(Calcul;".");Calcul);

sMilliars :=@Text(@Integer( (@Abs(@TextToNumber(sEntier))/1000000000)));
sMillions :=@Text(@Integer( (@Abs(@TextToNumber(sEntier))/1000000)));
sMilliers :=@Text(@Integer( (@Abs(@TextToNumber(sEntier))/1000)));
sMillions1 := @Right(sMillions;3);
sMilliers1 := @Right(sMilliers;3);
sUnite :=@Right(@Text(@Abs(@TextToNumber(sEntier)));3);

pos := @If( sMilliars != "0"; sMilliars+ " " +sMillions1 + " " + sMilliers1 + " " + sUnite +sDecimal_bis;sMillions != "0"; sMillions + " " + sMilliers1 + " " + sUnite +sDecimal_bis;sMilliers1 != "0"; sMilliers1 + " " + sUnite +sDecimal_bis;sUnite+sDecimal_bis);

neg := "-"+@If( sMilliars != "0"; sMilliars+ " " +sMillions1 + " " + sMilliers1 + " " + sUnite +sDecimal_bis;sMillions != "0"; sMillions + " " + sMilliers1 + " " + sUnite +sDecimal_bis;sMilliers1 != "0"; sMilliers1 + " " + sUnite +sDecimal_bis;sUnite+sDecimal_bis);

Final := @If(@Contains(Calcul;"-")=1;neg;pos);

Final

MessagePublié: 07 Jan 2010 à 22:41
par Bidouille
Merci Maxime,

J'ai expliquer la non resolution simplement du pb aux demandeur (clients internes
mais, ceci dit, cela ne me satisfais , intellectuellement parlant ...(j'aime pas "gruger" les users avec des explicationx "bateau" .... quoi que des fois y'a pas d'autre soluce).

Je vais tester ton code ... et reviens pour valider ...mais pas demain ... je dois livrer ...

Merci

MessagePublié: 08 Jan 2010 à 11:13
par Ahamay
Pfff..... ça m'ennerve ton problème :mur:

A dire vrai j'en ai absolument pas besoin... mais je viens de passer 2 plombes dessus, et je vois vraiment pas de solution.

Le seul truc que j'ai trouvé c'est en typant le champ en texte et en bidouillant la chaine (genre ce que propose Maxime).

MessagePublié: 08 Jan 2010 à 12:01
par Bidouille
Hé hé ......

Merci ... moi je pensais perdre la raison . J'osais mm pas poser la question :-(

Cela parait tellement évident...

Pour l'instant je mets le pb sous le coude ... mais j'y reviendrai ;-)

Merci à tous

MessagePublié: 08 Jan 2010 à 14:16
par Ahamay
J'ai trouvé la solution :

tu webifies ta base et tu gères tout en JS

:dejadehors:

MessagePublié: 08 Jan 2010 à 14:18
par Michael DELIQUE
j'y avais pensé !

mais j'ai pas osé lol

MessagePublié: 08 Jan 2010 à 14:34
par Ahamay
Comme quoi les grand esprits se rencontrent.... :)

m'enfin, pour le coup, suis pas certain que bidouille soit du même avis.

:jesors4:

MessagePublié: 08 Jan 2010 à 14:42
par Bidouille
Pas Glop ...
(vous vous rappelez ... ? Pifou !!)

;-)

Pas grave le We arrive à grand pas (comme la neige d'ailleurs)