• Advertisement

Tablecherche

Tout ce qui concerne la version 11 & plus récentes de windev

**Windev est une marque déposée de Pcsoft**

Tablecherche

Messagepar ABDOU » Mer Fév 15, 2012 11:25 am

Bonjour tous le monde,
J'ai un problème sur lequel je bute depuis vendredi dernier.
J'ai une table fichier qui contient plusieurs colonnes dont:
Numéro client - Catégorie d'age - numéro d'ordre - Catégorie d'age & numéro d'ordre
Ce que je suis entrain de faire :
si j'ai le même numéro de client : (a = adulte, e= enfant et b = bébé)
256387935 - a - 1 - a1
256387935 - a - 2 - a2
256387935 - a - 3 - a3
256387935 - b - 1 - b1
256387935 - b - 2 - b2
256387935 - a - 4 - a4
999564789 - a - 1 - a1
999564789 - a - 2 - a2
999564789 - b - 1 - b1
Le numéro de la 3ème colonne doit être incrémentée en fonction du numéro du client et de la catégorie d'âge.
Si on a le même numéro du client et la même catégorie d'âge, le numéro d'ordre doit prendre le numéro suivant.
Le problème, sur les lignes 6 et 7 (exemple) ce qui me sort
256387935 - a - 1 - a1
999564789 - a - 2 - a2
au lieu de ce qui est écrie en rouge.
col_NumResa = Colonne 1
COL_AdulteEnfantCotBB = Colonne 2
Col_NumClient = colonne 3
Col_NumOrdreClient = colonne 4
TableCherche(COL_NumResa,Sai_RedColNumResa)
TableCherche(COL_AdulteEnfantCotBB,Sai_RedCOL_AdulteEnfantCotBB)
SI Sai_RedCOL_AdulteEnfantCotBB="" ALORS
Sai_RedCOL_AdulteEnfantCotBB= COL_AdulteEnfantCotBB
Sai_RedCol_NumClient_A_E_C=1
COL_NumClient_A_E_C=Sai_RedCol_NumClient_A_E_C
Sai_Col_NumOrdreClient=Sai_RedCOL_AdulteEnfantCotBB+Sai_RedCol_NumClient_A_E_C
COL_NumOrdreClient=Sai_Col_NumOrdreClient
COL_NumOrdreClient=Sai_Col_NumOrdreClient
Info(1)
SINON
TableCherche(COL_NumClient_A_E_C,COL_NumClient_A_E_C)
SI PAS COL_NumResa = Sai_RedColNumResa ET COL_AdulteEnfantCotBB=Sai_RedCOL_AdulteEnfantCotBB ALORS

Sai_RedCOL_AdulteEnfantCotBB= COL_AdulteEnfantCotBB
Sai_RedCol_NumClient_A_E_C=1
COL_NumClient_A_E_C=Sai_RedCol_NumClient_A_E_C
Sai_Col_NumOrdreClient=Sai_RedCOL_AdulteEnfantCotBB+Sai_RedCol_NumClient_A_E_C
COL_NumOrdreClient=Sai_Col_NumOrdreClient
COL_NumOrdreClient=Sai_Col_NumOrdreClient
Info(2)
FIN
SI PAS COL_AdulteEnfantCotBB=Sai_RedCOL_AdulteEnfantCotBB ET COL_NumResa = Sai_RedColNumResa ALORS
Sai_RedCol_NumClient_A_E_C=1
COL_NumClient_A_E_C=Sai_RedCol_NumClient_A_E_C
COL_NumOrdreClient=COL_AdulteEnfantCotBB+COL_NumClient_A_E_C
Info(3)
FIN

SI COL_AdulteEnfantCotBB=Sai_RedCOL_AdulteEnfantCotBB ET COL_NumResa = Sai_RedColNumResa ALORS

Sai_RedCOL_AdulteEnfantCotBB= COL_AdulteEnfantCotBB
Sai_RedCol_NumClient_A_E_C+=1
COL_NumClient_A_E_C=Sai_RedCol_NumClient_A_E_C
Sai_Col_NumOrdreClient=Sai_RedCOL_AdulteEnfantCotBB+Sai_RedCol_NumClient_A_E_C
COL_NumOrdreClient=Sai_Col_NumOrdreClient
Info(4)
FIN


FIN

Sai_RedColNumResa=COL_NumResa
Sai_RedCOL_AdulteEnfantCotBB= COL_AdulteEnfantCotBB
Sai_RedCol_NumClient_A_E_C=COL_NumClient_A_E_C
Sai_Col_NumOrdreClient=COL_NumOrdreClient


Merci de votre aide
Abdou
ABDOU
Membre
 
Messages: 72
Inscription: Ven Fév 02, 2007 9:07 pm
Localisation: Tunis-Tunisie

Advertisement

Re: Tablecherche

Messagepar ABDOU » Jeu Fév 16, 2012 4:50 am

personne pour m'aider??????????????????????????
Abdou
ABDOU
Membre
 
Messages: 72
Inscription: Ven Fév 02, 2007 9:07 pm
Localisation: Tunis-Tunisie

Re: Tablecherche

Messagepar Samifred » Jeu Fév 16, 2012 8:05 am

Bonjour,

Pourquoi (a = adulte, e= enfant et b = bébé) ?

En dehors du n°de client, l'année de naissance ne suffit pas pour déterminer l'entrée ou sortie d'une catégorie voir le classement en génération !
Même la durée d'un contrat. :idea:

Bon courage.
Cordialement, en espérant que ma collaboration soit profitable. Fred Image
PS: Il est important d'indiquer, dans la question, la version WD utilisée.
Note: Pas de question par MP, merci.
Avatar de l’utilisateur
Samifred
 
Messages: 3554
Inscription: Sam Nov 26, 2005 12:16 pm
Localisation: 128.0.0.0

Re: Tablecherche

Messagepar ABDOU » Jeu Fév 16, 2012 9:27 am

Bonjour Samifred,
Sur un contrat, on peut toujours trouver des réductions enfants pour le 1er avec taux % différent du 2ème enfant, comme on peut trouver des réductions pour le 3ème adulte ainsi que pour le 4ème adulte avec aussi des taux % différents. La plus part du temps, chaque contrat d'hôtel a ses propres spécificités. C'est pour ça que j'ai créé un numéro de résa pour des clients qui prennent une même chambre.
Exemples :
2 adultes + un enfant
num Resa clients cat.Age
26358974 M. Dupont a1
26358974 Mme Dupont a2
26358974 Enf. dupont e1

3 adultes + un enfant
65478964 M. Jean a1
65478964 Mme Jean a2
65478964 Jean a3
65478964 Enf. Jean e1

Donc, pour le 1er exemple , il y a un tarif plein pour les 3 clients avec une réduction enfant, pour le 2ème exemple : un tarif plein pour les 4 clients avec une réduction pour un adulte (a3) et une réduction enfant pour (e1).
C'est pour ça que j'ai pensé résoudre le problème des réduction enfants et adultes avec a (adulte), e(enfant) et c(bébé non payant) en ajoutant un classement pour effectuer les différentes réductions.
J'espère que je me suis bien exprimé.
Abdou
ABDOU
Membre
 
Messages: 72
Inscription: Ven Fév 02, 2007 9:07 pm
Localisation: Tunis-Tunisie

Re: Tablecherche

Messagepar Samifred » Jeu Fév 16, 2012 10:00 am

Oui, je comprend pariellement l'explication...

Le numéro de la 3ème colonne doit être incrémentée en fonction du numéro du client et de la catégorie d'âge.
Si on a le même numéro du client et la même catégorie d'âge, le numéro d'ordre doit prendre le numéro suivant.
Le problème, sur les lignes 6 et 7 (exemple) ce qui me sort
256387935 - a - 1 - a1
999564789 - a - 2 - a2


Mais quelle est le code de la procédure qui permet de modifier la valeur des lignes et colonnes de la table selon la/les conditions ?

SVP utilisez le BBCcodes pour publier votre code:
Code: Tout sélectionner
 
[code]

........................
.......................... lignes de code
.......................

[/code]
Cordialement, en espérant que ma collaboration soit profitable. Fred Image
PS: Il est important d'indiquer, dans la question, la version WD utilisée.
Note: Pas de question par MP, merci.
Avatar de l’utilisateur
Samifred
 
Messages: 3554
Inscription: Sam Nov 26, 2005 12:16 pm
Localisation: 128.0.0.0

Re: Tablecherche

Messagepar ABDOU » Jeu Fév 16, 2012 10:04 am

Voici le code:
Code: Tout sélectionner
TableCherche(COL_NumResa,Sai_RedColNumResa)
TableCherche(COL_AdulteEnfantCotBB,Sai_RedCOL_AdulteEnfantCotBB)
SI Sai_RedCOL_AdulteEnfantCotBB="" ALORS
Sai_RedCOL_AdulteEnfantCotBB= COL_AdulteEnfantCotBB
Sai_RedCol_NumClient_A_E_C=1
COL_NumClient_A_E_C=Sai_RedCol_NumClient_A_E_C
Sai_Col_NumOrdreClient=Sai_RedCOL_AdulteEnfantCotBB+Sai_RedCol_NumClient_A_E_C
COL_NumOrdreClient=Sai_Col_NumOrdreClient
COL_NumOrdreClient=Sai_Col_NumOrdreClient
Info(1)
SINON
TableCherche(COL_NumClient_A_E_C,COL_NumClient_A_E_C)
SI PAS COL_NumResa = Sai_RedColNumResa ET COL_AdulteEnfantCotBB=Sai_RedCOL_AdulteEnfantCotBB ALORS

