• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

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

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Программное формирование отчета

Автор nnspu, 15.09.14, 11:54:01

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

nnspu

Добрый день!
Есть задача - из стороннего приложения программно открыть файл вертикали vtp и сформировать отчет на основании шаблонов карт, привязанных к технологии.
С открытием файла и работой с данными технологии никаких проблем не возникает. Однако не нашел способа создать отчет
Есть у кого нибудь пример?

nnspu

Проблема остается актуальной.
Согласно справке написал VBS скрипт

Set app = CreateObject("Vertical.Application_")
Set plugin = app.Plugins.FindPlugin("tpManager")
Set doc = plugin.OpenTechnology("d:\ТП\Технология.vtp")
Set model = doc.Content.Model

Set reportBuilder = CreateObject("ReportBuilder.RReportBuilder")
reportBuilder.rModel = model
reportBuilder.rBuildStart


На последней строке при вызове метода rBuildStart получаю ошибку 'Method rBuildStart of object IRReportBuilder failed'.

Набросал программу на языке c#, которая повторяет действия в VB скрипте.
void Main()
{
System.Type verticalType = System.Type.GetTypeFromProgID("Vertical.Application_");
object appVertical = Activator.CreateInstance(verticalType);

if (appVertical == null)
return;

Vertical.IApplication_ app = (Vertical.IApplication_)appVertical;
Vertical.IPlugin plugin = app.Plugins.FindPlugin("tpManager");
SomePlugins.ITechnologyDocuments documents = (SomePlugins.ITechnologyDocuments)plugin;

Vertical.FormContainer formContainer = documents.OpenTechnology(@"d:\ТП\Технология.vtp");
TechFormOCX.ITechnologyDocument doc = (TechFormOCX.ITechnologyDocument)formContainer.Content;
var builder = new ReportBuilder.RReportBuilderClass() as ReportBuilder.IRReportBuilder;
builder.rModel = doc.DataModel;

var docRep =  builder.rBuildStart();
}

На последнем шаге при вызове метода rBuildStart возникает исключение SEHException " Ошибка внешнего компонента".

Смущает также то, что после создания reportBuilder и присвоения модели в его свойство rModel на основании модели документа количество отчетов в reportBuilder.rBuildDocCount остается равным 0, хотя в документ содержит два отчета.
builder.rModel = doc.DataModel;//После этого reportBuilder.rBuildDocCount остается равным нулю



Проявляется на нескольких компьютерах.

nnspu

Добрый день!
А ларчик просто открывался, всего-то надо было - залогиниться в справочнике УТС.
Привожу код VBS скрипта, может пригодится кому:

Set uniRefer = CreateObject("UniReference.UniRefer")
uniRefer.GlobalVars.Logon().LogonAuto

Set app = CreateObject("Vertical.Application_")
Set plugin = app.Plugins.FindPlugin("tpManager")
Set doc = plugin.OpenTechnology("d:\ТП\Технология.vtp")
Set model = doc.Content.Model

Set reportBuilder = CreateObject("ReportBuilder.RReportBuilder")
reportBuilder.rModel = model
Set repDocument = reportBuilder.rBuildStart
repDocument.rSaveFile "D:\Отчеты\Отчет.vrp"