Главная страница
    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-42495
VG
2001-12-25 23:08
2002.01.14
Компоненты для работы со временем


4-42627
Romualds Stashans
2001-11-15 09:57
2002.01.14
Как удалить папку содержащую файлы


4-42608
gluka
2001-11-13 16:57
2002.01.14
GetModuleFileNameEx--возвращает путь, но некоторые...


1-42449
Mitrofan
2001-12-24 19:28
2002.01.14
Быстрое преобразование Фурье


1-42421
@andrew
2001-12-26 16:42
2002.01.14
Привет Всем. Есть вопросик по TStringGrid.





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