|
|
|
Помогите новичку с combo
|
|||
|---|---|---|---|
|
#18+
Привет! Наформе есть 3 combo. хочется чтобы значение 1 combo ограничивало список значений 2 combo, а тот в свою очередь ограничивает список значений для 3 combo. Возможно как-то отфильтровать значения в combo? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2005, 11:00:33 |
|
||
|
Помогите новичку с combo
|
|||
|---|---|---|---|
|
#18+
Это не раз обсуждалось на этом форуме. Используй Поиск по слову combo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2005, 11:15:25 |
|
||
|
Помогите новичку с combo
|
|||
|---|---|---|---|
|
#18+
В Valid-е первого комбо переопределяешь источник для второго, в валиде 2-го - для третьнго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2005, 12:58:04 |
|
||
|
Помогите новичку с combo
|
|||
|---|---|---|---|
|
#18+
Может я туплю, но ничего не получается в combo1.valid вставлен следующий код: select orgtehnika set filter to orgtehnika.idparent=thisform.combo1.value thisform.combo2.rowsource='orgtehnika.name' thisform.combo2.requery thisform.combo2.refresh ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2005, 14:12:00 |
|
||
|
Помогите новичку с combo
|
|||
|---|---|---|---|
|
#18+
Не нравится мне эта строчка: set filter to orgtehnika.idparent=thisform.combo1.value Не стоит для фильтров использовать объекты формы - они видны только внутри формы. Ты уверен что в момент выдачи SET FILTER у тебя текущий алиас - orgtehnika? Если RowSource у комбо 6 попробуй такую конструкцию: SELECT orgtehnika set filter to orgtehnika.idparent=<источник комбо 1>.<поле> thisform.combo2.rowsource='orgtehnika.name' thisform.combo2.requery ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2005, 16:29:47 |
|
||
|
Помогите новичку с combo
|
|||
|---|---|---|---|
|
#18+
Извините, похожая проблема но указанными средствами не решается. На форме два TEXTBOXа b combo . на основании данных введенных в TEXTBOXы В valide 1-го TEXTBOX следующий код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. выдается сообщение "переменная Х1 не найдена " Если объявить переменные X1 и Х2 PUBLIC, то все нормально. Не понятно: зачем комбо потребовались эти переменные.Ему указали откуда брать данные и пусть оттуда берет и какая ему разница отфильтрованы данные или нет и какие переменные участвовали в фильтре? Может кто объяснит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 10:08:58 |
|
||
|
Помогите новичку с combo
|
|||
|---|---|---|---|
|
#18+
BurnНе нравится мне эта строчка: set filter to orgtehnika.idparent=thisform.combo1.value Не стоит для фильтров использовать объекты формы - они видны только внутри формы. Простое, красивое и эффективное решение: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 10:25:48 |
|
||
|
Помогите новичку с combo
|
|||
|---|---|---|---|
|
#18+
Если область видимости переменной не указана явно (LOCAL, PRIVATE, PUBLIC), то, по умолчанию, она получает область видимости PRIVATE. Как следствие, автоматически удаляется по завершению процедуры в которой была создана. При формировании условия фильтра лучше использовать макроподстановки, чтобы вместо значения переменной была установлена константа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Здесь я предполагаю, что значения ThisForm.Text1.Value и ThisForm.Text2.Value не могут содержать в себе символов квадратных скобок. Если это не так, то надо использовать либо символы одинарных кавычек, либо символы двойных кавычек как дополнительные символы, ограничивающите строку после макроподстановки. К сведению: Если в функции PADL() третий параметр не указан, то строка будет дополняться слева символами пробела. Т.е. в данном случае можно ограничиться записью вида PADL(ALLTRIM(ThisForm.Text1.Value),3) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 10:35:10 |
|
||
|
Помогите новичку с combo
|
|||
|---|---|---|---|
|
#18+
Спасибо! Заработало !!! Но всеже непонятно такое поведение combo и фильтра. 1 Допустим я ввел в сооветствующие текстовые поля символьные значения 91 и 2 после выполнения команд x1= "["+PADL(ALLTRIM(ThisForm.Text1.Value),3,' ')+"]" x2= "["+PADL(ALLTRIM(ThisForm.Text2.Value),2,' ')+"]" получим значения х1="[ 91]" а х2= "[ 2]" а в таблице соответствующие значения " 91" и " 2" и как они будут равными? 2 ВладимирМ Если область видимости переменной не указана явно (LOCAL, PRIVATE, PUBLIC), то, по умолчанию, она получает область видимости PRIVATE. Как следствие, автоматически удаляется по завершению процедуры в которой была создана. Это ежу понятно . И я бы не возражал еслибы вижел ругался в случае когда переменные объявлены в textbox а используются в combo Но у меня в combo x1 ни кде не упоминается nfp Не понятно: [зачем комбо потребовались эти переменные.Ему указали откуда брать данные и пусть оттуда берет и какая ему разница отфильтрованы данные или нет и какие переменные участвовали в фильтре? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 11:59:58 |
|
||
|
Помогите новичку с combo
|
|||
|---|---|---|---|
|
#18+
Условие в Set filter проверяется при каждом перемещении по записям. Для отображения нужных тебе записей нужно пройтись по ним? А при Requery() или Refresh() нужно пройтись? А где это происходит? А где определены переменные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 12:06:34 |
|
||
|
Помогите новичку с combo
|
|||
|---|---|---|---|
|
#18+
Блин ! Точно! Чтото мы забыли что условие фильтра проверяется каждый раз. Все правильно. Но тогд аеще вопрос по этой -же программе. Первоначально мы в фильтре вместо переменых х1 и х2 писали PADL(ALLTRIM(ThisForm.Text1.Value),3,' ') и PADL(ALLTRIM(ThisForm.Text2.Value),2,' ') на сомво выдавалась ошибка THISFORM can only be used within a method А тут почему я не прав ? Ведь значение объекта известно в пределах всей формы, а я из нее не вышел и перед фильтром указана область в которой накладывать фильтр . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 13:50:11 |
|
||
|
Помогите новичку с combo
|
|||
|---|---|---|---|
|
#18+
Где именно происходит процесс вычисления условия фильтра? Т.е. вот указатель переходит на новую запись, тут происходит вычисление выражения фильтра для этой записи, но где именно это происходит? В методе формы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 14:06:58 |
|
||
|
Помогите новичку с combo
|
|||
|---|---|---|---|
|
#18+
ВладимирМ Где именно происходит процесс вычисления условия фильтра? Т.е. вот указатель переходит на новую запись, тут происходит вычисление выражения фильтра для этой записи, но где именно это происходит? В методе формы? Все там же- в Valid для Textbox1. Это тот же пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 14:40:02 |
|
||
|
Помогите новичку с combo
|
|||
|---|---|---|---|
|
#18+
nfp ВладимирМ Где именно происходит процесс вычисления условия фильтра? Т.е. вот указатель переходит на новую запись, тут происходит вычисление выражения фильтра для этой записи, но где именно это происходит? В методе формы? Все там же- в Valid для Textbox1. Это тот же пример С какой стати? То, что переменные проверяются ВНЕ этого события тебя ведь не удивляет. Разве ты перемещаешся по записям таблицы внутри события Valid? Выражение фильтра вычисляется какждый раз при перемещении по записям таблицы. Это происходит ВНЕ твоего события VALID. Но почему ты решил, что это происходит в каком-либо методе формы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 14:47:58 |
|
||
|
Помогите новичку с combo
|
|||
|---|---|---|---|
|
#18+
To ВладимирМ Т.е в Valid TEXTBOXа я только задаю условия для фильтра. Когда фокус получает combo идет "запрос" на фильтрацию а сама фильтрация происходит вообще вне формы где неизвестны значения объектов формы ? Так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2005, 08:28:39 |
|
||
|
Помогите новичку с combo
|
|||
|---|---|---|---|
|
#18+
2 nfp: ДА! Ты можешь выйти из формы и уничтожить ее, а set filter будет действовать. Он как бы привязан к таблице, на которую он наложен. И еще раз напоминаю, что условие проверяется при КАЖДОМ перемещении по таблице, даже неявном, как, например, при отрисовке содержимого комбо или листбокса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2005, 09:38:16 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33133526&tid=1593951]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 469ms |

| 0 / 0 |
