Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Расчет по формуле из БД [D7, WinXP]


Lex_! ©   (2006-09-26 04:29:00) 

Имеется запись:
п1:п2:п3:п4:п5:п6 (поля записи)

п6 имеет значение (п1+п2)/(п3+п4)/100*п6

Каким оброзом можно посчитать все это дело если я показываю значение не в таблице а динамически формирую форму, т.е. посчитать надо еще до заполнения записи ....

Была бы запись заполнена уже по идее можно было бы использовать запрос ... а тут ... даже не знаю ..


Сергей М.   (2006-09-26 10:09:00) [1]


> для вычисления нужно сначала пропарсить это дело ...  т.
> е. строку с формулой


Используй любой подходящий скрипт-интерпретатор.
Например, MS Script Control - он всегда под рукой.


Lex_!   (2006-09-26 09:56:00) [2]


> ЮЮ ©   (26.09.06 09:41) [7]
> >Ладно будем искать ...
>
> "calculated fields"  и "OnCalcFields" ввести в поле ввода
> Предметного указателя справки по Delphi,
> Не пересказывать же здесь всё. Возникнут конкретные вопросы
> - возвращайся :)


Так проблема как раз в том - что для вычисления нужно сначала пропарсить это дело ...  т.е. строку с формулой....  ладно поищу что то готовое тогда ... авось ..


ЮЮ   (2006-09-26 09:41:00) [3]

>Ладно будем искать ...

"calculated fields"  и "OnCalcFields" ввести в поле ввода Предметного указателя справки по Delphi,
Не пересказывать же здесь всё. Возникнут конкретные вопросы - возвращайся :)


atruhin   (2006-09-26 09:37:00) [4]

А в чем проблемма написать парсер арифметических выражений? Пишется примерно за 1 день.


Lex_!   (2006-09-26 07:42:00) [5]

Мда...
Ладно будем искать ...


Lex_!   (2006-09-26 05:28:00) [6]

Блин.. я сам запутался... в итоге то по одной строке данные таки в одной записи хранятся....
/me ушол в себя разбираться что к чему таки ...


Lex_!   (2006-09-26 05:28:00) [7]

Все равно не понятно КАК вычисляемое поле то сделать ... всмысле перевести из поля формулу в программный код для вычислений... вопрос собстно в этом был ..


Lex_!   (2006-09-26 05:23:00) [8]


> ЮЮ ©   (26.09.06 04:37) [1]

Ну то пример был, не совсем обдуманный согласен. ...
(п1+п2)/(п3+п4)/100*п5 .....
Так будет видимо правильнее....

А проблема то как раз в том, что:
1. Идет динамическое формирование формы заполнения, в которой значения полей хранящихся в итоге в таблице заполняются не построково, а в столбец...
т.е. грубо говоря:
  описание формы: Название и ид(таблица 1), Колонки формы (таблица два, например Товар(п1), цена(п2), приход(п3), возврат(п4), итог(п5=п3*п1-п4*п1)), Столбци формы (Таблица 3, например Карты оплаты МТС, Билайн, ЕТК), Данные Форм (Таблица 4, т.е. иды формы и строк, и данные (п1-6))

В общем вроде понятно обьяснил ... вычисляемые поля не катят ... О_о


ЮЮ   (2006-09-26 04:37:00) [9]


> п6имеет значение (п1+п2)/(п3+п4)/100* п6

Рекурсивеый метод? :)

у DataSet-а есть вычислимые поля (calculated fields) и обработчик OnCalcFields в коде которого и следует вычислять значение поля, основываясь на значениях других полей


Наверх

Титульная страница Поиск, карта сайта Написать письмо