На форуме обязательно:
  1. Заполнить свой профиль НА РУССКОМ ЯЗЫКЕ КИРИЛИЦЕЙ. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.

Рекламу мы не размещаем ни на каких условиях.

Установка фильтра в навигаторе страниц с помощью сценария

Сценарии / Модули API

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

Ответить

Автор темы
Maxim_
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 15 янв 2014, 19:03
Имя: Максим

Установка фильтра в навигаторе страниц с помощью сценария

Сообщение Maxim_ » 13 фев 2018, 21:14

Добрый вечер.
Возможно ли с помощью сценария в навигаторе страниц установить необходимы фильтр?
Последний раз редактировалось aranea 14 фев 2018, 17:18, всего редактировалось 1 раз.
Причина: поправил заголовок


petrowitch
знаток Eplan
знаток Eplan
Сообщения: 71
Зарегистрирован: 01 окт 2012, 13:28
Имя: Сергей
Благодарил (а): 13 раз
Поблагодарили: 13 раз

Навигатор страниц

Сообщение petrowitch » 14 фев 2018, 08:58

Maxim_ писал(а):
13 фев 2018, 21:14
Возможно ли с помощью сценария
а какая задача? там есть и обычный фильтр, мне например всегда было достаточно и его


Автор темы
Maxim_
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 15 янв 2014, 19:03
Имя: Максим

Навигатор страниц

Сообщение Maxim_ » 14 фев 2018, 09:53

Хотелось сделать печать проекта в одно нажатие, т.е. с помощью фильтра отбираем только форматы А4 отправляем их на принтер, который настроен по А4, затем отобираем листы формата А3 и их отправляем их на принтер.


Elcity
знаток Eplan
знаток Eplan
Сообщения: 72
Зарегистрирован: 20 фев 2014, 09:25
Имя: Алексей
Благодарил (а): 9 раз
Поблагодарили: 21 раз

Навигатор страниц

Сообщение Elcity » 14 фев 2018, 10:09

petrowitch все правильно сказал, с этим может справиться обычный фильтр.
Снимок.PNG
У вас нет необходимых прав для просмотра вложений в этом сообщении.
EPLAN Electric P8 - Professional 2.2

Номер сборки: 6338

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

aranea
знаток Eplan
знаток Eplan
Сообщения: 776
Зарегистрирован: 21 сен 2012, 21:45
Имя: Воробьев Александр
Благодарил (а): 6 раз
Поблагодарили: 65 раз
Контактная информация:

Навигатор страниц

Сообщение aranea » 14 фев 2018, 10:23

а печатать лучше через пдф с последующим автовыбором лотка, если принтер позволяет

однако для спортивного интереса задачу стоит рассмотреть
через SchemeSetting() или Settings() скорее всего можно

Maxim_, хорошо бы смотреть ваш код
Изображение


Автор темы
Maxim_
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 15 янв 2014, 19:03
Имя: Максим

Навигатор страниц

Сообщение Maxim_ » 14 фев 2018, 13:00

Кода еще нет, я в самом начальном пути. Да и сознанием написания сценариев не очень (только на основании примеров написать что-то могу)


Автор темы
Maxim_
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 15 янв 2014, 19:03
Имя: Максим

Установка фильтра в навигаторе страниц с помощью сценария

Сообщение Maxim_ » 14 фев 2018, 18:36

И еще, раз зашла речь о стандартном фильтре, то в нем есть недостаток, который видно на картинке выше (необходимо с помощью галочек выбрать необходимые рамки), при том как мне показалось в данном окошке присутствуют не все рамки, которые есть в системе. А вот если отредактировать XML данного фильтра руками, то можно сделать запись вида *A4*, что сделает фильтр универсальным для все рамок в которых указано A4.

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

Madwolf
знаток Eplan
знаток Eplan
Сообщения: 1131
Зарегистрирован: 17 окт 2012, 10:24
Имя: Виталий
Благодарил (а): 31 раз
Поблагодарили: 95 раз

Установка фильтра в навигаторе страниц с помощью сценария

Сообщение Madwolf » 15 фев 2018, 14:01

Думаю там можно выбрать рамки из списка, который хранится в проекте (те что использовались или используются).


Zakharov
знаток Eplan
знаток Eplan
Сообщения: 204
Зарегистрирован: 27 окт 2013, 11:11
Имя: Захаров
Благодарил (а): 2 раза
Поблагодарили: 40 раз

Установка фильтра в навигаторе страниц с помощью сценария

Сообщение Zakharov » 16 фев 2018, 22:08

