Показать сообщение отдельно
Старый 20.08.2008, 17:59   #23  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Можно я тоже со своим примером?
"Заслушав показания свидетелей и проведя другие следственные мероприятия", я понял так:

1. есть таблица InventTable (справочник номенклатуры), в которой и будут искаться записи

2. в этой таблице есть поля:
- ItemType - на енуме ItemType (со значениям: ItemType::Item (0), ItemType::BOM (1), ItemType::Service (2) и т.д.)
- ItemGroupId - со значениями из справочника ном. групп (из таблицы InventItemGroup) - на EDT ItemGroupId

3. для этих двух полей и построены несвязанные контролы ctrlItemType и ctrlItemGroupId - для выбора конкретных значений-фильтров для последующей выборки записей из таблицы InventTable

4. после выбора конкретного значения (например, ItemType::Item) в первом контроле (ctrlItemType) значения для выпадающего списка во втором (ctrlItemGroupId) могут быть представлены запросом:
X++:
select ItemGroupId from InventTable group by ItemGroupId
where InventTable.ItemType == < 1- >
5. после выбора конкретного значения во втором контроле (ctrlItemGroupId) из таблицы InventTable будут выбраны (и отображены в гриде на форме) записи, соответствующие такому запросу:
X++:
select * from InventTable 
where InventTable.ItemType == < 1- > 
&& InventTable.ItemGroupId == < 2- >
Правильно?

Цитата:
Сообщение от Shakr Посмотреть сообщение
таблица InventItemGroup расширена полем KV_itemType, которое определяет к какой области относится группа номенклатура
а у нас такое поле прямо в InventTable есть (поэтому я выбирал в первом селекте из InventTable, а не из InventItemGroup, в котором у нас, кстати, оно тоже есть )

Ну, уффф... вроде, разобрались...