On-line: PSP, гостей 0. Всего: 1 [подробнее..]
АвторСообщение





Пост N: 83
Зарегистрирован: 08.11.05
ссылка на сообщение  Отправлено: 19.06.06 12:49. Заголовок: TsBrowse


Решил поэкспериментировать с примерчиком из MiniGui (16i) TsBrowse(в частности модуль SbArray.prg).
Обнаружил интересные вещи:
1. если в массив завести цифры с двумя нулями после запятой (100.00 и тп), то вводится только целая часть.
2. если после запятой ввести какие-нибудь цифры (100.40 и тп) то число выводится целиком
3. если цифр после запятой больше двух, то отображаются только два разряда после запятой. При этом третий разряд после запятой округляется.
Вопрос такой - как в TsBrowse осуществяется управление форматом вывода чисел в ячейках?

Спасибо: 0 
Профиль
Ответов - 13 [только новые]


постоянный участник


Пост N: 170
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.06.06 14:13. Заголовок: Re:


В отношении третьего пункта у меня есть предположение, что число выводится в соответствии с установками SET DECIMALS и SET FIXED. Може быть можно как-то задавать для колонки формат вывода через EVAL?

Спасибо: 0 
Профиль





Пост N: 84
Зарегистрирован: 08.11.05
ссылка на сообщение  Отправлено: 19.06.06 14:32. Заголовок: Re:


Григорьев Владимир
Спасибо.
Григорьев Владимир пишет:

 цитата:
Може быть можно как-то задавать для колонки формат вывода через EVAL?


А в каком месте?

Спасибо: 0 
Профиль
постоянный участник


Пост N: 171
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.06.06 14:38. Заголовок: Re:


Честно скажу, совершенно не знаю, так как не работаю с xHarbour. Это надо смотреть исходный код определение самого класса TsBrowse. Я лишь высказал свои общие соображения. Кто-то еще должен откликнуться.

Спасибо: 0 
Профиль





Пост N: 18
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 19.06.06 15:01. Заголовок: Re:


Я нашел ошибки в исх.коде - послал Филатову, пока жду.
В h_tbrowse.prg
2495,2783: uData := Transform(uData, cPicture )

Спасибо: 0 
Профиль
модератор




Пост N: 190
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 19.06.06 15:37. Заголовок: Re:


krutoff пишет:

 цитата:
Я нашел ошибки в исх.коде - послал Филатову, пока жду.
В h_tbrowse.prg
2495,2783: uData := Transform(uData, cPicture )


Это уже было поправлено, начиная с версии 17b:

uData := Transform( If( Valtype( uData ) != "C", cValToChar( uData ), uData ), cPicture )

Следите за обновлениями!

Спасибо: 0 
Профиль





Пост N: 85
Зарегистрирован: 08.11.05
ссылка на сообщение  Отправлено: 19.06.06 16:18. Заголовок: Re:


Поставил 17d.
Пол-дня сидел изучал Help по TsBrowse
Все равно не понятно как управлять форматом вывода ячеек столбца.

Спасибо: 0 
Профиль





Пост N: 19
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 19.06.06 16:45. Заголовок: Re:


Может я, конечнои не прав, но:
как раз этот оператор и дает неправильное форматирование
uData := Transform( If( Valtype( uData ) != "C", cValToChar( uData ), uData ), cPicture )

Я поставил вместо него
uData := Transform(uData, cPicture )

и после єтого заработадл вывод 3-х и больше знаков после запятой и т.д.


Спасибо: 0 
Профиль





Пост N: 86
Зарегистрирован: 08.11.05
ссылка на сообщение  Отправлено: 19.06.06 17:09. Заголовок: Re:


krutoff
Я тоже поробовал: заменил, пересобрал библиотеку, пересобрал проект - никаких изменений, работае по-старому.

Спасибо: 0 
Профиль





Пост N: 20
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 19.06.06 17:47. Заголовок: Re:


Я беру hmgsrc_ex_17d.zip.zip: h_tbrowse.prg от 5.06.2006 11:37 (332704)
строки 2495,2784:
uData := Transform( If( Valtype( uData ) != "C", cValToChar( uData ), uData ), cPicture )
заменяю на:
uData := Transform(uData, cPicture )

Пересобираю библиотеку TBROWSE
пересобираю свой проект - и форматирование идет OK.


Спасибо: 0 
Профиль





Пост N: 21
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 19.06.06 17:48. Заголовок: Re:


Да забыл написать - это все под xHarbour

Спасибо: 0 
Профиль





Пост N: 87
Зарегистрирован: 08.11.05
ссылка на сообщение  Отправлено: 19.06.06 17:58. Заголовок: Re:


krutoff
Я все так и сделал. И тоже под xHarbour. Но не идет. Результата не вижу: как работало так и работает.
Может все-таки где-то надо указывать в каком формате выводить данные в ячейке?

Спасибо: 0 
Профиль
модератор




Пост N: 191
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 19.06.06 18:04. Заголовок: Re:


krutoff пишет:

 цитата:
заменяю на:
uData := Transform(uData, cPicture )

Пересобираю библиотеку TBROWSE
пересобираю свой проект - и форматирование идет OK


Олег! Спасибо за наводку: похоже, что проблема в использовании функции cValToChar(), которая использует при конвертации установку _SET_DECIMALS

Спасибо: 0 
Профиль





Пост N: 22
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 20.06.06 09:01. Заголовок: Re:


Я не пробовал столбцы без применения PICTURE,
я использовал жесткое указание формата столбца:
PICTURE '999.999' и т.д.
Попробуйте, должно пройти.
А функцию TRANSFORM, по моему, к символным строкам
лучше не применять.

Спасибо: 0 
Профиль
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 34
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет