Статьи > Программирование форм-вкладок с полями
Программирование форм-вкладок с полями
В данной статье мы изучим возможности FossLook по созданию форм-вкладок для "разгрузки" основной карточки документа.
Ознакомьтесь со статьей "Программирование в FossLook" для получения базовых знаний, необходимых
для понимания изложенного материала.
В данной статье мы продолжим работу над нашей библиотекой "Моя библиотека". В нашем распоряжении есть документ такого вида:
Предположим, что нам нужно взять поле "Важность документа" и перенести его на отдельную закладку
с именем "Важность".
Для реализации данной задачи нам необходимо создать на диске файл с именем "FormImportance.cs", который
будет содержать следующий код:
using System;
using System.Collections.Generic;
using System.Text;
using Foss.FossDoc.ObjectModel.DataRepresentation.Plugins.Forms;
using Foss.FossDoc.ObjectModel.DataRepresentation.Plugins;
using Foss.FossDoc.ObjectModel.DataRepresentation.View;
using Foss.FossDoc.ObjectModel.DataRepresentation.View.DocumentCard;
using Foss.FossDoc.ObjectModel.Data;
using DS;
namespace Foss.FossDoc.Plugins.DocumentLibrary._00000004ACC4D0E64E6E4BB3AB556A978E31326F
{
public class FormImportance : Foss.FossDoc.ObjectModel.DataRepresentation.View.DocumentCard.CardFormCustom
{
protected override TPropertyTag[] HideAndShowFileds
{
get
{
return new TPropertyTag[1] {
Foss.FossDoc.ApplicationServer.Converters.PropertyTag.FromString("0x80700F00")
};
}
}
}
}
Где "0x80700F00" это тэг поля "Важность документа". Если мы посмотрим на вкладку "Объект"
поля "Важность документа" с помощью системы администрирования, то это сочетание двух свойств:
"Идентификатор свойства" и "Тип свойства". Старшая часть это идентификатор, а младшая описывает тип поля.
Также нам необходимо создать на диске файл с именем "FormImportanceInfo.cs", который
будет содержать следующий код:
using System;
using System.Collections.Generic;
using System.Text;
using Foss.FossDoc.ObjectModel.DataRepresentation.Plugins.Forms;
using Foss.FossDoc.ObjectModel.DataRepresentation.Plugins;
using Foss.FossDoc.ObjectModel.DataRepresentation.View;
namespace Foss.FossDoc.Plugins.DocumentLibrary._00000004ACC4D0E64E6E4BB3AB556A978E31326F
{
public class FormImportanceInfo : IFormInfoOverride
{
public FormContext Context
{
get
{
return FormContext.Inplace;
}
}
public FormPriority Priority
{
get
{
return FormPriority.High;
}
}
public IForm CreateInstance()
{
return new FormImportance();
}
public IFormInfo Clone()
{
return null;
}
public System.Drawing.Image Icon
{
get
{
return null;
}
}
string IExtensionContextInfo.UniqueName
{
get
{
return typeof(FormImportance).FullName;
}
}
public string Name
{
get
{
return "Важность";
}
}
public string Description
{
get
{
return "";
}
}
public string[] CategoryNames
{
get
{
return new string[]
{
"Моя библиотека.Документ.x56757654"
};
}
}
public string[] GetCategoryAttributeNames(string categoryName)
{
return null;
}
public string[] OverridenFromsUniqueNames
{
get
{
return new[] { Foss.FossDoc.ObjectModel.DataRepresentation.View.DocumentCard.FormNames.DocumentCardInplaceForm };
}
}
}
}
Необходимо обратить внимание на область "CategoryNames", в кавычках необходимо указать уникальное имя
того типа документа, с которым вы в данный момент работаете. С помощью системы администрирования и закладки
"Объект" можно увидеть уникальное имя нужного вам типа документа.
Далее, файлы "FormImportance.cs" и "FormImportanceInfo.cs" необходимо добавить в
"Default form script" необходимого вам типа документа.
После всех проделанных нами действий, документ приобретает следующий вид: