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

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
 
(не показаны 17 промежуточных версий 1 участника)
Строка 24: Строка 24:
 
);
 
);
 
</syntaxhighlight>
 
</syntaxhighlight>
Создадим домен: 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
 +
 
 +
http://gsbelarus.com/gs/images/gs/2021/multitude/f_1.png
  
  
В таблицу позиции документа добавляем поле USR$GOODVIEWFORMKEY, которое будет использовать ранее созданный домен USR$DGOODVIEWFORM
 
  
 
Переподключаемся к базе, чтобы изменения вступили в силу.
 
Переподключаемся к базе, чтобы изменения вступили в силу.
  
Переходим в настройки грида документа.
 
  
В редактор коллекции TgsIBColumnEditors добавляем запись, где:
 
  
'''DisplayField''' - '''USR$GOODVIEWFORMKEY''' добавленное нами поле
+
'''Переходим в настройки грида документа.'''
  
'''EditorStyle''' - '''cesSetGrid'''  вариант отображения
+
http://gsbelarus.com/gs/images/gs/2021/multitude/m1.png
 +
 
 +
 
 +
В редактор коллекции TgsIBColumnEditors добавляем запись,
 +
 
 +
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:'''
 +
 
 +
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''' 
 +
|
 +
|}
  
Заполняем свойства Lookup:
 
  
Database - ibdbGAdmin
 
LookupTable - USR$GOODVIEWFORM таблицу-справочник
 
gdClassName - TgdcAttrUserDefined подставится автоматически, когда укажем таблицу-справочник USR$GOODVIEWFORM
 
LookupKeyField - ID уникальный ключ из таблицы USR$GOODVIEWFORM
 
Transaction - ibtrCommon
 
  
 
Для заполнения свойств LookupSet необходимо знать кросс-таблицу созданную доменом (множества).
 
Для заполнения свойств LookupSet необходимо знать кросс-таблицу созданную доменом (множества).
Строка 64: Строка 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

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

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