Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EleWise.ELMA.API;
using EleWise.ELMA.Model.Common;
using EleWise.ELMA.Model.Entities;
using EleWise.ELMA.Model.Managers;
using EleWise.ELMA.Model.Types.Settings;
using EleWise.ELMA.Model.Entities.ProcessContext;
using Context = EleWise.ELMA.Model.Entities.ProcessContext.P_TemplateManagementProces;
namespace EleWise.ELMA.Model.Scripts
{
/// <summary>
/// Модуль сценариев процесса "Template Management Process"
/// </summary>
/// <example>
/// <![CDATA[
/// >>>>>>>>>>>>>>>ВАЖНАЯ ИНФОРМАЦИЯ!!!<<<<<<<<<<<<<<<
/// Данный редактор создан для работы с PublicAPI.
/// PublicAPI предназначен для разработки сценариев ELMA.
/// Например, с помощью PublicAPI можно добавить комментарий к документу:
/// //Загружаем документ
/// var doc = PublicAPI.Docflow.Document.Load(56);
/// //Добавляем комментарий
/// PublicAPI.Docflow.Document.AddComment(doc, "тут ваш комментарий");
///
/// Более подробно про PublicAPI вы можете узнать тут: http://www.elma-bpm.ru/kb/article-642ApiRoot.html
///
/// Если же вам нужна более серьёзная разработка, выходящая за рамки PublicAPI, используйте
/// сторонние редакторы кода, такие как SharpDevelop и VisualStudio.
/// Информацию по запуску кода в стороннем редакторе вы можете найти тут:
/// http://www.elma-bpm.ru/kb/article-837.html
/// ]]>
/// </example>
public partial class P_TemplateManagementProces_Scripts : EleWise.ELMA.Workflow.Scripts.ProcessScriptBase<Context>
{
const long XScale = 840;
const long YScale = 1188;
/// <summary>
/// getTemplate
/// </summary>
/// <param name="context">Контекст процесса</param>
public virtual void getTemplate (Context context)
{
if (context.Template == null)
{
return;
}
context.Template.Zones.Clear();
var zoneList = context.TemplateZonesText.Split(new char[] {';'});
foreach(var zoneText in zoneList)
{
if (zoneText.Contains("|"))
{
var args = zoneText.Split(new char[] { '|' });
var zone = PublicAPI.Objects.UserObjects.UserOCRTemplate.Zones.Create();
zone.Name = args[1];
zone.X = OCR.OCRHelper.GetValueForTemplate(Convert.ToInt64(args[2]), XScale);
zone.Y = OCR.OCRHelper.GetValueForTemplate(Convert.ToInt64(args[3]), YScale);
zone.Width = OCR.OCRHelper.GetValueForTemplate(Convert.ToInt64(args[4]), XScale);
zone.Height = OCR.OCRHelper.GetValueForTemplate(Convert.ToInt64(args[5]), YScale);
context.Template.Zones.Add(zone);
}
}
}
}
}