NG |
Я в такой ситуации использую форму-контейнер, не имеющую источника записей. В нее помещаю табличные главную+подчиненные, поле со списком для выбора подчиненной формы и кнопку для свертывания/развертывания подчиненной формы. На Событие Изменение ПоляСоСписком вешаю код:
Select Case ПолеСоСписком
Case "Отсутствует"
!Подформа.SourceObject = ""
Me!Кнопка_Детализация.Enabled = False
Case "Подформа 1"
!Подформа.SourceObject = "Подформа1"
!Подформа.LinkMasterFields = "ГлавноеПоле1"
!Подформа.LinkChildFields = "ПодчиненноеПоле1"
Me!Кнопка_Детализация.Enabled = True
Case "Подформа 2"
!Подформа.SourceObject = "Подформа2"
!Подформа.LinkMasterFields = "ГлавноеПоле2"
!Подформа.LinkChildFields = "ПодчиненноеПоле2"
.SubdatasheetExpanded = IsExpanded
Me!Кнопка_Детализация.Enabled = True
...
End Select
| На кнопку:
With Me!ГлавнаяФорма.Form
.SubdatasheetExpanded = Not .SubdatasheetExpanded
End With
End Sub
| Пробуйте! |
В принцЫпе тов. излагает верно, только доп. субформа особо не нужна, равно как и кнопка...
>>Спасибо. "Столбец-переключатель" - что за зверь?
Любой контрол - лучше всего список.
>>Это элемент управления формы?
Конечно.
>>Если да, то какой, главной или подчиненной.
Вестимо главной. На его событие ПослеОбновления вешаешь код типа приведенного NG. Если субформы используют одни и те же поля, то
!Подформа.LinkMasterFields = "ГлавноеПоле1"
!Подформа.LinkChildFields = "ПодчиненноеПоле1" |
можно опустить, задав стационарно.
Select Case ПолеСоСписком
Case "Отсутствует"
!Подформа.SourceObject = ""
Case "Подформа 1"
!Подформа.SourceObject = "Подформа1"
!Подформа.LinkMasterFields = "ГлавноеПоле1"
!Подформа.LinkChildFields = "ПодчиненноеПоле1"
Case "Подформа 2"
!Подформа.SourceObject = "Подформа2"
!Подформа.LinkMasterFields = "ГлавноеПоле2"
!Подформа.LinkChildFields = "ПодчиненноеПоле2"
...
End Select
|
[/SRC]