Програмування форм-вкладок з полями
У даній статті ми вивчимо можливості 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"це тег поля" Важливість документа & quot;. Якщо ми подивимося на вкладку "Об'єкт"
поля "Важливість документа" за допомогою системи адміністрування, то це поєднання двох властивостей:
"Ідентифікатор властивості" і "Тип властивості". Старша частина це ідентифікатор, а молодша описує тип поля.
Також нам необхідно створити на диску файл з ім'ям "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[]
{
"Моя бібліотека.Документ.x62850399"
};
}
}
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" необхідного вам типу документа.
Після всіх виконаних нами дій, документ набуває наступний вигляд: