| |
| Posté le 14 décembre 2004 - 10:31 |
Je remplis une table avec l'IDClient: Sur les tables fichiers il est caracterise en "Libelle"
Quand je remplis une table memoire si je choisis le numerique pour l'IDClient quel est le masque conseille 999 999 999 ou 999 999 ou alors le monetaire.
Si je choisis le Libelle au lieu du numerique: dans le trie sur l'ID apres le chiffre 9 le 10 et 11.. passe en premier |
| |
| |
| | | |
|
| | |
| |
| Posté le 14 décembre 2004 - 10:50 |
Une clé alphanumérique composée de chiffres doit absolument posséder le même nombre de caractères: Par exemple, la clé '12' devra être transformée en '000012' si 6 positions sont requises: Cle=Sansespace(Cle) Cle=Repete("0",6-Taille(Cle))+Cle Le nombre de positions à prévoir dépend des situations évidemment. Si on estime à 50.000 le nombre d'enregistrements nécessaires, il est conseillé de monter nettement plus haut... |
| |
| |
| | | |
|
| | |
| |
| Posté le 14 décembre 2004 - 12:28 |
Merci pour la reponse
Pour etre plus precis je parle d'un identifiant automatique (4 octets) cree automatiquement dans la creation d'une fichier IDClient
Maintenant si je fais un tableajouteligne sur une table memoire de cette identifiant:
Client.IDClient sur la colonne de la table qu'elle masque je mets dans ce cas precis.
Pour l'instant j'ai mis numerique avec 999 999 999 et sur la table affichee j'obtiens 1 puis 2 puis 3 etc. |
| |
| |
| | | |
|
| | |
| |
| Posté le 14 décembre 2004 - 13:04 |
Un identifiant automatique sur 4 octets est un entier qui peut aller jusqu'à 4 x 10 ^9 soit 4 000 000 000. Un masque de 999 999 999 est donc parfait: cela donne 1 milliard d'enregistrements possibles. On peut voir venir... Mais je me demande si j'ai bien saisi le problème ??? Personnellement, je n'affiche jamais un identifiant automatique et je ne l'utilise pas comme clé d'affichage. On ne s'y retrouve plus dans les noms. J'utilise une clé composée 'NomPrenom'. L'identifiant automatique, je l'utilise pour les liaisons inter fichiers: un fichier membre (Factures) utilise l'identifiant du propriétaire (Clients). |
| |
| |
| | | |
|
| | |
| |
| Posté le 14 décembre 2004 - 14:38 |
J'explique:
Voila j'ai un client qui vient de temps en temps je marque son passage dans le magasin et sa demande sur un fichier qui est relie au fichier client par 0,n 1,1
donc quand je clique sur le nom du client j'ai l'affichage de tous ses passages et pour avoir un bon ordre chronologique je choisi l'ID de ce fichier, comme ca s'est automatiquement trie par l'ID du premier au dernier passage de mon client sur une table memoire.
Ainsi quand je clique sur une ligne j'ai l'ID qui me permet par un hlitrecherchepremier d'afficher tous les details de son passage sur une fiche (d'ou l'importance d'utiliser l'ID du fichier, sinon j'aurais pu incrementer n'importe quel chiffre)
Il est sur que je pourrais faire une incrementation d'un chiffre tel que
Nombre++
tableajouteligne(Table,Table.ID,Nombre,....
rendre la colonne ID invisible et trier sur la colonne nombre avec aussi un masque 999 999 999; ca aurait l'avantage de connaitre le nombre de ligne par le chiffre et de trie la table par la colonne Nombre qui serait avec un chiffre regulierement croissant.
Qu'en pensez-vous, je pense que c'est peut-etre une bonne solution. |
| |
| |
| | | |
|
| | |
| |
| Posté le 14 décembre 2004 - 14:50 |
Bonjour,
Et pourquoi tu ne tries par sur la date de passage de ton client. Au moins tu serais sûr de la chronologie des événements.
Ocin. |
| |
| |
| | | |
|
| | |
| |
| Posté le 14 décembre 2004 - 15:30 |
Merci pour ta reponse C'est malheureusement dans le fichier un champ texte. Je ne vois pas comment changer le texte en date. |
| |
| |
| | | |
|
| | |
| |
| Posté le 14 décembre 2004 - 16:21 |
Je te dis pas de changer en date, tu peux très bien trier ta table suivant des chaînes caractères. A une condition, que ta dtae (de type chaîne) soit de la forme JJ/MM/AAAA.
En tout cas je te déconseille de mettre tes dates en type chaine dans ton analyse car tu supprimes pas mal de fonctionnalités sur la manipulation des dates (Différence entre deux dates,...) Si tu le peux, je pense que tu devrais changer dans ton fichier le type de la Date.
Bon dev.
Ocin. |
| |
| |
| | | |
|
| | |
| |
| Posté le 14 décembre 2004 - 18:22 |
Merci Toute mon erreur vient que je ne savais pas que la date de type chaine pouvait etre triee un tout petit probleme pour une date americaine cela change tout car il y a inversion au lieu de 14/12/2004 c'est 12/14/2004 et le tri dans ce cas ne fonctionne pas. |
| |
| |
| | | |
|
| | |
| |
| Posté le 14 décembre 2004 - 20:52 |
Je reviens. Je constate que la communication a été riche sur le problème posé!!! Je remets un petit grain: 1. Dans Windev, les dates sont de type chaîne au format 'AAAAMMJJ' donc triables facilement. 11/12/2004 est un affichage (ou une impression) obtenu avec 'DateVersChaine' mais Windev manipule 'AAAAMMJJ' 2. Si on importe une date ayant un autre format, il faut absolument la remettre dans cet ordre avec les fonctions 'Gauche', 'Droite' et 'Milieu'. 3. Une clé composée peut être prévue: IdClient+Date |
| |
| |
| | | |
|
| | |