:: Архив конференции по VFP до 2005 года
Re: Активная ячейка в ГРИДе. Восстановление положения
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
qws
она заняла 4-ю строку Грида сверху

for i=1 to 4
thisform.grid.doscroll(0)
next



Отредактировано (03.03.05 14:31)


------------------
Никогда не откладывайте на завтра, то, о чем можно забыть навсегда
Ratings: 0 negative/0 positive
Re: Активная ячейка в ГРИДе. Восстановление положения
Владимир Максимов

Сообщений: 14100
Откуда: Москва
Дата регистрации: 02.09.2000
Цитата:
Разве это что-то особенное - держать активную ячейку на постоянном месте в Гриде при пассивности данного клиента, но когда автоматически происходит обновление Грида возможно измененными кем-то другим данными?
Да. Это именно очень особое! Ты представь, что именно ты хочешь получить:

Сидит пользователь, задумчиво смотри в монитор, чай пьет, птички поют И вдруг, у него на экране начинают происходить какие-то изменения в данных! Кошмар! Кто посмел! Вирус завелся!

Нельзя обновлять информацию без ведома пользователя. Просто нельзя. Если пользователь хочет обновить информацию, для этого должна быть специальная кнопка или пункт меню. При этом информация может обновиться в любой части данных и пользователь отнесется с пониманием, если указатель перейдет на начало таблицы.

Второй вопрос - запись номер 900 из 1000 - показывает полное неуважение к пользователю. Т.е. ты исходишь из предположения, что сначала пользователь загрузил всю эту кучу записей, а потом начал искать нужную? Это сильно! Обычно поступают прямо наоборот: у пользователя спрашивают, что именно он хочет посмотреть и показывают относительно небольшую выборку по заданным критериям отбора.

Вообще, это вопрос из разряда "может в консерватории что-то подправить?". В том смысле, что постановка задачи противоречит "нормальной" логике работы. Если такой вопрос возник, то это значит что постновка задачи сильно "кривая".




------------------
Ratings: 0 negative/0 positive
Re: Активная ячейка в ГРИДе. Восстановление положения
Петров Андрей

Сообщений: 2506
Откуда: Химки (М.О.)
Дата регистрации: 17.04.2002
Ну насчет некорректноти задачи. То что данные обновляются в момент редактирования - это действительно плохо. Если это так. А если в этой строке кто то данные поменяет (те имею ввиду совместный доступ к строке)

А насчет восстановления положения скроллинга - мне тоже интересно как? Например пользователь нажал таки на кнопку обноить. При этом была активна строка такая то. Правда мне больше интересно про ListBox потому что гриды ооочень не люблю...




------------------
PS Недочитал тему до конца...
Ratings: 0 negative/0 positive
Re: Активная ячейка в ГРИДе. Восстановление положения
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, qws!

Интересно, а если вдруг эта самая 900-я строка была удалена? Или вставили
новых записей, и она стала 925-й? Или вообще удалили все записи кроме этой
900-й?
А что ещё веселее - пользователь правит данные, набил первое поле, второе,
начал набивать третье и тут бах и всё "обновилось" Думаю у него возникнет
вполне естественное желание кое кого побить больно

Тут столько много "если" и "вдруг", что лучше всё-же прислушаться к мнению
Владимира Максимова или по крайней мере ещё раз очень крепко подумать какова
же должна быть логика такого автоматического обновления...

P.S. А сделать то конечно можно - Penner показал как например активную
строку "сдвинуть"...




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Активная ячейка в ГРИДе. Восстановление положения
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
сам пользуюсь сдвигом, но только в Init формы
Ratings: 0 negative/0 positive
Re: Активная ячейка в ГРИДе. Восстановление положения
qws
Автор

Сообщений: 49
Откуда: Kryukov-na-Dnepr
Дата регистрации: 08.02.2005
Мне кажется очень важным видеть достоверные сведения на экране без доп/усилий - это же оперативная работа! Вот вижу (допустим, я пользователь): Марья Ивановна внесла документ, вот Григорий Михайлович. причем я не просто смотрю на экран и ничего не делаю, а, например, отвлекся на 2 мин, смотрю, а другие уже внесли инфу. Совершенно все естественно!
О 900-й записи сказал просто так, чтобы не быть в самом конце этой тысячи, т.к. тут, наверное, понятно, что Грид самые последние записи отображает по-иному, чем те, которые заполняют его полностью, какой-то средний фрагмент. Кажется, в 1с сделано именно так, как хотелось бы.
Для Игоря Королева. Таймер отключается при деактивации, поэтому корректировка идет в другой форме нормально. Таймер включается вновь при активизации формы с Гридом.
Мне кажется наоборот, если все работает иначе, то это ужасно, я вижу плоды своего труда только, ура!
Ratings: 0 negative/0 positive
Re: Активная ячейка в ГРИДе. Восстановление положения
qws
Автор

Сообщений: 49
Откуда: Kryukov-na-Dnepr
Дата регистрации: 08.02.2005
Игорю Королеву
То,что запись удалена или откорректирована другим, легко определить. Но впечатляет уверенность профессионалов в том, что нужно дополнительно по желанию жать объект обновления. Значит, в путь, - хоть червь сомненья терзает слабого меня.
Ratings: 0 negative/0 positive
Re: Активная ячейка в ГРИДе. Восстановление положения
Владимир Максимов

Сообщений: 14100
Откуда: Москва
Дата регистрации: 02.09.2000
Давай на простом примере.

Вот ты сидишь в этой конференции. Тебя ведь не раздражает и не удивляет тот факт, что для того, чтобы узнать, что написали другие посетители этой конфы надо нажать кнопку "обновить"? Все нормально. Хочешь увидеть изменения, загрузи страницу еще раз.

Абсолютно та же идея и с обновлением информации.

Теперь, что ты понимаешь под словосочетанием "оперативная информация"?

У нас есть форма. На ней Grid, который отображает результат некоторой выборки с сервера. Ты исходишь из следующих допущений:

  • Эта форма постоянно висит на экране у пользователя и никогда не закрывается
  • Хотя внесение нового документа и изменение старого происходит в другой форме, но при возврате в форму со списком в него вносятся только изменения данного пользователя. Обновление всего списка не происходит
  • Пользователи выполняют паралельную работу. Т.е. один и тот же документ создают (изменяют) несколько пользователей

    Теперь по пунктам:

    Эта форма постоянно висит на экране у пользователя и никогда не закрывается

    Скажем так - это достаточно редкая ситуация. Конечно, встречаются пользователи, которые понаоткрывают кучу форм и уходят пить чай. Но обычно это кончается закрытием вообще всего приложения, поскольку уже сами пользователи не могут понять что это за формы торчат у них на экране! Их слишком много!

    Т.е. обычно, формы со списком относительно часто переоткрывают. Переоткрытие и есть по сути обновление информации

    Хотя внесение нового документа и изменение старого происходит в другой форме, но при возврате в форму со списком в него вносятся только изменения данного пользователя. Обновление всего списка не происходит

    А вот это уже явная недоработка программиста! Такой возврат в форму со списком должен приводить к автоматическому обновлению содержимого с последующим позиционированием на новую (измененную) запись. Что и есть обновление информации.

    Пользователи выполняют паралельную работу. Т.е. один и тот же документ создают (изменяют) несколько пользователей

    И ты всерьез думаешь, что оперативное обновление "спасет отца русской демократии"? Представь простую ситуацию: и Марья Ивановна и Григорий Михайлович одновременно начали вносить (изменять) один и тот же документ. Т.е. ни один из них еще не сохранил своих изменений. Как следствие - нечего обновлять и показывать другому пользователю. Да и даже если есть что, они ведь находяться в дургой форме (другом режиме) и просто не увидят этого обновления, даже если оно и произойдет.

    Хотя, конечно, как правило, такую работу распаралеливают. Т.е. исключают создание (модификацию) одного и того же документа разными пользователями. Обычно даже не программными, а административными мерами.

    Т.е. по сути, это оперативное обновление не очень-то и нужно.

    Небольшое упражнение, прежде чем ты опять начнешь возражать.

    Придумай, пожалуйста, ситуацию, когда такое оперативное обновление действительно необходимо. А потом подумай над следующими вопросами:

  • действительно ли это так необходимо?
  • что такого ужасного произойдет, если этого оперативного обновления не будет?
  • насколько вероятно это ужасное событие?
  • можно ли это ужасное событие исключить другими средствами (контроль в момент сохранения, триггера и т.п.)
  • надо ли средства по исключению этого ужасного события делать всегда или их использование и оперативное обновление информации - это 2 взаимоисключающие решения? Т.е. либо одно, либо другое.




    ------------------
    Ratings: 0 negative/0 positive
  • Re: Активная ячейка в ГРИДе. Восстановление положения
    Igor Korolyov

    Сообщений: 34580
    Дата регистрации: 28.05.2002
    Hi, qws!

    Вообще-то обычно человека крайне мало интересует что там другой человек
    наработал - ну разве что это начальник которому больше заняться нечем

    Но и тогда "следить за процессом" это IMHO барство - грузить сеть и сервер
    массой запросов ради сомнительного удовольствия видеть "анимацию" - как
    разные пользователи вносят/меняют данные...

    И вообще это исключительно Файл-серверный подход - открой таблицу, установи
    SET REFRESH, по таймеру вызывай ThisForm.MyGrid.Refresh() и наслаждайся
    полным "автоматизмом" обновления информации
    Только такой подход противоречит идеологии клиент-сервера, он просто завалит
    сервер ненужными запросами (представь что таких "смотрящих" человек 20 сидит
    и каждые N секунд им нужно "обновить экран")...




    ------------------
    WBR, Igor
    Ratings: 0 negative/0 positive
    Re: Активная ячейка в ГРИДе. Восстановление положения
    PaulWist

    Сообщений: 14621
    Дата регистрации: 01.04.2004
    2Владимир Максимов

    Пожалуй, приведу примеры ;)

    Цитата:
    Придумай, пожалуйста, ситуацию, когда такое оперативное обновление действительно необходимо.

    Как правило такое поведение нужно при непрерывных процесса и в большей степени касается отображения инф-ии

    1. Охрана - вьезд, выезд автомобиля (+ квитирование событий ), тоже самое (в меньшей степени) взвешивание транспорта

    2. Всякого рода табло - готовность чего-нибудь

    3. Оперативные остатки - прием заказов (потенциальное кол-во для заказов)

    4. Централизованный контроль тех. процессов - операторские станции (но это уже "изврат", поскольку существуют SCADA системы)

    PS это не в качестве полемики, а так для инф-ии, что такие задачи существуют, я не сомневаюсь, что это известно.




    ------------------
    Есть многое на свете, друг Горацио...
    Что и не снилось нашим мудрецам.
    (В.Шекспир Гамлет)
    Ratings: 0 negative/0 positive


    Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

    On-line: 3 (Гостей: 3)

    © 2000-2024 Fox Club 
    Яндекс.Метрика