|
|
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
ADP, но открываю ленточную форму на основе DAORecordset-а из локальной mdb таблицы (хотя это в общем на суть вопроса не влияет) Пользователь делает на форме всякие сортировки и фильтры, по ходу иногда приходится затягивать Recordset заново, но хочется чтобы фильтры и сортировки, которые наделал пользователь сохранялись. С фильтром просто сохранил - применил заново. А как быть с сортировкой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 10:26 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
А что мешает сортировку сохранить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 10:33 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
совершенно тоже самое очень удобственно хранить в реестре - хранится отдельно для каждого юзера, можно хранить для каждой формы отдельно смотри savesetting а зачем тебе MDB ????? чем - то не устраивают временные пользовательские таблицы на сервере, видимые только из текущего коннекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 10:35 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
>А что мешает сортировку сохранить? Мжно конкретный код? типа Сохранение сортировок рекверя востанавление сортировок Я потому и спрашиваю , что лень выдумывать то, что люди уже делали. >а зачем тебе MDB ????? ГлавногоЮзера начальник у которого клиент MDB-й приучил самому вытаскивать инфу из формы множественными сортировками и фильтрами Клиентские сортировки на ADORecordset работают ЗНАЧИТЕЛЬНО медленнее + проблеммы с вычислением агрегирующих полей в примечании (чтобы на них влияли клиентские фильтры надо мутить отдельный код, где больше всего меня бесит несоответствие синтаксиса фильтра рекодсета формы и стандартного ADOrecordset-а) А так три строчки извращенного кода и форма сидит на DAORecordset-е где все вычисляется само и работает мгновенно т.к. основана на временном MDB-ке лежащем локально на компе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 10:58 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
заменяешь в своем коде Me.Filter Me.FilterOn Me.OrderBy Me.OrderByOn ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 11:06 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
Что нибудь типа такого Код: plaintext 1. 2. 3. 4. Если надо совсем сохранять - то в реестр чеши/питай Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 11:06 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
авторКлиентские сортировки на ADORecordset работают ЗНАЧИТЕЛЬНО медленнее + проблеммы с вычислением агрегирующих полей в примечании никогда не замечал тормозов... может проблема в вычислении итоговых значений как агрегатов в примечании ??? - так в адп делать неприемлемо. для вычисления агрегатов можно программно : 1. вычислять значение и выводить его в текстбокс 2. вычислять по фильтру формы условие отбора и заменять его в источнике данных листбокса (можно несколько разных сумм в один контрол) а) в несколько столбцов - подписи сверху б) в несколько строк - select с именами параметров и их значениями 3. применять фильтр формы на клон рекордсета и вычислять в нем а в твоем способе будут проблемы если пользователь захочет изменять данные - синхронизация данных введенных пользователем и данными которые за время его работы в мдб изменили другие пользователи на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 11:17 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
>вычислять по фильтру формы условие отбора >а) в несколько столбцов - подписи сверху >б) в несколько строк - select с именами параметров и их значениями представляеш сколько доп кода? +инерция пользователей привыкших к MDB. >3. применять фильтр формы на клон рекордсета и вычислять в нем сам то пробывал? Как насчет того что у них синтаксис разный? >- синхронизация данных введенных пользователем и данными которые за >время его работы в мдб изменили другие пользователи на сервере. Тогда надо открыть DAORecordset на основе МВВ запроса к серверу будет чуть медленнее чем на временной таблице, но кстати быстрее чем через ADO(проверял) Проходил я все это запарился. Потом IgorM посоветовал путь с временным MDB. Написал три строчки-Все работает Я согласен что это извращение, но результат достигнут и очень легко. Применяю его на форме где тыкает СмыйГлавныйЮзер привыкший к MDB с которым спорить себе дороже. 2ЛП То что я хотел :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 12:23 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
автор>вычислять по фильтру формы условие отбора >а) в несколько столбцов - подписи сверху >б) в несколько строк - select с именами параметров и их значениями представляеш сколько доп кода? а что мне представлять? у меня так много где сделано. совсем немного кода. автор+инерция пользователей привыкших к MDB. а для пользователя все совершенно одинаково выглядит форма как форма - он же не делает ревизию кода ... автор>3. применять фильтр формы на клон рекордсета и вычислять в нем сам то пробывал? так не делал, всегда генерю запрос возвращающий одно суммовое значение или список суммовых значений и потом их помещаю в контролы, вызов функции пересчета из одного контрола формулой - функцией а функция пересчитывает глобальный массив (массив если суммы нужны для каждой записи ленточной формы) значений формы и обновляет значения других пересчитываемых контролов авторКак насчет того что у них синтаксис разный? а то что разное заменяем реплейсом а заменить там надо имя формы с точкой на "" автор>- синхронизация данных введенных пользователем и данными которые за >время его работы в мдб изменили другие пользователи на сервере. Тогда надо открыть DAORecordset на основе МВВ запроса к серверу будет чуть медленнее чем на временной таблице, но кстати быстрее чем через ADO(проверял) гы, всякое видел , но такого.... Кстати сейчас, и твой топик еще раз мне напомнил о моей задумке, хочу добить вопрос почему при присвоению рекордсета отчету в нем та же лажа что и с формой -в плане функций группировки. в чем прелесть рекордсета который создает сам отчет на основе recordsource? и как сделать такой же для формы. сижу, сравниваю параметры, пока ничего не помогает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 13:51 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
Потом IgorM посоветовал путь с временным MDB. Написал три строчки-Все работает Я согласен что это извращение Ну почему же извращение? Тогда я тоже извращенец - у меня к адп прицеплен мдб с единственной табличкой настроек. Сама таблица сделана по "деревянной" структуре и по ней строится дерево настроек проги (не все настройки, а только имеющие опреденный признак). В итоге: удобство хранения и скрытых и открытых для юзеров настроек, приятный интерфейс их изменения. В момент запуска проги создается клиентский отсоединеный паблик рекодсет, по полям ID делаю Properties("Optimize") = True (типа локальный индекс создаю) - ищется быстро и на ура. еще как вариант хранить специфичные настройки в свойствах самой формы, но тогда при обновлении проги они похерятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 14:01 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
ЭХ... понесло меня )) 2 Senin Viktor иногда меня люди просто удивляют, иногда смешат. в в твоем случае - просто нет слов, хотя понимаю что как правило что многие решения просто наследство старых решений... как насчет хранить настройки на сервере в одной таблице в которой каждому пользователю дать уникальный код а его брать из реестра?? все настройки можно будет вытащить запросом SELECT * FROM настройки Where Код = <Код пользователя из реестра> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 14:14 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
авторкак насчет хранить настройки на сервере в одной таблице в которой каждому пользователю дать уникальный код а его брать из реестра?? В общем-то согласен. Вот только причем здесь реестр? Каждый пользователь при входе на сервер (ведь речь идет об ADP+SQL) и так известен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 14:24 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
2 ALL Полностью согласен с АлексейК - ну нафига использовать мдб файла в адп проектах? Всё можно решить на сервере, путём ини файлов, реестар (хотя последнее мне не очень нравится - например, пользователь крайне ограничен в правах на своей машине). АлексейК так не делал, всегда генерю запрос возвращающий одно суммовое значение или список суммовых значений и потом их помещаю в контролы Вот абсолютно верное решение для вычисления итогов и не нужны никакие рекордсеты. Больше того, можно написать ОДИН раз хранимую в качестве параметров которой выступит таблица и столбцы для суммирования.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 14:26 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
2 Incod авторКаждый пользователь при входе на сервер (ведь речь идет об ADP+SQL) и так известен вобщем то да но и нет одновременно : 1 не всегда под одним логином работает один человек 2 не всегда с одного компа работает один человек (несколько профилей) 2 Hummer Хоть кто то меня поддерживает, а то все спорят , я так и в депрессию могу впасть )) А никто не знает прогу -шпиончика для адо ? хочу посмотреть как в ADP отчет формирует рекордсет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 14:38 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
авторвобщем то да но и нет одновременно : 1 не всегда под одним логином работает один человек 2 не всегда с одного компа работает один человек (несколько профилей) 2 Hummer Хоть кто то меня поддерживает, а то все спорят , я так и в депрессию могу впасть )) Сначала о хорошем - я тоже во всем согласен (кроме реестра) Теперь о плохом...имхо 1 - если под одним логином работает несколько человек - это проблемы с политикой безопасности. 2 - даже если с одного компа работает весь офис - есть такая вещь как завершение сеанса и вход под своим логином. Т.е. при нормальной организации политики безопасности - логин юзера и есть тот уникальный код, который ты предлагаешь хранить в реестре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 14:55 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
Все умные - один я дурак :) 2АлексейК как насчет хранить настройки на сервере в одной таблице в которой каждому пользователю дать уникальный код а его брать из реестра?? SELECT * FROM настройки Where Код = <Код пользователя из реестра> Настройки хранятся на сервере - но только как эталонные, и в момент создания нового юзера, в момент первой попытки обращения к локальной таблице (которая пока пустая или не полная) копируются эталонные записи. На счет - дать код юзверю - дык я зае%%%сь кода раздовать - это надо дать код, размножить эталонные записи для этого кода юзверя - триггером на системную таблицу не повесишь (момент добавления нового юзверя) - прийдется извращаться через что-то. А меня моя прога в будущем разъедется по всем филалам СНГ (Челябинск, Киев, Казахстан) - а если учесть, что на некоторых предприятиях даже нормального инета нет и прогеров и любовь руководства к командировкам ... нет уж. Хотя и извратнуться можно элементароно - нет юзера - занчит размножаем записи и отдаем ему, НО настройки в некотрых местах используються ну очень даже активно - сотни запросов к серверу, сотни записей на сервер, когда 1 раз обновил и спокойно юзаешь, не тревожа сервер. А никто не знает прогу -шпиончика для адо ? хочу посмотреть как в ADP отчет формирует рекордсет Profiler 2Hummer ну нафига использовать мдб файла в адп проектах? Хорошо поговорить с людьми, знающими специфику твоей работы, лучше чем я сам :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 15:01 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
авторТ.е. при нормальной организации политики безопасности - логин юзера и есть тот уникальный код, который ты предлагаешь хранить в реестре. видимо так, или логин + идентификатор приложения чьи настройки а что касается политики безопасности то в небольших базах данных не всегда есть нужда задействовать роли - иногда достаточно одного логина для группы операторов выполняющих сходные функции, поэтому и высказал мнение про параметр в реестре ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 15:03 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
>а то что разное заменяем реплейсом а заменить там надо имя формы с точкой на "" ты просто не копал дальше. Там еще много сюрпризов (взять хотя-бы Like<=>ALike,%<=>*) для полноценной работы придется писать целый транслятор. >совсем немного кода. Уверен,что больше трех строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 15:05 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
2 Senin Viktor боже упаси мне умалять чьи либо достоинства. совсем не собирался говорить обидные слова. что касается удобства то : самая близкая дорога - та которую лучше всего знаешь ... А профилер мне не подойдет я хочу смотреть опции устанавливаемые при вызове библиотеки ADO на локальном компьютере а не запросы , которые она шлет серверу (или я чего не понимаю?) например хочу поймать строку подключения рекордсета именно в момент открытия отчетом объекта рекордсет, посмотреть динамические свойства задаваемые перед открытием, например Auto Recalc DBPROP_ADC_AUTORECALC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 15:11 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
2АлексейК боже упаси мне умалять чьи либо достоинства. совсем не собирался говорить обидные слова. Где ты увидел АбыДные слова, я же смалик поставил :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 15:17 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
Latuk Latuk Там еще много сюрпризов (взять хотя-бы Like<=>ALike,%<=>*) для полноценной работы придется писать целый транслятор. вобщем то да, но только написать его нужно только один раз, даже где -то был готовый, но найти не могу. 2 Senin Viktor а я на всякий случай извенился, чтоб не обидеть хорошего человека. )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 15:26 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
2 Senin Viktor Senin ViktorХорошо поговорить с людьми, знающими специфику твоей работы, лучше чем я сам :) Да никто лучше и не знает:) Просто мы не используем:) Не знаю, по мне лучше инишник чем мдб (сугубо мой мнение). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 15:45 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
а я на всякий случай извенился, чтоб не обидеть хорошего человека. )) Чувствуется в тебе классный программист - даже в беседе проводишь обработку возможных ошибок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 15:48 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
2Hummer по мне лучше инишник чем мдб (сугубо мой мнение). Из-за молодости - с ini-файлами никогда не работал, а так же не хотелось бы выдумывать новую процедуру для заполнения TreeView ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 15:51 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
>но только написать его нужно только один раз, даже где -то был готовый Если есть хотелосьбы поиметь (самому писать влом и так все работает да и сам факт бесит - зачем было делать разный синтаксис у фильтров?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 18:45 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
2 Виктор авторпрограммист - даже в беседе проводишь обработку возможных ошибок и смех и грех, тяжело по жизни (в общении) когда думаешь на VB и TSQL, не поверишь даже сны снятся в рамках контроля целостности данных )) 2 ALL Затронутая проблема не давала мне спокойно жить все празники и вот к чему я пришел. 1. при запуске ACCESS 2003 есть нудное предостережение, что не установив JET SP8 будут проблемы с фильтрами. Я несказанно обрадовался и стал качать с надеждой что замена ядра может поможет и ACCESS 2002 - фиг не помогает. (вариант с акксесс 2003 буду тестить сегодня) 2. Решил что если программно заменять клиентский фильтр на серверный то проблем с суммовыми полями быть не должно да и скорость не должна упасть Вот что получилось: ADP, ACCESS 2002 замена клиентского фильтра на серверный: Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. проверено и работает при источнике данных таблице, SQL строке, представлении не будет работать с хр.процедурой В таком варианте работают суммовые поля при использовании фильтров. для оценке скорости брал таблицу с 300 000 записей - я считаю что это много для вывода в форму скорость до 2 сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 10:38 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
самоисправляюсь: Код: plaintext 1. заблуждался будет правильно так 'В общий модуль' Option Compare Database Public Sub SET_ServerFilter(ByRef FRM As Form) Echo False Dim SF As String SF = FRM.Filter If SF = "" Or FRM.FilterOn = False Then ''" FRM.ServerFilter = "" ''" FRM.RecordSource = FRM.RecordSource Echo True Exit Sub End If SF = Replace(FRM.Filter, Chr(34), "'", , , vbTextCompare) 'не стал заморачиваться с незаменой кавычек и ALIKE внутри других кавычек, но думаю что для начала и так сгодится " SF = Replace(SF, " ALike ", " Like ", , , vbTextCompare) 'Если в источнике данных не имя объекта а SQL строка то' If frm.recordsource like "*SELECT*" Then SF = Replace(SF, FRM.Name & ".", "", , , vbTextCompare) If Trim(FRM.ServerFilter) = "" Or IsNull(FRM.ServerFilter) Then FRM.ServerFilter = SF Else FRM.ServerFilter = FRM.ServerFilter & " AND " & SF End If FRM.Filter = "" FRM.RecordSource = FRM.RecordSource Echo True End Sub[/SRC] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 11:03 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1676219]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
152ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 412ms |

| 0 / 0 |
