Тема: Как добавить отчет в пользовательский GModule

Здравствуйте!
В макросе создаю пользовательский GModule  (CreateUserGModule) с данными активного модуля.
Вывожу его .ShowModal().
Нам бы сделать, чтобы пользователь в этом окне по стандартной кнопке "Отчеты" выполнил нужный отчет. Подскажите, пожалуйста, как его (отчет, набор) туда добавить.

(изменено: Дмитрий Гамий, 6 октября 2015 17:29:31)

Re: Как добавить отчет в пользовательский GModule

Запускаете макрос, выводите модуль командой ShowModal.
Потом запускаете штатную команду "Шаблоны отчетов", создаёте новый набор данных, создаёте и настраиваете структуру БД, добавляете бланки - всё как обычно.
Потом созданный набор данных можно найти в справочнике "Наборы данных" (Справочникик - Отчёты - Наборы данных) и редактировать его из справочника (а не из макроса).
Потом пользователь должен будет добавить разработанній Вами отчёт командой "Добавить".

Спасибо сказали: snake1

(изменено: snake, 6 октября 2015 18:49:15)

Re: Как добавить отчет в пользовательский GModule

Дмитрий, при каждом запуске макроса добавлять (пользователю)?

Re: Как добавить отчет в пользовательский GModule

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

Вы можете так же запускать отчет программно и избавить пользователя от выбора используя свойство IGModule.Reports

Спасибо сказали: snake1

Re: Как добавить отчет в пользовательский GModule

snake пишет:

Дмитрий, при каждом запуске макроса добавлять (пользователю)?

Достаточно один раз добавить, каждый пользолватель добавляет отчёт сам для себя. Раньше иногда настройки отчётов пользователя "слетали" при импорте-экспорте отчётов, но в последнее время вроде такое не наблюдалось.

Re: Как добавить отчет в пользовательский GModule

Спасибо! С отчетами разобралась, все в порядке.

Подскажите, пожалуйста, можно ли в пользовательский GModule  добавить пару зависимых объектов активного модуля? В отчете нужны их данные.

Re: Как добавить отчет в пользовательский GModule

Не соврать бы по версиям. В дистрибутиве 6.3 должно быть расширение Расчет плановой себестоимости. Там есть отчет, как раз с зависимыми объектами созданными пользователем. Это интерисует?

Надо смотреть интерфейс https://help.technologics.ru/7.0/TCSAPI … Module.htm.

Спасибо сказали: snake1

Re: Как добавить отчет в пользовательский GModule

Для TechnologiCS 6.3

Вот пример кода, в котором к UserGModule (переменная ATable) добавляется технология изготовления номенклатуры:

 
  ' ATable As IUserGModule
  ' ANmk As ISingleNomenclature
  Dim TP ' As INmkTechnology
  Dim CM ' AS ICustomizedModule  
 
  If (Not ATable Is Nothing) And (Not ANmk Is Nothing) Then
    
    Set TP = ANmk.Properties("NmkTechnology").AsIDispatch 
    If Not TP Is Nothing Then
      TP.Refresh
      Call TP.ShowOperation(0)     
      
      Set CM = ATable

      Call CM.CM_ClearAllCustomization
      Call CM.CM_ClearUserRptChildItems 
    
      Call CM.CM_Add_UserRptChildItemModule(True, "NmkTechnology", "Техпроцесс", -1, TP)
                             
    End If ' If Not TP Is Nothing    
 
  End If ' If Not  Is Nothing    

Для того чтобы добавленные программно объекты появились в отчёте, необходимо выполнить те же действия, о которыхъ я писал ранее.

Спасибо сказали: snake1

Re: Как добавить отчет в пользовательский GModule

Написала код, подобный примеру. Но нигде не вижу этот зависимый объект. Захожу в шаблон отчета, на вкладке "База MS Access" не обнаруживаю.

Re: Как добавить отчет в пользовательский GModule

    If (Not SostPar Is Nothing) And (Not TCSActiveModule Is Nothing) Then
     Set PN = TCSActiveModule.Properties("Parameters").AsIDispatch   'Параметры номенклатуры
        If Not PN Is Nothing Then
            PN.Refresh
                 
            Set CM = SostPar
            Call CM.CM_ClearAllCustomization
            Call CM.CM_ClearUserRptChildItems        
            Call CM.CM_Add_UserRptChildItemModule(True, "Parameters", "Параметры_номенклатуры", -1, PN)
            'Call CM.CM_SelectChildItem( "Parameters" )                              
        End If ' If Not PN Is Nothing     
    End If ' If Not  Is Nothing   

Re: Как добавить отчет в пользовательский GModule

Надо повторно построить шаблон базы данных

Re: Как добавить отчет в пользовательский GModule

Олег Зырянов пишет:

Вы можете так же запускать отчет программно IGModule.Reports

Подскажите, пожалуйста, можно ли запустить программно комплект отчетов?

        Set Reports = AModule.Reports(False)
        If Not (Reports Is Nothing) Then

            Reports.Refresh

            If Reports.Locate("NAME", APackageReportName, 0) Then
                Reports.ExecuteReport                             
            End If
                    
        End If 
        Set Reports = Nothing  

       
   

При передаче наименования комплекта отчетов выдается сообщение : "В заданном модуле не найден отчёт APackageReportName" . 
А для отдельных отчетов (из комплекта) построение происходит успешно.

Re: Как добавить отчет в пользовательский GModule

Да действительно, список комплектов доступен только при получении списка пользовательских отчетов.  Разбираемся.