Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Выбранные элементы
 
Доброго всем времени суток у меня такой вот вопрос, я хочу написать макрос для группового копирования объектов справочника в T-Flex DOCs, имеется ввиду, что нужно скопировать выбранные объекты в справочнике в буфер. То есть если открываешь какой-нибудь справочник, затем выделяешь объекты, они становятся выбранными, а как в макросе обратиться именно к этим выбранным объектам не могу понять...подскажите, если кто сталкивался или есть ли какие-нибудь идеи
 
Такой вариант подойдет?
Код
/*Ссылки
TFlex.DOCs.UI.Objects.dll
TFlex.DOCs.UI.Types.dll
TFlex.DOCs.UI.Common.dll
DevExpress.Utils.v11.1.dll*/

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Windows.Forms;
using TFlex.DOCs.Model.Macros;
using TFlex.DOCs.Model.Macros.ObjectModel;

using TFlex.DOCs.Model.References;
using TFlex.DOCs.UI.Objects.Managers;
using TFlex.DOCs.UI.Objects;
using TFlex.DOCs.UI.Objects.ReferenceModel;

public class Macro : MacroProvider
{
    public Macro(MacroContext ctx)    
        : base(ctx)
    {
    }
    
    public override void Run()
    {
        var uiContext = Context as UIMacroContext;
        var vr = uiContext.FindReferenceVisualRepresentations(UIMacroContext.FindReferenceVisualRepresentationsType.CurrentWindow).FirstOrDefault();
        IEnumerable<ReferenceObject> selectedObjects = vr.GetSelectedObjects().OfType<IReferenceUIObject>().Select(o=>o.ReferenceObject);;
        string result = "";
        foreach (ReferenceObject ro in selectedObjects)
        {
            result += ro.ToString() + "\r\n";
        }
        MessageBox.Show(result);
    }
}
Главное - спокойствие!
 
Отлично, именно то что нужно!
Страницы: 1