Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2008, 01:12   #41
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Может из-за того что это поле лукаповское?
Так там так и написано - "Поле УСЛУГА не может быть использовано в фильтре"...
Решение. У вас есть Combobox1.text, делаете Locate с ним по таблице услуг и получаете идентификатор услуги. Вот его смело вводите как условие в фильтр.
Цитата:
К тому же незнаю как сделать проверку на пустые поля в Edit и Combobox
Они имеют свойство TEXT.
if Edit1.Text>'' then...
mihali4 вне форума Ответить с цитированием
Старый 13.11.2008, 09:42   #42
MARCH
Пользователь
 
Регистрация: 04.11.2008
Сообщений: 39
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Так там так и написано - "Поле УСЛУГА не может быть использовано в фильтре"...
Решение. У вас есть Combobox1.text, делаете Locate с ним по таблице услуг и получаете идентификатор услуги. Вот его смело вводите как условие в фильтр.
а можно по подробнее на счет Locate, а то что то я не совсем понял, или напишите строчку кода!

Также и по поводу Edit, я понял что вы хотите, но немогу сложить условие для нескольких Edit! Помогите пожалуйста!
Все когда нибудь начинаю, и становятся проффи
MARCH вне форума Ответить с цитированием
Старый 13.11.2008, 10:06   #43
MARCH
Пользователь
 
Регистрация: 04.11.2008
Сообщений: 39
По умолчанию

Я вот тут сделал через DBLookupCombobox, забираю значение text, и у меня возникает вопроа:
можно ли сделать значение все записи?
Все когда нибудь начинаю, и становятся проффи
MARCH вне форума Ответить с цитированием
Старый 14.11.2008, 00:03   #44
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
по подробнее на счет Locate
http://www.programmersforum.ru/showthread.php?t=25416
mihali4 вне форума Ответить с цитированием
Старый 14.11.2008, 03:19   #45
MARCH
Пользователь
 
Регистрация: 04.11.2008
Сообщений: 39
По умолчанию

Спасибо большое, за помощь! С Locate я разобрался!
У меня другая проблема, не могу сделать нормальную фильтрацию по таблице нарды! Надо что бы производилась фильтрация по событыю Change каждого компонента или нажатию кнопки, но фильтр не сбрасыволся, а дополнял условие! Помогите плиз! Только не кидай ссылки на литературу, я уже пролез весь инет, так ничего сделать и не смог!
Вот мой проект
Вложения
Тип файла: rar AC Наряды.rar (562.7 Кб, 10 просмотров)
Все когда нибудь начинаю, и становятся проффи
MARCH вне форума Ответить с цитированием
Старый 14.11.2008, 14:04   #46
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

На вашем примере:
Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Table3.Locate('USLUGA',Combobox1.text,[]) ;
if Table1.Filter>' ' then
Table1.Filter:=Table1.Filter+' and USLUGAID='+QuotedStr(DBEdit8.text)
//или Table1.Filter:=Table1.Filter+' and USLUGAID='+QuotedStr(Table3.FieldByName('Id').AsString)
else
Table1.Filter:='USLUGAID='+QuotedStr(DBEdit8.text);
//или Table1.Filter:='USLUGAID='+QuotedStr(Table3.FieldByName('Id').AsString); 
Table1.Filtered:=true;
end;

Последний раз редактировалось mihali4; 15.11.2008 в 00:21.
mihali4 вне форума Ответить с цитированием
Старый 15.11.2008, 00:12   #47
MARCH
Пользователь
 
Регистрация: 04.11.2008
Сообщений: 39
По умолчанию

Спасибо большое! Все оказалось гениально и просто, а я голову ломал, у меня из головы вылетел этот способ: A:=A+B;
А строчка

//или Table1.Filter:=Table1.Filter+' and USLUGAID='+QuotedStr(Table3.FieldBy Name('Id').AsString)

будет более грамотно написана, чем то что я написал!!!
Спасибо Вам еще раз, за помощь, незнаю как бы я без Вас что либо делал!
Все когда нибудь начинаю, и становятся проффи
MARCH вне форума Ответить с цитированием
Старый 15.11.2008, 13:14   #48
MARCH
Пользователь
 
Регистрация: 04.11.2008
Сообщений: 39
По умолчанию

Михалыч, помогите еще раз!
Вообщем
вот код

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
//получение идентификатора по полю "УСЛУГИ"
Table3.Locate('USLUGA',Combobox1.te xt,[]) ;
//условие фильтрации по полю "УСЛУГИ"
if Table1.Filter='' then
Table1.Filter:=Table1.Filter+'and USLUGAID='+QuotedStr(Table3.FieldBy Name('USLUGAID').AsString)else
Table1.Filter:='USLUGAID='+QuotedSt r(Table3.fieldByName('USLUGAID').As String);
Table1.Filtered:=true;
end;

но привыполнении события выдает:Table 'and' not found!
А быз and не работает!
Все когда нибудь начинаю, и становятся проффи
MARCH вне форума Ответить с цитированием
Старый 15.11.2008, 18:29   #49
MARCH
Пользователь
 
Регистрация: 04.11.2008
Сообщений: 39
По умолчанию

Все нашел косяк!
Но все равно этот алгоритм не подходит!
Фильтрация работает только 1 раз, а при повторном выполнении события Change, он показывает пустое поле
ведь у нас получается к первому событию прибавляется второе!
Все когда нибудь начинаю, и становятся проффи
MARCH вне форума Ответить с цитированием
Старый 15.11.2008, 23:12   #50
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

"Косяк" у вас в этой строке:
if Table1.Filter=' ' then
не "=", а ">".
Не так сумбурно. Попытайтесь описать проблему с повторным OnChange подробнее, с указанием компонентов и порядка производимых вами манипуляций, а также полученных результатов.
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DBLookupComboBox SunKnight Компоненты Delphi 6 25.02.2012 08:55
Dblookupcombobox значение по дефолту при условии 1sal1 Общие вопросы Delphi 2 12.12.2009 14:16
И снова DbLookupCombobox Loki БД в Delphi 5 18.11.2007 23:50
DBLookupComboBox Dunpeal Компоненты Delphi 5 09.08.2007 18:28
DBLookupCombobox??? Alexcandr Компоненты Delphi 2 05.04.2007 16:46