2011-09-28 2 views
0

Je crée un rapport SSRS. J'ai besoin d'afficher du texte dans une info-bulle (Les données sont au format XML). Ci-dessous est mon exemple xml.Afficher les données de XML dans une info-bulle SSRS

<warnings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <row> 
     <linetext>This is Sugar.</linetext> 
    </row> 
    <row> 
     <linetext>This is coffee.</linetext> 
    </row> 
</warnings> 

J'ai besoin des données à l'intérieur du noeud linetext au format dans le tooltip.Below bulleted est le format que je voudrais dans mon info-bulle.

.C'est sucre

.C'est café

S'il vous plaît aider !!

Merci

+0

Où êtes-vous le XML à partir? Si à partir de SQL Server, il peut être plus facile d'analyser le code XML à la chaîne souhaitée dans SQL que dans VB dans SSRS. –

+0

le xml est la sortie du service wcf –

Répondre

3

La belle réponse serait d'écrire un ensemble personnalisé (.dll) et déployer que sur votre serveur de rapports. Dans l'assemblage personnalisé, vous pouvez utiliser les classes d'analyse XML .NET et parcourir votre XML pour obtenir ce que vous voulez.

Mais une réponse de piratage est ci-dessous. Intégrer ce code dans le rapport (menu Rapport -> Propriétés du rapport -.> Code de & coller à la fenêtre de texte)

Public Function ParseMyXML(ByVal s As String) As String 
    Dim parts() AS String = Split(s, "<linetext>") 
    Dim strBuilder As New System.Text.StringBuilder() 
    For i As Integer = 1 To parts.length - 1 
     strBuilder.Append(". ") 
     strBuilder.Append(Left(parts(i) , Instr(parts(i),"<") -1) & ControlChars.NewLine) 
    Next i 
    Return strBuilder.ToString() 
End Function 

ensuite appeler cela du corps du rapport avec « = Code.ParseMyXML (stringFromWebService) »

Le code ci-dessus scinde le fichier XML et prend le texte de la balise à la prochaine "<" Non robuste, mais facile à mettre en œuvre et à déployer. Je pense que vous pouvez gérer les caractères spéciaux en traitant l'espace réservé comme html.

(Première Visual Basic (> 1 ligne) J'ai écrit dans les mois, voire des années.)

+0

Merci .... cela a fonctionné –

Questions connexes