Elcity писал(а):
14 фев 2018, 10:09
petrowitch все правильно сказал, с этим может справиться обычный фильтр.
Проходил как то.
Там загогулина в том что в фильтре навигатора доступны только свойства страницы. А формат находится в рамке. Именно в рамке есть смысл заложить какой то признак или свойство определяющее формат. Поэтому в навигаторе напрямую к свойствам рамки не достучатся. А значит не получится отфильтровать.
Блочные свойства то же не помогут, из рамки в страницу ничего не передать.
Остается единственный вариант, который вы указали. Нам доступно только имя рамки.
Нет, конечно можно вручную в каждой странице внести А4 или А3. Но вспомним про отчеты, и вообще это не наш метод. Хотелось бы автоматически.
____________________________________________
В своем стремлении избежать граблей человек наступает на весь прочий сельхозинструмент.


Автор темы
Maxim_
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 15 янв 2014, 19:03
Имя: Максим

Установка фильтра в навигаторе страниц с помощью сценария

Сообщение Maxim_ » 17 фев 2018, 10:01

Zakharov писал(а):
16 фев 2018, 22:08
Нет, конечно можно вручную в каждой странице внести А4 или А3. Но вспомним про отчеты, и вообще это не наш метод. Хотелось бы автоматически.
Возможно не совсем понятно объяснил. Имя рамки и так содержит А4 или А3. Поэтому вместо того, чтобы выбирать галочками нужные рамки исправил XML фильтр, где сделал запись вида *А4*, т.е отфильтруются все рамки у которых в имени присутствует А4.

Отправлено спустя 40 минут 28 секунд:
Вот что у меня получилось. К сожаления проверить на реальном принтере сейчас возможность нет, но на виртуальном вроде работает.

Код: Выделить всё

public class ProjectPrint
{
   // [Start]
    [DeclareAction("PrintAll")]

    public void PrintProject()
    {

	DialogResult msgprint;
    
		msgprint = MessageBox.Show("Распечатать проект?", "Печать", MessageBoxButtons.YesNo,MessageBoxIcon.Question);
    
		if (msgprint == DialogResult.No)
		
			return;   
		
		else if(msgprint == DialogResult.Yes)
		{
			
			Progress progress = new Progress("SimpleProgress");
                progress.BeginPart(100, "");
                progress.SetAllowCancel(true);
 
                if (!progress.Canceled())
					
				progress.BeginPart(50, "Печать А4");
	
		Eplan.EplApi.Base.Settings oSettings = new Eplan.EplApi.Base.Settings();
		oSettings.SetStringSetting("USER.PageBrowserGui.PageFilterScheme.LastUsed", "Печать А4", 0);  //Устанавливаем фильтра для листов формата А4
		string p = "PDFCreator";  //Имя принтера настроеного на печать А4
		Print(p);
		
		progress.BeginPart(90, "Печать А3");
		
		oSettings.SetStringSetting("USER.PageBrowserGui.PageFilterScheme.LastUsed", "Печать А3", 0);  //Устанавливаем фильтра для листов формата А3
		p = "PDFCreator";  //Имя принтера настроеного на печать А3
		Print(p);
		progress.EndPart(true);
		
		}
    }
       
    // Печать
    public bool Print(string p)
    {
			
        ActionCallingContext PrintContext = new ActionCallingContext();
        PrintContext.AddParameter("TYPE", "PROJECT");
		PrintContext.AddParameter("PRINTERNAME",p);
		PrintContext.AddParameter("USEPAGEFILTER", "1");
        bool ReCo = new CommandLineInterpreter().Execute("print",PrintContext);
		        
        return ReCo;
    }
	
	[DeclareMenu]
   	public void MenuFunction()
    {
        Eplan.EplApi.Gui.Menu oMenu = new Eplan.EplApi.Gui.Menu();

        oMenu.AddPopupMenuItem(
            "Печать", // Имя меню
	    "Распечатать весь проект...", //Подменю
            "PrintAll", // Имя действия
            "Распечатать весь проект", // Подсказка
            35299, // Номер меню
            0, // 1 = После меню, 0 = Перед меню
            true, // Разделитель перед
            true // Разделитель после
            );
        return;
    }
}


Elcity
знаток Eplan
знаток Eplan
Сообщения: 72
Зарегистрирован: 20 фев 2014, 09:25
Имя: Алексей
Благодарил (а): 9 раз
Поблагодарили: 21 раз

Установка фильтра в навигаторе страниц с помощью сценария

Сообщение Elcity » 19 фев 2018, 14:06

Zakharov писал(а):
16 фев 2018, 22:08
это не наш метод. Хотелось бы автоматически.
Ну автоматизация это же не только исполнение повторяющихся действий по макросам. Это еще и концепция. Получается что надо не городить костыли для фильтрации по формату рамки, а сделать все документы в проекте одного формата. Европейцы так и делают, все документы А3.
EPLAN Electric P8 - Professional 2.2

Номер сборки: 6338

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

Madwolf
знаток Eplan
знаток Eplan
Сообщения: 1131
Зарегистрирован: 17 окт 2012, 10:24
Имя: Виталий
Благодарил (а): 31 раз
Поблагодарили: 95 раз

Установка фильтра в навигаторе страниц с помощью сценария

Сообщение Madwolf » 19 фев 2018, 19:41

Вообще, если принтер нормальный (драйвер принтера), то он сам может разобрать по форматам, т.е. печатает все подряд, но в разных форматах, кому как удобнее. Но в конечном счете я сам перешел на А3, хотя последнее время монтажки все-таки приходится делать в "длинных" форматах.


Автор темы
Maxim_
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 15 янв 2014, 19:03
Имя: Максим

Установка фильтра в навигаторе страниц с помощью сценария

Сообщение Maxim_ » 19 фев 2018, 20:06

С принтером не удалось договориться.
Вот мои фильтры:
У вас нет необходимых прав для просмотра вложений в этом сообщении.


MVekb
знаток Eplan
знаток Eplan
Сообщения: 108
Зарегистрирован: 07 окт 2016, 07:31
Имя: Михаил
Благодарил (а): 27 раз
Поблагодарили: 19 раз

Установка фильтра в навигаторе страниц с помощью сценария

Сообщение MVekb » 20 фев 2018, 06:46

Madwolf писал(а):
19 фев 2018, 19:41
Вообще, если принтер нормальный (драйвер принтера), то он сам может разобрать по форматам, т.е. печатает все подряд, но в разных форматах, кому как удобнее.
Тоже интересуюсь этой темой. Хочется печатать одной кнопкой, чтобы принтер сам выбирал формат (А3 или А4), а не плясать с бубном (переводить в PDF). Может быть кто-то имел опыт реализации подобного через виртуальный принтер или принт-сервер, т.е. чтобы печать выполнялась через еплан, но само задание бы подхватывал этот виртуальный принтер и сортировал по форматам?

Отправлено спустя 4 минуты 13 секунд:
Maxim_ писал(а):
19 фев 2018, 20:06
С принтером не удалось договориться.
Вот мои фильтры:
Мне кажется, что фильтры взаимоисключающие. Т.е. при нахождении выражения "А4", оно будет найдено и в выражении "А4х". Я иногда для проверки регулярных выражений пользуюсь онлайн-калькулятором, например, этим http://planetcalc.ru/708/
Eplan 2.5 HF5 / Eplan 2.6 HF3

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

Madwolf
знаток Eplan
знаток Eplan
Сообщения: 1131
Зарегистрирован: 17 окт 2012, 10:24
Имя: Виталий
Благодарил (а): 31 раз
Поблагодарили: 95 раз

Установка фильтра в навигаторе страниц с помощью сценария

Сообщение Madwolf » 20 фев 2018, 12:00

С некоторого времени, версии 2.2 или 2.3 Еплан перестал делать PDF такие, что наш принтер мог разобрать самостоятельно, к тому же напрямую я не печатаю никогда, т.к. всегда нужна версия PDF, а ее делать лучше через экспорт. В итоге А3 наше все )


Zakharov
знаток Eplan
знаток Eplan
Сообщения: 204
Зарегистрирован: 27 окт 2013, 11:11
Имя: Захаров
Благодарил (а): 2 раза
Поблагодарили: 40 раз

Установка фильтра в навигаторе страниц с помощью сценария

Сообщение Zakharov » 27 фев 2018, 22:21

Elcity писал(а):
19 фев 2018, 14:06
Ну автоматизация это же не только исполнение повторяющихся действий по макросам. Это еще и концепция. Получается что надо не городить костыли для фильтрации по формату рамки, а сделать все документы в проекте одного формата. Европейцы так и делают, все документы А3.
Согласен. Но, если строго, у нас в стандартах полно документов только А4. Те же титульники например, и никаких альтернатив не предполагается.
Меня спасает только то, что мне нет необходимости парится про печать. Выпускаю пдф, а там есть специально заточенные люди для печати, они за это зарплату получают. Вот пусть и отрабатывают.
____________________________________________
В своем стремлении избежать граблей человек наступает на весь прочий сельхозинструмент.

Ответить

Вернуться в «Eplan API»