:: Visual Foxpro, Foxpro for DOS
Re: Система на CursorAdapter
sphinx
Автор

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Sawradym
В свое время хотел добиться чтобы данные тянулись с сервера по мере надобности. Игрался с FetchAsNeed и FetchSize, ничего не вышло.
Сейчас, благодаря самописному КА удалось добиться желаемого.

Вот и хотелось бы пример, как это правильно/лучше/удобнее делать.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Система на CursorAdapter
PaulWist

Сообщений: 14601
Дата регистрации: 01.04.2004
Аспид
У меня в некоторых, огромных справочниках реализовано так.
Выбираю что то, показываю (ск. не тормозит пусть 10000), а дальше все равно юзер начинает поиск.
И тут делаю перевыборку, по ясному критерию, введенному юзером.
Поиск интерактивный. Потому, как то незаметно все для юзера.

Есть поиск договоров, и там они не знают точное название.
Потому в текстбокс вводят что то, жмут поиск.
Перевыбираю по Like


Сервер конечно железный, но нафига выбирать 1000 ненужных записей, что бы потом сделать перезапрос на сервер, не проще ли спазу по like искать, кстати огромный справочник это сколько записей?


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

Сообщений: 14601
Дата регистрации: 01.04.2004
Саша, я так понимаю, что у тебя основная загвоздка это сформировать перед выборкой условие фильтра?


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

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
PaulWist
Саша, я так понимаю, что у тебя основная загвоздка это сформировать перед выборкой условие фильтра?

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


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Система на CursorAdapter
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Sawradym
Получилось не идеально (механизм скрола у фоксового грида не очень однозначный), но достаточно удобно.
Удобно искать нужную информацию при помощи прокрутки гигантского списка в гриде? На вкус и цвет, конечно же, все фломастеры разные, но лично я бы таким не стал пользоваться. И других бы научил внятно формулировать свои запросы, а не листать часами такого рода гриды
Совершенно безотносительно к тому сразу вынимаются все эти записи или частями...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Система на CursorAdapter
Sawradym

Сообщений: 2244
Откуда: Винница
Дата регистрации: 15.05.2007
Igor Korolyov
Sawradym
Получилось не идеально (механизм скрола у фоксового грида не очень однозначный), но достаточно удобно.
Удобно искать нужную информацию при помощи прокрутки гигантского списка в гриде? На вкус и цвет, конечно же, все фломастеры разные, но лично я бы таким не стал пользоваться. И других бы научил внятно формулировать свои запросы, а не листать часами такого рода гриды
Совершенно безотносительно к тому сразу вынимаются все эти записи или частями...

Тебе не удобно, мне не удобно, а новички предпочитают скролить, тут уж ничего не поделать, так им нагляднее. Со временем, конечно, осваивают и сортировку и поиск, но поначалу большинство скролит.


------------------
Ratings: 0 negative/0 positive
Re: Система на CursorAdapter
sphinx
Автор

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Не говори! На меня постановщицы в свое время насели - сделай сортировку по клику на столбце, да сделай. Говорю - есть же фильтр нужных записей, зачем сортировать тонны строк, чтобы искать нужную информацию в упорядоченном списке?


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Система на CursorAdapter
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
PaulWist
Сервер конечно железный, но нафига выбирать 1000 ненужных записей, что бы потом сделать перезапрос на сервер, не проще ли спазу по like искать, кстати огромный справочник это сколько записей?
Так коли вначале выбора, никаких критериев нет. Пустой грид показывать - напугаются)))
Просто тут на поводу у них, дороже спорить.
И некоторые при первом вызове, сортирую по дате использования, иногда бывает угадываю.
Много - это когда долго весь >1 сек. Если органолептически чувствуешь тормоз, надо что то думать.
Все должно летать мгновенно.
sphinx
Не говори! На меня постановщицы в свое время насели - сделай сортировку по клику на столбце, да сделай. Говорю - есть же фильтр нужных записей, зачем сортировать тонны строк, чтобы искать нужную информацию в упорядоченном списке?
Я при перевыборке, делаю как раз сортировку по тому полю, по которому выбираю.
Тоже помогает. Ну привыкли, что бодаться, когда решается за 5 сек.
Ratings: 0 negative/0 positive
Re: Система на CursorAdapter
PaulWist

