Страница 1 из 1

Crystal Reports и Nrec

Добавлено: 25 июл 2002, 12:57
Stranger
Кто-нибудь работал с Crystal Reports для построения отчетов и Галактики?
Проблема в том, что Crystal Reports теряет последние 3 символа поля NREC, вернее лепит всякую ерунду. Как обойти эту проблему?

Re: Crystal Reports и Nrec

Добавлено: 25 июл 2002, 15:25
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 возможно программировать, то надо перехватить возврат, прочитать поле в двоичном виде и конвертнуть в нужный формат.