Alias для DataSet...

Обсуждение Stimulsoft Reports.NET
Ответить
Stilux
Сообщения: 94
Зарегистрирован: 22 фев 2007, 09:02

Alias для DataSet...

Сообщение Stilux »

Подскажите пожалуйста, как сделать так, чтобы
при передаче в отчет, в качестве источника,
DataSet, на вкладке словаря для него отображался Alias?

Не понятно, что является аналогом DataSet в объектной
модели Stimulsoft?

Пытался делать следующим образом:

Код: Выделить всё

               
                        Dim ts As StiDataTableSource = CType(source, StiDataTableSource)
                        Dim dt As DataTable = ts.DataTable

                        If (Not dt.DataSet Is Nothing) AndAlso dt.DataSet.ExtendedProperties.Contains("Alias") Then
                            Dim strNameInSource As String = ts.NameInSource
                            ts.DataName = dt.DataSet.ExtendedProperties("Alias").ToString()
                            ts.NameInSource = strNameInSource
                        End If
Но свойства DataName и NameInSource меняются синхронно?!
Vital
Сообщения: 647
Зарегистрирован: 09 июн 2006, 12:23

Alias для DataSet...

Сообщение Vital »

Не понятно, что является аналогом DataSet в объектной
модели Stimulsoft?
Аналогом DataSet является весь словарь данных отчета.
Пытался делать следующим образом:

Код: Выделить всё

               
                        Dim ts As StiDataTableSource = CType(source, StiDataTableSource)
                        Dim dt As DataTable = ts.DataTable

                        If (Not dt.DataSet Is Nothing) AndAlso dt.DataSet.ExtendedProperties.Contains("Alias") Then
                            Dim strNameInSource As String = ts.NameInSource
                            ts.DataName = dt.DataSet.ExtendedProperties("Alias").ToString()
                            ts.NameInSource = strNameInSource
                        End If
Но свойства DataName и NameInSource меняются синхронно?!
Свойство DataName и NameInSource являются одним и тем же элементом. Свойство NameInSource было введено в версии 2007.1 для унификации с другими элементами словаря.

Спасибо.
Stilux
Сообщения: 94
Зарегистрирован: 22 фев 2007, 09:02

Alias для DataSet...

Сообщение Stilux »

И все же не понятно, как для датасетов зарегистрированных в словаре,
отображать в дизайнере не их имена, а Alias?
Или как альтернативный вариант: как вывести в дерево словаря только
узлы таблиц и колонок, без узлов датасетов?
Vital
Сообщения: 647
Зарегистрирован: 09 июн 2006, 12:23

Alias для DataSet...

Сообщение Vital »

И все же не понятно, как для датасетов зарегистрированных в словаре,
отображать в дизайнере не их имена, а Alias?
Вы можете указать удобное для Вас имя в методе RegData:

Код: Выделить всё

report.RegData("Alias", DataSet);
Или как альтернативный вариант: как вывести в дерево словаря только
узлы таблиц и колонок, без узлов датасетов?
Сейчас никак.

Stilux
Сообщения: 94
Зарегистрирован: 22 фев 2007, 09:02

Alias для DataSet...

Сообщение Stilux »

Vital писал(а):
И все же не понятно, как для датасетов зарегистрированных в словаре,
отображать в дизайнере не их имена, а Alias?
Вы можете указать удобное для Вас имя в методе RegData:

Код: Выделить всё

report.RegData("Alias", DataSet);
Или как альтернативный вариант: как вывести в дерево словаря только
узлы таблиц и колонок, без узлов датасетов?
Сейчас никак.
Дело в том, что report.RegData("Alias", DataSet) устанавливает и Alias и Name,
а изменение Name в моем случае не допустимо.

У вас в исходниках в StiDataCollection используется код:

Код: Выделить всё

 public void RegData(string name, DataSet dataSet)
{
     RegData(name, name, dataSet);
}
Нельзя ли заменить его на:

Код: Выделить всё

 public void RegData(string name, DataSet dataSet)
{
     RegData(dataSet.DataSetName, name, dataSet);
}
Это должно решить проблему. Если Alias и Name одинаковы, то в этом нет никакого смысла.

Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Alias для DataSet...

Сообщение Edward »

В этом случае воспользуйтесь следующей перегрузкой метода RegData():

Код: Выделить всё

RegData(string name, string alias, DataSet dataSet) 
Спасибо.
Ответить