Проблема со связью

Обсуждение Stimulsoft Reports.NET
Ответить
NSG
Сообщения: 41
Зарегистрирован: 31 янв 2007, 13:22
Откуда: Russia

Проблема со связью

Сообщение NSG »

Есть следующая проблема. Использует UserData в качестве источника данных. В качестве колонок - свои объекты у которых перекрыты методы сравнения Equal и CompareTo. Также перекрыты GetHash() и ToString(). Причем есть такой случай, когда в качестве колонок для связи между Master-Detail DataBand задаются как раз наши объекты. Все работает правильно, кроме одного случая, А именно, когда объекты НЕ равны, но при этом obj.ToString() возвращает одно и то же значение. (Например, если объекты - два разных человека с одинаковой фамилией). При этом, Detail данные подцепляются только к однома Master DataBand, а к другому нет, хотя детальные данные есть для обоих. Стоит поменять одному из объектов значение, возвращаемое ToString() - все становится нормально.

Покопавшись в исходниках, нашел, что неправильный результат приходит из метода
detailRows = table.detailRows[table.Position].GetChildRows(relationName);
При этом, во время выполнения данного метода отлично вызывается перекрытый у нашего объекта метод CompareTo и отрабатывает правильно, возвращая в качестве результата сравнения, что данные не равны.

Подскажите, пожалуйста, где копать!
Vital
Сообщения: 647
Зарегистрирован: 09 июн 2006, 12:23

Проблема со связью

Сообщение Vital »

Здравствуйте,

дело в том, что метод GetChildRows это метод ado.net класса DataRow. В этой строке возвращается список строк для связи. Его конечно можно заменить но вопрос чем?

Спасибо.
NSG
Сообщения: 41
Зарегистрирован: 31 янв 2007, 13:22
Откуда: Russia

Проблема со связью

Сообщение NSG »

Да это понятно. Я просто надеялся, что Вы знаете как он работает и что-нибудь посоветуете. :biggrin:
Странно это. Вроде и метод ToString() не вызывается.

Будем искать... Спасибо.
Ответить