Bonjour
Je veux utiliser un bouton d'invite dans ma page de rapport sans qu'il utilise l'antémémoire locale lors que le rapport est ré-exécuter par ce bouton.
Comment puis je le réalise ?
Merci
Bonjour
Je veux utiliser un bouton d'invite dans ma page de rapport sans qu'il utilise l'antémémoire locale lors que le rapport est ré-exécuter par ce bouton.
Comment puis je le réalise ?
Merci
Je comprends pas où se situe ton problème ?
Et bien tu forces l'anté-mémoire de la requête à "non" dans ses propriétés ....
Commnet est foutu ton rapport ?
- Tu as une/des page(s) d'invite(s) ?
- Ce que tu veux faire est-ce bien cela : relancer ton rapport sur un clik bouton lorsque les données sur lesquelles il pointe ont été mises à jour sans avoir à saisir les valeurs d'invite(s).
- Si il y a des invites Il n'y a donc pas de valeur pas défaut et elles ne sont pas requises ?
Je veux bien t'aider d'autant plus que je pense avoir une solution pour toi mais il faudrait mettre un peu du tiens. Alors les renvois "à des liens et demmerdes toi pour comprendre ma problématique" c'est pas top
Expliques moi comment est foutu ton rapport si tu veux que j'y vois plus clair et que je vois si ma solution peut te convenir ou pas.
Alors dans ce cas tu peux faire ce que moi j'ai fais et qui fonctionne très bien. Mais cela peut ne pas fonctionner selon la manière dont est paramétré ta plateforme. Tu devras aussi je pense adapter ce qui suit à ton environnement mais le principe est le suivant : tu émules tes boutons d'invite
- tu prends un bouton d'hyperlien
- sur les propriétés de ce bouton d'hyperlien, tu mets type de source à "Expression de rapport"
- dans "Expression de rapport" tu lui colles le code suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part 'https://'+ServerName()+'/c84/cgi-bin/cognosisapi.dll?b_action=cognosViewer&ui.action=run&ui.object='+URLEncode (ReportPath ())+'&run.outputFormat=&run.prompt=true'
- la fonction ServerName te renvoit l'URL de ton appli
- Ca : "c84/cgi-bin/cognosisapi.dll?b_action=cognosViewer&ui.action=run&ui.object=" c'est la partie fixe de l'url de ton rapport
- URLEncode (ReportPath ()) : c'est la fonction qui te permet de renvoyer le chemin complet de l'arborescence sous laquelle est ton rapport, nom compris
- le reste c'est la fin de l'URL soumise au serveur web lorsque tu lançes ton rapport
Tout ca revient en fait à émuler l'adresse URL soumise au serveur web lorsque tu lances ton éran et cela revient, pour finir, à recréer dynamiquement l'URL du rapport que tu peux trouver sous propriétés d'un rapport, dans l'onglet "General" puis en cliquant sur le lien à droite "Afficher le chemin d'accès, l'identificateur et l'adresse URL"
Voilà, tu verras, c'est "magique" et bien pratique. Moi ça me permet de donner la possibilité aux utilisateurs de relancer leur rapports sans avoir à passer par cognos connection et de revenir vers la page d'invite.
Je ne doute aucune min que c'est quelque chose toi t'ai fais et qui fonctionne très bien
Est il possible que ce bouton d'hyperlien puisse en même temps avoir une fonctionnalité de bouton d'invite du type Terminer ?
Si l'utilisateur ne veux pas changer de valeur d'invite, il veut juste avoir les dernières mises à jour à la foulée, comment on peut transmettre ces valeurs ? on peut les ajouter à la suite de ce bout de code ?
Je ne sais pas.Est il possible que ce bouton d'hyperlien puisse en même temps avoir une fonctionnalité de bouton d'invite du type Terminer ?
Tu m'a répondu que tu n'avais aucune invite.... Ca change un peu la problématique si tu as des invites et que tes filtres ne sont pas en dur mais dynamqiues c'est à dire dépendent d'invites donc d'une opération manuelle de l'utilisateur. Sauf si ton invite est falcultative.Si l'utilisateur ne veux pas changer de valeur d'invite
Si ton invite est facultative, le rapport à des chances de pouvoir aller au bout en passant la page d'invite. Si l'invite est obligatoire, il faudra une saisie de l'utilisateur.
En théorie, oui il est possible de passer des valeurs de paramètre dans l'URL. Je l'ai fait pour quelques rapports qui doivent etre accédés par une appli tiers distantes. Maintenant comment faire pour récupérer tes paramètres saisis lors d'une première action et les intégrer dyanmiquement dans ton url, je ne sais pas. Il faut chercher mais ça doit être possible.
Essayes avec un paramvalue('mon paramètre') dans l'URL. Mais attention, si mes souvenirs sont bons ca doit avoir une gueule a peu pres comme ca :
monurl_[MON_CHAMPS]=Paramvalue('toto');
Une autre solution serait tout en gardant la solution du bouton d'hyperlien de
1- rendre ton invite facultative
2- conditionner le filtre de ton invite pour que si le paramcount est vide il prennent les valeurs par défaut sinon la valeur selectionnée dans l'invite
relis le post précedent, je l'ai modifié.
ca pas bon. Il vaut mieux eviter cela. Ca engendre plus de problème qu'autre chose. La preuve : ton cas.Je n'ai aucune page d'invite, mais j'ai deux invites dans la page de rapport
Les pages d'invites sont la pour une bonne raison.
Et entre nous je voulais savoir si tu as des invites tout court, pages ou pas
Si tu tiens absolument à avoir tes invites dans la page de rapport, il te suffit d'utiliser un objet "Zone de groupe" dans lequel tu mets uin javascript qui t'affiche 2 boutons radio :
-Afficher les inivtes
- Cacher les invites
et qui sur le clik lance une fonction qui t'affiches ou te cache un div dans lequel tu auras mis un lien vers une présentation qui pointe sur tes invites des pages d'invites"
Je comprends pas.
Je ne sais pas ce que tu entends par déployer. Dans mon cas, nous fonctionnons avec 4 environnements ou plateformes différentes :Dans ton code, le 'c84' est figé, si le rapport est déployé, le code risque de ne plus fonctionner
- une de DEV
- une de Recette technique
- une de Recette foncionnelle
- une de PROD
Lorsque nous déployons nos rapports successivement sur les 4 plateformes, le "/c84" est figé, il ne bouge pas.
C'est d'ailleurs préférable...Sinon, quel binz lors des mises en prod si tes environnements sont différents.
C'est le chemin du serveur web sous lequel la dll (cognosisapi.dll) est appelée. Cette dll est le composant qui permet de "discuter" avec le serveur cognos applicatif qui prend en charge l'exécuion des rapports.
Donc oui, il y un peu d'adaptation à faire selon l'architecture de ton environnement, mais fondamentalement, le principe est le même quelque soit ton environnement.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager