Message de rapport:
 

Re: Demande de Conseils/Astuces pour Table inversée (Colonne=enregistrement, Ligne=Champ)

Sujet: Re: Demande de Conseils/Astuces pour Table inversée (Colonne=enregistrement, Ligne=Champ)
par drcharly93 sur 12/11/2004 0:25:10

Bonjour Juliane,

Oui, je pense que l'utilisation d'une table mémoire soit surement la meilleure solution à envisager.

L'idée
Créer une requête standart pour alimenter une Source de données avec les données à manipuler.

Cette source de données devra contenir l'identifiant des enregistrements à manipuler suivies des autres données nécessaires

Vous devrez donc créer une table mémoire qui contiendra dans la premiere colonne les identifiants des enregistrements. cette colonne sera bien sûre invisible.

Méthode :
en immaginant que le résultat de la requête soit stockée dans une source de données nommée Rs
La table mémoire : TableM

Rs est une source de donnees
Sql est une chaine

Sql = "SELECT FicIdent AS Ident, etc..."
SI PAS HExecuteRequeteSQL(Rs,HRequeteDefaut,Sql) Alors
 Erreur(HErreurInfo()
 Retour
FIN 
TableSupprimeTout(TableM)
Ajoute(TableM,"ColIdent",Rs,"Ident",Vrai)
//ColIdent nom de la colonne Identifiant
//Ident Nom du champ de la source de donnees
Ajoute(TableM,"ColTotalBilan,Rs,<Total Bilan>)
Ajoute(TableM,"ColCA",Rs,<Chiffre d'affaire>)
//Etc..pour chaque colonne
//pour chaque colonne à alimenter

Code de la procédure Ajoute()
PROCEDURE Ajoute(pTable,pColonneNom,pRs,pChamp,pCreeLigne=Faux)
i est un entier
HLitPremier(Rs)
 TantQue pas HEndehors(Rs)
  i++ //pour se déplacer dans la table
  SI pCreeLigne alors TableAjoute({pTable}..Nom)  
  pColonneNom[i] = {Rs+"."+pChamp}
 HLitSuivant(Rs)
Fin

Voila, tout est saisie à la volée et non testé pas le temp
pColonneNom[i] = {Rs+"."+pChamp}, j'ai un doute???

A chaque changement de colonne:
il faut rechercher l'enregistrement correspondant àla ligne via ColIdent
HlitRecherche(<Fichier>,<Identifant enreg>,ColIdent[TableM])
Si HTrouve() alors
 SI PAS HModifie(<Fichier>) alors
  // Traitement de l'erreur
 FIN
Fin 

Bon, c'est déjà un début.
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2