Справочное руководство по TDMS 5.0 API
VB Script
Смотри также Послать замечания

Glossary Item Box

Исходный код

Option Explicit
Call DuplicateObj(ThisObject, ThisApplication.Desktop)

'==============================================================================
' Дублировать указанный объект, поместив новый на Рабочий стол и 
' открыв его на редактирование
'==============================================================================
Sub DuplicateObj(Obj, Parent)
        Dim NewObj, EditObjDlg, RetVal
        
        On Error Resume Next
        
        'Создаем новый объект дублированием в составе указанного родителя. Новый объект 
        'создается немедленно, поэтому в случае ошибки его надо удалить - иначе он останется 
        '"висеть" в базе
        Set NewObj = obj.Duplicate(Parent)
        
        If Err<>0 Then
                MsgBox "Ошибка дублирования (возможно, новый объект" & Chr(13) &_
                        "нельзя создавать в составе объекта """ & Parent.Description & """." _
                        & Chr(13) & "Код ошибки: " & Err, vbExclamation
                        If Not (NewObj Is Nothing) Then NewObj.Erase
                Exit Sub
        End If
        
        'Здесь можно задать значения атрибутов нового объекта и другие его свойства.
        '....
        'Создание нового объекта можно на этом закончить, однако:
        '1) значения уникальных атрибутов сбрасываются в Empty;
        '2) обязательные атрибуты не проверяются на наличие значений;
        '3) атрибуты со значениями по умолчанию буду установлены в свои умолчания.

        '....................поэтому................
        'Открыть новый объект на редактирование
        Set EditObjDlg = ThisApplication.Dialogs.EditObjectDlg
        EditObjDlg.Object = NewObj
        
        'Если открыть окно сейчас, значения атрибутов, имеющих значения по умолчанию,
        'будут сброшены в Empty. Для установки значений в умолчание надо 
        'перед показом диалога вызвать метод Update:
        NewObj.Update
        RetVal = EditObjDlg.Show
    
        'Здесь надо отследить: если пользователь отменил диалог редактирования нового объекта,
        'предполагая, что отменяет его _создание_, объект надо удалять вручную (поскольку
        'он уже создан)
        If RetVal <> TRUE Then NewObj.Erase
End Sub
'==============================================================================     
© 2016 CSoft Development. Все права защищены.