Сообщений: 14601
Дата регистрации: 01.04.2004
Аспид
Так коли вначале выбора, никаких критериев нет. Пустой грид показывать - напугаются)))
Просто тут на поводу у них, дороже спорить.
И некоторые при первом вызове, сортирую по дате использования, иногда бывает угадываю.
Много - это когда долго весь >1 сек. Если органолептически чувствуешь тормоз, надо что то думать.
Все должно летать мгновенно.

1. Если совсем первый заход в форму, то показываю пустой фильтр, ведь юзер не просто так вызвал форму, а что-то конкретное хочет найти, вот в этот момент заполнится фильтр. А в следующий раз показываю фильтр, который был «последним».

2. Сортировка тоже настраивается в фильтре, либо перестраивается в гриде по индексу.


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

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Не знаю, как правильно, но сделал так:
- При входе в форму показывается пустой грид
- на форме, внизу грида одно текстовое поле поиска для "всего" (система сама, по содержимому пытается определить, в процессе ввода значения, по как сделать фильтр, учитываются местные значения, типа "это ФИО", "это паспорт", "это ИНН", с учетом особенностей этих значений, длин и контрольных сумм, также есть возможность поменять понимание на другое из возможноых понимани, лишних пониманий не даю выбирать, вобщем маленький Гугл-Яндекс-поиск), по Ентеру происходит собственно поиск
- при большом количестве строк результата просто много не показываю (10 тыс строк), и даже не сообщаю о том, что тут не все. - Вопросов ни разу не возникало, что "а я ожидал 10001 записей, а ты не все показал", т.к пользователь физически не может ожидать более скольки-то сотен записей, обычно ищет одного-двух-десяти
- также важно, чтобы при запуске формы курсор стоял на поле ввода искомого значения
- при запуске формы можно было бы грид не показывать (он же при старте всегда пустой), сделать вообще как сайт йа точка ру (пустой экран с полем ввода искомого значения), и завизиблить грид по результатам поиска, но это лишнее для рабочей системы мтк
- есть кнопочка "результаты поиска по следующему фильтру добавлять к старой выборке"
- есть кнопка "напечатать список" и кнопочка "сохранить найденный список в файл", и соответственно кнопочка "наполнить список записями из файла"

Много чего можно приделать, писанины много, конечно, но если юзеры хорошие, то почему не присобачить этот код )

ПС.
- речь не идет о специфических экранах, когда надо "показать" действительно все 100500 записей и внизу сумму их выплат, например. Т.е. иногда необходимо показать "все 100500 записей" под некоторым нужным фильтром, чтобы внизу была их итоговая сумма (как в Экселе)



Исправлено 2 раз(а). Последнее : of63, 28.02.19 20:44
Ratings: 0 negative/0 positive
Re: Система на CursorAdapter
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Ну иногда для наших дебилоидов надо ещё и сформировать эксель с этими 100500 записями (благо МС давно уж убрал лимиты), и распечатать его Жаль закон запрещает получившимся талмудом по башке стукнуть тому депутату или чиновнику в чью пустую голову сия "гениальная мысль" пришла


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Система на CursorAdapter
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Ваши чиновники еще не дозрели, видимо, до современных поводов "давать по башке" )
Читай формат XBRL - вершина волны современной отчетности )



Исправлено 1 раз(а). Последнее : of63, 28.02.19 23:02
Ratings: 0 negative/0 positive
Re: Система на CursorAdapter
PaulWist

Сообщений: 14601
Дата регистрации: 01.04.2004
sphinx
Если речь идет о динамическом фильтре, который формируется в зависимости от того, какие записи нужны пользователю выше или ниже показываемых в гриде данных - то, наверное, да.

Не надо смешивать два фильтра (where на сервере и where в локальном курсоре), используй фильтр ТОЛЬКО на сервере, таким образом задача упроститься в 2 раза.


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

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
PaulWist
используй фильтр ТОЛЬКО на сервере, таким образом задача упроститься в 2 раза

Да я бы рад использовать... Знать бы, как правильно. Ты тоже не кинешься примером?


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Система на CursorAdapter
AndyNigmatec

Сообщений: 1550
Откуда: Волгоград
Дата регистрации: 28.06.2015
А в чём тут проблема то ... параметризированный запрос, это если можно явно все параметры прописать (в большинстве случаев как раз можно).

