0 / 0 / 0
Регистрация: 05.02.2018
Сообщений: 62
|
|
1 | |
Совместная работа переключателей, фильтров и выпадающих списков27.02.2018, 13:39. Показов 1622. Ответов 27
Метки нет (Все метки)
Бодрого времени суток, уважаемые форумчане!
Имеется БД, а в ней форма - "краткая лента". Сверху в форме имеется ряд настроенных фильтров: передающее, принимающее подразделение, группа переключателей, а также розоватые поля для фильтра по вводу. И все эти (кроме фильтра по вводу между собой) фильтры/запросы работают, но не совместно. Т.е., например, я могу выбрать все заявки передающего подразделения, а если я выберу в списке принимающее - то мне выдаст другой комплект заявок без учета передающего. Или я хочу найти все заявки какого-нибудь передающего подразделения за 20 февраля, но фильтры вводимого текста и подразделения не связаны. Надеюсь, проблема ясна. Вопрос соответствующий: подскажите, пожалуйста, как настроить совместную работу переключателей, фильтров и списков? Пробовала в функции fpoisk делать "ссылку" на группу переключателей, группу переключателей делать через gotfocus, потом вывести работу на кнопку "применить фильтр". Но что-то как-то неудачно.
0
|
27.02.2018, 13:39 | |
Ответы с готовыми решениями:
27
Совместная работа нескольких списков программирование выпадающих списков Создание выпадающих списков Несколько выпадающих списков |
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
28.02.2018, 09:17 | 2 |
Насколько я понимаю, у вас применение фильтра к данным запускается по событию "после обновления" каждого отдельного элемента фильтра. То есть, выбрали что-то из выпадающего списка - и сразу сформировалась строка фильтра и применилась к форме. Поэтому и получается так, как получается.
А чтобы объединить вместе все условия всех контролов - нужно для начала поубирать с их событий весь код, а вместо этого собрать воедино все эти коды и прицепить код на кнопку "Применить фильтр". И в этом коде формировать уже ЕДИНУЮ строку фильтра с учетом значений всех контролов.
0
|
0 / 0 / 0
Регистрация: 05.02.2018
Сообщений: 62
|
|
28.02.2018, 11:02 [ТС] | 3 |
Kkarn, я нашла две темы с совместными работами. Вначале по выпадающим спискам:
Фильтрация по нескольким условиям Сделала точь-в-точь, поменяв наименования списков. Пишет, что не найден ключ поиска. Скриншот изменений прикладываю (Простите, что скриншот, просто на работе доступ к сайту закрыт). Может быть вы сможете подсказать, в чем проблема?
0
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
28.02.2018, 11:31 | 4 |
Хотелось бы увидеть всю функцию полностью. На скриншоте я вижу только формирование строки фильтра, а дальше там что?..
0
|
0 / 0 / 0
Регистрация: 05.02.2018
Сообщений: 62
|
|
28.02.2018, 12:15 [ТС] | 5 |
Kkarn, желтым выделяет строку me.filteron=true
0
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
28.02.2018, 12:22 | 6 |
Мда... Жаль, что не можете выложить базу, хотелось бы увидеть этот код в процессе работы и понять, что именно ему не нравится...
0
|
0 / 0 / 0
Регистрация: 05.02.2018
Сообщений: 62
|
|
28.02.2018, 13:29 [ТС] | 7 |
Kkarn, я пробовала различные вариации последних строк. И как в примере, и текущим образом. И ошибка все равно была. Иногда даже во время эксперимента фильтр по вводу отключался
0
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|||||||||||
28.02.2018, 14:15 | 8 | ||||||||||
Вот теперь прояснилось).
Смотрите, у вас в коде значение из выпадающего списка обрамляется одинарными кавычками, то есть вот этот момент:
1
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
28.02.2018, 14:16 | 9 |
То есть суть в том, что если у нас в фильтр подставляются ТЕКСТОВЫЕ значения, то их нужно обрамлять одинарными кавычками, а если числовые значения - то не нужно.
1
|
0 / 0 / 0
Регистрация: 05.02.2018
Сообщений: 62
|
|
28.02.2018, 19:02 [ТС] | 10 |
Kkarn, большое спасибо!
Для полного счастья осталось добавить группу переключателей. Не направите меня, пожалуйста, в нужное русло?) Смотрите, нашла здесь на форуме образец, как заставить работать совместно две группы переключателей. Думаю, каким-то аналогичным образом осуществляется и в моем случае. Но пока эксперименты не привели к результату. Полагаю, что сами условия немного иначе задаются, а не select case
0
|
7398 / 4535 / 295
Регистрация: 12.08.2011
Сообщений: 14,027
|
|
01.03.2018, 03:16 | 11 |
Замените лучше переключатели полями со списком или списками или табличными формами например, в зависимости от дальнейшей обработки.
0
|
0 / 0 / 0
Регистрация: 05.02.2018
Сообщений: 62
|
|
01.03.2018, 08:35 [ТС] | 12 |
alvk, дааа, про замену мне уже говорили. Выпадающий список в данном случае мне не подойдет, т.к. он не нагляден. Поле со списком лучше, но оно не растянется в ширину, только если несколько списков сознать. Или я не права?
А что за табличные формы? И, например, будет ли проще реализация, если я сделаю по отдельности все 9 переключателей?
0
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
01.03.2018, 09:47 | 13 |
Ну почему, в приведенном вами примере очень даже красиво работает конструкция select case, и я не вижу причин, почему бы не использовать ее и в вашей базе, нужно просто правильно это оформить... На приведенной вами картинке - явно что-то не то, т.к. не вижу логики в применении If вместе с Select Case, который сам по себе уже проверяет, какое именно значение присвоено вашей группе переключателей. Получается масло масляное.
0
|
7398 / 4535 / 295
Регистрация: 12.08.2011
Сообщений: 14,027
|
|
01.03.2018, 10:32 | 14 |
0
|
0 / 0 / 0
Регистрация: 05.02.2018
Сообщений: 62
|
|
01.03.2018, 10:48 [ТС] | 15 |
alvk, перефразирую свою мысль: если сделать несколько столбцов, то при клике на любую запись любого столбца, выделится вся строка.
Kkarn, был такой вариант Функция fpoisk Select case me.группа259 Case 1: переключатель262_afterupdate Case 2: переключатель264_afterupdate ... Case 9: переключатель278_afterupdate End select Оно как бы работает. Очень быстро обновляет и тут же сбрасывает
0
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
01.03.2018, 11:03 | 16 |
Не. Надо не так. надо непосредственно на Case 1 писать формирование строки фильтра, и так на каждый из Case. И потом эту строку добавлять в общую строку фильтра.
0
|
0 / 0 / 0
Регистрация: 05.02.2018
Сообщений: 62
|
|
01.03.2018, 11:11 [ТС] | 17 |
Kkarn, не очень понятно. Мне надо те большие условия разместить не отдельными подпунктами, а закинуть в функцию поиска?
0
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
01.03.2018, 11:19 | 18 |
anniette, ну у вас же формирование общей строки фильтра происходит именно в функции fpoisk? Значит там же нужно делать и формирование частей этой строки, за которые отвечают группы переключателей. По сути все должно быть аналогично обработке выпадающих списков.
0
|
7398 / 4535 / 295
Регистрация: 12.08.2011
Сообщений: 14,027
|
|
01.03.2018, 11:36 | 19 |
Лучше бы не перефразировала, так я ничего не понял, о чём речь? Табличная форма? Поле со списком?
Что такое "запись столбца"?
0
|
0 / 0 / 0
Регистрация: 05.02.2018
Сообщений: 62
|
|
01.03.2018, 11:52 [ТС] | 20 |
alvk, я имею в виду вот это) Вы нажимаете га значение в столбце, а выделяет всю строку. Оттого поле со списком в ширь не получится использовать.
Вы сказали про табличную форму. Вы имеете в виду вместо ленточной сделать табличную, так?
0
|
01.03.2018, 11:52 | |
01.03.2018, 11:52 | |
Помогаю со студенческими работами здесь
20
Сохранение данных из выпадающих списков Несколько независимых выпадающих списков Тест на основе выпадающих списков Связь выпадающих списков и календаря на форме Отправка значений выпадающих списков на почту Скрытие выпадающих списков в форме ввода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |