Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Вниз

Как реализовать вывод "р.", "$", в гриде?   Найти похожие ветки 

 
guest_Dmitry   (2004-08-18 08:52) [0]

Понадобилось выводить в гриде суммы в нескольких валютах, т.е. 1500р., 300$ и т.д. Подскажите, пожалуйста, как лучше реализовать это.


 
Мюмзик в мове   (2004-08-18 09:01) [1]

реализуй у полей свойства OnGetText


 
Anatoly Podgoretsky ©   (2004-08-18 09:01) [2]

А грид, это что такое?


 
Мюмзик в мове   (2004-08-18 09:02) [3]

Anatoly Podgoretsky ©  
наверное производная гриба и гида


 
guest_Dmitry   (2004-08-18 09:03) [4]

>Мюмзик в мове   (18.08.04 09:01) [1]

ок, сейчас попробую..

>Anatoly Podgoretsky ©   (18.08.04 09:01) [2]

имел в виду DBGrid.


 
guest_Dmitry   (2004-08-18 09:55) [5]

Может чего не так делаю, но когда пишу:


procedure TForm1.pFIBDataSet1ICOSTGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
if pFIBDataSet1ICOST.AsFloat < 50 then
 pFIBDataSet1ICOST.DisplayFormat := "#,##0.00р" else
   pFIBDataSet1ICOST.DisplayFormat := "#,##0.00$";
end;


идет постоянная прорисовка грида..


 
guest_Dmitry   (2004-08-18 09:58) [6]

гм... до самого дошло, опять данное событие вызывается... может есть еще какой способ?


 
KSergey ©   (2004-08-18 09:59) [7]

Меняешь свойство, которое заставляет грид весь перерисовываться.
Надо просто готовый результат присваивать переменной Text, не трогая свойства грида.


 
guest_Dmitry   (2004-08-18 10:04) [8]

>KSergey ©   (18.08.04 09:59) [7]

и обрабатывать событие onPost, чтобы передать в базу значение в формате Float?


 
KSergey ©   (2004-08-18 10:06) [9]

> [8] guest_Dmitry   (18.08.04 10:04)
> и обрабатывать событие onPost, чтобы передать в базу значение
> в формате Float?

Не понял...


 
guest_Dmitry   (2004-08-18 10:09) [10]

>KSergey ©   (18.08.04 10:06) [9]

Б.д. Interbase 6.0. В гриде данные редактируются, в базе хранятся в поле типа numeric(15, 2). Если через переменную Text делать, то при посте в базу будет передаваться текстовое значение.. Или я ошибаюсь?


 
KSergey ©   (2004-08-18 10:49) [11]

Ошибаетесь
А вот как будет на самом деле (в смысле во время редактировния) - что-то я даже не скажу.


 
Мюмзик в мове   (2004-08-18 10:54) [12]

посмотри параметры процедуры и будет понятно, когда какой текст выдавать, чтоб ексепшинов не вылезло


 
guest_Dmitry   (2004-08-18 11:02) [13]

>KSergey ©   (18.08.04 10:49) [11]
>Мюмзик в мове   (18.08.04 10:54) [12]

попробовал сейчас в text передавать готовое значение - так и есть, появляется ексепшин, что нужен флоат а не текст. получается все-таки onPost обрабатывать нужно...


 
Romkin ©   (2004-08-18 11:07) [14]

НУ зачем такие сложности? Сделай вычисляемое поле, его и показывай. А присвоение значения ему - в OnCalcFields. И все.


 
Мюмзик в мове   (2004-08-18 11:09) [15]

guest_Dmitry  
получается все-таки onPost обрабатывать нужно...
не, лучше сделать обработчик на OnPostError )

--
мне бы ваши мучения


 
Bless ©   (2004-08-18 11:14) [16]

Сделал простенький пример. Вроде бы все работает.
Не подойдет?
Это текст обработчика OnGetText

if displaytext then
  text:=q.FieldByName("money").AsString+"$"
  else text:= q.FieldByName("money").AsString;


 
guest_Dmitry   (2004-08-18 11:23) [17]

>Romkin ©   (18.08.04 11:07) [14]

это идея, сейчас попробую...

>Bless ©   (18.08.04 11:14) [16]

делал я так, при посте в базу text сыпется, а нужен float


 
Bless ©   (2004-08-18 11:25) [18]


> делал я так, при посте в базу text сыпется, а нужен
> float


Странно. У меня в примере Money - целого типа и все нормально.
А приведи-ка свой код обработчика


 
guest_Dmitry   (2004-08-18 11:29) [19]

Text := FloatToStr(pFIBDataSet1ICOST.AsFloat) + "$";


 
Bless ©   (2004-08-18 11:33) [20]


> Text := FloatToStr(pFIBDataSet1ICOST.AsFloat) + "$";


Это немножко отличается от моего, эге ж?
Попробуй как у меня
if DisplayText then
 Text := pFIBDataSet1ICOST.AsString + $"
else
 Text :=  pFIBDataSet1ICOST.AsString;

Правда так значок на время редактирования поля исчезает.


 
Danilka ©   (2004-08-18 11:33) [21]

Самый лучший вариант, на мой взгляд - отдельная колонка отображающая код валюты.


 
guest_Dmitry   (2004-08-18 11:38) [22]

>Bless ©   (18.08.04 11:33) [20]

сейчас попробую...

>Danilka ©   (18.08.04 11:33) [21]

на самом деле так оно и есть - отдельная колонка с кодом валюты. Только выглядит это как-то не совсем хорошо...


 
Мюмзик в мове   (2004-08-18 11:40) [23]

FloatToStr(pFIBDataSet1ICOST.AsFloat)
чувствуются попытки автора усложнить сущее


 
КаПиБаРа ©   (2004-08-18 11:42) [24]


> Понадобилось выводить в гриде суммы в нескольких валютах,
> т.е. 1500р., 300$

А как вместо 300$ написать 9000р.?

По моему нужно писать в разные колонки разные валюты или в одной колонке сумму в другой тип валюты.


 
guest_Dmitry   (2004-08-18 11:44) [25]

>Мюмзик в мове   (18.08.04 11:40) [23]

каюсь, есть такое... :)

>КаПиБаРа ©   (18.08.04 11:42) [24]

осталась самая малось - убедить директора в этом...


 
guest_Dmitry   (2004-08-18 12:25) [26]

>Bless ©   (18.08.04 11:33) [20]

спасибо, действительно работает.



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.033 c
4-1090246123
Sasha73
2004-07-19 18:08
2004.09.05
Убрать чужую иконку из SystemTray ?


3-1091801616
Руслан
2004-08-06 18:13
2004.09.05
Как некоторые строки в DBGrid выделить жирным шрифтом?


3-1092219463
Geoji
2004-08-11 14:17
2004.09.05
Базы


3-1092294913
Руслан
2004-08-12 11:15
2004.09.05
Вопрос по EHlib


14-1092528613
Леха
2004-08-15 04:10
2004.09.05
Материнская плата





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский