Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.08;
Скачать: [xml.tar.bz2];

Вниз

Анализ выбранных фильтров   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.043 c
3-1154592652
snip13
2006-08-03 12:10
2006.10.08
Как правильно отобразить изменения в таблице


6-1147572005
Delphi5.01
2006-05-14 06:00
2006.10.08
Работа с cookie в компоненте TWebBrowser (считывание, учтановка)


15-1158315936
DelphiLexx
2006-09-15 14:25
2006.10.08
Симплекс и Delphi


15-1158424188
*Новенький*
2006-09-16 20:29
2006.10.08
Словарик интернетчика.


15-1158559506
Stexen
2006-09-18 10:05
2006.10.08
соглашение о передаче параметров





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский