Crystal Reports и Nrec

Администрирование баз данных (Pervasive.SQL, MS SQL, Oracle, утилита Support)

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Stranger
Новичок
Сообщения: 24
Зарегистрирован: 29 мар 2005, 17:49

Crystal Reports и Nrec

Сообщение Stranger »

Кто-нибудь работал с Crystal Reports для построения отчетов и Галактики?
Проблема в том, что Crystal Reports теряет последние 3 символа поля NREC, вернее лепит всякую ерунду. Как обойти эту проблему?
peter
Сообщения: 5
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Башкортостан ОАО "Башкирнефтепродукт"

Re: Crystal Reports и Nrec

Сообщение peter »

Проблема не только с Crystal'ом. Все системы пытаются прочитать (Stranger, Г-ка под Pervasive?) Pervasiv'ный int64 по-разному, но только не как int64. (int64 не совместим с variant/COM)
MS VFox, VC++(msdev), VBasic читают его, как BCD(двоич.-десятич.), при этом ссылки обрабатываются корректно, но в дальнеюшем могут вернуть данные в др. формате - чаще в currency, а это формат с фиксир. запятой, т.е. последние несколько двоичных разрядов считаются дробной частью, поэтому при переводе в дес. формат и получается ерунда.
В Borland'е же BDE в завис. от настроек возвращает либо как float, либо BCD. В 1-ом случ., пропадают старшие разряды. BCD же в борланде имеет разрядность 32 дес. цифры, и большие int64 тоже не читаются. Проблема решается в написании производного класса от нужного DataSet-компонента, перехвата возврата int64 и конвертации к Borland'овскому int64. В 6-х Borland'ах появился тип FMTBcd (64 дес. цифры), и стало достаточным переписать только два метода у DataSet-компонента.
С Cristal Report я не работал, но, судя по описанию проблемы, он пытается вернуть NREC'и в виде currency. Если в CR возможно программировать, то надо перехватить возврат, прочитать поле в двоичном виде и конвертнуть в нужный формат.
Ответить