| |
Posté le 07 juin 2005 - 14:07 |
Bonjour,
Je souhaite créer un état à partir d'une table créée elle-même dynamiquement (nombre de colonnes et intitulés des colonnes différents a chaque fois).
J'obtient bien ma table à partir de ma requête dynamique mais je n'arrive pas à créer l'état à partir de ma table...
Voici mon code (Au clic sur mon bouton permettant d'ouvrir l'etat) :
iAperçu(100) iImprimeEtat(Etat_Resultat_requete)
J'ajoute que l'état contient le bon nombre de lignes (mais elles sont vides) mais pas le bon nombre de colonnes.
Merci de vos réponses.
Nicolas B |
| |
| |
| | | |
|
| | |
| |
Posté le 07 juin 2005 - 15:02 |
Bonjour,
ne dois-tu pas lancer la requête (hexecuterequete(Marequete)) juste avant iaperçu()
salutations
Cécile |
| |
| |
| | | |
|
| | |
| |
Posté le 07 juin 2005 - 15:46 |
Merci de votre réponse mais le problème est que ma requête est elle aussi dynamique.
En fait, ma requête est sous forme de chaine de caractères et je construit ma table avec la fonction ConstruitTableFichier(...).
Je ne peux donc pas appeler la fonction hExecuteRequete avec comme paramètre une chaîne de caractères.
Avez-vous une autre idée?
Merci beaucoup d'avoir répondu...
Nicolas B |
| |
| |
| | | |
|
| | |
| |
Posté le 07 juin 2005 - 16:03 |
Non, alors là je vois pas... mais votre requête vous la lancez bien quelque part. De quelle façon la déclarez vous ? |
| |
| |
| | | |
|
| | |
| |
Posté le 07 juin 2005 - 16:36 |
Voila mon code pour remplir la table avec la requete sous forme de chaine de caractères :
résultat est un booléen v_Requete est une Source de Données
SI ReqSQL <> "" ALORS
résultat = HExécuteRequêteSQL(v_Requete, hRequêteInterruptible, ReqSQL) SI résultat = Vrai ALORS ConstruitTableFichier(NomTable,v_Requete,taAvecIdAuto) FichierVersTableMémoire(NomTable,v_Requete) FIN HAnnuleDéclaration(v_Requete) FIN |
| |
| |
| | | |
|
| | |
| |
Posté le 07 juin 2005 - 16:51 |
Ne croyez-vous pas qu'il faille enlever la ligne HAnnuleDéclaration(...) qui libére les ressources de cette requête et par là même vide le résultat de ses données ?
Cécile |
| |
| |
| | | |
|
| | |
| |
Posté le 07 juin 2005 - 17:30 |
je viens d 'essayer mais ceci ne change en rien mon résultat (bon nombre de ligne mais vides et toujours une seule colonne)
Nicolas |
| |
| |
| | | |
|
| | |
| |
Posté le 07 juin 2005 - 19:17 |
Bonjour,
1 - Comment déclarez-vous la variable ReqSQL ? Est-ce c’est a peux près ça : ReqSQL est une chaîne = "select * from MonFichier" ?
2 – comment avez-vous créez votre état, quelle source de données… ?
--------- //**// |
| |
| |
| | | |
|
| | |
| |
Posté le 07 juin 2005 - 20:05 |
Bonjour,
Effectivement, j'ai déclaré ma requête comme ceci. Ce code me permet de remplir ma table de resultat. Mon but étant maintenant d'intégrer cette table résultat dans mon état. Voici mon code :
ReqSQL est une chaîne = "select * from MonFichier" résultat est un booléen v_Requete est une Source de Données
SI ReqSQL <> "" ALORS // Initialisation de la requête résultat = HExécuteRequêteSQL(v_Requete, hRequêteInterruptible, ReqSQL) SI résultat = Vrai ALORS ConstruitTableFichier(NomTable,v_Requete,taAvecIdAuto) FichierVersTableMémoire(NomTable,v_Requete) FIN HAnnuleDéclaration(v_Requete) FIN
Et mon état est créé a l'aide de l'outil "Créer un état pour la table" dans l'onglet "Atelier"
Merci de votre réponse
Nicolas B |
| |
| |
| | | |
|
| | |
| |
Posté le 07 juin 2005 - 20:48 |
Rebonjour,
Dans ce cas, "Table", il faut savoir qu’un état sur table ne permet pas de modifier la source de données ni la structure de la table par programmation. Il faut utiliser plutôt un état sur une source de données programmée.
Regardez "Etat sur une source de données programmée" dans l’aide de Windev.
Bonne chance -------------- //**// |
| |
| |
| | | |
|
| | |
| |
Posté le 08 juin 2005 - 15:30 |
"Nicolas B" <guest@newsgroup.fr> a écrit dans le message de news: 42a565ba$1@news.pcsoft.fr...
Bonjour,
Je souhaite créer un état à partir d'une table créée elle-même dynamiquement (nombre de colonnes et intitulés des colonnes différents a chaque fois).
J'obtient bien ma table à partir de ma requête dynamique mais je n'arrive pas à créer l'état à partir de ma table...
Voici mon code (Au clic sur mon bouton permettant d'ouvrir l'etat) :
iAperçu(100) iImprimeEtat(Etat_Resultat_requete)
J'ajoute que l'état contient le bon nombre de lignes (mais elles sont vides) mais pas le bon nombre de colonnes.
Merci de vos réponses.
Nicolas B
bonjour c'est exactement ce que fait un etat tableau croisé dynamique et j'aimerais faire la même chose moi aussi cdt JeAn-PhI |
| |
| |
| | | |
|
| | |
| |
Posté le 23 juin 2005 - 15:24 |
Bonjour,
Je l'ai dejà fait de la manière suivante: 1) Remplissage de la table "source" avec le fonction ConstruitTableFichier 2) Création d'un état dont la source de données est un champ table 3) Insertion d'une table de N colonnes (Nombre maxi de colonnes qui seront éditées) 4) Puis dans le code d'uverture de l'état, tu relies ta table à ton état avec NomEtat..NomSource = NomDeTable tu relies tes colonnes de table résultat à celle de l'état avec NomColonneTableEtat..RubriqueAffichée = TableEnumèreColonne(NomDeTable, indiceColonne ) Tu masques ensuite les colonnes en trop
NomEtat = nom de ton état NomDeTable = nom de ta table (avec les indirections car cette table est au moment d'exécution du code extérieure) indiceColonne = indice de la colonne de NomDeTable à relier
Il y a certainement plus simple, mais je débute et j'ai donc fait ce que j'ai trouvé. |
| |
| |
| | | |
|
| | |
| |
Posté le 23 juin 2005 - 16:45 |
"Catherine" <guerincatherine@wanadoo.fr> a écrit dans le message de news: 42ba917a$1@news.pcsoft.fr...
Bonjour,
Je l'ai dejà fait de la manière suivante: 1) Remplissage de la table "source" avec le fonction ConstruitTableFichier 2) Création d'un état dont la source de données est un champ table 3) Insertion d'une table de N colonnes (Nombre maxi de colonnes qui seront éditées) 4) Puis dans le code d'uverture de l'état, tu relies ta table à ton état avec NomEtat..NomSource = NomDeTable tu relies tes colonnes de table résultat à celle de l'état avec NomColonneTableEtat..RubriqueAffichée = TableEnumèreColonne(NomDeTable, indiceColonne ) Tu masques ensuite les colonnes en trop
NomEtat = nom de ton état NomDeTable = nom de ta table (avec les indirections car cette table est au moment d'exécution du code extérieure) indiceColonne = indice de la colonne de NomDeTable à relier
Il y a certainement plus simple, mais je débute et j'ai donc fait ce que j'ai trouvé.
merci c'est un bon début pour moi je vais tester ça cdt JeAn-PhI |
| |
| |
| | | |
|
| | |
| |
Posté le 29 juin 2005 - 17:30 |
Peux-tu me dire comment utiliser les indirections pour pouvoir faire référence au nom de ma table au chargement d emon etat.
Voici mon message d'erreur :
Erreur à la ligne 2 du traitement Clic sur BTN_Imprimer. Vous avez appelé la fonction iImprimeEtat. La table, source de données de l'état, est introuvable.
Et voici mon code :
Etat_Stat_F3..NomSource = {"fnt_stat_F3.TableResultat"}
Merci d'avance.
Nico B |
| |
| |
| | | |
|
| | |