Поиск:

Ответ в темуСоздание новой темы Создание опроса
> замена минуса на скобки 
:(
    Опции темы
Sed0Y
Дата 20.2.2011, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 16.1.2009

Репутация: нет
Всего: нет



Есть у меня таблица с данными, есть положительные и отрицательные числа
Как сделать, когда выводятся эти числа в грид вместо "-2" выводило "(2)" то есть если число отрицательное выводило его в скобках?
Потом я этот запрос передаю в фастрепорт, что бы вывести отчет. и там тоже нужно что бы работал такой принцип?
И что бы над ними можно было проводить арифметические операции?
PM MAIL ICQ   Вверх
Deniz
Дата 21.2.2011, 06:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 8
Всего: 44



Sed0Y, смотри у поля событие onGetText там и форматируй вывод не экран.
Примерно так же в фасте.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Данкинг
Дата 22.2.2011, 01:55 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Sed0Y @  20.2.2011,  18:14 Найти цитируемый пост)
Как сделать, когда выводятся эти числа в грид вместо "-2" выводило "(2)"

Если позволяет СУБД, то можно использовать запрос с функцией замены вроде IIF.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
SPrograMMer
Дата 24.2.2011, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 5.11.2004
Где: Краснодар

Репутация: 1
Всего: 6



а еще можно содать вычисляемое поле, и обработать событие OnCalcFields примерно так:
Код

begin
   with DataSet Do
      if FieldByName('NumField').AsInteger < 0 then
         FieldByName('CalcNumField').AsString := '('+IntToStr(Abs(FieldByName('NumField').AsInteger))+')'
      else
         FieldByName('CalcNumField').AsString := FieldByName('NumField').AsString
end;



--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
pseud
Дата 24.2.2011, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Sed0Y, СУБД?


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Deniz
Дата 24.2.2011, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 8
Всего: 44



Цитата(Данкинг @  22.2.2011,  03:55 Найти цитируемый пост)
Если позволяет СУБД, то можно использовать запрос с функцией замены вроде IIF.
Тогда не получится реализовать другое требование ТС:
Цитата(Sed0Y @  20.2.2011,  20:14 Найти цитируемый пост)
И что бы над ними можно было проводить арифметические операции? 

Все таки форматировать вывод лучше на клиенте.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
cat512
Дата 24.2.2011, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 438
Регистрация: 20.3.2007

Репутация: 1
Всего: 15



Цитата

Все таки форматировать вывод лучше на клиенте.

+1
Однозначно!
PM MAIL   Вверх
chip_and_dayl
Дата 24.2.2011, 13:32 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: 2
Всего: 9



У нас будет два поля, первое поле отображает оригинальное значение, а второе, то что нам нужно. Если нужно вычислять, то  используем первое поле


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
Frees
Дата 24.2.2011, 13:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



можно через DisplayFormat все сделать

Код

DataSet.FieldByName('NumField').DisplayFormat.DisplayFormat := ';(#);'




Это сообщение отредактировал(а) Frees - 24.2.2011, 13:53


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
chip_and_dayl
Дата 24.2.2011, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: 2
Всего: 9



Нужно выводить в скобках, только в случае отрицательного числа smile 


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
Frees
Дата 24.2.2011, 15:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



Цитата(chip_and_dayl @  24.2.2011,  18:41 Найти цитируемый пост)
Нужно выводить в скобках, только в случае отрицательного числа

мой пример так и делает


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Sed0Y
Дата 25.2.2011, 02:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 16.1.2009

Репутация: нет
Всего: нет



Прошу прощения, что не ответил сразу.
Всем больше спасибо
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0812 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.