Редактор шаблонов в Вертикаль 2013

Автор Roman_Shprenger, 22.08.13, 16:52:05

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

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

Вячеслав

Цитата: Льдинка от 25.12.13, 08:26:49
как настроить карту мк гост 3.1105-74 форма 2, чтобы в ней писались не только операции но и текст перехода?

Может быть я чего-то не знаю за технологию, прошу прощения, но вроде бы карты образца 1974 года давно отменили...

Roman_Shprenger

Добрый день.
В МК обозначения М, Т ставится только в для первого материала и инструмента в каждой операции. Но бывают ситуации, когда страница закончилась, а список, например, инструментов продолжается, то на новой странице необходимо снова поставить букву Т. Как это сделать?

Льдинка

Цитата: Вячеслав от 26.12.13, 12:44:33
Может быть я чего-то не знаю за технологию, прошу прощения, но вроде бы карты образца 1974 года давно отменили...
у нас свои шаблоны, очень похожие на карты по этому ГОСТу.

StarGate33

             Здравствуйте. Мне нужно сделать так, чтобы такой параметр, как "Процент контроля" выводился в соответсвующих картах шаблона (шаблон типа МК/КТК) напротив наименования перехода в листах контроля технологического процесса.
             В УТС в справочнике "Основные переходы" контрольные переходы присваиваюся классом public_step из модели ТП. В модели ТП в классе public_step создал простой атрибут proc_control "Процент контроля" тип данных String. В шаблоне типа КТК (листы контроля) добавляю в блоке step напротив функции showme строку подстановок с параметром public_step.proc_control. После того как добавил этот шаблон в карты для формирования ТП и после того как заполнил данный параметр в переходах к операци контроля, в листах отчета этот параметр не отображается. Что ещё сделать не знаю, вроде бы всё сделал правильно.

Вячеслав

Добрый день! Не совсем понятно, с какой версией ВЕРТИКАЛИ Вы работаете.
В версии 2013 вообще-то есть специальные классы для контрольных переходов - контролируемый параметр и процент контроля. Видны ли они Вам в конфигураторе системы ВЕРТИКАЛЬ?

tur

Цитата: StarGate33 от 28.01.14, 10:49:01
............ В шаблоне типа КТК (листы контроля) добавляю в блоке step напротив функции showme строку подстановок с параметром public_step.proc_control. После того как добавил этот шаблон в карты для формирования ТП и после того как заполнил данный параметр в переходах к операци контроля, в листах отчета этот параметр не отображается. Что ещё сделать не знаю, вроде бы всё сделал правильно.

1. Стандартный вопрос - на обоих листах шаблона атрибут добавили?
2. Во вторых смущает - public_step.proc_control.
3. Скрин в студию

StarGate33

Цитировать
Добрый день! Не совсем понятно, с какой версией ВЕРТИКАЛИ Вы работаете.

Я работаю с Вертикалью 3.0.

Цитировать
1. Стандартный вопрос - на обоих листах шаблона атрибут добавили?
2. Во вторых смущает - public_step.proc_control.
3. Скрин в студию

1. Уже всё добавил, причём на обоих листах. Просто забыл выйти из редактора шаблонов и снова зайти, так как перед этим отредактировал Модель ТП. (кстати этот постоянный перезаход в различные модули порой напрягает, разработчикам на заметку).
2. Вы правильно сомневаетесь, так как команда public_step.proc_control  не сработала, заполнения не происходило. Сработала команда concat<#13#10, public_step.proc_control, "%">.
3. Могу, конечно, предоставить, но виду того, что проблема уже решена, то в этом нет необходимости.

StarGate33

Доброго времени суток!
У меня опять возникла небольшая проблема с редактором шаблонов. В данный момент я настраиваю Вертикаль для написания технологических процессов нанесения гальванических и лакокрасочных покрытий.
Основная проблема в следующем: текст перехода той или иной операции покрытия очень большой (там приводится описание очень многих тонкостей плюс очень много комментариев). И на данный момент, в созданных мною шаблонах карт, в файлах отчета текст перехода не переносится на другие строки, а просто размещен в одной графе с номером перехода в одной строке, причем заполнено так, что остальная часть перехода находится внизу и её можно было бы просмотреть если бы была кнопка прокрутки. Я думаю, может в блоки подстановок для класса step  написать вместо функции showme системный аттрибут #formatedstring.
И еще, как можно в технологический процесс добавить примечание (приведите, пожалуйста, наиболее удачный способ реализации)?

tur

Поищите по функциям для showme в карте, там очень многие функции можно удалить

StarGate33

Цитировать
Поищите по функциям для showme в карте, там очень многие функции можно удалить
Прошу прощения, но я вас не смог правильно понять.
Проблему наслаивания текста перехода на инструменты я уже решил (шаблон был корявый, рамка блока подстановок не совпадала с размерами таблицы).
        Сейчас у меня другие проблемы:
1. Мне нужно, чтобы при формировании файлов отчета, применяемые вспомогательные материалы выводились в одну строку, а не каждый материал в новой строке;
2. Как сделать так, чтобы значение процента контроля на листах контроля выводилось не напротив наименования контрольного перехода, а напротив последней строки текста контрольного перехода, причем место вывода значения процента контроля располагалось бы на одной линии.

teplinskiy

Если не сильны в написании функций, то "формирователе" есть системные атрибуты, которые уже содержат в себе необходимый программный функционал.
Цитата: StarGate33
1. Мне нужно, чтобы при формировании файлов отчета, применяемые вспомогательные материалы выводились в одну строку, а не каждый материал в новой строке;
Помочь может системный атрибут: #gather<разделитель, уровень, дочерний_класс.атрибут>.
Он собирает через разделитель значения указанного атрибута подчиненных объектов у родителя и формирует единую строку.
Так например вид системного атрибута #gather<...>, для вывода материалов в одну строку, которые входят в состав объекта перехода будет следующий: #gather<"; ",1,materials.showme>
Остается только этот атрибут добавить в блок подстановок для фильтра переходов "step".
Вспомогательные материалы можно выделить в отдельный фильтр, создать его в конфигураторе. И этот фильтр потом и подставить за место фильтра "materials".

Цитата: StarGate33
2. Как сделать так, чтобы значение процента контроля на листах контроля выводилось не напротив наименования контрольного перехода, а напротив последней строки текста контрольного перехода, причем место вывода значения процента контроля располагалось бы на одной линии.
Помочь может системный атрибут: #concat<разделитель, атрибут№1, атрибут№2, ..., атрибут№N>.
Он склеивает через разделитель значения указанных атрибутов с учетом их порядка.
Для вывода значения атрибута в виде одной целой строки используйте флаг "Запретить перенос" в свойствах этого атрибута.
+ Благодарностей: 1

fatscrat

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

teplinskiy

Цитироватьможно ли сфомировать карту с несколькими первыми листами?
Можно, с помощью изменения функции для каждой страницы "Завершение":
function PageAfterFill(page)
  ' page - созданная страница
  ' -2 (выход) или номер следующей страницы (-1 - последняя)
  PageAfterFill = -1
end function

То есть при формировании отчета после того, как заполнится "Страница А", формирователь выполнит функцию "Завершение" для этой "Страницы А", получит значение "PageAfterFill" и по этому значению подставит следующую для заполнения "Страницу Б". Вот и передавайте в "PageAfterFill" номер нужной Вам страницы, как следующей "первой".
+ Благодарностей: 1

StarGate33

Цитировать
Помочь может системный атрибут: #gather<разделитель, уровень, дочерний_класс.атрибут>.
Он собирает через разделитель значения указанного атрибута подчиненных объектов у родителя и формирует единую строку.
Так например вид системного атрибута #gather<...>, для вывода материалов в одну строку, которые входят в состав объекта перехода будет следующий: #gather<"; ",1,materials.showme>
Остается только этот атрибут добавить в блок подстановок для фильтра переходов "step".
Вспомогательные материалы можно выделить в отдельный фильтр, создать его в конфигураторе. И этот фильтр потом и подставить за место фильтра "materials".
Спасибо огромное за совет, но он не сработал. Для начала, в технологических процессах на покрытия, которыми я сейчас занимаюсь, вспомогательные материалы вводятся после наименования операции и только потом идут переходы с полным описанием, как эти материалы использовать вместе с другими инструментами (в основном это измерительные - часы, секундомеры, перчатки, кисточки).
      Я пытался изменить текст функции BuilderFormatString под вывод материалов одну строку. Но по неизвестной мне причине данная функция, не смотря на то что всё написано правильно, постоянно промахивается и вместо материалов норовила склеить тексты переходов. При формировани отчета просто исчезали переходы, а материалы оставались каждый в новой строке. С помощью функции rptBuilder.vrReiseError я выяснил, что функция последовательно проходит через весь технологический процесс, но материалы не видит в упор, только оснастку воспринимает нормально.
    Если хотите могу привести текст функции BuilderFormatString,  которую я несколько изменил.

teplinskiy

Цитата: StarGate33
...вспомогательные материалы вводятся после наименования операции и только потом идут переходы с полным описанием.
Если у Вас объекты "Вспомогательных материалов" входят в объекты "Операций", то нужно атрибут #gather<...> добавить в блок подстановок для фильтра объектов "Операций" - "operations".

Атрибут #gather<...> работает для любых объектов без исключений, нужно только правильно подобрать класс/фильтр "родителя".

Цитата: StarGate33
Я пытался изменить текст функции BuilderFormatString под вывод материалов одну строку...
Не советую Вам проводить такие изменения в в глобальной функции BuilderFormatString.

Вот рабочая функция " FillAttr":
function FillAttr(start_x, start_y, clsAttr, obj)
  ' start_x,y - координата начала вставки, clsAttr - атрибут из блок подстановки, obj - объект технологии
  'заполним процедуроы по-умолчанию
  '  set FillAttr = rptBuilder.rDefaultHandlers.rFillAttr(start_x,start_y,clsAttr,obj)

  set Oper_Iter = obj.vrObjectsVector.vrCreateIterator("operations", obj, False)
  if Oper_Iter.vrFirst then
    set Oper_Obj = Oper_Iter.vrGetObject()
    set Mater_Iter = Oper_Obj.vrObjectsVector().vrCreateIterator("materials", Oper_Obj, True)
    do while Mater_Iter.vrNext
      set Mater_Obj = Mater_Iter.vrGetObject()
      FillAttr = FillAttr & Mater_Obj.ShowMe & "; "
      rptBuilder.rActiveBuild.rMarkAsPrinted Mater_Obj, false
      set Mater_Obj = Nothing
    loop
    set Mater_Iter = Nothing   
    set Oper_Obj = Nothing
  end if
  set Oper_Iter = Nothing

end function

Функция выводит в одну строку (через ";") все материалы, которые входят в операцию. Функцию нужно применить в блоке подстановок для фильтра "materials" для атрибута "showme".
+ Благодарностей: 1

StarGate33

Цитировать
Если у Вас объекты "Вспомогательных материалов" входят в объекты "Операций", то нужно атрибут #gather<...> добавить в блок подстановок для фильтра объектов "Операций" - "operations".

Атрибут #gather<...> работает для любых объектов без исключений, нужно только правильно подобрать класс/фильтр "родителя".
Спасибо за предложенный совет, но он не сработал. Наиболее удачно повела себя функция FillAttr, код которой вы привели и за это вам огромное спасибо. Единственное замечание по тексту кода функции: формально всё написано правильно кроме строки

FillAttr = FillAttr & Mater_Obj.ShowMe & "; "


Здесь вы допустили грубую ошибку. Объект Mater_Obj является объектом класса IVObject и данный класс в принципе не имеет метода Showme. Гораздо правильнее будет написать:

FillAttr = FillAttr & Mater_Obj.vrExecuteFunction("showme") & "; "


teplinskiy

ЦитироватьЗдесь вы допустили грубую ошибку
Так а что же взять с меня - "быдло-кодера".  ;)

ЦитироватьОбъект Mater_Obj является объектом класса IVObject и данный класс в принципе не имеет метода Showme
Написать:
FillAttr = FillAttr & Mater_Obj.vrExecuteFunction("showme") & "; "
будет правильнее, не спорю.
Но, к сожалению, так никто не писал начиная еще с первой версии ВЕРТИКАЛи.
Просто обращались как к одному из "свойств" - по имени, ведь объект класса IVObject это позволяет делать как для атрибутов, так и для функций.
Букв меньше, производительность труда выше  ;)

Малышев

#77
 Есть де-то инструкция как по бырому сделать шаблон ОК под себя а то ГОСТовские убогие ваще не в дугу.
На тубе них нет и гугл молчит на эту тему.
Табличка уже есть, но шаблон чета не работает. Вроде расширение *.vrp запихал в
комплект карт, но в предпросмотре карт он не отображается.
Там какие-то красные надписи по ходу должны быть а их нет.

Надо вот такую форму ОГТ-670 может у кого уже есть

Че за срам - файл *.vrp нельзя прицепить к посту пришлось жать.


tur

Цитата: Малышев от 04.04.14, 09:10:40
......................
Там какие-то красные надписи по ходу должны быть а их нет.
......................

Предложение: всё покрасить в красный цвет.

А справку почитать слабо?

Вячеслав

#79
Цитата: tur от 04.04.14, 14:07:50
Предложение: всё покрасить в красный цвет.

Я знал, что по поводу наклона линий в форме возражений не будет!!!

По поводу комплекта документа из архива - не впечатлило, 75% карты - пусто. Вывод: перевод бумаги.
К автору поста нет претензий - он выполнил свою работу, ему заказали документ такой формы - он его сделал.