Как передать и использовать пользовательский класс в отчете RDLC? - PullRequest
2 голосов
/ 02 декабря 2011

Итак, у меня есть класс с именем CustomClass1, который имеет несколько свойств string и DateTime. Я передаю экземпляр другого класса в RDLC, который, помимо прочего, имеет несколько свойств типа CustomClass1.

в RDLC. Я настраиваю поле набора данных, как показано ниже:

   <DataSet Name="ExtensionRequestFormViewerModel">
     <Fields>
       <Field Name="SomeField">
         <DataField>SomeField</DataField>
         <rd:TypeName>FullyQualifiedNameSpace.CustomClass1</rd:TypeName>
       </Field>
       --- Other Fields
     </Fields>
   </DataSet>

Я вижу, что свойство заполняется данными, отправляемыми в RDLC, но когда я пытаюсь прочитать данные, как показано ниже:

<Value>=Fields!SomeField.Value.Property1</Value>

Я получаю #Error в FormViewer

существует ли особый способ регистрации и обработки пользовательских классов в отчетах RDLC?

Спасибо

Стюарт

Ответы [ 2 ]

3 голосов
/ 07 декабря 2011

Нет ответов, но я решил.Если я сделаю сериализуемый класс CustomClass1, RDLC сможет справиться с этим классом.

1 голос
/ 19 июля 2016

Скажем, у меня есть собственный класс, который содержит некоторые данные, подобные этому:

[Serializable]
public class AppTelecommunicationsNumber : AppContactMechanism {
    public int AreaCode { get; set; }
    public string ContactNumber { get; set; }
    public int? CountryCode { get; set; }
    public string Extention { get; set; }
}

Скажем, я хочу отобразить поле ContactNumber в отчете.Вы должны добавить атрибут [Serializable] в свой класс, прежде чем сможете ссылаться на него в редакторе выражений в конструкторе RDLC.

Затем вы можете напрямую ссылаться на имя поля следующим образом:

=First(Fields!PhoneNumber.Value.ContactNumber, "WorkOrderViewModel")

FWIW: Я написал сотни отчетов, прежде чем я понял это.

...