Question

J'ai créé un rapport local sur une source de données comportant un champ nommé "RelativePath". Lorsque mon application WinForms rend le rapport, elle exporte les fichiers vers l'emplacement spécifié dans le champ RelativePath. Dans le générateur de rapport, je définis l'action de navigation | Lien hypertexte | Aller à l'URL à "= Fields! RelativePath.Value". et définissez la propriété EnableHyperlink du rapport sur true. Toutefois, chaque fois que mon application rend le rapport, le lien hypertexte n'est pas actif. Si je code le Jump to URL sur un chemin absolu, cela fonctionne très bien. ReportViewer ne restitue-t-il pas un lien hypertexte avec un chemin relatif?

Était-ce utile?

La solution

Je me débattais avec le même problème, après quoi je suis parvenu à la conclusion que reportviewer ne prend pas en charge les liens hypertexte avec le chemin relatif. Pour résoudre ce problème, vous devez ajouter un code personnalisé qui récupère le chemin relatif, puis concantenez-vous avec les valeurs de champ que vous souhaitez peut-être faire partie de l’URL - du moins, cela fonctionne pour moi.

Shaddie

Autres conseils

J'ai rencontré le même problème. Pour contourner ce problème, j'ai créé un paramètre de rapport appelé "AbsolutePath".

Accédez à la vue Conception du fichier .rdlc. Sur le " Rapport de données " onglet, vous verrez un " Paramètres " nœud. Cliquez dessus avec le bouton droit de la souris pour:

  1. Ajouter un paramètre ...
  2. Dans l'onglet Général, entrez " AbsolutePath " dans la propriété Nom.
  3. Cliquez sur "Valeurs par défaut"
  4. .
  5. Sélectionnez les options "Spécifier les valeurs". bouton radio.
  6. Ajouter une nouvelle valeur "AbsolutePath".

Dans l'expression d'action de votre zone de texte, ajoutez quelque chose comme ceci: "javascript: void (window.open ('" + strong> Parameters! AbsolutePath.Value" + "/ yourour.aspx? id = "+ Fields! Id.Value +", '_blank')) "

Vous pouvez constater que le nouveau " AbsolutPath " paramètre est disponible pour ajouter à votre expression.

Vous devez maintenant transmettre la valeur au paramètre du rapport, comme suit.

    string baseUrl = Request.Url.GetLeftPart(UriPartial.Authority);
    var param = new ReportParameter("AbsolutePath", baseUrl);
    this.ReportViewer.LocalReport.SetParameters(param);

Utilisez simplement la variable globale Globals! ReportServerUrl dans l'expression

= Globals!ReportServerUrl + "yourpath"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top