Поле ссылка на множество

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
 
(не показаны 13 промежуточных версий 1 участника)
Строка 1: Строка 1:
 
Возникла необходимость создания поля, которое может содержать несколько элементов из одного простого справочника, т.е. множество.
 
Возникла необходимость создания поля, которое может содержать несколько элементов из одного простого справочника, т.е. множество.
 
Исходные данные.
 
  
 
Есть простой справочник:
 
Есть простой справочник:
Строка 28: Строка 26:
  
 
'''Создадим домен: USR$DGOODVIEWFORM'''  
 
'''Создадим домен: USR$DGOODVIEWFORM'''  
 +
 +
http://gsbelarus.com/gs/images/gs/2021/multitude/dn0.png
 +
 +
 +
http://gsbelarus.com/gs/images/gs/2021/multitude/dn1.png
 +
 +
  
  
 
В таблицу позиции документа '''добавляем поле USR$GOODVIEWFORMKEY''', которое будет использовать ранее созданный домен USR$DGOODVIEWFORM
 
В таблицу позиции документа '''добавляем поле USR$GOODVIEWFORMKEY''', которое будет использовать ранее созданный домен USR$DGOODVIEWFORM
 +
 +
http://gsbelarus.com/gs/images/gs/2021/multitude/f_1.png
 +
 +
  
 
Переподключаемся к базе, чтобы изменения вступили в силу.
 
Переподключаемся к базе, чтобы изменения вступили в силу.
Строка 38: Строка 47:
 
'''Переходим в настройки грида документа.'''
 
'''Переходим в настройки грида документа.'''
  
 +
http://gsbelarus.com/gs/images/gs/2021/multitude/m1.png
  
В редактор коллекции TgsIBColumnEditors добавляем запись, где:
 
  
'''DisplayField''' - USR$GOODVIEWFORMKEY добавленное нами поле
+
В редактор коллекции TgsIBColumnEditors добавляем запись,
  
'''EditorStyle''' - cesSetGrid  вариант отображения
+
http://gsbelarus.com/gs/images/gs/2021/multitude/m2.png
 +
 
 +
где:
 +
 
 +
http://gsbelarus.com/gs/images/gs/2021/multitude/e1.png
 +
 
 +
 
 +
{| border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;" width="180px"| Название
 +
!style="background:#ffdead;"| Поле/Параметр
 +
!style="background:#ffdead;"| Описание
 +
|- valign="top"
 +
| '''DisplayField'''
 +
| '''USR$GOODVIEWFORMKEY'''
 +
| добавленное нами поле
 +
|-
 +
| '''EditorStyle'''
 +
| '''cesSetGrid'''  
 +
| вариант отображения
 +
|}
  
  
  
 
'''Заполняем свойства Lookup:'''
 
'''Заполняем свойства Lookup:'''
 +
 +
http://gsbelarus.com/gs/images/gs/2021/multitude/3.png
 +
 +
 +
{| border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;" width="180px"| Название
 +
!style="background:#ffdead;"| Поле/Параметр
 +
!style="background:#ffdead;"| Описание
 +
|- valign="top"
 +
| '''Database'''
 +
| '''ibdbGAdmin'''
 +
| БД
 +
|-
 +
| '''LookupTable'''
 +
| '''USR$GOODVIEWFORM''' 
 +
| таблица-справочник
 +
|-
 +
| '''gdClassName'''
 +
| '''TgdcAttrUserDefined''' 
 +
|  подставится автоматически, когда укажем таблицу-справочник USR$GOODVIEWFORM
 +
|-
 +
| '''LookupKeyField'''
 +
| '''ID''' 
 +
| уникальный ключ из таблицы USR$GOODVIEWFORM
 +
|-
 +
| '''Transaction'''
 +
| '''ibtrCommon''' 
 +
|
 +
|}
  
  
'''Database''' - ibdbGAdmin
 
'''LookupTable''' - USR$GOODVIEWFORM таблицу-справочник
 
'''gdClassName''' - TgdcAttrUserDefined подставится автоматически, когда укажем таблицу-справочник USR$GOODVIEWFORM
 
'''LookupKeyField''' - ID уникальный ключ из таблицы USR$GOODVIEWFORM
 
'''Transaction''' - ibtrCommon
 
  
 
Для заполнения свойств LookupSet необходимо знать кросс-таблицу созданную доменом (множества).
 
Для заполнения свойств LookupSet необходимо знать кросс-таблицу созданную доменом (множества).
Строка 73: Строка 125:
 
USR$PD_BREADCONTOLLINEKEY - поле-связка кросс таблицы с позицией документа
 
USR$PD_BREADCONTOLLINEKEY - поле-связка кросс таблицы с позицией документа
  
Теперь заполняем свойства LookupSet:
 
  
'''CrossTable''' - USR$CROSS2076_1818884808 используемая кросс-таблица
 
'''CrossSourceField''' - USR$GOODVIEWFORMKEY - поле-связка кросс таблицы со справочником
 
'''CrossDestField''' - USR$PD_BREADCONTOLLINEKEY - поле-связка кросс таблицы с позицией документа
 
  
'''SourceTable''' - USR$GOODVIEWFORM - таблица-справочник
+
'''Теперь заполняем свойства LookupSet:'''
'''SourceParentField''' - USR$GOODVIEWFORMKEY 
+
'''SourceListField''' - USR$NAME - поле для отображения из таблицы-справочника
+
  
'''KeyField''' - ID
+
http://gsbelarus.com/gs/images/gs/2021/multitude/m5.png
'''SourceKeyField''' - ID
+
 
 +
 
 +
{| border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;" width="180px"| Название
 +
!style="background:#ffdead;"| Поле/Параметр
 +
!style="background:#ffdead;"| Описание
 +
|- valign="top"
 +
| '''CrossTable'''
 +
| '''USR$CROSS2076_1818884808'''
 +
| используемая кросс-таблица
 +
|-
 +
| '''CrossSourceField'''
 +
| '''USR$GOODVIEWFORMKEY''' 
 +
| поле-связка кросс таблицы со справочником
 +
|-
 +
| '''CrossDestField'''
 +
| '''USR$PD_BREADCONTOLLINEKEY''' 
 +
|  поле-связка кросс таблицы с позицией документа
 +
|-
 +
| '''SourceTable'''
 +
| '''USR$GOODVIEWFORM''' 
 +
| таблица-справочник
 +
|-
 +
| '''SourceParentField'''
 +
| '''USR$GOODVIEWFORMKEY''' 
 +
|
 +
|-
 +
| '''SourceListField'''
 +
| ''' USR$NAME''' 
 +
| поле для отображения из таблицы-справочника
 +
|-
 +
| '''KeyField'''
 +
| '''ID''' 
 +
|
 +
|-
 +
| '''SourceKeyField'''
 +
| '''ID''' 
 +
|
 +
|}
  
 
Сохраняем настройки. Теперь в поле позиции документа можно выбрать несколько вариантов из справочника.
 
Сохраняем настройки. Теперь в поле позиции документа можно выбрать несколько вариантов из справочника.
 +
 +
http://gsbelarus.com/gs/images/gs/2021/multitude/m_6.png
 +
 +
 +
[[Category: Документация]]

Текущая версия на 13:30, 20 июня 2022

Возникла необходимость создания поля, которое может содержать несколько элементов из одного простого справочника, т.е. множество.

Есть простой справочник:

CREATE TABLE USR$GOODVIEWFORM 
(
  ID	        DINTKEY NOT NULL,
  EDITIONDATE	DEDITIONDATE,
  USR$NAME	DTEXT60,
  PRIMARY       KEY (ID)
);

одна или несколько записей из которого должны отображаться в позиции пользовательского документа:

CREATE TABLE USR$PD_BREADCONTOLLINE 
(
  DOCUMENTKEY	DINTKEY NOT NULL,
  RESERVED	DINTEGER,
  MASTERKEY	DMASTERKEY,
  USR$GOODKEY	USR$GS_DGOOD,
  PRIMARY KEY   (DOCUMENTKEY)
);

Создадим домен: USR$DGOODVIEWFORM

dn0.png


dn1.png



В таблицу позиции документа добавляем поле USR$GOODVIEWFORMKEY, которое будет использовать ранее созданный домен USR$DGOODVIEWFORM

f_1.png


Переподключаемся к базе, чтобы изменения вступили в силу.


Переходим в настройки грида документа.

m1.png


В редактор коллекции TgsIBColumnEditors добавляем запись,

m2.png

где:

e1.png


Название Поле/Параметр Описание
DisplayField USR$GOODVIEWFORMKEY добавленное нами поле
EditorStyle cesSetGrid вариант отображения


Заполняем свойства Lookup:

3.png


Название Поле/Параметр Описание
Database ibdbGAdmin БД
LookupTable USR$GOODVIEWFORM таблица-справочник
gdClassName TgdcAttrUserDefined подставится автоматически, когда укажем таблицу-справочник USR$GOODVIEWFORM
LookupKeyField ID уникальный ключ из таблицы USR$GOODVIEWFORM
Transaction ibtrCommon


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

  SELECT 
    L.USR$NAME 
  FROM USR$CROSS2076_1818884808 C 
  JOIN USR$GOODVIEWFORM L ON C.USR$GOODVIEWFORMKEY = L.ID 
  WHERE C.USR$PD_BREADCONTOLLINEKEY = NEW.DOCUMENTKEY AND L.USR$NAME > ''

Вывод:

необходимая кросс-таблица USR$CROSS2076_1818884808 USR$GOODVIEWFORMKEY - поле-связка кросс таблицы со справочником USR$PD_BREADCONTOLLINEKEY - поле-связка кросс таблицы с позицией документа


Теперь заполняем свойства LookupSet:

m5.png


Название Поле/Параметр Описание
CrossTable USR$CROSS2076_1818884808 используемая кросс-таблица
CrossSourceField USR$GOODVIEWFORMKEY поле-связка кросс таблицы со справочником
CrossDestField USR$PD_BREADCONTOLLINEKEY поле-связка кросс таблицы с позицией документа
SourceTable USR$GOODVIEWFORM таблица-справочник
SourceParentField USR$GOODVIEWFORMKEY
SourceListField USR$NAME поле для отображения из таблицы-справочника
KeyField ID
SourceKeyField ID

Сохраняем настройки. Теперь в поле позиции документа можно выбрать несколько вариантов из справочника.

m_6.png

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты