|
суммирование колонок в 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 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
IgorNG, Да какие угодно + комбинации... Все, всех прошу извинить, от старой привычки все считать по байтам-битам сложно отделаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 15:13 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Banditosjohngorn, В таблице у поля есть метод "VALID". Туда загоняешь: Код: sql 1. 2. 3. 4. 5. 6. 7.
В самой своей процедуре пишешь что-то типа: Код: sql 1.
Затем достаешь из полученного курсора(массива) результат, отображаешь его на своей форме, ЗАКРЫВАЕШЬ курсор. Все. Курсор никуда не бегает, результат всегда считается ПОСЛЕ ввода значения. И где же в таблице у поля есть такой метод VALID? Уж если взялся объяснять подробно, так объясняй, чтобы новичку было понятно. А то ведь и вправду полезет в таблицу искать методы. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 15:16 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
IgorNGИ где же в таблице у поля есть такой метод VALID? Уж если взялся объяснять подробно, так объясняй, чтобы новичку было понятно. А то ведь и вправду полезет в таблицу искать методы. Этот новичек нашел метод "interactivechange" - недалеко от него найдет и метод "Value". ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 15:21 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Banditosметод "Value". ужос ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 15:40 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Dima T, Такое впечатление, что сегодня пятница, все с ума сошли У поля (Text1) есть Valid ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 15:50 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Jonny540Dima T, Такое впечатление, что сегодня пятница, все с ума сошли У поля (Text1) есть Valid Valid есть, а вот вышеупомятый "метод Value" у меня почему-то свойство ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 15:57 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Dima T, У всех так, но: IgorNGИ где же в таблице у поля есть такой метод VALID? IgorNG, извини, если я что-то не так понял. Пятница, блин! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 16:10 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Dima TValid естьТ.е у всех это метод :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 16:18 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Dima TValid есть, а вот вышеупомятый "метод Value" у меня почему-то свойство Если ты будешь меньше пустозвонить и больше думать, то увидишь, что я ранее написал "VALID". Затем я продолжил говорить про этот же метод, но допустил опечатку. И это причем я отвечал на сообщение, где было написано "VALID". Но если тебе вместо обсуждения топика нравится играть в "съедобное-несъедобное"... это твой выбор... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 17:51 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
ребята, не надо ссориться! вот это 12905329 работает ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 18:10 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
а так все хорошо начиналось короче я все давно уже понял, второй метод не пробовал, но спасибо, более достаточно первого. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 18:36 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
johngornа так все хорошо начиналось Хорошо, что хорошо закончилось Программисты тоже имеют право иногда расслабиться, верно ведь? Ты получил очень нормальный ответ, а дальше все (надеюсь) посмеялись ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2012, 19:26 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Я прошу прощения за оффтоп. Не нашел как тут отправить личное сообщение пользователю, поэтому обращаюсь к участнику Dima T через последнюю тему с его участием. Дима, не могли бы вы мне написать на ящик drronnie@ua.fm? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2012, 13:40 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
drronnieЯ прошу прощения за оффтоп. Не нашел как тут отправить личное сообщение пользователю, поэтому обращаюсь к участнику Dima T через последнюю тему с его участием. Дима, не могли бы вы мне написать на ящик drronnie@ua.fm? Пиши сюда, все равно зафлудили тему. Если что-то писать за деньги - не интересует, а в остальном: то что здесь не напишу то и в личку не отвечу. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2012, 15:55 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
Dima T, Нашел твоё сообщение в теме Сравнение строк по алгоритму Левенштайна Туда не написал, чтобы не стукнули банхаммером за некрофилию. Интересует алгоритм распарсивания названий медикаментов. Выделение из них номера, дозировки, объёма, отбрасывания не значимых слов и т.д. Можешь поделиться? Собственно всё:) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2012, 16:47 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
drronnieDima T, Нашел твоё сообщение в теме Сравнение строк по алгоритму Левенштайна Туда не написал, чтобы не стукнули банхаммером за некрофилию. Интересует алгоритм распарсивания названий медикаментов. Выделение из них номера, дозировки, объёма, отбрасывания не значимых слов и т.д. Можешь поделиться? Собственно всё:) Мог бы и тот топик поднять. Не вижу ничего криминального в этом. Кодом не поделюсь, т.к. во-первых считаю что чужие задумки можно использовать, но реализовывать все надо самому. А во-вторых считаю что он далек от идеала. Больше десяти лет назад писал, сегодня сделал бы кое в чем по-другому. Код достаточно тормозной получился. Сейчас бы написал все на Сях, на порядок быстрее было бы. На словах поделюсь: 1. Разбираем наименование на слова, а дальше смотрим за порядком слов 2. С конца ищем номера 3. Ищем число а потом буквы - анализируем буквы на предмет единиц измерения (мг, мл, дозы и т.д.) и приводим к общему знаменателю, например объем в миллилитры, вес в миллиграммы и т.д. например 0,01 г => 10 мг, 10 мкг => 0.01 мг 4. Замена общепринятых сокращений - например "таб.", "табл.", "тбл.", "табл. п.о." и т.д. => "табл" . Стандартных сокращений не так уж и много, пара-тройка десятков. 5. Выкидываем незначимые слова и небуквенные символы, из слов можно выкинуть слова "упаковка", "флакон" т.к. все лекарства измеряются упаковками и неважно какого она типа (флакон или картонная коробка с блистерами). Хотя и тут есть исключения, например вазелин одной дозировки в тубах и банках. 6. Все замененное обратно склеиваем в строку и получаем нормализованное наименование. Тут главное не перестараться. Алгоритм ни в коем случае не должен искажать исходное наименование, тогда можно однозначно будет сказать что исходные наименования равны при полном совпадении приведенных наименований. А все остальное отправлять на ручную обработку оператору с фарм.образованием живьем видевшему эти лекарства. В некоторых случаях одна дополнительная буква и это уже другой препарат. Например Энап и Энап Н. Нынче все больше используют ЕАНы, многие их хранят в своих базах, дают в прайсах и эл.накладных, только на 100% им не стоит доверять, но их совпадение на 99% говорит о том что это один и тот же препарат, оставшийся 1% это криво вбитые в базы поставщиков и косяки производителей. Вроде все написал, что непонятно - спрашивай. Только топик отдельный заведи :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2012, 20:49 |
|
суммирование колонок в grid
|
|||
---|---|---|---|
#18+
У меня похожий алгоритм разбор провожу регулярными выражениями. Кроме того пробовал при сравнении отбрасывать гласные, т.к. смысловую нагрузку несут согласные буквы. В общем работает однако встречаются коллизии. И на данный момент годится не более чем для подсказок. В любом случае спасибо. Вопрос исчерпан. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2012, 22:30 |
|
|
start [/forum/topic.php?all=1&fid=41&tid=1583554]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 148ms |
0 / 0 |