select ... where ... ?lcParam1 ... ?lcParamN

или вообще все в ХП на серваке засунуть
Ratings: 0 negative/0 positive
Re: Система на CursorAdapter
sphinx
Автор

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
AndyNigmatec
А в чём тут проблема то ... параметризированный запрос

Да нет с этим проблем. Что писать в параметр, как определять, что надо пользователю показать +1 (-1) запись грида? У меня нет проблем в прописывании параметров, у меня непонимание в идеологии частичного получения данных. Наверное, отличается несильно, но во примера годного пока так и нет. Наверное это секрет большой. А то получается - все знают, но никто внятно не готов сказать.


------------------
"Veni, vidi, vici!"(с)




Исправлено 1 раз(а). Последнее : sphinx, 02.03.19 15:25
Ratings: 0 negative/0 positive
Re: Система на CursorAdapter
sphinx
Автор

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Ну хорошо.. Давайте пойдем по шагам. Допустим, я пользователю покажу TOP 100 ( не важно, это уже больше, чем в гриде.. но ПУСТОЙ грид - не предлагать, сразу говорю!Это мне пофиг, мне это не объяснить ДРУГИМ). Он (пользователь) мотает грид вниз, до строки 100. И хочет получить данные дальше. Я-то придумаю, как это сделать, поверьте, наверное опыта хватит. Речь ведб топика о другом - а как ПРАВИЛЬНО. Я всю жизнь учусь (хотя в чем-то подсказываю и другим), это нормально. Не так ли?


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Система на CursorAdapter
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Ну коли речь об идеалогии... полагаю, тут истины и нет.
Как у меня везде, когда выборка не фильтрована (справочники)
Вытаскивай не 100, а 100, что бы до конца утомились мотать)
И приучи к поиску. А дальше поиском сразу сужаешь круг записей.

Или опять не о том?
Ratings: 0 negative/0 positive
Re: Система на CursorAdapter
sphinx
Автор

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Аспид
И приучи к поиску.

А я-то, болван, сразу его сделал. Только постановщицы говорили, что нужна сортировка по столбцу (я выше писал про все это).

Итак... Вот я выбрал первые 100 записей, часть показал в гриде. Пока грид позволяет - пользователь в локальной выборке двигается вниз. И доходит наконец-то до записи 100. Так как я выкачиваю все сразу (я знаю, что это неправильно) - они просто скроллят вниз по гриду, если им так сильно хочется.

В варианте "первые 100 записей" - придется, как понимаю, сделать кнопки вверх-вниз, ибо в гриде всех записей нет. Гемор так-то (скорее не для меня, мне-то похрен, как я данные получу, хоть конем, хоть ладьей). Ну значит кнопка. Жмут они ВНИЗ, на сервер должна пойти выборка с условием. Ну, допустим, я рассчитаю динамически, как и что выбрать. Вопрос не в этом. Как это сделать ПРАВИЛЬНО? Я задаю вопрос на непонятном языке? Если кодом лень делиться - хотя бы схематично поди можно алгоритм описать?


Ну не будет конкретики - оставлю все как есть. Все равно проект помрет рано или поздно - хоть со мной, хоть без меня.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Система на CursorAdapter
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
sphinx
А я-то, болван, сразу его сделал.
Напрасное раздражение.
Может оно просто не удобное?
sphinx
Только постановщицы говорили, что нужна сортировка по столбцу
Ну так выбирай 1000 записей, по последней сортировке.

Ну а дальше идет, что идеология решена.
"Хочу автоматом дозаполнять грид"
Это делал Sawradym может поделится кодом.
Но вот мне эта идеология не нравится)
Кнопки "вверх"- "вниз" вообще что то из доса.

sphinx
Ну не будет конкретики
Совершенно не понятно, какой конкртики хочешь.
sphinx
оставлю все как есть
Так как сейчас то? Что не устраивает.

Наверное каждый привержен своей "идеологии"
Вот очень много, совершенно разных юзеров.
Все знают про поиск.
Да показываю сначала, возможно не те записи (тоже не любят пустой грид), так не думая, сразу жмут первую букву, и получают уже близко к нужным записи.

А листать грид... можно. Сейчас в сайто-строении похожее в тренде. Лично я оплевался.)))
Ratings: 0 negative/0 positive


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

On-line: 34 akvvohinc  (Гостей: 33)

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