| |
Publicado em junho, 07 2005 - 2:07 PM |
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 |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 07 2005 - 3:02 PM |
Bonjour,
ne dois-tu pas lancer la requête (hexecuterequete(Marequete)) juste avant iaperçu()
salutations
Cécile |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 07 2005 - 3:46 PM |
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 |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 07 2005 - 4:03 PM |
Non, alors là je vois pas... mais votre requête vous la lancez bien quelque part. De quelle façon la déclarez vous ? |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 07 2005 - 4:36 PM |
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 |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 07 2005 - 4:51 PM |
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 |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 07 2005 - 5:30 PM |
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 |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 07 2005 - 7:17 PM |
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… ?
--------- //**// |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 07 2005 - 8:05 PM |
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 |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 07 2005 - 8:48 PM |
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 -------------- //**// |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 08 2005 - 3:30 PM |
"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 |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 23 2005 - 3:24 PM |
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é. |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 23 2005 - 4:45 PM |
"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 |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 29 2005 - 5:30 PM |
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 |
| |
| |
| | | |
|
| | |