|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2007 Messages : 79 ![]() |
Bonjour à tous !!
J'ai deux grosses questions sur cette version particulière de COGNOS proposée par INFOR (anciennement DataStream) en "option" avec leur progiciel de gestion de la maintenance. 1 - Est-ce que les blocs conditionnels fonctionnent et dans quelle condition (manipulation particulière, contournement, ...) ? Pour résumer, on veut afficher le résultat d'une requête dans un cas et dans l'autre afficher des lignes vides pour permettre une saisie manuelle après impression du rapport (oui je sais c'est tordu..... ). Ma variable compte le nombre de ligne retournée par la requête et si =0 alors on affiche les lignes vierges, sinon on affiche le résultat de la requête. A l'heure actuelle, je récupère seulement le bloc vide, même si ma requête renvoie des lignes. J'ai même fait un test plus simple : une requête avec 2 colonnes, dont l'une d'elle est un code X de type varchar2, variable VAR = X et je veux : afficher la requête si code = X, cacher le bloc si code <> X => Résultat, j'ai toujours du vide ! 2 - Le Framework est propriétaire et je ne peux pas y toucher du tout. J'ai besoin d'utiliser une procédure stockée pour alimenter une table à la volée et récupérer des informations dans cette table. Est-il possible de coder ça dans ReportStudio via du SQL Natif (j'ai la procédure stockée et tout et tout car j'ai déjà utilisé le système sur un autre projet où je pouvais toucher au Framework) ? Je pense que ce n'est pas possible, mais peut-être certains d'entre vous ont-ils réussi !!! Merci par avance pour vos réponses. @+ Darcynette |
|
|
00
|
|
|
#2 | |
|
Membre habitué
![]() Inscription : août 2007 Messages : 132 ![]() |
Citation:
Pour la 1., tu peux passer par des requêtes Master-Details. Dans la 1ère requête, utiliser un calcul qui compte le nombre de lignes retournées dans la seconde, et utiliser ce calcul dans la variable. Pour la 2., toute requête SQL de SELECT que tu peux passer dans SQL*Plus et qui te retourne des données peut être utilisée dans Report Studio. Par contre, pour éviter des problèmes, il faudra s'assurer que les noms des colonnes ont des alias. |
|
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2007 Messages : 79 ![]() |
Bonjour,
Merci pour la réponse. Par contre pour 1/ On a essayé toute les solutions possibles préconisées par COGNOS et rien ne fonctionne. De plus, je trouve étrange d'être obligé de passer par des requêtes Master. J'ai mis en place très souvent des styles conditionnels et c'est la première fois que la technique que j'ai apprise ne fonctionne pas. Est-ce que cela peut provenir d'un problème d'installation sur le serveur COGNOS ? 2/ Je ne comprends pas la réponse : je souhaite appeler une procédure stockée qui m'alimente une table à la volée et récupérer les informations de cette table via un curseur. Je ne pense pas que l'on puisse faire cela avec un SELECT simple, si ?? (Je ne suis pas une pro ORACLE non plus, loin de là En tout cas merci pour votre aide. @+ Darcynette |
|
|
00
|
|
|
#4 | |
|
Membre habitué
![]() Inscription : août 2007 Messages : 132 ![]() |
Citation:
En fait, on ne peut pas, dans une même requête, faire un calcul qui détermine si la requête retourne 0 ou plusieurs lignes, et utiliser ce calcul dans une variable, évaluer cette variable et choisir d'afficher le résultat de la requête en fonction de la variable. D'où l'idée de passer par une seconde requête. 2/ Ma réponse était pour dire que dans Report Studio, on ne doit passer que des requêtes SQL de type SELECT pour éviter d'avoir des problèmes. On peut utiliser Report Studio pour passer des paramètres , via des prompts par exemple, à une procédure stoquée, mais, il faut que la procédure ait d'abord été importée dans le modèle de Framework Manager. C'est la méthode légale Mais, dans Report Studio, on peut bien insérer dans un Tabular SQL d'autre forme de requête SQL, même si ce n'est pas du SELECT (Attention: c'est strictement déconseillé). Il suffit de mettre la requête SQL entre { et } . Cela indique au moteur Cognos de faire du Pass-Through, c'est à dire que la requête SQL doit être envoyée directement telle quelle à la base de données, sans être retouchée par Cognos. Ainsi, si on a sa requête SQL qui invoque sa procédure stoquée par un : "CALL ......" par exemple, on pourra bien mettre ça entre { et } et pour lui passer des paramètres, on utilise les macros #prompt()# ou #promptmany()#. Cela évitera de passer par Framework Manager. |
|
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2007 Messages : 79 ![]() |
Bonjour,
Merci pour toutes ces infos. 1/ Pour l'utilisation d'une secodne requête, on a essayé, en suivant la KB COGNOS et ça ne fonctionne toujours pas... 2/ Je ne connaissais pas cet appel particulier dans le SQL natif avec {}, je vais essayer de suite !! Mais je suis d'accord avec toi, c'est très moche, que ce soit en terme de développement et de maintenance Encore merci pour toutes ces infos, je vous tiens au courant de mes péripéties !! @+ Darcynette |
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2007 Messages : 79 ![]() |
Bonjour à tous !
Merci pour l'aide apportée. Finalement, les points restent en suspend car il semble qu'il y ait un gros problème d'installation des produits COGNOS chez le client. Il se retournera vers la société qui lui a fourni.... ![]() Pour l'utilisation de la procédure stockée, je n'ai pas réussi à l'appeler directement dans ReportStudio car j'avais besoin de deux paramètres d'entrées et d'un curseur en sortie et je n'ai pas résolu les messages d'erreur que j'avais. Je mets le post à "Résolu", même si ce n'est pas vraiment le cas mais il ne faut pas polluer le forum ![]() @+ Darcynette |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com