Текущий архив: 2006.10.08;
Скачать: CL | DM;
ВнизАнализ выбранных фильтров Найти похожие ветки
← →
londinium (2006-09-22 10:08) [0]Здравствуйте, Господа!
Вопрос общий: планирую дать пользователю возможность выбирать оборудование по разным признакам (инвентарный номер, тип, находится в ремонте или нет, кто им пользуется), так вот и проблема,как это лучше оформить в клиентском приложении? Т.е как проанализировать на клиенте, какой фильтр или группу фильтров выбрал пользователь и с учетом этого сформировать запрос.
В одной интересной программе видел такое оформление: на форме лежит два TListBox. В одном хранятся строки-описания различных фильтров(например, выбрать по коду, инвентарному номеру и т.д). Пользователь выбирает один или несколько фильтров и щелчком по кнопке "Установить фильтр" копирует их в другой TListBox.
Выбравши все фильтры, какие необходимо, нажимает на кнопку "выполнить запрос" и,как ни удивительно , запрос выполняется. Вот мне хочется повторить такое же.
Разработчик сего чуда находится далеко, кроме него, никто не знает, как это работает. Поэтому вся надежда на Вас.
На всякий случай, если кому интересно, могу прислать снимок окна, которое я попытался описать
← →
Johnmen © (2006-09-22 10:16) [1]А какое здесь чудо то? Всё обычно и стандартно.
С чем КОНКРЕТНО трудности?
← →
Ega23 © (2006-09-22 10:18) [2]Не далее как вчера писал:
if @ActNam="PROTOEVEPARAMPL.SEL"
begin
Set NoCount OFF;
Select PL.*, PP.PrtParLab, PE.PrtEveNam
from ProtoEveParamPL PL, ProtocolParams PP, ProtocolEvents PE
where PL.PrtParCod=PP.PrtParCod and PL.PrtEveCod=PE.PrtEveCod and
(@UNID=-1 or PL.UNID=@UNID) and
(@PrtParCod=-1 or PL.PrtParCod=@PrtParCod) and
(@PrtEveCod=-1 or PL.PrtEveCod=@PrtEveCod)
Order By PL.PrtEveParOrd;
Goto Fin;
end;
Таким образом, подставляя значения параметров @UNID или @PrtParCod или @PrtEveCod (а может и все сразу), получаем различные выборки.
Что-то подобное и у тебя должно быть...
← →
Ketmar © (2006-09-22 10:24) [3]а может, сторедпроки будут логичней?
← →
Ega23 © (2006-09-22 10:31) [4]
> а может, сторедпроки будут логичней?
Так это и есть её кусок.
← →
Ketmar © (2006-09-22 10:33) [5]>[4] Ega23(c) 22-Sep-XLI A.S., 10:31
>> а может, сторедпроки будут логичней?
>Так это и есть её кусок.
тьфу. пардон. пора в койку -- не смог отличить SQL от VB. %-)
← →
londinium (2006-09-22 10:37) [6]Всё обычно и стандартно.
С чем КОНКРЕТНО трудности?
Трудности вот с чем: как определить, какой фильтр или группу фильтров выбрал пользователь? Допустим, выбрал он такое: отобрать все компьютеры, находящиеся в ремонте, как определить это? Просто я приложений БД раньше не писал, поэтому не знаю, как добавить такую стандартную возможность. А насчет ХП, то выборка будет осуществляться именно ими.
← →
Ketmar © (2006-09-22 10:38) [7]>[6] londinium 22-Sep-XLI A.S., 10:37
>Трудности вот с чем: как определить, какой фильтр
>или группу фильтров выбрал пользователь?
а при чём тут БД? это таки да -- вопрос вовсе не по БД. и зачем было сюда БД вмешивать -- не пойму.
← →
londinium (2006-09-22 10:45) [8]а при чём тут БД? это таки да -- вопрос вовсе не по БД. и зачем было сюда БД вмешивать -- не пойму
Вот поэтому вопрос задан в этом форуме, а не по БД
← →
Ketmar © (2006-09-22 10:47) [9]ну так ты конкретизируй тогда. лишнее -- выкинь, остальное -- поконкретней. а то пока совсем не ясно, что именно не получается. скажи, как делал (или собираешься делать), в чём затруднение.
← →
Сергей М. © (2006-09-22 10:48) [10]
> отобрать все компьютеры, находящиеся в ремонте
Нужно тем или иным образом поставить "человеческому" фильтру в соответствие "компьютерный" фильтр
В дан.случае он мог бы выглядеть примерно так:
SELECT * FROM Equipments WHERE TypeName = "Computer" AND RepairFlag = True
← →
Ketmar © (2006-09-22 10:49) [11]>[10] Сергей М.(c) 22-Sep-XLI A.S., 10:48
>Нужно тем или иным образом поставить
>"человеческому" фильтру в соответствие
>"компьютерный" фильтр
TTelepator уже достепун бля бета-тестирования? %-)
← →
londinium (2006-09-22 11:14) [12]Пробую еще раз:
из одного TListBox пользователь копирует строки в другой. Как определить, что именно он скопировал?
P.S. Если было бы можно, положил бы снимок окна, там более понятно.
← →
Сергей М. © (2006-09-22 11:41) [13]
> Как определить, что именно он скопировал?
Что значит "как определить" ? То что он скопировал, то он и скопировал) .. Тавталогия, но - факт)...
Источником для копирования обычно является выбранный элемент ListBox"а.
Проверить, выделен ли тот или иной элемент ListBox"а, можно с пом. св-ва Selected
← →
Наиль © (2006-09-22 11:48) [14]
> из одного TListBox пользователь копирует строки в другой.
> Как определить, что именно он скопировал?
Посмотри, что находится во втором листбоксе, и узнаешь, что скопировал пользователь. Или ты не умеешь?
← →
londinium (2006-09-22 12:35) [15]Посмотри, что находится во втором листбоксе, и узнаешь, что скопировал пользователь. Или ты не умеешь?
Если не сложно, покажи, пожалуйста.
Страницы: 1 вся ветка
Текущий архив: 2006.10.08;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.04 c