|
|
|
очищение комбо
|
|||
|---|---|---|---|
|
#18+
Hi всем Народ! очень простой к вам вопрос в форме используем комбобоксы у кторых RowSourceType=3 (SQL) предположим что юзер через эту форму удалил запись после этого комбо должны стать пустыми. тоесть и Value у них должно = (None) как это сделать? спасиба ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2007, 10:40 |
|
||
|
очищение комбо
|
|||
|---|---|---|---|
|
#18+
AleksMedCombo.Requery()не чегото мы недопонимаем с этими комбо. вопрос немного изменим вот у нас четка прописана в комбо с RowSourceType=3 (SQL) выборка RowSource такой SELECT cРеактив,nId,nТип,nЧасто FROM реативы WHERE nТип= 0 OR (nТип=1 AND nЧасто=1) OR (nТип=1 AND id=2) INTO CURSOR tmp1 ORDER BY Реактив как же список в комбо может оказаться пустым (а такое бывает)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2007, 16:34 |
|
||
|
очищение комбо
|
|||
|---|---|---|---|
|
#18+
Снифф SELECT cРеактив,nId,nТип,nЧасто FROM реативы WHERE nТип= 0 OR (nТип=1 AND nЧасто=1) OR (nТип=1 AND id=2) INTO CURSOR tmp1 ORDER BY Реактив как же список в комбо может оказаться пустым (а такое бывает)? когда Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2007, 16:37 |
|
||
|
очищение комбо
|
|||
|---|---|---|---|
|
#18+
PaulWistкогда Код: plaintext но почему ==.F. ? источником является таблица-справочник. записи которые отвечаеют данным условиям в ней ЕСТЬ ВСЕГДА!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2007, 08:36 |
|
||
|
очищение комбо
|
|||
|---|---|---|---|
|
#18+
Короче разобрались. Действительно в одном-единственном случае выборка оказывается пустая. Пробовали это обойти. Получается, что выборка может быть двух типов: SELECT cРеактив,nId,nТип,nЧасто FROM реативы WHERE nТип= 0 OR (nТип=1 AND nЧасто=1) INTO CURSOR tmp1 ORDER BY Реактив или SELECT cРеактив,nId,nТип,nЧасто FROM реативы WHERE nТип= 0 OR (nТип=1 AND nЧасто=1) OR (nТип=1 AND id=2) INTO CURSOR tmp1 ORDER BY Реактив Пробовали присваивать эти выражения переменной и сделать RowSource=переменная. Ничего не выходит. Объясните, пожалуйста, как можно менять в этом случае значение RowSource? За Сниффа Снусмумрик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2007, 10:30 |
|
||
|
очищение комбо
|
|||
|---|---|---|---|
|
#18+
А сделать-то чего хотите? Что должно получится в результате и при каких условиях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2007, 11:18 |
|
||
|
очищение комбо
|
|||
|---|---|---|---|
|
#18+
ВладимирМА сделать-то чего хотите? Что должно получится в результате и при каких условиях? Задумка была такая. Таблица Реактивы. В ней: nId - порядковый номер реактива nТип - тип реактива (их 8 типов) cРеактив - название, серия, контроль, срок годности и т.п. Записей, на наш взгляд, в таблице довольно много, около 500. Согласитесь, что у юзера будет проблема отыскать в похожих строках нужную. И самих комбо размещено на форме с Page десятка полтора (каждый Page для 1-2 типов рекатва). Вот мы и решили со Сниффом поступить так. Сделали в таблице еще поле nЧасто - как часто используется данный реактив. =1 - часто, =0 - редко. Юзер открывает форму, где редактируются эти реактивы. Он знает, с какими реактивами будет работать сегодня, делает пометку в чекбоксе. А в комбо уходит только нужные значения. И получилась у нас такая выборка в комбо(только названия курсоров в них разные): SELECT cРеактив,nId,nТип,nЧасто FROM реактивы WHERE nТип= 0 OR (nТип=1 AND nЧасто=1) OR (nТип=1 AND nId=2) INTO CURSOR tmp1 ORDER BY Реактив Оказалось, что все отлично работает, если бы не (nТип=1 AND nId=2). Это частный случай, и он нужен обязательно. Но не всегда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2007, 11:53 |
|
||
|
очищение комбо
|
|||
|---|---|---|---|
|
#18+
Ну и?.. Проблема-то в чем? Как сделать динамический запрос? 1. На форме создается свой собственный метод. Например, MakeQuery(), который должен возвращать символьную строку - в виде сформированного предложения Select-SQL. Ну, что-то вроде: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 2. В ComboBox делаются настройки Код: plaintext 1. 2. 3. В событии Combo.Init() формируется значение Код: plaintext 1. Следует помнить, что Combo.Init() выполняется ДО Form.Init(). Если конкретное значение SQL Statment зависит от параметров, переданных в форму, то в Combo.Init можно вообще ничего не писать, но выполнить ниже описанные команды в Form.Init() 4. Когда возникает необходимость обновить содержимое выпадающего списка просто даются такие команды Код: plaintext 1. 2. К сожалению, напрямую прописать метод ThisForm.MakeQuery() в свойстве Combo1.RowSource в дизайнере формы - не получится. В этом случае вычисление происходит почему-то вне контекста формы и идет ругань на недопустимость использования ThisForm. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2007, 14:29 |
|
||
|
очищение комбо
|
|||
|---|---|---|---|
|
#18+
ВладимирМНу и?.. Проблема-то в чем? Как сделать динамический запрос? ............................... К сожалению, напрямую прописать метод ThisForm.MakeQuery() в свойстве Combo1.RowSource в дизайнере формы - не получится. В этом случае вычисление происходит почему-то вне контекста формы и идет ругань на недопустимость использования ThisForm.спасиба!!! значит нам есть работа завтро утром на бумаге дествительно так все просто выходет а сами бы низа что не догдались бы ((((((((((((((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2007, 16:17 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34746906&tid=1588855]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 342ms |

| 0 / 0 |
