Тема: TDMS DS 3.0.82: Выполнене выборки при использовании ThisObject

Если выборку, у которой в условиях есть =ThisObject(), поместить на форму, то она работает нормально.
Если эту же выборку использовать для выбора значения атрибута объекта - она не работает (всегда возвращается пустой набор объектов).
Как с этим бороться?

Re: TDMS DS 3.0.82: Выполнене выборки при использовании ThisObject

Slava.Coder.Vrn пишет:

Если выборку, у которой в условиях есть =ThisObject(), поместить на форму, то она работает нормально.
Если эту же выборку использовать для выбора значения атрибута объекта - она не работает (всегда возвращается пустой набор объектов).
Как с этим бороться?

Извиняюсь, конечно, но лично я вообще ничего не понял из написаного.

Re: TDMS DS 3.0.82: Выполнене выборки при использовании ThisObject

Извиняюсь, конечно, но лично я вообще ничего не понял из написаного.

Скажите уже, как записывать видео с окошек, и я буду уже наглядные пособия клепать  :)

Re: TDMS DS 3.0.82: Выполнене выборки при использовании ThisObject

Вот, наглядное пособие  :)

TDMS DS 3.0.82: Выполнене выборки при использовании ThisObject

TDMS DS 3.0.82: Выполнене выборки при использовании ThisObject

Re: TDMS DS 3.0.82: Выполнене выборки при использовании ThisObject

Ну вот и сюда тоже красивый клип сделал  :)

Post's attachments

Query_ThisObject.rar 221.66 Кб, 24 скачиваний с 2007-04-04 

You don't have the permssions to download the attachments of this post.

(изменено: Edhunter, 5 апреля 2007г. 11:57:50)

Re: TDMS DS 3.0.82: Выполнене выборки при использовании ThisObject

Slava.Coder.Vrn пишет:

Ну вот и сюда тоже красивый клип сделал  :)

Проблема ясна. Тут вся загвоздка в том, что для выборки на форме ThisObject существует, а при выборе атрибута выборка создаётся "в воздухе", т.е. ThisObject отсутствует.
Как вариант, можно воспользоватся словарём, который инициализируется при открытии формы.

Инициализация словаря:

Sub Form_BeforeShow(Form, Obj)
    Set d = ThisApplication.Dictionary
    Set d("CurrentObject") = ThisObject
End Sub

Заполнение параметра выборки:

Sub Query_BeforeExecute(Query, Obj, Cancel)
    Set d = ThisApplication.Dictionary
    If Not ThisObject Is Nothing Then
        Query.Parameter("Obj") = ThisObject
    ElseIf Not IsEmpty(d("CurrentObject")) Then
        If Not d("CurrentObject") Is Nothing Then
            Query.Parameter("Obj") = d("CurrentObject")
        Else
            MsgBox "Объект не найден!",,vbCritical
            Cancel = True
        End If
    End If
End Sub

Re: TDMS DS 3.0.82: Выполнене выборки при использовании ThisObject

Ок. Можно и так сделать. Сенкс.
А есть техническая возможность и к выборке для атрибута привязывать ThisObject? А то как-то не логично, имхо  :) Ведь атрибут, для которого выполняется выборка, принадлежит вполне определенному объекту.

Re: TDMS DS 3.0.82: Выполнене выборки при использовании ThisObject

Slava.Coder.Vrn пишет:

Ок. Можно и так сделать. Сенкс.
А есть техническая возможность и к выборке для атрибута привязывать ThisObject? А то как-то не логично, имхо  :) Ведь атрибут, для которого выполняется выборка, принадлежит вполне определенному объекту.

Нет и вряд ли появится.

Re: TDMS DS 3.0.82: Выполнене выборки при использовании ThisObject

Edhunter пишет:

Нет и вряд ли появится.

Я думаю появится. И что-то мне подсказывает что в следующем билде.  ;)

(изменено: Slava.Coder.Vrn, 6 апреля 2007г. 15:50:40)

Re: TDMS DS 3.0.82: Выполнене выборки при использовании ThisObject

m_skipper - разработчик???  :)