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

Вниз

Как отделить копейки в Grid   Найти похожие ветки 

 
psv   (2001-12-07 15:27) [0]

В базе сумма с копейками например 5566,как сделать
чтобы в grid виделось 55,66


 
Alexandr   (2001-12-07 15:29) [1]

в TTable(TQuery) для поля
в событиях OnGetText, OnSetText пиши как тебе надо


 
serg   (2001-12-07 15:36) [2]

У полей есть сво-о DisplayFormat


 
Alexandr   (2001-12-07 15:38) [3]

ему надо на 100 делить тут displayFormat не поможет...


 
RusLANB   (2001-12-07 16:53) [4]

надо использовать OnCalcFiled - создать вычисляемое поле


 
psv   (2001-12-07 21:19) [5]

Спасибо за ответы.Мне действительно надо делить
на 100 и форматы никакие не проходят.Но если я
в запросе делю на 100(это Sql Anywhere ) ,то запрос
становиться не радактируемым,если создать вычисляемое
поле его то же нельзя редактировать.
А хотелось чтобы пользователь видел в grid сумму с отделен-
ными копейками и мог ее редактировать


 
evgeg   (2001-12-08 11:13) [6]

В отличие от целых чисел,не все десятичные дроби представляются точно в комп. арифметике (кроме типа Currency).
Поэтому лучше не делить на 100, а брать две последние цифры числа. Примерно так:


procedure TForm1.FieldSummOnGetText (Sender: TField; var Text: string; DisplayText: Boolean)
var
s, kop, rub: string;
begin
s := Sender.AsString;
kop := System.Copy (s, length (s) - 1, 2);
rub := System.Copy (s, 1, length (s) - 2);
if length (kop) < 2 then kop := "0" + kop;
if rub = "" then rub := "0";
Text := rub + "." + kop;
end;

procedure TForm1.FieldSummOnSetText (Sender: TField; const Text: string)
var
kop, rub: string;
i: integer;
v: integer;
begin
rub := "";
i := 1;
while (i <= length (Text)) and (Text [i] <> ".") do
begin
rub := rub + Text [i];
inc (i);
end;
kop := "";
inc (i);
if i <= length (Text) then
begin
kop := Text [i];
if i + 1 <= length (Text) then
kop := kop + Text [i+1];
end
if rub = "" then v := 0
else v := StrToInt (rub) * 100;
if kop <> "" then v := v + StrToInt (kop);
Sender.AsInteger := v;
end;



 
psv   (2001-12-08 23:03) [7]

Спасибо огромное
попробую объязательно
мне действительно надо брать
две последние цифры.


 
Alexandr   (2001-12-10 13:50) [8]

в таком случае
а что, операторы div и mod в паскале уже отменили? Чуть быстрее работать будет, да и как-то понятнее


 
Laimer   (2001-12-10 14:02) [9]

а как потом это связать с SQL запросом


 
Alexandr   (2001-12-10 14:09) [10]

2laimer:
Слушай, лучше спроси, то что тебе надо.
А то чего-то ты тут спросил не в тему вообще.
Подробно напиши чего непонятно.


 
Laimer   (2001-12-10 14:18) [11]

как ввязать, к примеру, написанные выше функции с SQL запросом


 
Alexandr   (2001-12-10 14:23) [12]

да никак. Это с запросом никак не связано.
Это уже в программе обработка идет


 
evgeg   (2001-12-10 22:34) [13]

> Alexandr

В обработчике OnGetText все равно придется вызывать IntToStr (в твоем варанте - 2 раза).


 
Pete   (2001-12-11 15:37) [14]

а еще можно попробовать в EditFormat и в DisplayFormat для этого поля написать что-то вроде "#0-00" (без кавычек)



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

Форум: "Базы";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 2.58 c
7-42589
McSimm
2001-09-28 17:27
2002.01.14
Автоматическое определение настроек LAN для IE


7-42588
Tune
2001-09-30 14:33
2002.01.14
Мастера, подскажите как прочитать заголовок файла, чтобы можно было править отдельные биты?


1-42396
Fred
2001-12-22 06:54
2002.01.14
Печать StringGrid


1-42474
fliz
2001-12-25 12:55
2002.01.14
Запись в поток (SaveToStream) перестала работать после переноса проги на Вин2000.


1-42448
Aleksandr
2001-12-24 18:11
2002.01.14
Млин, все тот же Excel...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский