PDA

Просмотр полной версии : Скрипты (используемые методы).



shamilnizaev@mail.ru
13.11.2018, 08:17
Добрый день, подскажите, я же правильно понимаю что все используемые в вашем примере методы и классы это переопределенные (c добавлением частично вашего индекса) NET.Framework ?
Возможно ли дать ссылки на оригинал ?
Например: TreeItemHlp

Пространство имен:
System.Windows.Automation
Assembly:
UIAutomationTypes.dll
Определяет узел в элементе управления TreeItem.


Пример
public override void Execute()
{
Аппарат1=Аппарат2=Аппарат3=Аппарат4=false; //сбрасываем все выходы
foreach (IDocumentHlp document in HostFB.TreeItemHlp.Project.Documents) //
IAttributeHlp attribute = document.Attribute;
if (attribute.Opened) //проверяем загружено ли окно
{
var mnemoInfo = attribute.CurrentCallInfo;
var callType = mnemoInfo.CurrentCallType;
//проверяем что окно открыто и оно имеет тип "документ"
if (attribute.DocumentInfo.Handle != 0 && callType == MasterSCADA.Interfaces.ECallType.ctDocument )
{
//взводим определенный выход в зависимости от имени объекта у которого открыто окно
if (attribute.TreeItem.Name=="Аппарат1") Аппарат1=true;
if (attribute.TreeItem.Name=="Аппарат2") Аппарат2=true;
if (attribute.TreeItem.Name=="Аппарат3") Аппарат3=true;
if (attribute.TreeItem.Name=="Аппарат4") Аппарат4=true;
}
}
}

shamilnizaev@mail.ru
13.11.2018, 11:00
Подскажите, почему не работает код

Пример
public override void Execute()
{
foreach (IDocumentHlp document in HostFB.TreeItemHlp.Project.Documents) //
IAttributeHlp attribute = document.Attribute;
if (attribute.Opened) //проверяем загружено ли окно
{

//взводим определенный выход в зависимости от имени объекта у которого открыто окно
if (attribute.TreeItem.Name=="Тулбар") Lamp=true;

}
}

Компилируется нормально, без строчки if (attribute.TreeItem.Name=="Тулбар") Lamp=true; лампа горит.

SCADAMaster
13.11.2018, 13:16
Добрый день, подскажите, я же правильно понимаю что все используемые в вашем примере методы и классы это переопределенные (c добавлением частично вашего индекса) NET.Framework ?

Конечно же нет.
Это наши библиотеки, никакой Net Framework мы не переопределяем.

SCADAMaster
13.11.2018, 13:17
Подскажите, почему не работает код


Какую ошибку выдает при компиляции?

shamilnizaev@mail.ru
13.11.2018, 14:01
Какую ошибку выдает при компиляции?

1. А где возможно прочитать про Ваши библиотеки , если это конечно открытая и доступная информация.
2. Ошибку не выдает, компилируется нормально.
3. Сейчас пытаюсь запустить следующий код. При открытии одного окна (mnemo_TB), автоматический запускается другое(mnemo).

SCADAMaster
13.11.2018, 14:46
1. А где возможно прочитать про Ваши библиотеки , если это конечно открытая и доступная информация.
2. Ошибку не выдает, компилируется нормально.
3. Сейчас пытаюсь запустить следующий код. При открытии одного окна (mnemo_TB), автоматический запускается другое(mnemo).

-1- Всё что есть это автогенерируемая справка "Объектная модель MasterSCADA" (в папке с установленной скадой, "бъектная_модель.chm")
Так же можно посмотреть "https://insat.ru/blog/?category=9" где конкретные примеры
-2- Значит проверяйте какие имена возвращает "attribute.TreeItem.Name". Ибо видно что совпадения нет раз не отрабатывает
-3- Зачем через скрипт если есть "Управление документом" который позволяет отслеживать как факт открытия окна, так и открыть окно.

shamilnizaev@mail.ru
13.11.2018, 15:23
-1- Всё что есть это автогенерируемая справка "Объектная модель MasterSCADA" (в папке с установленной скадой, "бъектная_модель.chm")
Так же можно посмотреть "https://insat.ru/blog/?category=9" где конкретные примеры
-2- Значит проверяйте какие имена возвращает "attribute.TreeItem.Name". Ибо видно что совпадения нет раз не отрабатывает
-3- Зачем через скрипт если есть "Управление документом" который позволяет отслеживать как факт открытия окна, так и открыть окно.
Эти функции нужны, что бы создать всплывающее окно с помощью одной кнопки (с фиксацией). Если нажата (окно октрыто), если отжата (окно закрыто). ФБ "Управление документом" имеет всего один вход (открыть) и один выход "Закрыть".

Подскажите:
1. Возможно ли скриптом ОТЖАТЬ кнопку ?
2. А какие типы данных у атрибутов attribute.TreeItem.Name" ? (строка ?), компилятор выдает ошибку (неявное преобразование данных).

SCADAMaster
13.11.2018, 16:08
Эти функции нужны, что бы создать всплывающее окно с помощью одной кнопки (с фиксацией). Если нажата (окно октрыто), если отжата (окно закрыто). ФБ "Управление документом" имеет всего один вход (открыть) и один выход "Закрыть".
Так что именно мешает?
Создаете Расчет у него формула вида "НЕ имяВашейКоманды"
Когда команда истина, расчет выдает ложь и наоборот. Одну на открыть, вторую на закрыть.

------

1. Возможно ли скриптом ОТЖАТЬ кнопку ?
Нет. Визуальная часть кнопки просто отображает то, что сейчас есть в дереве объектов у команды.
Так что если надо, то нужно менять значение самой команды, отвечающей за кнопку.



2. А какие типы данных у атрибутов attribute.TreeItem.Name" ? (строка ?), компилятор выдает ошибку (неявное преобразование данных).

Строка