Реализация печати договоров из реестра.

Доброго времени суток, коллеги.

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

В код страницы добавил:

/**
 * Печать договора
 */
printContract: function() {
 ...
},
/**
 * Возвращает коллекцию действий карточки.
 * @protected
 * @overridden
 * @return {Terrasoft.BaseViewModelCollection} Возвращает коллекцию действий карточки
 */
getActions: function() {
  var actionMenuItems = this.callParent(arguments);
  actionMenuItems.addItem(this.getActionsMenuItem({
    Type: "Terrasoft.MenuSeparator",
    Caption: ""
  }));
  actionMenuItems.addItem(this.getActionsMenuItem({
    "Caption":  {bindTo: "Resources.Strings.PrintActionCaption"},
    "Tag": printContract,
    "Enabled": {"bindTo": "canEntityBeOperated"}
  }));
  return actionMenuItems;
}

И есть такая штука Terrasoft.configuration.mixins.PrintReportUtilities, как ее прилепить к распечатке соответствующего документа?

Нравится

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

Евгений, есть вопрос, чем Вас не устраивает реализация ПФ WORD в системе?
Воспользуйтесь готовым решением:

Илья, когда настраиваешь Печатную Форму, на возможность печати из рееста, то при выбранном документе и нажатии на появившуюся кнопку "Печать" он выводит все 4 типа документа, а не конкретно нужный тип. Мало того, что в задаче стоит привязка печати именно к списку "Действие".

Евгений, для реализации данной задачи, Вам необходимо видимость определенной печатной формы привязать к Id типа документа. Id текущего документа хранится в аттрибуте "ActiveRow" (this.get("ActiveRow")). Далее строите запрос к бд используя entitySchmaQuery. Id типа документа хранится в колонке "TypeId" в таблице документов. И затем на основании типа документа делаете нужную печатную форму активной или видимой.

Илья, спасибо. Но я сделал несколько по другому.
У меня эти шаблоны документов должны выбираться и по типу документа и по стране.
В общем, задачу решил путем создания промежуточного справочника.

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