|
Поиск по флекс гриду.
|
|||
---|---|---|---|
#18+
Пишу программу. Суть простая оператору поступают запросы на определенные данные, он их обрабатывает и отсылает пользователю. Загвоздка возникла вот в чем . Поступившие запросы отображаю с помощью MSHFG. работает таймер , который через определенный интервал опрашивает таблицу на предмет новых запросов. Наткнулся на такую проблему. Приходит запрос. Оператор двойным щелчком открывает форму обработки запроса, вбивает требуюмую информацию и нажимает кнопку "Отправить". Соответственно запрос с ответом сохраняется в базе, а чтобы не ждать пока таймер отработает я запоминал номер строки в гриде и позиционируясь в гриде с его помощью, меняю отображение нескольких полей (ну например статус запроса на "Обработан"). программа работала хорошо месяца 2, и тут возник казус, который я и пытаюсь решить. Если во время пока оператор вводит информацию по запросу поступает новый запрос, соответственно обновляется список в гриде, и меняется порядок строк. И тогда естественно когда оператор нажимает "Отправить" в гриде меняется не та запись. Оно конечно в обновится таймером, но сам факт не красивый. В числе прочих полей в гриде отображается и уникальный номер заявки, посему хочу найти по этому номеру строку и обновить ее. вот собственно в этом и вопрос: Как зная уникальный номер заявки мне определить номер строки ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2012, 16:15 |
|
Поиск по флекс гриду.
|
|||
---|---|---|---|
#18+
Перебором через TextMatrix ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2012, 16:19 |
|
Поиск по флекс гриду.
|
|||
---|---|---|---|
#18+
Shocker.Pro, хм не удобно, ну что ж могу только порадоваться, что изначально сделал ежедневную архивацию обработанных запросов в другую таблицу :) хоть грид небольшой перебирать Спасибо! PS если будут еще варианты буду только рад ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2012, 16:23 |
|
Поиск по флекс гриду.
|
|||
---|---|---|---|
#18+
Shocker.Pro, Только блин у перебора тот же минус, есть шанс прихода нового запроса и обновления грида, видимо придется на это время стопить таймер и запускать после обновления, думаю так будет правильнее в данном контексте. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2012, 16:26 |
|
Поиск по флекс гриду.
|
|||
---|---|---|---|
#18+
Alex_menPS если будут еще варианты буду только радну поменять логику. Если идет редактирование строки, то тот код, который добавляет строки в грид, обязан запомнить, где находился редактируемый номер и где он теперь, но по-моему, это еще более неудобно. А вообще, не вижу, в чем неудобство. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2012, 16:26 |
|
Поиск по флекс гриду.
|
|||
---|---|---|---|
#18+
Alex_menТолько блин у перебора тот же минусА что, перебор и обновление будет асинхронным? Если нет, то событие таймера вполне подождет, пока произойдет обновление строки. А если то же заполнение строки асинхронно, то тут и перебор не поможет, нашел ты строку нужную, начал перезаписывать, тут бац - обновление грида. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2012, 16:28 |
|
Поиск по флекс гриду.
|
|||
---|---|---|---|
#18+
Shocker.Pro, Ну я собственно пошел по наиболее простому пути. Остановил таймер на время обработки запроса 1-2 сек после сохранения записи погоды не сделают. а несколько запросов разом все равно не обработать. Т.к. по условию оператор только один, кстати надо продумать если вдруг 2-х посадят, чтобы не пересеклись при обработке. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2012, 16:50 |
|
Поиск по флекс гриду.
|
|||
---|---|---|---|
#18+
Alex_menОстановил таймер на время обработки запроса 1-2 секТаймер можно не останавливать, если поиск строки и обновление записи происходит без участия DoEvents или других таймеров. Событие таймера, если оно и произойдет, тупо встанет в очередь и дождется, когда строка будет обновлена. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2012, 16:53 |
|
Поиск по флекс гриду.
|
|||
---|---|---|---|
#18+
Shocker.Pro, Я к сожалению, самоучка и много не знаю. Поэтому немного не знаю как сделать работу асинхронной, как синхронной. у меня сейчас так есть главная форма на которой крутится таймер и на которой отображается грид. Двойной щелчок открывает модальную форму обработки запроса. Пока оператор в ней вводит данные могут прийти и 1 и 2 и больше запросов, в зависимости от того сколько оператор репу будет чесать. Соответственно грид обновится. Далее оператор нажмет кнопку сохранить и вот тут я и не знаю как будет идти работа таймера с обновлением грида и сохранения результатов обработки. Параллельно ли или последовательно. как это можно посмотреть , задать настроить? Т.к. я понимаю что пошел по пути наименьшего сопротивления, и это не есть красиво ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2012, 17:03 |
|
Поиск по флекс гриду.
|
|||
---|---|---|---|
#18+
Alex_menДалее оператор нажмет кнопку сохранить и вот тут я и не знаю как будет идти работа таймера с обновлением грида и сохранения результатов обработки. Параллельно ли или последовательно. как это можно посмотреть , задать настроить?Как я сказал выше, если код сохранения выполняется без DoEvents и в нем нет процедур, запускаемых по таймеру, то пока этот код выполняется, никакой другой код туда не встрянет, в том числе событие от таймера, кнопки и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2012, 17:11 |
|
|
start [/forum/moderation_log.php?user_name=proxi]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 447ms |
total: | 585ms |
0 / 0 |