Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подскажите в чем ошибка?


Страницы:   1 2 3 4

Mariya ©   (2007-09-12 08:56:00) 

var strFilter: string;
       begin

tbmain.Filter := '';

if Trim(Edit1.Text) <> '' then
begin

 tbmain.Filter := 'Фамилия='+QuotedStr(Edit1.Text+'*');
 strFilter :=tbmain.Filter;
 tbmain.Filtered:=True;
end;

if Trim(Edit2.Text) <> '' then
begin
if (strFilter <> '') then tbmain.Filter:= strFilter +'Имя='+QuotedStr(Edit2.Text+'*');
end;
результат у меня должен быть виден на DBGrid1. Edit1-вводим фамилию, в Edit2-имя, фильтр по обоим полям не работает, выдает ошибку. Фильтр задан не правильно. Заранее спасибо.


Anatoly Podgoretsky   (2007-09-13 16:25:00) [41]


> Это моя 3-х месячная зарплата...!!!

Действительно дешевле не работать, это не зарплата а горе


Anatoly Podgoretsky   (2007-09-13 16:24:00) [42]

Mariya   (13.09.07 16:05) [22]  

filter := Критерий1 and Критерий3 ... and КритерийN

Критерии задаются так - ИмяПоля ОператорОтношения Значение


Mariya   (2007-09-13 16:16:00) [43]

Palladin ©   (13.09.07 16:12) [24]

Это моя 3-х месячная зарплата...!!! А задач таких штук 50. Мне дешевле не работать... Но все равно спасибо за предложение...


Mariya   (2007-09-13 16:13:00) [44]

Все это я пишу в боттоне, я понимаю логически, что если комбобокс не пустой, фильтровать значение по нужному, дальше запомнить это значение в переменной, дальше если эта переменная не пустая, и едит1 например не пустой, то фильтровать едит1 из найденных значений в комбобоксе (а не из всей базы снова)... Мне нужно прописать этот боттон, чтобы по всем полям искало, далее все мой задачи на этом и основываются. Если бы Вы мне помогли понять и подучили, мне бы это облегчило работу на многие месяцы, задачи у меня все аналогичные,загвоздка пока только в этом.


Palladin   (2007-09-13 16:12:00) [45]

за 300 баксов напишу :) за 500 отдам даже с исходниками :)


Palladin   (2007-09-13 16:09:00) [46]


> Mariya   (13.09.07 16:05) [22]

У тебя алгоритм спрашивали, а не задачу


Mariya   (2007-09-13 16:05:00) [47]

Мне поставили задачу, написать локальную базу данных. Я создала несколько парадокс таблиц, связала их, там словари, вот. Попросили написать поиск, чтобы могли по каким-то критериям им нужным вытащить из этой базы человека с такими критериями. Все просто:

на форме поиска: ДВГрид, где видны все поля главной таблицы (tbmain).
(где и должен быть результат поиска)
1) комбобокс1-фонд (там числовые значения 10,11,12,13)
2)фамилия
3)имя
4)дата заполнения карточки на это лицо (Data_s-в едит3 вводится, Data_po-вводится в едит4). Мне нужно чтобы пользователь мог вводить данные в эти 4 поля и программка из всей базы вытаскивала человека, у которого все эти поля совпали. Пока я сделала, что все поля ищут (фильтруют) по одному полю, мне нужно по всем. Я начала это делать, код начатого я как вопрос в чем ошибка и написала.


Сергей М.   (2007-09-13 15:53:00) [48]


> Логически это все я прекрасно понимаю, а как это сделать
> (написать) физически, используя процедуры, функции . . .


Т.е. ты "плаваешь" именно в языке как средстве реализации алгоритма ?

Тогда формализуй и приведи сюда требуемый тебе алгоритм, тогда и поможем тебе в его реализации в Делфи.


> какие там нужно внести изменения


Боюсь тебя огорчить, но место этому коду  - в recycle'ре.


Mariya   (2007-09-13 15:49:00) [49]

Подскажите, возможно осуществить контекстный поиск? здесь же. На эти же поля? (*в*н*в=Иванов, Овчинников...)


Mariya   (2007-09-13 15:43:00) [50]

Логически это все я прекрасно понимаю, а как это сделать (написать) физически, используя процедуры, функции . . .  знаний моих в дельфи не хватает, поэтому  спрашиваю. Посмотрите, пожалуйста, код, который я писала второй раз, вы не могли бы его прокомментировать конкретно, какие там нужно внести изменения. Заранее спасибо.


Сергей М.   (2007-09-13 15:25:00) [51]

При первой проверке N=1 , при второй N=2, при энной равно "эн".

Это что, совсем непостижимо для самостоятельного понимания ?)


Mariya   (2007-09-13 15:13:00) [52]

Я не понимаю как программа будет понимать ЕдитН, какой заполняется, и что тогда нужно присваивать фильтру?
if Trim(Edit2.Text) <> '' then
if (strFilter<> '') then tbmain.Filter:=strFilter + 'and' + 'Arh_nom='+QuotedStr(Edit2.Text+'*').
вот здесь например будет едитН, что писать во второй строке?


Сергей М.   (2007-09-13 15:09:00) [53]


> Mariya   (13.09.07 15:08) [15]


И что ?


Mariya   (2007-09-13 15:08:00) [54]

У меня всего 2 едита + 2 комбобокса (в примере)+2 даты (период с ...- до...).


Сергей М.   (2007-09-13 15:03:00) [55]


> Убрать какие проверки?


if Trim(EditN.Text) = '' then ..


Mariya   (2007-09-13 14:56:00) [56]

добавила как второе выдает ошибки! Убрать какие проверки?

var strFilter, S: string;
       begin

strFilter := '';
S:=VarToStr(DBLookupComboBox1.KeyValue);
if Trim(S) <> '' then
begin
 tbmain.Filtered:=false;
 tbmain.Filter:='Fond='+S;
 strFilter :=tbmain.Filter;
 tbmain.Filtered:=true;
end;

if Trim(Edit1.Text) <> '' then
begin
if (strFilter<> '') then tbmain.Filter:=strFilter + ' and '+'Imya='+QuotedStr(Edit1.Text+'*')
else
 begin
 tbmain.Filter:='Imya='+QuotedStr(Edit1.Text+'*');
 tbmain.Filtered:=true;
 strFilter:=tbmain.Filter;
 end;


clickmaker   (2007-09-13 14:53:00) [57]


> И еще вопрос, как добавить третье поле?

так же как второе


Сергей М.   (2007-09-13 14:52:00) [58]


> посочувствуйте тому, кто отбывает наказание


А ты думаешь здесь богадельня ?)


> Ну не знаю как иначе


Да просто убери эти проверки)


Mariya   (2007-09-13 14:45:00) [59]

Ну не знаю как иначе1 Подскажите, плз. И еще вопрос, как добавить третье поле? Ну очень нужно, посочувствуйте тому, кто отбывает наказание :)


Сергей М.   (2007-09-13 14:41:00) [60]

Так ты ж сама себе грабли и устроила в строчках if Trim(Edit1.Text) <> '' thenи if Trim(Edit2.Text) <> '' then

)


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо