|
|
|
Проблема с combobox
|
|||
|---|---|---|---|
|
#18+
Друзья помогите? У меня на форме есть 2 combobbox к которым я привязываю таблицы. Мне нужно чтобы вибирая значения из 1-й таблицы при помощи combo1 изменялись данные в combo2. Тоисть я строю отношение один ко многим. Подскажите как это сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 12:42:42 |
|
||
|
Проблема с combobox
|
|||
|---|---|---|---|
|
#18+
Можно так: 1. Добавляем свойства cField, cSql, cAlias, id, cIdField к родительскому Combo 2. В Init прописываем следующий код LOCAL lcSql, lcNameAlias, lcField, lcMacro lcField = '['+this.cField+']' lcNameAlias = '['+this.cAlias+']' this.RowSource='' &&отключаем источник this.RowSourceType= 6 && fields lcSql = this.сSql SQLExec(gnconnect,lcSQL,&lcNameAlias) && для КС * для ФС * lcSql=this.cSql * &lcSql lcMacro = 'this.id ='+ this.сidField &lcMacro this.RowSource=&lcField &&подключаем источник 3. В методе InteractiveChange Combo: LOCAL lcMacro lcMacro = 'this.id ='+ this.сidField &lcMacro 4. На форму кидаем Combo1 и Combo2 унаследованные от нашего Сombo Для Combo1 в дизайне устанавливаем свойства: Combo1.cAlias='имя курсора1' Combo1.cField='поле в курсоре1 для отображения в комбобоксе1' Combo1.cIdField='уникальное поле в курсоре1' Combo1.cSql='EXEC DBNAME.DBO.PROCNAME' - для КС или Combo1.cSql='SELECT * FROM TABLEXXX INTO CURSOR '+this.cAlias - для ФС Для Combo2 в дизайне устанавливаем свойства: Combo2.cAlias='имя курсора2' Combo2.cField='поле в курсоре2 для отображения в комбобоксе2' Combo2.cIdField='уникальное поле в курсоре2' Combo2.cSql='EXEC DBNAME.DBO.PROCNAME2 ?thisform.combo2.id' - для КС или Combo2.cSql='SELECT * FROM TABLEYYY WHERE parent_id= '+allt(str(thisform.combo1.id))+' INTO CURSOR ' +this.cAlias - для ФС 5. В методе Init формы : this.combo2.init 5. В методе InteractiveChange Combo1: dodefault() thisform.Combo2.init ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 14:20:01 |
|
||
|
Проблема с combobox
|
|||
|---|---|---|---|
|
#18+
дико извиняюсь 'EXEC DBNAME.DBO.PROCNAME2 ?thisform.combo2.id' - это выполнение хранимой процедуры на СКЛ Сервере? то есть для каждого комбобокса надо свою ХП? а если комбо будет 5 - то надо 5 ХП????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 14:38:12 |
|
||
|
Проблема с combobox
|
|||
|---|---|---|---|
|
#18+
Да, процедура. Но можно и прямой запрос SELECT * FROM .... Для 5 комбобоксов может быть и 5 и 1 процедура с разными параметрами. Это зависит от тех данных, которые Вы выбираете... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 15:01:12 |
|
||
|
Проблема с combobox
|
|||
|---|---|---|---|
|
#18+
дико извиняюсь 'EXEC DBNAME.DBO.PROCNAME2 ?thisform.combo2.id' - это выполнение хранимой процедуры на СКЛ Сервере? то есть для каждого комбобокса надо свою ХП? а если комбо будет 5 - то надо 5 ХП????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 15:27:36 |
|
||
|
Проблема с combobox
|
|||
|---|---|---|---|
|
#18+
FoxLamerДа, процедура. Но можно и прямой запрос SELECT * FROM .... Для 5 комбобоксов может быть и 5 и 1 процедура с разными параметрами. Это зависит от тех данных, которые Вы выбираете... спасибо.. так и понял.. просто для выборок с сервера предвочитаю передавать просто Селекты.. а процедуры для чего-то по-сложней ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 15:29:01 |
|
||
|
Проблема с combobox
|
|||
|---|---|---|---|
|
#18+
2 FM32YO aka KID Использование ХР дает возможность для внесения изменений в условия выборки данных с сервера и бизнес-логику, не изменяя код на клиенте... Кому-то это нужно, а кому-то и нет. Мне это необходимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 15:41:54 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33284049&tid=1593389]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
194ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 520ms |

| 0 / 0 |
