Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Подскажите правильный вариант решения / 12 сообщений из 12, страница 1 из 1
08.03.2015, 17:43
    #38898455
Kos-2010
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите правильный вариант решения
Доброе всем время.
Подскажите как лучше поступить.
У меня есть dataset, который отображает пользователю данные. В событии «BeforeScroll» у меня происходит изменение поля «Date» (так программа узнает, какую запись просматривал пользователь), - все было хорошо, до того момента, когда появилась необходимость менять по некоему условию параметры текущей и некоторых других строк БД.
Я сделал внутреннею процедуру, которая делает эти изменения для текущей и других определенных записей.
Но т.к. другие измененные записи БД, уже могут быть зафиксированы в dataset, то при переходе с строки на строку (с изменениями внутренней процедуры), результаты сделанные внутренней процедурой, заменяются текущими значениями с dataset.

Я придумал только 2 варианта:
- или поле «Date» менять с помощью запроса (что не будет отображаться в dateset в текущем сеансе)
- или после отработки внутренней процедуры, каждый раз переоткрывать dataset, с запросом не учитывающем измененных строк, или с этими, только выделенными в другой цвет строками, что более предпочтительнее .
Может есть другие варианты?

Да еще, просмотренную строку, я должен выделить сразу другим цветом, т.е. у меня в dataset, после просмотра всей выборки должны отображаться строки с другим цветом.

Спасибо .
...
Рейтинг: 0 / 0
08.03.2015, 17:47
    #38898456
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите правильный вариант решения
Kos-2010Может есть другие варианты?
Выкинуть Dataset, заменить DBGrid на что-то боле подходящее к задаче.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.03.2015, 17:47
    #38898457
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите правильный вариант решения
Kos-2010,

чё за бред? А с чего ты взял что пользователь эту строку просмотрел, а не просто промотал вниз?
...
Рейтинг: 0 / 0
08.03.2015, 17:51
    #38898458
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите правильный вариант решения
Kos-2010,

Update + что-то вроде refresh для только что измененных строк. Возможно понадобится еще поле в виде time stamp для отслеживания изменений,произошедших со времени старта основной читающей транзакции. Ну еще возможно вместо сетки (dbgdid) лучше подойдет virtual string grid или list view...
...
Рейтинг: 0 / 0
08.03.2015, 17:53
    #38898460
Kos-2010
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите правильный вариант решения
Симонов Денис,

промотать вниз не получиться, можно только переходить по одной строке. В grid вся инф. не отображается, она отображается только в других компонентах DataControl
...
Рейтинг: 0 / 0
08.03.2015, 17:55
    #38898462
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите правильный вариант решения
Kos-2010
промотать вниз не получиться, можно только переходить по одной строке. В grid вся инф. не отображается, она отображается только в других компонентах DataControl

Т.е. О поиске и быстром переходе к записи можно забыть? Занятно...
...
Рейтинг: 0 / 0
08.03.2015, 18:01
    #38898464
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите правильный вариант решения
А автоповтор у кнопки "Даун" он, видимо, подавляет и вовсе изуверскими методами.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.03.2015, 18:05
    #38898467
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите правильный вариант решения
Kos-2010,

да я могу мотать колёсиком мыши отвернувшись от монитора, могу просто не обращать внимания. Вроде запись была отображена, но отображена слишком быстро, я ничего не увидел и переместился на следующую запись. Вообще не понимаю что вам даст тот факт что запись была просмотрена. Информация может быть никак не обработана, да и вообще забыта через минуту после просмотра. По мне так если что и фиксировать так это распечатку какого либо отчёта, ну или хотя бы факт его просмотра. Разница лишь в том, что пользователь будет смотреть только то в чём он заинтересован и по отдельной кнопке, нажатой на нужной записи.
...
Рейтинг: 0 / 0
08.03.2015, 18:20
    #38898473
Kos-2010
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите правильный вариант решения
Просто пользователь хочет видеть, что он эту запись уже просмотрел, чтобы к ней не возвращаться, но чтоб она отбражалась в grid в выделенном виде.
И это в его интересах не пользоваться например кнопками nbFirst и nbLast (которых там нет) для перехода в записях.
В grid отображается часть информации по каждой записи (сделано специально чтоб не было желания смотреть все скопом).
...
Рейтинг: 0 / 0
08.03.2015, 23:06
    #38898588
krapotkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите правильный вариант решения
просмотр по типу "3 секунды задержался - значит смотрел" :

в afterscroll запускать 3-сек.таймер
если таймер успел сработать, он ставит в поле флажок, можно и в датасет писать одновременно и в БД
...
Рейтинг: 0 / 0
08.03.2015, 23:27
    #38898593
Kos-2010
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите правильный вариант решения
krapotkin,

та с этим ясно, просто мне не хотелось переоткрывать dataset, погсле выполнения внутренней процедуры, которая помечает текущую запись, а также другие конкретные записи в таблице, а grid должен также их отметить цветом.
но это не удасться, я так понял без переоткрытия
...
Рейтинг: 0 / 0
08.03.2015, 23:58
    #38898603
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите правильный вариант решения
Kos-2010та с этим ясно, просто мне не хотелось переоткрывать dataset, погсле выполнения внутренней процедуры, которая помечает текущую запись, а также другие конкретные записи в таблице, а grid должен также их отметить цветом.
но это не удасться, я так понял без переоткрытияРасскажите уже автору про метод refresh, подозрительное свойство RefreshSQL.
И, да, в гриде можно раскрасить любой элемент по любому условию, при чем тут переоткрытие датасета?

Читать доку о просветления, все уже "украдено", "поезда пускать под откос" уже давным-давно не надо.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Подскажите правильный вариант решения / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]