Добрый день! 

На системе установлено приложение Excel reports builder for bpm’online, выпущенное terrasoft (отчетность, выгружаемая в эксель). Оно использует библиотеку EPPlus.dll И мы в нашей разработке использовали  эту же библиотеку, но версии этой dll в этих пакетах разные (у нас более новая).

Сейчас при установке решения на систему с Excel reports builder for bpm’online, возникает ошибка из-за разницы в версиях библиотек.

Как можно урегулировать этот конфликт?

Благодарю!

 

Нравится

5 комментариев

 Решение опубликовано не Terrasoft, а bpmonline labs. Вам нужно уточнить новую версию библиотеки и написать на email поддержки решения — bpmonlinelabs@bpmonline.com

Зверев Александр,

Александр, добрый день! Спасибо за отклик. Там смогут предоставить пакеты с новой версией библиотеки?

Елена, попробуйте написать на указанный адрес и спросить. Может, такое обновление уже есть, а может, запланируют после Вашего обращения.

Зверев Александр пишет:

 Решение опубликовано не Terrasoft, а bpmonline labs. Вам нужно уточнить новую версию библиотеки и написать на email поддержки решения — bpmonlinelabs@bpmonline.com
 

Данный адрес не существует. есть альтернативный адрес? 

Показать все комментарии

Здравствуйте. При разработке библиотеки на C# в среде MS Visual Studio 2010 для Terrasoft CRM импортировал библиотеку Terrasoft Window Library в мой проект. Однако часть методов оказалась недоступной, к примеру Метод IWindow::ComponentsByName. Попытка импортировать её под MS Visual Studio 2005 так же окончилась безуспешно. В чём может быть причина?

Нравится

12 комментариев

Попробуйте импортировать TSDskWindowLibrary.

"Лабьяк Олег Игоревич" написал:Попробуйте импортировать TSDskWindowLibrary

Пробовал, ни к чему не привело.

Можете привести примеры или выложить Ваш проект для анализа?

"Лабьяк Олег Игоревич" написал:Можете привести примеры или выложить Ваш проект для анализа?

Выкладываю класс, в котором и происходит ошибка. ServiceUtils - мой класс для выполнения стандартных операций с сервисами.

Проект целиком. Будет понятнее. Класс GridWindow.cs В необходимом месте закомментировано.

Пока весь проект не смотрел, но в Object Browser'e этот метод вижу:

Использую MS Visual Studio 2008, версия 9.0.21022.8 RTM.

Сейчас посмотрю проект.

У Вас ComponentsByName опеределился как свойство. Должен же быть методом

Почему же? Если посмотреть на объявление в SDK, это именно свойство, которое получает элемент коллекции по его коду (обратите внимание на propget):

[id(00000000), propget]
HRESULT ComponentsByName(
    [in] BSTR Name, 
    [out, retval] IWindowComponent** Value
);

Кстати, если использовать MS Visual Studio (не ниже 2008) в качестве отладчика, ComponentsByName у любого окна тоже отображается в списке свойств, а не методов.

Тогда подскажите, пожалуйста, как в моём случае получить доступ к grdData окна. Окно было унаследовано от wnd_BaseGridArea.

Странно, я как-то никогда не встречал чтобы для метода с атрибутом [propget], который должен трактоваться как свойство было объявлено два параметра с разными типами и атрибутами [in] и [out, retval]:

    [in] BSTR Name, 
    [out, retval] IWindowComponent** Value

Прокомментируйте, пожалуйста.

"razamanaz" написал:Тогда подскажите, пожалуйста, как в моём случае получить доступ к grdData окна. Окно было унаследовано от wnd_BaseGridArea.

Ваш вопрос передан на рассмотрение в департамент разработки продуктов нашей компании.

"Yauhen Ivashkevich" написал:Прокомментируйте, пожалуйста.

Посмотрите здесь, особенно Remarks - там подробный ответ на Ваш вопрос.

Попробуйте обращаться к компонентам через метод get_CoreItemsByKey, например:

TSWindowLibrary.IWindow.NonVisualComponents.get_CoreItemsByKey('dlData')
Показать все комментарии

Добрый день,

Помогите, пожалуйста, разобраться в ситуации.

Ситуация в следующем:

В компании с определенной периодичностью появляются файлы, относительно, большого размера (50-200 MB (макеты из граф. редакторов, аналитика, исслед. материалы и т.д.)). Эти материалы в основном не должны быть в общем доступе у всех пользователей, соответственно требуется распределять права.

Вот, тут появляется проблема, где их хранить:

- В БД mssql 2005. Не появятся ли, тогда проблемы со скоростью работы террасофта и сервера, когда объем базы вырастет до 10-ков GB? Из плюсов: решатся вопросы по доступам из террасофта и можно значительно уменьшить вероятность выноса этих данных.

- На сервере. Из плюсов: хранение файлов упирается только в жесткие диски. Из минусов: организация доступов пользователям из террасофта и труднее уменьшить вероятность выноса этих данных.

Буду очень благодарен за советы.

Нравится

2 комментария

Да, согласен, неоднозначный вопрос. Самого такой раньше мучал. Посмотрим что скажут гуру террасофта. Я обычно маленькие файлы в террасофте хранил, а большие на диске и делал ссылку в террасофт.

В MS SQL 2008 R2 есть возможность хранить файлы отдельно от базы. Для Terrasoft и для конечных пользователей ничего не изменится.
http://community.terrasoft.ua/forum/topic/5410

