Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

Combobox

Сценарии — небольшие выполняемые программные коды, написанные, помимо EPLAN, на языках программирования C# или Visual Basic.Net

Модератор: специалисты по Eplan

Аватара пользователя

Автор темы
Dyma
знаток Eplan
знаток Eplan
Сообщения: 514
Зарегистрирован: 15 май 2012, 11:36
Ф.И.О.: Чистякова Оксана
Благодарил (а): 3 раза
Поблагодарили: 8 раз

Создание окна Combobox

Сообщение Dyma » 10 июл 2012, 08:25

В настройках проекта использую одно из свойств функции "пользователь, доп поле". Это свойство участвует в отчете "Легенда электрошкафа". Необходимо сделать для этого свойства окно Combobox, чтобы был выбор из трех вариантов размещения надписи: на аппарате, табличка, держатель маркировки.
Наполняемость шкафов большая и для каждого элемента набирать в этой строке данные, честно говоря, влом. Может кто сталкивался с этим?
[spoiler=скрин 1]
Снимок1.JPG
[/spoiler]
[spoiler=скрин 2]
Снимок2.JPG
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
______________________________________________________
Я слышу и забываю. Я вижу и запоминаю. Я делаю и понимаю.

Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 2269
Зарегистрирован: 05 мар 2012, 14:00
Ф.И.О.: Горский Андрей Сергеевич
Откуда: Санкт-Петербург
Благодарил (а): 18 раз
Поблагодарили: 21 раз
Контактная информация:

Re: Создание окна Combobox

Сообщение AGorskiy » 10 июл 2012, 09:13

Сам не сталкивался с этой задачей, да и необходимостью тоже. Подозреваю, что реализации комбобокса возможна только средствами С#, возможно даже только с помощью API. Самый правильный вариант спросить Ёхана Вейхера (Johann Weiher). В его книге увы я не нашел о боксах ничего.
Оксана, напишите ему, по-английски, в данном топике.
===============
Еще мысль пришла, спросить Хреногубку....он проходил курс обучения АПИ.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.

Аватара пользователя

Автор темы
Dyma
знаток Eplan
знаток Eplan
Сообщения: 514
Зарегистрирован: 15 май 2012, 11:36
Ф.И.О.: Чистякова Оксана
Благодарил (а): 3 раза
Поблагодарили: 8 раз

Re: Создание окна Combobox

Сообщение Dyma » 10 июл 2012, 10:33

По-русски не знаешь как правильно сформулировать, а тут по-английски предлагаете... Я не решусь.
ЗЫ. попробую продублировать на офсайте.
______________________________________________________
Я слышу и забываю. Я вижу и запоминаю. Я делаю и понимаю.

Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 2269
Зарегистрирован: 05 мар 2012, 14:00
Ф.И.О.: Горский Андрей Сергеевич
Откуда: Санкт-Петербург
Благодарил (а): 18 раз
Поблагодарили: 21 раз
Контактная информация:

Re: Создание окна Combobox

Сообщение AGorskiy » 10 июл 2012, 13:48

Оксана, не знаю ответ вас порадует или нет, но...возможность комбобокса есть, реализация, как я понял возможна без АПИ, но знание Си Шарпа нужно. Джони выложил шаблон под комбобокс
[spoiler=цитата]Johann Weiher
Yes, you can add a combobox in Visual Studio.
Use the Windows Form template here:
http://www.suplanus.de/wp-content/uploa ... orlage.zip

Greets
Johann[/spoiler]
Реальность такова, что ни я, ни Макс вам не поможем, увы.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.

Аватара пользователя

Автор темы
Dyma
знаток Eplan
знаток Eplan
Сообщения: 514
Зарегистрирован: 15 май 2012, 11:36
Ф.И.О.: Чистякова Оксана
Благодарил (а): 3 раза
Поблагодарили: 8 раз

Re: Создание окна Combobox

Сообщение Dyma » 10 июл 2012, 15:06

Будем разбираться )) Интересно, что за библиотека EplAPI? существует ли еще какая-нибудь? что к ним относится? как вытащить нужное свойство, чтобы присвоить созданный элемент.
В общем, вопросов море.
Андрей, спасибо.
______________________________________________________
Я слышу и забываю. Я вижу и запоминаю. Я делаю и понимаю.

Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 2269
Зарегистрирован: 05 мар 2012, 14:00
Ф.И.О.: Горский Андрей Сергеевич
Откуда: Санкт-Петербург
Благодарил (а): 18 раз
Поблагодарили: 21 раз
Контактная информация:

Корявая реализация "на коленке"

Сообщение AGorskiy » 10 июл 2012, 15:46

Пришла одна мысль.
Так как в вашем случае все равно придеться много ручной работы (автоматизировать пока не представляю как) - кликов,
чтобы был выбор из трех вариантов размещения надписи: на аппарате, табличка, держатель маркировки

то используя внешнюю обработку функции вывести данное поле в Эксель, во временном файле экселя создать раскрывающийся список и уже просто кликать мышкой, что немного, но упрощает процесс.
Пытался создать раскрывающийся список в самом шаблоне - не вышло, у меня не вышло, возможно, что то делал не так, а возможно, что это нереализуемо.
Раскрывающийся список.7z
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.

Аватара пользователя

Автор темы
Dyma
знаток Eplan
знаток Eplan
Сообщения: 514
Зарегистрирован: 15 май 2012, 11:36
Ф.И.О.: Чистякова Оксана
Благодарил (а): 3 раза
Поблагодарили: 8 раз

Re: Создание окна Combobox

Сообщение Dyma » 11 июл 2012, 07:52

"Умная мысля приходит опосля" ;)
Организовала шаблон под внешнюю обработку. Накидала туда свойств по типу надписи, тексту гравировки, ОУ для идентификации. В принципе, получается быстрее путем того же копи-паста, не нужно каждый раз тыкать в изделие и заполнять свойства.
Спасибо за подсказку.

ЗЫ. по ролику - слишком много движений ))), буду искать проще вариант или остановлюсь пока на том, что описала выше.
______________________________________________________
Я слышу и забываю. Я вижу и запоминаю. Я делаю и понимаю.

Аватара пользователя

MIvanov
знаток Eplan
знаток Eplan
Сообщения: 362
Зарегистрирован: 05 мар 2012, 13:46
Ф.И.О.: Иванов Максим Евгеньевич
Откуда: Казань
Контактная информация:

Re: Создание окна Combobox

Сообщение MIvanov » 11 июл 2012, 09:41

В случае если варианта всего три, проще всего на мой взгляд использовать объект-заполнитель. При вставке макроса присваивать значения текста гравировки: на аппарате, табличка, держатель маркировки.
Максим умер. Прочитайте пожалуйста это сообщение viewtopic.php?f=78&t=3947&p=34780#p34703

Аватара пользователя

Автор темы
Dyma
знаток Eplan
знаток Eplan
Сообщения: 514
Зарегистрирован: 15 май 2012, 11:36
Ф.И.О.: Чистякова Оксана
Благодарил (а): 3 раза
Поблагодарили: 8 раз

Re: Создание окна Combobox

Сообщение Dyma » 11 июл 2012, 10:49

MIvanov писал(а):проще использовать объект-заполнитель. При вставке макроса присваивать значения текста гравировки: на аппарате, табличка, держатель маркировки.

Не поняла. Можно поподробнее, если не затруднит.
______________________________________________________
Я слышу и забываю. Я вижу и запоминаю. Я делаю и понимаю.

Аватара пользователя

Автор темы
Dyma
знаток Eplan
знаток Eplan
Сообщения: 514
Зарегистрирован: 15 май 2012, 11:36
Ф.И.О.: Чистякова Оксана
Благодарил (а): 3 раза
Поблагодарили: 8 раз

Re: Создание окна Combobox

Сообщение Dyma » 11 июл 2012, 10:58

Шаг на пути к победе сделан. Все оказалось намного проще.
Необходимо отредактировать шаблон Excel. В шаблоне создать список, выбать столбец, в котором будет происходить заполнение, и произвести в нем проверку данных на список.
[spoiler=шаблон]
Выбор типа надписи.JPG
[/spoiler]
[spoiler=обработка]
заполнение.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
______________________________________________________
Я слышу и забываю. Я вижу и запоминаю. Я делаю и понимаю.

Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 2269
Зарегистрирован: 05 мар 2012, 14:00
Ф.И.О.: Горский Андрей Сергеевич
Откуда: Санкт-Петербург
Благодарил (а): 18 раз
Поблагодарили: 21 раз
Контактная информация:

Re: Создание окна Combobox

Сообщение AGorskiy » 11 июл 2012, 11:07

Изображение
Вот я это и сделал. Видимо торопился и сделал коряво, в итоге решил посторить это в темповском файле, хотя подозревал, что это реализуемо. Оксана, выложите пожалуйста созданный шаблон. "Выбор типа надписи.JPG" как я понимаю на второй странице шаблона, а вот как реализован выпадающий список, он на первой, хотелось бы посмотреть. Спасибо.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.

Аватара пользователя

MIvanov
знаток Eplan
знаток Eplan
Сообщения: 362
Зарегистрирован: 05 мар 2012, 13:46
Ф.И.О.: Иванов Максим Евгеньевич
Откуда: Казань
Контактная информация:

Re: Создание окна Combobox

Сообщение MIvanov » 11 июл 2012, 11:21

2 Dyma
  • Выделить устройство
  • Вставить объект-заполнитель
  • В объекте создать требуемые переменные и наборы значений
  • Создать макрос

При вставке макроса Eplan спросит какой набор значений следует присвоить.
Максим умер. Прочитайте пожалуйста это сообщение viewtopic.php?f=78&t=3947&p=34780#p34703

Аватара пользователя

Автор темы
Dyma
знаток Eplan
знаток Eplan
Сообщения: 514
Зарегистрирован: 15 май 2012, 11:36
Ф.И.О.: Чистякова Оксана
Благодарил (а): 3 раза
Поблагодарили: 8 раз

Re: Создание окна Combobox

Сообщение Dyma » 11 июл 2012, 11:37

MIvanov писал(а):Выделить устройство

1.На какой именно схеме - многополюсной или компановке электрошкафа?
Если я заполняю свойство "пользователь, доп поле"(в проекте как "Тип данных") в многополюсной схеме, то при размещении устройства на МП данное свойство - пустое, значит это не одно и тоже, хотя через свойство блока его можно вытащить.
MIvanov писал(а):Создать макрос

2. Если устройств более 20 разного типа, то для каждого создавать макрос?
______________________________________________________
Я слышу и забываю. Я вижу и запоминаю. Я делаю и понимаю.

Аватара пользователя

Автор темы
Dyma
знаток Eplan
знаток Eplan
Сообщения: 514
Зарегистрирован: 15 май 2012, 11:36
Ф.И.О.: Чистякова Оксана
Благодарил (а): 3 раза
Поблагодарили: 8 раз

Re: Создание окна Combobox

Сообщение Dyma » 11 июл 2012, 11:44

AGorskiy писал(а): как я понимаю на второй странице шаблона, а вот как реализован выпадающий список, он на первой, хотелось бы посмотреть.

Список создается на первой странице (Tabelle1) АА(15:17). Если создавать на формате или на след таблице, то при сохранении файла Excel ругается, и при обработке ничего не меняется, список не будет доступен[spoiler=шаблон].
Template_EditPropertiesExternalОкс.xls
[/spoiler]
в столбце G выводится требуемое свойство через проверку данных. Для первых двух строк проверку аннулируем
[spoiler=проверка]
проверка данных.JPG
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
______________________________________________________
Я слышу и забываю. Я вижу и запоминаю. Я делаю и понимаю.

Аватара пользователя

MIvanov
знаток Eplan
знаток Eplan
Сообщения: 362
Зарегистрирован: 05 мар 2012, 13:46
Ф.И.О.: Иванов Максим Евгеньевич
Откуда: Казань
Контактная информация:

Re: Создание окна Combobox

Сообщение MIvanov » 11 июл 2012, 12:19

Dyma писал(а):.На какой именно схеме - многополюсной или компановке электрошкафа?
Если я заполняю свойство "пользователь, доп поле"(в проекте как "Тип данных") в многополюсной схеме, то при размещении устройства на МП данное свойство - пустое, значит это не одно и тоже, хотя через свойство блока его можно вытащить.

Вносить значения следует в главной функции. Функции можно синхронизировать: Сервисные программы -> синхронизировать. Свойство блока для таких вещей лишнее.
Dyma писал(а):Если устройств более 20 разного типа, то для каждого создавать макрос?

Совершенно верно, для каждого типа устройств свой макрос, и, лучше привязать его к изделию в БДИ.
Максим умер. Прочитайте пожалуйста это сообщение viewtopic.php?f=78&t=3947&p=34780#p34703

Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 2269
Зарегистрирован: 05 мар 2012, 14:00
Ф.И.О.: Горский Андрей Сергеевич
Откуда: Санкт-Петербург
Благодарил (а): 18 раз
Поблагодарили: 21 раз
Контактная информация:

Re: Создание окна Combobox

Сообщение AGorskiy » 11 июл 2012, 12:42

Dyma, а я в использовал при вторую закладку, вот и не получилось, раскрывающийся список не был актиным, чтож, класс. Возьму себе на вооружение.
А кликов то все равно столько же будет - много.
Макс прав, объект - заполнитель интереснее.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.

Аватара пользователя

Автор темы
Dyma
знаток Eplan
знаток Eplan
Сообщения: 514
Зарегистрирован: 15 май 2012, 11:36
Ф.И.О.: Чистякова Оксана
Благодарил (а): 3 раза
Поблагодарили: 8 раз

Re: Создание окна Combobox

Сообщение Dyma » 11 июл 2012, 13:04

AGorskiy писал(а):А кликов то все равно столько же будет - много.

Поспорю с этим.
Во-первых, сразу уменьшается количество кликов, т.к. на МП необходимо было открывать свойства каждого размещенного устройства и заполнять 2 строки (прописывать текст гравировки и тип надписи)
Во-вторых, если те же автоматы и клеммники идут попорядку, то можно использовать форматы Excel (автозаполнение) - ускоряет процесс.
______________________________________________________
Я слышу и забываю. Я вижу и запоминаю. Я делаю и понимаю.

Аватара пользователя

Satyr
знаток Eplan
знаток Eplan
Сообщения: 24
Зарегистрирован: 08 авг 2012, 20:33
Ф.И.О.: Satyr

Re: Создание окна Combobox

Сообщение Satyr » 10 авг 2012, 09:49

http://files.mail.ru/5B66W2
Реализован ComboBox
Логика следующая :
Выбирается макрос
В окошке с боксами выбирается структурный идентификатор и описание страницы


... и вуаля страница с макросом и описанием готова !!!

Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 2269
Зарегистрирован: 05 мар 2012, 14:00
Ф.И.О.: Горский Андрей Сергеевич
Откуда: Санкт-Петербург
Благодарил (а): 18 раз
Поблагодарили: 21 раз
Контактная информация:

Re: Создание окна Combobox

Сообщение AGorskiy » 10 авг 2012, 09:54

Отлично, после тестирования выложу в Сценарии - перезалью.
Судя по вашему описанию, немного не то, что хотела Dyma.
А реализовать оное, строго по задаче, возможно без dll-ки?
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.

Аватара пользователя

Satyr
знаток Eplan
знаток Eplan
Сообщения: 24
Зарегистрирован: 08 авг 2012, 20:33
Ф.И.О.: Satyr

Re: Создание окна Combobox

Сообщение Satyr » 10 авг 2012, 14:23

Вроде получилось
только свойство 40001

[spoiler=Код]using System.Collections;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Text.RegularExpressions;
using Eplan.EplApi.Gui;
using System.Windows.Forms;
using Eplan.EplApi.ApplicationFramework;
using Eplan.EplApi.Scripting;
using System;




public class MyClass : System.Windows.Forms.Form
{
public MyClass()
{
InitializeComponent();
}
private System.Windows.Forms.ComboBox MyComBox;
private System.ComponentModel.IContainer components = null;
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Код, автоматически созданный конструктором форм Windows

/// <summary>
/// Обязательный метод для поддержки конструктора - не изменяйте
/// содержимое данного метода при помощи редактора кода.
/// </summary>
private void InitializeComponent()
{
this.MyComBox = new System.Windows.Forms.ComboBox();
this.SuspendLayout();
//
// MyComBox
//
this.MyComBox.FormattingEnabled = true;
this.MyComBox.Location = new System.Drawing.Point(70, 93);
this.MyComBox.Name = "MyComBox";
this.MyComBox.Size = new System.Drawing.Size(145, 21);
this.MyComBox.TabIndex = 0;
this.MyComBox.SelectedIndexChanged += new System.EventHandler(this.MyComBox_SelectedIndexChanged);
this.MyComBox.FormattingEnabled = true;
this.MyComBox.Items.AddRange(new object[]
{
"на_аппарате",
"табличка",
"держатель_маркировки",
});

//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.Add(this.MyComBox);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);

}

#endregion
[Start]
public void MyClassVoid()
{
MyClass Frm1 = new MyClass();
Frm1.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
Frm1.ShowDialog();
return;
}
private void MyComBox_SelectedIndexChanged(object sender, System.EventArgs e)
{
//Логика...
CommandLineInterpreter oCLI = new CommandLineInterpreter();
string str = "XEsSetProjectPropertyAction /PropertyId:40001 /PropertyIndex:0 /PropertyValue:" + MyComBox.Text + "";
oCLI.Execute(str);


}
}[/spoiler]

Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 2269
Зарегистрирован: 05 мар 2012, 14:00
Ф.И.О.: Горский Андрей Сергеевич
Откуда: Санкт-Петербург
Благодарил (а): 18 раз
Поблагодарили: 21 раз
Контактная информация:

Re: Создание окна Combobox

Сообщение AGorskiy » 10 авг 2012, 15:28

Попробывал, 40001 конечно хорошо, но это свойство проекта доп. поле, к сожалению нужно свойство функции 40201. То, есть выделяем те или иные девайсы, нажимает кнопку со скриптом, вылетает окно комбобокса, выбираем из списка, нажимаем ОК, окно комбобокс закрывается, если все хорошо, то тишина, если произошла ошибка вылетает окно с ошибкой, если данное свойство было заполнено у какого-либо элемента, то окно с перезаписью.

Пытался заменить XEsSetProjectPropertyAction на XDTDataSetProjectPropertyAction с указанием 40201 увы, но я особо и не расчитывал - реакции ноль, результат тоже.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.

Аватара пользователя

Satyr
знаток Eplan
знаток Eplan
Сообщения: 24
Зарегистрирован: 08 авг 2012, 20:33
Ф.И.О.: Satyr

Re: Создание окна Combobox

Сообщение Satyr » 21 авг 2012, 12:53

XEsSetPropertyAction /PropertyId:? /PropertyIndex:0 /PropertyValue:"?"


Нашел!!!

Аватара пользователя

AGorskiy
знаток Eplan
знаток Eplan
Сообщения: 2269
Зарегистрирован: 05 мар 2012, 14:00
Ф.И.О.: Горский Андрей Сергеевич
Откуда: Санкт-Петербург
Благодарил (а): 18 раз
Поблагодарили: 21 раз
Контактная информация:

Re: Создание окна Combobox

Сообщение AGorskiy » 21 авг 2012, 13:31

Заменил 84 строку на
string str = "XEsSetPropertyAction /PropertyId:40201 /PropertyIndex:0 /PropertyValue:"+ MyComBox.Text +"";

Просто замечательно! Спасибо Изображение, Satyr

Satyr_Combobox.cs

Однако хотелось бы, кнопку ОК для явности и она же закрывает окно Комбокса.
\\пока скрипт повисит тут, потом ему место в соотвествующей теме
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.

Аватара пользователя

Автор темы
Dyma
знаток Eplan
знаток Eplan
Сообщения: 514
Зарегистрирован: 15 май 2012, 11:36
Ф.И.О.: Чистякова Оксана
Благодарил (а): 3 раза
Поблагодарили: 8 раз

Re: Создание окна Combobox

Сообщение Dyma » 21 авг 2012, 13:33

Добрый день!
Для меня Си шарп - это темный-темный лес. Расскажите, в какое место скрипт прикрутить и что с ним делать, если это не затруднит.
Да, интересно было бы реализовать непосредственно в Еплане, без внешней обработки, Комбобокс, но пока это на втором плане.
[spoiler=не по теме]В один прекрасный день внешняя обработка свойств вообще слетела, ни один из типов внешней обработки (функций, соединений, страниц) не запускался. Долго беседовала с ТП.
В итоге через утилиту ELogFileConfigToolu.exe удалось обнулить пользовательские настройки, после этого шаблоны заработали. На всякий случай, выгрузила стандартные настройки :), чтоб были.[/spoiler]

Ну вот, долго сочиняла, чтобы написать - уже что-то выложили )))
______________________________________________________
Я слышу и забываю. Я вижу и запоминаю. Я делаю и понимаю.

Аватара пользователя

MIvanov
знаток Eplan
знаток Eplan
Сообщения: 362
Зарегистрирован: 05 мар 2012, 13:46
Ф.И.О.: Иванов Максим Евгеньевич
Откуда: Казань
Контактная информация:

Re: Создание окна Combobox

Сообщение MIvanov » 21 авг 2012, 13:35

Dyma, в разделе СЦЕНАРИИ все хорошо описано ;)

Дополню сообщение Макса: Оксана, в Eplan'е Satyr и реализовал возможность использования выпадающего меню, без внешней обработки. Попробуйте, скрипт просто использовать, сложнее написать Изображение, но ....ваше желание исполнилось. AGorskiy
Максим умер. Прочитайте пожалуйста это сообщение viewtopic.php?f=78&t=3947&p=34780#p34703


Вернуться в «Сценарии»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей