В DocsVision имеются различные справочники. Например, справочник сотрудников, контрагентов и т.д. Также, есть универсальный справочник, в который можно добавлять свои секции и записи в них. Справочники служат для выбора отдельных записей из них и последующего использования в различных карточках.
Рассмотрим примеры работы со справочниками сотрудников, контрагентов и универсальным справочником.
Все необходимые идентификаторы предустановленных справочников и секций хранятся в DocsVision.BackOffice.CardLib.CardDefs.
Рассмотрим примеры работы со справочниками сотрудников, контрагентов и универсальным справочником.
Все необходимые идентификаторы предустановленных справочников и секций хранятся в DocsVision.BackOffice.CardLib.CardDefs.
// RefStaff // справочник сотрудников
// RefStaff.Employees // секция сотрудников
// RefStaff.Units // секция компаний
// RefPartners // справочник контрагентов
// RefPartners.Employees // секция сотрудников
// RefPartners.Companies // секция компаний
// описание аргументов есть в документации, они отличаются для разных справочников
// в аргументах может быть задана выбранная секция, выбранная запись, множественный или одиночный выбор и т.д.
object arguments = new object[]
{
Type.Missing,
Type.Missing,
Type.Missing,
true,
Type.Missing,
true
};
Object res;
// ref_guid должен содержать ид. справочника RefStaff.ID, RefPartners.ID и т.д.
var result = this.CardControl.CardHost.SelectFromCard(ref_guid, "Select ...", arguments, out res);
String str = "";
if (result != null)
{
foreach (Object item in (List<Object>)result)
{
// в зависимости от справочника будут возвращены соответствующие типы данных
str += item.ToString() + " : ";
//MessageBox.Show((String)item);
/*StaffEmployee se = (StaffEmployee)this.CardControl.ObjectContext.GetObject<StaffEmployee>(new Guid((String)item));
str += se.FullName;*/
/*StaffUnit su = (StaffUnit)this.CardControl.ObjectContext.GetObject<StaffUnit>(new Guid((String)item));
str += su.Name;*/
/*PartnersEmployee pe = (PartnersEmployee)this.CardControl.ObjectContext.GetObject<PartnersEmployee>(new Guid((String)item));
str += pe.FullName;*/
/*PartnersCompany pc = (PartnersCompany)this.CardControl.ObjectContext.GetObject<PartnersCompany>(new Guid((String)item));
str += pc.Name;*/
str += "\n";
}
}
MessageBox.Show(str);
Аналогично осуществляется выбор из универсального справочника.
// конструктор справочников
String REF_DIC = "{4538149D-1FC7-4D41-A104-890342C6B4F8}";
// секция строк
String REF_DIC_ROW = "{1B1A44FB-1FB1-4876-83AA-95AD38907E24}";
// строки секции
String REF_DIC_ROW_ITEM = "{72B372B4-A33C-40A4-830D-4DB1057B6D74}";
object arguments = new object[]
{
new Guid(REF_DIC_ROW),
new Guid(REF_DIC_ROW_ITEM),
false,
false,
false,
false
};
var result = this.CardControl.CardHost.SelectFromCard(new Guid(REF_DIC), "Выбор записи из справочника", arguments);
Guid guid = new Guid((String)result);
BaseUniversalItem x = (BaseUniversalItem)this.CardControl.ObjectContext.GetObject<BaseUniversalItem>(guid);
MessageBox.Show(x.GetType().FullName + " : " + x.Name);
Комментариев нет:
Отправить комментарий