Показать все комментарии

Всем доброго времени суток.

Помогите, пожалуйста, уже всю голову сломала...

Каким образом можно программно "добраться" до быстрого фильтра??? (установить его и применить).

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

Версия 3.2.

Заранее спасибо.

Нравится

9 комментариев

Программно установить быстрый фильтр не получится.

Фильтрация при выборе значения из справочника.

У меня не работает фильтрация... Выводятся все записи.
Вот код: (вызывается по кнопке из грида документов)

function btnAddShablonOnClick(Control) {
	var WorkspaceWindow = GetAttribute(Self, 'WorkspaceWindow');
	var DetailPages = WorkspaceWindow.ComponentsByName('pcDetails');
	var FilesPage = WorkspaceWindow.ComponentsByName('pgFilesDetail');
	var FilesDetailWindow = 
		WorkspaceWindow.ComponentsByName('wndFilesDetail').Window;
	var FileDataWindow = FilesDetailWindow.ComponentsbyName('wndFileData').Window;  
 
	var SelWin = ShowSelectWorkspaceWindow('wnd_LibraryWorkspace', FileDataWindow);
	NotVisibleDetails(SelWin.ComponentsByName('wnddata').Window.
		ComponentsbyName('pcDetails'));
	SelWin.ComponentsByName('wnddata').Window.ComponentsbyName('pcDetails').
		ItemsByName('pgFilesDetail').IsVisible = true;
 
	var DocTypeID = BaseGridArea.GridDataset.DataFields.
		ItemsByName('DocumentTypeID').Value;
	var LibID = GetDatasetFieldValueByID('ds_DocumentType', DocTypeID,
			'ShablonGroupID');
	SetAttribute(SelWin.ComponentsByName('wnddata').Window.
		ComponentsByName('wndGridData').Window, 'ParentItemID', LibID);
	var DataSet = SelWin.ComponentsByName('wnddata').Window.
		ComponentsByName('wndGridData').Window.ComponentsByName('dlData').Dataset;
 
	var IsEnabled = !IsEmptyValue(LibID);
	ApplyDatasetFilter(DataSet, 'ID', LibID, IsEnabled);
 
}

Была в отпуске, не могла об этом думать )

После применения фильтра датасет нужно переоткрывать.

Пробовала. Все равно не фильтруется.

....
DataSet.Close();
DataSet.Open();
}

Попробуйте перед применением фильтра закрывать датасет, а после - открывать. Например, так:

if (DataSet.State != dstInactive) {
    DataSet.Close();
}
ApplyDatasetFilter(DataSet, 'ID', LibID, IsEnabled);
DataSet.Open();

Вообще я правильно понимаю, что Вы сначала открываете окно (с помощью функции ShowSelectWorkspaceWindow), а потом накладываете фильтр на датасет? Попробуйте наоборот: сначала применить фильтр, а потом открывать окно.

Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.

Закрывать - применять фильтр - открывать - это я тоже пробовала, не применяется...
А с применением фильтра до открытия окна сложность заключается в том, как взять нужный датасет и передать его... тк заполнение всех компонентов окна выполняется совсем в других местах (скриптах). Но я как раз думаю над этим. Спасибо.

А если в окно передавать уже отфильтрованный датасет? Применили фильтр, а потом

Window.ComponentsByName('dlData').Dataset = OurFilteredDataset;

Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.

Вот так заработало. Олег, огромное спасибо за помощь.

function btnAddShablonOnClick(Control) {
	var WorkspaceWindow = GetAttribute(Self, 'WorkspaceWindow');
	var DetailPages = WorkspaceWindow.ComponentsByName('pcDetails');
	var FilesPage = WorkspaceWindow.ComponentsByName('pgFilesDetail');
	var FilesDetailWindow = 
		WorkspaceWindow.ComponentsByName('wndFilesDetail').Window;
	var FileDataWindow = FilesDetailWindow.ComponentsbyName('wndFileData').Window; 
 
	var DocTypeID = BaseGridArea.GridDataset.DataFields.
		ItemsByName('DocumentTypeID').Value;
	var LibID = GetDatasetFieldValueByID('ds_DocumentType', DocTypeID,
			'ShablonGroupID');
	var IsEnabled = !IsEmptyValue(LibID);
 
	var LibDataset = Services.GetNewItemByUSI('ds_Library');
	ApplyDatasetIDFilter(LibDataset, LibID, IsEnabled);
	var SelWin = Services.GetNewItemByUSI('wnd_SelectWorkspaceData');
	SetAttribute(SelWin, 'NotifyObject', FileDataWindow);
	SetAttribute(SelWin, 'WorkspaceUSI', 'wnd_LibraryWorkspace');
	System.BeginProcessing();
	try {
		SelWin.Prepare();
		SelWin.ComponentsByName('wnddata').Window.ComponentsByName('wndGridData').
			Window.ComponentsByName('dlData').Dataset = LibDataset;
		SelWin.Show();
		LibDataset.Open();
	} finally {
		System.EndProcessing();
	}
 
	NotVisibleDetails(SelWin.ComponentsByName('wnddata').Window.
		ComponentsbyName('pcDetails'));
	SelWin.ComponentsByName('wnddata').Window.ComponentsbyName('pcDetails').
		ItemsByName('pgFilesDetail').IsVisible = true;
 
}

(функция добавления шаблонов документов из библиотеки, в зависимости от типа документа)

Показать все комментарии