|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
День добрый всем, подскажите какие у кого есть идеи - у меня Grid, в котором я ввожу количество товара и в зависимости от столбца цены он заполняет столбец сумма через interactivechange, внизу grid под столбцом как показано в приложенном файле есть элемент tex6, в который хотелось бы получать общую сумму при вводе количества, но например команда calculate sum() постоянно переносит меня на последнюю строчку, как это избежать? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2012, 18:39 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
johngorn, Да, напомнил ты мне старые времена, когда я с куриной фабрикой работал! Сразу в носу (или в мозгу?) появился этот незабываемый запах А если серьезно - команда calculate sum() уносит тебя в конец таблицы, поэтому запоминай номер записи при вводе инфы и после calculate sum() - go обратно на эту запись. Единственно, что не очень - эта строка будет у тебя верхней в гриде. Это навскидку, если не устроит, надо будет вспоминать, такую проблему я когда-то решил. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2012, 19:27 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
я думал над таким решением проблемы, но грид постоянно мерцает и есть вероятность того что бухгалтер собьется набирая количество, так что как то не очень, если вспомнишь другой вариант буду очень признателен... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2012, 19:41 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
johngorn, А почему нельзя сначала заполнить грид, а потом посчитать сумму? (я еще не вспоминал, просто как вариант) Кстати, это цены за 1 кг? Если так, все бегом в Тирасполь ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2012, 19:58 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
johngorn, Кажется вот так я делал: в interactivechange , который считает сумму (пусть она будет nSum) добавь: Код: plsql 1.
а calculate sum() выброси... Ну и при ините Thisform.Text6.Value=0.00 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2012, 20:06 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Вообще-то, значение может не только вводится, но и редактироваться. В общем случае, надо запоминать значение при входе в ячейку, а при выходе делать примерно следующее Код: sql 1.
Ну, естественно, в момент открытия формы сначала рассчитать итог через Calculate Только вот, InteractiveChange() для этого совсем не подходит. Дело в том, что этот метод срабатывает на любое изменение значения. Т.е. ты нажал одну цифру, а он уже сработал. А ты ввод еще не завершил Используй методы Grid1.Column1.Text1.GotFocus() и Grid1.Column1.Text1.LostFocus(). Для хранения "старого значения" можно создать метод формы. Ну, или использовать свойство TAG. Хотя это свойство может принимать только символьные данные. В целом, получится примерно такая схема Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Это, конечно, чуть больше кода , зато никаких проблем с "передергиванием" указателей записи. Да, здесь я предполагаю, что в Grid отображена таблица MyTable и ее поля Qty - количество и Price - цена ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2012, 21:02 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Jonny540, да тут не увязочка после каждого нажатия символа он будет суммировать , так что данный пример не подходит.... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 01:21 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
ВладимирМ, несовсем понял для чего нужно старое значение если у меня по умолчанию при загрузке формы количество равно нулю и в принципе событие init отпадает, ну а вообще спасибо за подсказку утром приду на работу проверю как работает, а то нет проэкта под рукой. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 01:27 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
ВладимирМ, все допер, пропустил глобальный смысл двух первых строк, видимо просто в сон клонит, спасибо за подсказку. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 01:31 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
ВладимирМ, А почему именно gotfocus и lostfocus, а не when и valid, т.е. в каких случаях что именно надо(именно в гриде, именно при редактировании, так как вроде мышка не участвует в редатировании)... точно не помню, давно было, но почему то я отказался от gotfocus и lostfocus, в пользу when и valid, и какое событие выполняется в первую очередь gotfocus или when, а что в последнюю lostfocus или valid ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 06:01 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
q1w1e1и какое событие выполняется в первую очередь gotfocus или when, а что в последнюю lostfocus или validвас забанили в хелпе? when gotfocus ... valid lostfocus ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 06:07 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
tanglirвас забанили в хелпе? Да нет, за*банили этим хелпом... Да, забыл..:-) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 06:35 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
ВладимирМ, сделал по вашему предложению, но что то косячат суммы, буквально после третьего ввода сумма получается уже не верная... хотя вроде должно работать(((( У кого еще есть мысли на эту тему? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 10:45 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
johngornВладимирМ, сделал по вашему предложению, но что то косячат суммы, буквально после третьего ввода сумма получается уже не верная... хотя вроде должно работать(((( У кого еще есть мысли на эту тему? Все должно работать. Это самый оптимальный способ. Расчетов минимум. Ищи где накосячил. Возможно из-за округлений съезжает. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 10:53 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
johngorn, SELECT SUM(Сумма) AS total_sum FROM Имя таблицы INTO CURSOR Имя курсора THISFORM.Text6.Value = Имя курсора.total_sum ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 11:01 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Dima T, да действительно после того как убрал произведение количества на цену из interactivechange и добавил вот эту строчку в lostfocus - thisform.grid1.column4.text1.Value=this.Value*tovar0.cena все заработало, спасибо за подсказку! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 11:12 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
IgorNG, Можно так же суммировать в массив,на мой взгляд более изящно ... SELECT SUM(Сумма) AS total_sum FROM Имя таблицы INTO Array aSum THISFORM.Text6.Value = aSum ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 11:26 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
johngornDima T, да действительно после того как убрал произведение количества на цену из interactivechange и добавил вот эту строчку в lostfocus ... interactivechange() срабатывает при каждом нажатии кнопки, lostfocus() - один раз по уходу с контрола. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 11:35 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Dima Tnteractivechange() срабатывает при каждом нажатии кнопки, lostfocus() - один раз по уходу с контрола.При желании "можно и зайца научить курить" (с) Да, конечно, nteractivechange() не лучший вариант, но ведь можно выловить код кнопки по lastkey()... Я не настаиваю, просто хотелось как-то показать, что и здесь можно выкрутиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 12:15 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Jonny540При желании "можно и зайца научить курить" (с) Да, конечно, nteractivechange() не лучший вариант, но ведь можно выловить код кнопки по lastkey()... Я не настаиваю, просто хотелось как-то показать, что и здесь можно выкрутиться. Месье знает толк в извращениях Тогда уж текущую сумму строки в This.Tag сохранять в конце interactivechange() ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 13:10 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Dima TМесье знает толк в извращениях А лучше все делать в KeyPress() (это уж точно порнуха) Когда все по правилам, скучно становится, верно ведь? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 14:41 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Jonny540Dima TМесье знает толк в извращениях А лучше все делать в KeyPress() (это уж точно порнуха) Когда все по правилам, скучно становится, верно ведь? И что в KeyPress ловить будешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 14:48 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
IgorNGИ что в KeyPress ловить будешь?Тоже коды клавиш. Только там все как-то иначе, чем в i-c :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 14:57 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Jonny540IgorNGИ что в KeyPress ловить будешь?Тоже коды клавиш. Только там все как-то иначе, чем в i-c :) То, что клавиш - понятно. Что же еще можно ловить в KeyPress? Вопрос, какие клавиши ты там будешь ловить? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 15:02 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
johngorn, В таблице у поля есть метод "VALID". Туда загоняешь: Код: sql 1. 2. 3. 4. 5. 6. 7.
В самой своей процедуре пишешь что-то типа: Код: sql 1.
Затем достаешь из полученного курсора(массива) результат, отображаешь его на своей форме, ЗАКРЫВАЕШЬ курсор. Все. Курсор никуда не бегает, результат всегда считается ПОСЛЕ ввода значения. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 15:05 |
|
|
start [/forum/search_topic.php?author=chebyrek&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 441ms |
total: | 639ms |
0 / 0 |