2016-05-16 4 views
0

Я хочу обновить отчет rdlc во время выполнения, прочитав xml в vb.net. мой отчет, как показано нижеОбновление отчета RDLC в Runtime

<?xml version="1.0" encoding="utf-8"?> 
<Report .... 
<DataSources> 
.... 
</DataSources> 
<DataSets> 
<DataSet Name="DS_MAIN"> 
<Fields> 
<Field Name="Value3"> 
     <DataField>Value3</DataField> 
     <rd:TypeName>System.String</rd:TypeName> 
</Field> 

и им с помощью открыть узел, как этот

Dim MyXMLNode As Xml.XmlNode = MyXML.SelectSingleNode("/Report/DataSet[@Name='DS_MAIN']/Fields/Field[@Name='Value3']/DataField") 

но мой MyXMLNode не получит никакой ценности. , пожалуйста, помогите мне с этой проблемой.

ответ

0

Try XML Linq

Imports System.Xml 
 
Imports System.Xml.Linq 
 
Module Module1 
 

 
    Const FILENAME As String = "c:\temp\test.xml" 
 
    Sub Main() 
 

 

 
     Dim doc As XDocument = XDocument.Load(FILENAME) 
 
     Dim root As XElement = doc.FirstNode 
 
     Dim ns = root.Name.Namespace 
 
     Dim fields = doc.Descendants(ns + "Field").Select(Function(x) New With { _ 
 
      .name = x.Attribute("Name").Value, _ 
 
      .datafield = x.Element(ns + "DataField").Value, _ 
 
      .typeName = x.Descendants().Where(Function(y) y.Name.LocalName = "TypeName").Select(Function(z) z.Value).FirstOrDefault() _ 
 
     }).ToList() 
 
    End Sub 
 

 
End Module

+0

Спасибо за ответ, это работает отлично шпагатом, но когда я загрузить весь отчет оно не выход это мой отчет –

+0

это файл я попытался с этим по-прежнему не дает никакого выхода http://www.filedropper.com/2detailmainreport –

+0

Вам нужно добавить пространство имен. См. Измененный код. – jdweng

Смежные вопросы