| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 14 mars 2018 - 13:58 |
Bonjour, je souhaiterais "attacher" 2 requêtes différentes (l'une ou l'autre) suivant un critère à un état. Je n'ai rien trouvé, j'ai pourtant fait dans l'ouverture de l'état : moimeme..nomsource = REQ_1 ou REQ_2 mais ça ne fonctionne pas, comment faut-il faire ? |
| |
| |
| | | |
|
| | |
| |
Posté le 14 mars 2018 - 14:17 |
Voilà une des grosses limitations de travailler avec l'éditeur de requête c'est que le code SQL les requêtes hormis les paramètres n'est pas manipulable dynamiquement, on ne peut pas y ajouter des rubriques, jointure ect... à chaque fois il faut faire une requête différente...
D'où l'avantage de travailler avec du code SQL et hexecuterequeteSQL et parcours de la source ( de plus on a le contrôle du moment de l'exécution... nombre de fois je vois la même requêtes exécutée 2 ou 3 fois inutilement )
Si tu ne sais pas faire des requêtes SQL manuellement ( comme un maçon qui ne sait pas faire du ciment. ) tu peux toujours la créer avec l'éditeur et la copier / coller une chaine SQL ou récupérer le code SQL par Marequête..codeSQL
Bon Dev Marc Fastré www.marc-fastre.be |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 14 mars 2018 - 15:32 |
Bonjour, je ne me suis pas fait comprendre ou bien as tu mal lu .... ce n'est pas le problème de faire des requêtes (ça je sais faire), c'est le problème de les rattacher en dynamique à mon état, (peut importe de quelle manière elles ont étés faites) comment doit on faire ? dans l'onglet données de la description de l'état j'ai bien mis : "par programmation" mais du coup après on lui déclare ou ? |
| |
| |
| | | |
|
| | |
| |
Posté le 14 mars 2018 - 15:43 |
LC a écrit :
Bonjour, je ne me suis pas fait comprendre ou bien as tu mal lu .... ce n'est pas le problème de faire des requêtes (ça je sais faire), c'est le problème de les rattacher en dynamique à mon état, (peut importe de quelle manière elles ont étés faites) comment doit on faire ? dans l'onglet données de la description de l'état j'ai bien mis : "par programmation" mais du coup après on lui déclare ou ?
Tu devrais pouvoir changer la source de données ( donc la requête ) par cette syntaxe:
MonEtat..FichierParcouru = MaRequete2 et éventuellement accompagnée de : MonEtat..RubriqueParcourue = "RubriqueParcourueEtat2"
Mais bon... les deux requêtes doivent pour bien faire doivent sélectionner les même rubriques ca limite l'intérêt
Bon Dev Marc Fastré www.marc-fastre.be |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 623 messages Popularité : +100 (114 votes) |
|
Posté le 14 mars 2018 - 16:49 |
Sinon,
Il est peut être possible (suivant le but recherché et la manière de traiter les données de votre problématique) d'effectuer la requête AVANT de lancer l'impression de l’état et de stocker les résultat dans un objet. Objet qui sera passé en paramètre à l'état et utilisé comme source de données. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 14 mars 2018 - 17:00 |
ou dois je mettre ces lignes ? à l'ouverture de l'état ? dois je laisser : par programmation ? |
| |
| |
| | | |
|
| | |
| |
Posté le 14 mars 2018 - 18:07 |
LC a écrit :
ou dois je mettre ces lignes ? à l'ouverture de l'état ? dois je laisser : par programmation ?
Oui par programmation dans le code d'initialisation de l'état
MonEtat..fichierparcouru = MaRequete2
OU
MonEtat..fichierparcouru = "MaRequete2"
A Essayer je fais cela avec des tables et cela fonctionne jamais essayer avec un état je programme mes sources de données moimême
Bon Dev Marc Fastré www.marc-fastre.be |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 14 mars 2018 - 19:51 |
ça n'existe pas ..fichierparcouru |
| |
| |
| | | |
|
| | |
| |
Posté le 15 mars 2018 - 08:18 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 891 messages Popularité : +227 (347 votes) |
|
Posté le 15 mars 2018 - 08:37 |
Bonjour, Essaye de voir du côté de ..MaSource
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 15 mars 2018 - 09:34 |
j'avais trouvé (moins de 60 secondes) mais ça ne marche pas ... |
| |
| |
| | | |
|
| | |
| |
Posté le 15 mars 2018 - 10:06 |
Je peux te dire que MARCHER, ca na MARCHERA jamais
FONCTIONNER peut être...
Si tu avais au moins pris le peine de communiquer le message d'erreur je te dirais pq ca ne fonctionne pas.. mais là je te laisser chercher un peu autour de de ma solution qui fonctionne parfaitement Game over
Marc Fastré www.marc-fastre.be |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 15 mars 2018 - 11:02 |
pfuu ... tu joues sur les mots ... "le maçon qui ne sait pas faire de ciment", "60 secondes pour trouver", "marcher au lieu de fonctionner" tu peux peut être éviter de faire ces réflexion hein ... si tu es un champion du monde pourquoi es tu sur ce forum ? tu sais tout ? tu ne te trompes jamais, un peu d'humilité monsieur ... |
| |
| |
| | | |
|
| | |
| |
Posté le 15 mars 2018 - 11:18 |
LC a écrit :
pfuu ... tu joues sur les mots ... "le maçon qui ne sait pas faire de ciment", "60 secondes pour trouver", "marcher au lieu de fonctionner" tu peux peut être éviter de faire ces réflexion hein ... si tu es un champion du monde pourquoi es tu sur ce forum ? tu sais tout ? tu ne te trompes jamais, un peu d'humilité monsieur ...
Si tu cherches un peu tu verras que je suis sur ce forum pour répondre et tres rarement pour poser des questions
Mais après 25 ans j'estime que je suis bien loin d'avoir fait le tour
Mais quand je ne sais pas, je CHERCHE, j'ESSAIE, je DEDUIT... je n'attends pas que l'on m'apporte la solution sur un plateau sans même expliquer ce qui me bloque
c'est peut-être pcq quand j'ai débuté il n'y avait ni google, ni forum...
Bon Dev Marc Fastré www.marc-fastre.be |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 15 mars 2018 - 11:44 |
Je fais exactement pareil, je cherche d'abord avant de demander, et je n'avais pas non plus ni google ni tout ça lorsque j'ai commencé il y a fort longtemps ... bien avant toi ... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 17 mars 2018 - 17:57 |
je relance le truc car je n'ai toujours pas réussi à paramétrer la requête rattachée à un état. j'ai donc essayé (dans l'initialisation de l'état ) :
MaRequete.MonParam = Parametres HExécuteRequête(MaRequete) nb est un entier = HNbEnr(MaRequete) Trace(nb) Etat..NomSource = MaRequete la trace me donne bien le nombre d'enregistrement de ma requête, cependant j'ai le message de l'aperçu qui me dit : il n'y a pas de données à imprimer Comment dois je faire ? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 232 messages Popularité : +23 (23 votes) |
|
Posté le 18 mars 2018 - 03:21 |
LC a écrit :
je relance le truc car je n'ai toujours pas réussi à paramétrer la requête rattachée à un état. j'ai donc essayé (dans l'initialisation de l'état ) : MaRequete.MonParam = Parametres HExécuteRequête(MaRequete) nb est un entier = HNbEnr(MaRequete) Trace(nb) Etat..NomSource = MaRequete
la trace me donne bien le nombre d'enregistrement de ma requête, cependant j'ai le message de l'aperçu qui me dit : il n'y a pas de données à imprimer Comment dois je faire ?
Normal, quand tu lances ton état la requête source est vide. Tu dois mettre ce code AVANT d'appeler ton état, et non dans son code d'init.
Cdt,
Marc (un autre ) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 18 mars 2018 - 15:39 |
Bonjour, merci pour ta réponse, mais lorsque je mets ce code dans la fenêtre appelant l'état juste avant le iimprimeetat, j'ai le message d'erreur sur la ligne Etat..NomSource = MaRequete : le champ Etat est inconnu |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 232 messages Popularité : +23 (23 votes) |
|
Posté le 18 mars 2018 - 17:33 |
Oui effectivement....
Le plus simple dans ton cas reste d'utiliser un tableau de structure ou d'objet.
Déclare une structure ou un objet contenant tous les champs dont tu as besoin dans ton état. Dans le code d'init de ton état :
Procedure MonEtat(gtabStructure est un tableau de STExpédition) Ensuite ton état doit être rempli non pas par programmation, mais par variable (databinding), et tu sélectionnes la variable globale déclarée plus haut. Tu lies chaque champs de ton état à un membre de ta structure.
Dans le code appelant ton état, du lances la requête que tu veux, puis tu la parcours pour remplir un tableau de structure que tu passeras en paramètre à ton état :
iImprimeEtat(ETAT_MonEtat, tabStructure) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 18 mars 2018 - 19:15 |
Merci mais je ne comprends pas comment cela peut être si compliqué d'affecter une requête ou une autre à un état ... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 232 messages Popularité : +23 (23 votes) |
|
Posté le 18 mars 2018 - 19:32 |
Je comprends ta frustration. Mais quand on a passé plus d'une demie-heure à réfléchir à un problème sans trouver la solution, alors qu'en 5 minutes on peut faire différemment et tout aussi propre (voir plus dans ce cas), je pense qu'il ne faut pas chercher plus loin. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 165 messages Popularité : +12 (12 votes) |
|
Posté le 18 mars 2018 - 19:52 |
Bonjour;
La requête est interne ?
Bon Dev. |
| |
| |
| | | |
|
| | |
| |
Posté le 19 mars 2018 - 09:14 |
Hola ca patauge toujours
Dans le code d'initialisation de l'état :
MonEtat..NomSource = "REQ_Requete2"
Si tu met le nom de la requête sans les quotes ca provoque une erreur
Il y a un exemple dans la doc https://doc.pcsoft.fr/fr-FR/?2511035 :
ETAT_EtatTableClient..NomSource = "FEN_MaFenêtre.TABLE_TableProspect"
Bon Dev Marc Fastré www.marc-fastre.be |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 19 mars 2018 - 11:54 |
oui 2 requêtes internes et suivant une condition je souhaiterais rattacher l'une ou l'autre à mon état |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 19 mars 2018 - 11:58 |
Oui je l'avais vu ça, mais j'ai toujours le même message (il n'y a pas de données à imprimer) y compris si je met des guillemets |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 891 messages Popularité : +227 (347 votes) |
|
Posté le 19 mars 2018 - 12:49 |
Je suppose que tu as testé les requêtes hors état
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 19 mars 2018 - 13:51 |
oui bien sur, je l'ai indiqué plus haut, j'ai positionné une trace qui me donne le nombre d'enreg. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 190 messages Popularité : +21 (23 votes) |
|
Posté le 19 mars 2018 - 14:10 |
Bonjour
une solution personnelle qui me convient bien pour un état défini par programmation.
Dans le code Ouverture de ETAT_test :
Procedure ETAT_TEST (parametres...
gsdData_Etat est une Source dede Données gsReq_Etat est une chaîne = [ SELECT NOM as Nom, PRENOM as Prenom, .... FROM ... WHERE ... %1 ... %2 ]
HExécuteRequêteSQL(gsdData_Etat,hRequêteDéfaut,ChaîneConstruit(gsReq_Etat, param1, param2,...
flg_lecture est un booléen = HLitPremier(gsdData_Etat)
Dans le code Lecture des données de ETAT_test :
SI PAS flg_lecture ALORS RENVOYER Faux LIB_NOM = gsdData_Etat.Nom LIB_PRENOM = gsdData_Etat.Prenom
flg_lecture = HLitSuivant(gsdData_Etat)
Rien de plus! c est personnalisable |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 19 mars 2018 - 15:26 |
Heu .. j'ai pas compris ce code .. comment "dis" tu à l'état que c'est cette requête qui est rattachée ? tu fais bien un HExécuteRequêteSQL mais comment l'état va gérer les ruptures et autres ... ? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 190 messages Popularité : +21 (23 votes) |
|
Posté le 19 mars 2018 - 15:47 |
tout se passe dans la partie "Lecture des données de l'état" , qui ne fait que boucler tant que tu ne renvoies pas faux.
Dans cette partie, il faut parcourir à l'aide de HLitSuivant et renvoyer faux si fin de lecture.
Pour gerer les ruptures, ajouter un bloc dans l'état (ITERATION1 par exemple) et suivant la condition que tu définis toujours dans la partie "lecture des donnés" SI condition... alors iimprimeBloc(ITERATION1)
de l'aide : https://doc.pcsoft.fr/?1011034&name=etat_sur_une_source_donnees_programmee |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 19 mars 2018 - 15:58 |
les ruptures automatiques ne sont pas gérées du coup je suppose ... pfuu ça devient galère. tout à la main juste parce qu'on ne peut pas paramétrer 2 requêtes différentes .. (en fait ce sont les 2 mêmes mise à part des paramètres dans le where) Merci quand même pour tes réponses. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 232 messages Popularité : +23 (23 votes) |
|
Posté le 19 mars 2018 - 16:18 |
Tout ça pour ça !!!!
Pour gérer des paramètre différents dans le WHERE, tu mets tous les paramètres dont tu as besoin dans tes deux requêtes, puis tu mets à NULL ceux que tu ne veux pas utiliser lors de l'appel de ta requête... |
| |
| |
| | | |
|
| | |
| |
Posté le 19 mars 2018 - 16:59 |
LC a écrit : (en fait ce sont les 2 mêmes mise à part des paramètres dans le where)
31 messages pour enfin savoir ce que tu veux faire ( et non comment tu veux le faire )
Marc Fastré www.marc-fastre.be |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 19 mars 2018 - 17:38 |
ben .. je l'ai dis depuis le premier message : "Bonjour, je souhaiterais "attacher" 2 requêtes différentes (l'une ou l'autre) suivant un critère à un état. Je n'ai rien trouvé, j'ai pourtant fait dans l'ouverture de l'état : moimeme..nomsource = REQ_1 ou REQ_2 mais ça ne fonctionne pas, comment faut-il faire ?"
peut importe les 2 requêtes .. je ne peux pas mettre à null .. dans une requête il y a un EXIST dans le WHERE et l'autre un NOT EXIST dans le WHERE |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 19 mars 2018 - 17:41 |
Il est normal que je demande "comment faire" au résultat que je souhaite ... voici la requête (l'autre est avec un EXIST ou lieu du NOT EXIST)
SELECT PROPRIETAIRES.PRO_CIVILITE AS PRO_CIVILITE, PROPRIETAIRES.PRO_NOM AS PRO_NOM, PROPRIETAIRES.PRO_PRENOM AS PRO_PRENOM, PROPRIETAIRES.PRO_COMPLNOM AS PRO_COMPLNOM, PROPRIETAIRES.PRO_ADRESSE AS PRO_ADRESSE, PROPRIETAIRES.PRO_COMPLADRESSE AS PRO_COMPLADRESSE, PROPRIETAIRES.PRO_LIEUDIT AS PRO_LIEUDIT, PROPRIETAIRES.PRO_CODEPOSTAL AS PRO_CODEPOSTAL, PROPRIETAIRES.PRO_VILLE AS PRO_VILLE, PROPRIETAIRES.PRO_SOUMISATVA AS PRO_SOUMISATVA, BRANCHES.BRA_LIBELLE AS BRA_LIBELLE, PARCELLES.PAR_ANNEE AS PAR_ANNEE, PARCELLES.PAR_SECTCADASTRE AS PAR_SECTCADASTRE, PARCELLES.PAR_NUMCADASTRE AS PAR_NUMCADASTRE, PARCELLES.PAR_SURFACE AS PAR_SURFACE, COMMUNES.COM_LIBELLE AS COM_LIBELLE, LIEUXDITS.LIE_LIBELLE AS LIE_LIBELLE, PARCELLES.PAR_CLEPROPRIETAIRE AS PAR_CLEPROPRIETAIRE, PARCELLES.PAR_CLE AS PAR_CLE FROM PARCELLES INNER JOIN PROPRIETAIRES ON (PROPRIETAIRES.PRO_CLE = PARCELLES.PAR_CLEPROPRIETAIRE) INNER JOIN BRANCHES ON (BRANCHES.BRA_CLE = PARCELLES.PAR_CLEBRANCHE) INNER JOIN LIEUXDITS ON (LIEUXDITS.LIE_CLE = PARCELLES.PAR_CLELIEUDIT) INNER JOIN COMMUNES ON (COMMUNES.COM_CLE = LIEUXDITS.LIE_CLECOMMUNE) WHERE (PARCELLES.PAR_ANNEE = {Pannee}) AND (PARCELLES.PAR_CLEPROPRIETAIRE IN ({PListeProprio})) AND (NOT EXISTS (SELECT FAC_CLE FROM FACTURES WHERE (FACTURES.FAC_CLEPROPRIETAIRE = PARCELLES.PAR_CLEPROPRIETAIRE) AND (FACTURES.FAC_ANNEEFACTURE = PARCELLES.PAR_ANNEE))) ORDER by PROPRIETAIRES.PRO_NOM Asc, PROPRIETAIRES.PRO_PRENOM Asc, BRANCHES.BRA_LIBELLE Asc, PARCELLES.PAR_CLE Asc |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 165 messages Popularité : +12 (12 votes) |
|
Posté le 19 mars 2018 - 18:08 |
Bonjour;
Sous WinDev 20 : Pour tester, j'ai créé deux requêtes de sélection sur deux fichiers différents mais avec les mêmes noms de rubriques, et un état basé sur la 1ère requête. dans ouverture de l'état j'ai mis le code suivant :
Procedure ETAT_SansNom1(gnToto est un entier) SI gnToto = 1 ALORS MoiMême..NomSource="REQ_SansNom1" SINON MoiMême..NomSource="REQ_SansNom2" FIN
Le test me donne le résultat voulu. ------------------------
Ma question : Quel est l’inconvénient de créer deux états distincts chacun basé sur une requête et le test se fait avant l'appel pour impression ?
Bon Dev. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 19 mars 2018 - 18:47 |
Merci pour ta réponse, mais j'ai déjà essayé ça (au début même) et c'est pour cela que je continue à poser la question car suite à ça, j'ai le message qui me dit qu'il n'y à pas d'enregistrement à imprimer. alors que ma requête me donne bien les enregistrements escomptés. Quand à ta question sur "l'inconvénient" de faire 2 états identiques, c'est une plaisanterie non ? je vais construire 2 fois le même état (un imprimé complexe d'une facture avec pleins de champs et dessins) parce qu'une requête change ... hu ! on me l'avait jamais proposé celle là ! Excuse moi de ma réaction, je suis bien conscient que tu prends du temps pour répondre à ma demande, Dans le codage on factorise plutôt que de dupliquer |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 190 messages Popularité : +21 (23 votes) |
|
Posté le 19 mars 2018 - 19:30 |
Certain que dans les paramètres de l'état : les données imprimées viennent de : Une requête du projet soit sélectionné ??
Parce que si c est par programmation de sélectionné, normal qu'il n y ait rien. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 19 mars 2018 - 19:53 |
Dans mon état j'ai mis : les données imprimées viennent de : REQ_premiererequete Dans l'évènement : ouverture de l'état je code : MoiMême..NomSource = "REQ_deuxièmerequete" et bien .. l'état s'exécute avec la requete1 ... pfuu c'est bien compliqué pour un pb vraiment simple .. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 232 messages Popularité : +23 (23 votes) |
|
Posté le 19 mars 2018 - 20:47 |
LC a écrit : > c'est bien compliqué pour un pb vraiment simple ..
Et on en revient donc à ce qu'on te dis depuis le début : Arrête de te faire ch**r avec ça, et lie ton état à une variable de type tableau d'objet ou tableau de structure. Ça marcherait déjà... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 165 messages Popularité : +12 (12 votes) |
|
Posté le 19 mars 2018 - 22:52 |
LC a écrit :
> Dans le codage on factorise plutôt que de dupliquer ------------------------------------------------------------------
Bonjour;
Merci pour ton conseil, mais depuis un bon moment j'essaye de factoriser et je n'ai pas pu TOUT factoriser, j'essaye d'éliminer la duplication, j'ai pas pu aussi. "MINIMISER" ===> OUI
Au fait, au lieu d'envoyer deux requêtes presque similaires à ton état, FACTORISE et écris une seule requête
Bon Dev |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 20 mars 2018 - 15:19 |
Hé ! la bonne blague Marc Lazzarini, tous le monde m'a donné sa réponse ... guillemet, pas guillemet, nomsource, fichierparcouru, etc ... alors pas étonnant qu'il y ai 35 messages, je suis poli, j'écoute et je réponds à ce que l'on me demande. Par contre un objet rattaché à l'état je veux bien ... mais tout gérer à la main y compris les ruptures, c'est quand même fastidieux et pas du tout efficace, d'autant plus qu'il y a quand même la propriété MonEtat..Nomsource qui existe alors c'est pas pour rien je suppose... je vais donc poser la question à PCSOFT. Merci à tous pour vos réponses, (c'est aussi pour cela que la conversation dure ...) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 629 messages Popularité : +0 (16 votes) |
|
Posté le 20 mars 2018 - 15:22 |
Et bien je veux bien faire une seule requête ... (j'ai donné le code sql plus haut de ma requête), j'ai 2 cas : le EXISTS et le NOT EXISTS si tu as une solution je suis preneur ... |
| |
| |
| | | |
|
| | |
| |
Posté le 20 mars 2018 - 15:52 |
Pour ma part ce code fonctionne parfaitement, les données sont bien affichées
Procedure ETAT_SansNom1(gnToto est un entier) SI gnToto = 1 ALORS MoiMême..NomSource="REQ_SansNom1" SINON MoiMême..NomSource="REQ_SansNom2" FIN Mais c'est une solution qui va t'amener à multiplier tes requêtes et donc le code redondant... Le problème c'est que ce que tu veux faire il faut le faire avec un état géré par programmation sur lequel tu décris et adapte ton code sql en fonction de tes paramètres, tu parcours ta source de données et tu fais tes affectation des rubriques toi même
Perso j'ai toujours utilisé cette technique bien plus souple et évolutive et je n'ai jamais passé des journées sur un rapport pour autant... ca prend peut être qq minutes de plus ok, mais le temps que tu a passé à chercher ca serait fini depuis bien longtemps...
Je l'ai bien stipulé sur mon premier message les parcours sur requêtes c'est assez limité
Bon Dev Marc Fastré www.marc-fastre.be |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 232 messages Popularité : +23 (23 votes) |
|
Posté le 20 mars 2018 - 17:38 |
LC a écrit :
Hé ! la bonne blague Marc Lazzarini, tous le monde m'a donné sa réponse ... guillemet, pas guillemet, nomsource, fichierparcouru, etc ... alors pas étonnant qu'il y ai 35 messages, je suis poli, j'écoute et je réponds à ce que l'on me demande. Par contre un objet rattaché à l'état je veux bien ... mais tout gérer à la main y compris les ruptures, c'est quand même fastidieux et pas du tout efficace, d'autant plus qu'il y a quand même la propriété MonEtat..Nomsource qui existe alors c'est pas pour rien je suppose... je vais donc poser la question à PCSOFT. Merci à tous pour vos réponses, (c'est aussi pour cela que la conversation dure ...)
Dans la solution de l'état rempli par variable (tableau d'objet), tu n'as strictement rien à gérer à la main... |
| |
| |
| | | |
|
| | |