Re: Переходна новый разработчикотчетов

Виктор Бебякин пишет:

Попробуйте предыдущую версию LibreOffice, возможно в последней версии ошибки

Была версия 5.4.2.2 переустановили  - теперь 5.3.3.2 - ничего не изменилось, ошибка та же

3:18:49 (Info): ------- Запускаем отчет на выполнение -------
13:18:49 (Info): Идентификатор отчета: 296
13:18:49 (Info): Файл данных отчета: C:\temp\714_9_ReportDB.mdb
13:18:49 (Info): Вызвал отчет: Администратор
13:18:49 (Info): Набор данных "Технологические документы (НД)(Calc)" (Документы в Open Office Calc (данные в БД)). Бланк "МК 3.1404-86 ф1"
13:18:54 (Info): Формирование отчета в "LibreOffice Calc 5.3.3.2"
13:18:56 (Info): Время формирования: 0:00:02
13:18:56 (Error): Формирование отчета [Exception(EOleError)->Variant does not reference an automation object
13:18:59 (Info): ------- Формирование отчета закончено -------

Re: Переходна новый разработчикотчетов

И еще по Libre. В Access выгружаются какие-то таблицы, которые отсутствуют в шаблоне: RptSheet1, RptSheet3, RptSheet4, RptSheet5.
В результате открывается лист Libre Office - на странице ComplSheet отсутствует именованная область  ComplSheet !RGN_Data, путь к базе отсутствует тоже. Данные в Access выгрузились, предварительная процедура отработала.

Какая версия Libre Office и Open Office у вас опробована и признана дееспособной?

Re: Переходна новый разработчикотчетов

Какая версия Libre Office и Open Office у вас опробована и признана дееспособной?

http://www.technologics.ru/support/requirements.html, хотя там для 7.0, у вас в дистрибутиве последние требования лежат.

Re: Переходна новый разработчикотчетов

Спасибо
Как можно подключиться к текущей базе Access как к внешней, делали так 

FullPathMDB = ActiveWorkbook.Worksheets("ComplSheet").Range("RGN_Data").Value
DatConct.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FullPathMDB

Re: Переходна новый разработчикотчетов

Вот это и не понятно. Вы все время пишет о каких то подготовительных процедурах, а в новом репортере их нет, что у вас работает при этом непонятно, но может это и дает задержку? А на OpenOffice вы это пронести не можете, вот он и работает у вас быстрее.

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

Re: Переходна новый разработчикотчетов

ок Нужно например сохранить результаты разузлования какого-либо узла, где это лучше сделать?

Re: Переходна новый разработчикотчетов

у вас помнится какой то собственный алгоритм разузлования, тогда здесь лучше всегоhttps://forum.technologics.ru/post13180.html#p13180 (TCS_RptBegin). Если вы делаете это в базе данных отчета, то используйте методы типа https://forum.technologics.ru/post13168.html#p13168

Re: Переходна новый разработчикотчетов

Спасибо. Мало примеров отчетов в demo базе, так меньше пришлось бы к вам обращаться.
Что с этим предложением?

VAL пишет:

Давайте попробуем. Есть какой-нибудь отчет по расчету, напрмер, материалов на изделие в MS Office на старом и новом репортере, я его в нашу базу добавлю и попробую и в новом репортере если можно с простенькой входной формой для ввода параметров (н-р цех), где она должна вызываться.

Re: Переходна новый разработчикотчетов

В модуле итоговая спецификация есть отчет - Ведомость материалов ГОСТ 2.106-96. Давайте на нем.
В старом репортере аналогичный должен был быть. Мы эти отчеты и конвертировали в новый, большой переработки пока не делали правда,  но они должны быть рабочие.

Re: Переходна новый разработчикотчетов

1.Все стандартные ведомости (на технологии и составе) вы получаете через Итоговую спецификацию? Если да,то организационно кто ее перестраивает?  И на какие позиции (изделия, узлы, сборки) -  хотелось бы знать как задумывалось.

2. В этих ведомостях (Ведомость материалов ГОСТ 2.106-96) не используются формы для предварительного ввода данных, если можно пример для этого.

3.Надо после какого - либо анализа в TCSRpt_Begin() прекратить процедуру выполнения отчета - как это сделать?

Re: Переходна новый разработчикотчетов

1.Все стандартные ведомости (на технологии и составе) вы получаете через Итоговую спецификацию?

Ну это вроде самое логичное место у нас. Там все на экране, по всему изделию данные можно получить. Но естественно можно получить и из спецификации при желании (но тогда уж лучше только по непосредственной входимости).

Если да,то организационно кто ее перестраивает?

Ну это уже от ваших процессов зависит, и что вы внедряли. Кто то ее вообще не использует. Спецификации, техпроцессы обычно управляются Извещением или Протоколом Электронного согласования (поставляется в отдельном расширении). Можно сделать аналогично и с итоговой конечно (но это промежуточное звено для работы и обычно так не делается). В дистрибутиве есть расширение Анализ готовности к производству и Расчет плановой себестоимости (они немного похожи, название не смотрите) - они как работают по итоговой, и соответствующие службы могут ей управлять.
С этого же модуля иногда начинается подготовка заказа к производству, планирование закупок и замен (тут пока стандартных расширений нет, только внедрения).

И на какие позиции (изделия, узлы, сборки) -  хотелось бы знать как задумывалось.

Ну это же настраивается обычно. Там вроде даже параметр у бланка есть. Ну а так то отчетные формы вы же хоть полностью переделать.

В этих ведомостях (Ведомость материалов ГОСТ 2.106-96) не используются формы для предварительного ввода данных, если можно пример для этого

Вот наш пример в поставке по возможному сохранению отчета в TechnologiCS https://help.technologics.ru/7.1/TCSHelp/_737.htm, один из вариантов это использование нашего АПИ.

Выбор цеха в отчете проще всего сделать так например

Function GetCehaID
  GetCehaID = TCSRpt.RptFunc.UserValue( "CEHA_ID" )
  if GetCehaID="" Then
    If TCSApp.PlantDepartments.ShowModal( "Выберите цех" )>0 Then
      GetCehaID = TCSApp.PlantDepartments.p_ID.AsInteger
      TCSRpt.RptFunc.UserValue( "CEHA_ID" ) = CStr(GetCehaID)
    End If
  End If
End Function

Надо после какого - либо анализа в TCSRpt_Begin() прекратить процедуру выполнения отчета - как это сделать?

В 7.1 этого к сожалению нет. Но мы там вам обещали дать на пробу бета версию, там такая функция уже присутствует.

Re: Переходна новый разработчикотчетов

1.Все стандартные ведомости (на технологии и составе) вы получаете через Итоговую спецификацию?

Если да,то организационно кто ее перестраивает?

Ну да, в соответствии с ГОСТ 2.102 конструктор выпускает более 30 видов как бумажных так и электронных документов, а существенную часть из них (например такие как "Электронная структура изделия", "Ведомость спецификаций" и т.д.) можно получить только разузловав изделие и получив полную конструкторскую входимость/применяемость...
А поскольку состав изделия все-таки ведет конструктор, то логично, чтобы он и вел итоговую спецификацию.
Хотя, конечно, тут могут быть задействованы и другие службы. Например без итоговой спецификации невозможно получить ведомость применяемости (можно, но очень трудно) а она, в свою очередь на большинстве предприятий является основным отправным документом для служб, занимающихся планированием производства...

Re: Переходна новый разработчикотчетов

Спасибо всем за ответы.
Про выбор цеха просто для примера написала

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

Выбор цеха в отчете проще всего сделать так например

А так нужен пример с формой для ввода различных предварительных параметров для очета, вызов этой формы и т.д. Где и как это делается в 7?

Re: Переходна новый разработчикотчетов

А так нужен пример с формой для ввода различных предварительных параметров для очета, вызов этой формы и т.д. Где и как это делается в 7?

До выполнения, во время выполнения, перед выполнением?

Re: Переходна новый разработчикотчетов

1. До выполнения и перед выполнением - в чем разница? В 4 вызывала форму в Implement в различных меcтах тела Implement.

2. Дополнительный источник данных типа "select p0, p1 ...... from ...where p3 = " & строковая переменная с какими то значениями &  " and...
надо вызвать в функции. Вопрос - как передать "строковая переменная с какими то значениями" , которое определяется в функции и в ней же обрабатывается результат этого источника данных.

Re: Переходна новый разработчикотчетов

1. До выполнения и перед выполнением - в чем разница?

До выполнения - это после того, как пользователь выбрал бланк или комплект вы можете написать код, который выполнит доп. проверки - например что выделены записи, что наложен фильтр, что стоит парвильный цех и тому подобное (все что угодно). Это будет обработчик выгрузки данных https://help.technologics.ru/7.1/TCSHelp/_705.htm

Пример  из нашего отчета

Sub CheckDocument( TCSActiveModule, TCSExecutionParams )
  'Dim TCSExecutionParams as IExecutionParams
  if TCSActiveModule.SelectedRowsCount<>1 then
    TCSExecutionParams.ReturnCode = -1
    TCSExecutionParams.ReturnMessage = "Выделите один документ извещение вида <" & ALLOWED_REPORT_DOC_TYPES & "!"
    Exit Sub
  End If
  if Not Is_Value_InArray( TCSActiveModule.p_TYPE_NOTE.DisplayText, ALLOWED_REPORT_DOC_TYPES ) Then
    TCSExecutionParams.ReturnCode = -1
    TCSExecutionParams.ReturnMessage = "Выбранный вид документа не подходит для данного отчета!"
    Exit Sub
  End If
  TCSExecutionParams.ReturnCode = 0
  TCSExecutionParams.ReturnMessage = ""
End Sub

перед выполнением - это когда отчет запустился, и код располагается в TCSRpt_Begin (это аналог Implement будет).

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

Можно создать параметр и подставить его значение https://help.technologics.ru/7.1/TCSHelp/_713.htm
Можно создать дополнительный источник данных прямо в коде TCSRpt.RptFunc.AddRptRecordSet, можно в именованном объекте вернуть имя дополнительного источника данных https://help.technologics.ru/7.1/TCSHelp/_724.htm

Re: Переходна новый разработчикотчетов

Спасибо за ответы. И все таки

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

А так нужен пример с формой для ввода различных предварительных параметров для очета, вызов этой формы и т.д. Где и как это делается в 7?

Re: Переходна новый разработчикотчетов

Делаете форму https://help.technologics.ru/7.1/TCSHelp/_771.htm, пишите ее код, делаете вызов https://help.technologics.ru/7.1/TCSAPI … orm_13.htm.

Ну а вставлять можно в любое место.

Вот пример формочки https://forum.technologics.ru/topic2095.html

Re: Переходна новый разработчикотчетов

Спасибо

1.Вот какой еще вопрос.  PrepareReport - это стандартная процедура? Если да да то в какой момент работает?

2. Как перепланировать вот такую ситуацию; 1 общий шаблон отчетов (в 4.7.1) - на нем очень много бланков(200) - каждый с Implement-ом
TCSRpt_Begin() - аналог implement - он один на шаблон?и будет работать для каждого бланка? А мне надо чтобы для каждого бланка был свой TCSRpt_Begin()  т.к. шаблон общий а дополнительные расчеты разные и достаточно громоздкие - как тут лучше?

Re: Переходна новый разработчикотчетов

1.Вот какой еще вопрос.  PrepareReport - это стандартная процедура? Если да да то в какой момент работает?

Это что такое и откуда?

2. Как перепланировать вот такую ситуацию; 1 общий шаблон отчетов (в 4.7.1) - на нем очень много бланков(200) - каждый с

https://help.technologics.ru/7.1/TCSHelp/_716.htm Параметр бланка Выполнить, или в коде https://help.technologics.ru/7.1/TCSAPI … ame_13.htm

Re: Переходна новый разработчикотчетов

Создалав скриптах предложенную процедуру

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

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

' проверка на выделение строки
Sub CheckPoz( TCSActiveModule, TCSExecutionParams )
   if TCSActiveModule.SelectedRowsCount<>1 then
    TCSExecutionParams.ReturnCode = -1
    TCSExecutionParams.ReturnMessage = "Выделите одну позицию"

    Exit Sub
    end if

end sub

Прописываю ее в строке Обработчика выгрузки данных my_lib.CheckPoz( TCSActiveModule, TCSExecutionParams ) - соовщение макрос не найден - что не так?.

Re: Переходна новый разработчикотчетов

Извиняюсь. :) Разобралась. Все заработало.

Re: Переходна новый разработчикотчетов

При формировании отчета что раньше отрабатывает TCSRpt_Beging() или функция прописанная в параметре бланка отчета "Выполнить"?

Re: Переходна новый разработчикотчетов

TCSRpt_Begin()

Re: Переходна новый разработчикотчетов

Спасибо.
В параметре отчета "Выполнить" поместила все что для данного бланка индивидуально, в том числе вызов формы с вводом параметров, а значение функции должно принять значение TRUE. Как передать значение параметра из ф-ии параметра отчета "Выполнить" в источник данных?