Sai_RedCOL_AdulteEnfantCotBB= COL_AdulteEnfantCotBB
Sai_RedCol_NumClient_A_E_C=1
COL_NumClient_A_E_C=Sai_RedCol_NumClient_A_E_C
Sai_Col_NumOrdreClient=Sai_RedCOL_AdulteEnfantCotBB+Sai_RedCol_NumClient_A_E_C
COL_NumOrdreClient=Sai_Col_NumOrdreClient
COL_NumOrdreClient=Sai_Col_NumOrdreClient
Info(2)
FIN
SI PAS COL_AdulteEnfantCotBB=Sai_RedCOL_AdulteEnfantCotBB ET COL_NumResa = Sai_RedColNumResa ALORS
Sai_RedCol_NumClient_A_E_C=1
COL_NumClient_A_E_C=Sai_RedCol_NumClient_A_E_C
COL_NumOrdreClient=COL_AdulteEnfantCotBB+COL_NumClient_A_E_C
Info(3)
FIN

SI COL_AdulteEnfantCotBB=Sai_RedCOL_AdulteEnfantCotBB ET COL_NumResa = Sai_RedColNumResa ALORS

Sai_RedCOL_AdulteEnfantCotBB= COL_AdulteEnfantCotBB
Sai_RedCol_NumClient_A_E_C+=1
COL_NumClient_A_E_C=Sai_RedCol_NumClient_A_E_C
Sai_Col_NumOrdreClient=Sai_RedCOL_AdulteEnfantCotBB+Sai_RedCol_NumClient_A_E_C
COL_NumOrdreClient=Sai_Col_NumOrdreClient
Info(4)
FIN


FIN

Sai_RedColNumResa=COL_NumResa
Sai_RedCOL_AdulteEnfantCotBB= COL_AdulteEnfantCotBB
Sai_RedCol_NumClient_A_E_C=COL_NumClient_A_E_C
Sai_Col_NumOrdreClient=COL_NumOrdreClient
ABDOU
Membre
 
Messages: 72
Inscription: Ven Fév 02, 2007 9:07 pm
Localisation: Tunis-Tunisie

Re: Tablecherche

Messagepar Samifred » Jeu Fév 16, 2012 12:41 pm

Le TableCherche(COL_NumResa,Sai_RedColNumResa) en fait ne donne aucune valeur dans votre code.

Je vois le code comme ceci... (bien sur à adapter selon le besoin)

Code: Tout sélectionner
SI TableCherche(COL_NumResa,Sai_RedColNumResa) <> -1 ALORS
  //Traitement
  ...
  SINON
    //Traitement
    ...
  SI TableCherche(COL_AdulteEnfantCotBB,Sai_RedCOL_AdulteEnfantCotBB) <> -1 ALORS
    // Traitement
    ....
    SINON
      // Traitement
      ...
  FIN
FIN


Bon courage.
Cordialement, en espérant que ma collaboration soit profitable. Fred Image
PS: Il est important d'indiquer, dans la question, la version WD utilisée.
Note: Pas de question par MP, merci.
Avatar de l’utilisateur
Samifred
 
Messages: 3554
Inscription: Sam Nov 26, 2005 12:16 pm
Localisation: 128.0.0.0

Re: Tablecherche

Messagepar ABDOU » Dim Fév 19, 2012 12:22 pm

Merci Samifred,
Je crois que j'ai trouvé mieux dans l'autoformation de windev 5.5 un code que j'ai pu adapter à ma fenêtre. Cela marche à merveille.
Code: Tout sélectionner
Sai_CatAge=COL_CatAge
COL_CumulClient=SAI_NumResa+COL_CatAge

// nouveau filtre
Indice est un entier
Cpt est un entier
indice=TableCherche(COL_CumulClient,COL_CumulClient,Vrai)
cpt=0
TANTQUE indice<> -1
   cpt++
   indice=TableCherche(COL_CumulClient,COL_CumulClient,Vrai,indice+1)
   COL_NumClient_A_E_C=cpt
   SELON Sai_CatAge
      CAS "a" : COL_NumOrdreClient= "ADL"+COL_NumClient_A_E_C
      CAS "A" : COL_NumOrdreClient= "ADL"+COL_NumClient_A_E_C
      CAS "e" : COL_NumOrdreClient= "ENF"+COL_NumClient_A_E_C
      CAS "E" : COL_NumOrdreClient= "ENF"+COL_NumClient_A_E_C
      CAS "c" : COL_NumOrdreClient= "CôtBB"+COL_NumClient_A_E_C
      CAS "C" : COL_NumOrdreClient= "CôtBB"+COL_NumClient_A_E_C               
      AUTRE CAS
         
   FIN
   

FIN
ABDOU
Membre
 
Messages: 72
Inscription: Ven Fév 02, 2007 9:07 pm
Localisation: Tunis-Tunisie



  • Advertisement

Retourner vers Forum windev 11 & plus récentes

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité