Главная страница
    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.58 MB
Время: 0.028 c
1-42443
Пл.
2001-12-24 17:05
2002.01.14
Цикл


3-42358
Aquarius
2001-12-11 15:55
2002.01.14
Чтение данных из XML и их запихивание в базу.


7-42585
fsp
2001-09-29 21:15
2002.01.14
sender:Tobject


4-42605
Марат
2001-11-13 20:26
2002.01.14
Principal = Everyone


14-42560
VEG
2001-11-18 22:34
2002.01.14
Крупный шрифт





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