28.08.2003, 15:49 | #1 |
Участник
|
Как задать несколько складов в условии?
Для отчета делаю форму условий формирования.
Например для одного склада создаю new Dialog и вызываю метод AddField, таким образом я могу выбрать (задать) один склад. А как мне сразу же в одном условии задавать несколько складов, как это делается в стандартном окне параметров (перечисление через запятую)? |
|
28.08.2003, 20:17 | #2 |
Участник
|
Япона мать. Ну почему же вы опять программируете то?!!!
Извините. Можно вопрос? Чем вас не устраивает стандартная фича запроса по query? Почему вы решили диалог свой делать? Если даже вы решились на диалог, то почему вам не хватает стандартной кнопки выбрать? К чему это я. 1. Создайте query в отчете. 2. В datasource положите две таблицы InventTrans и InventDim 3. Задайте relation 3. Укажите поля для фильтрации в таблицах datasource'ов. 3.1. В том числе укажите поле InventLocationID в таблице InventDim ВСЕ. Стандартный фильтр работает. Наверняка, с гораздо большими возможностями, чем у вас сейчас напрограммировано. Зачем вам понадобилось программирование? Объясните, христа ради. |
|
29.08.2003, 10:34 | #3 |
Участник
|
Дело в том, что у меня по ходу дела необходимо использовать несколько select`ов.
И если уж использовать стандартное окно параметров, то как из него вытащить в какую-нибудьпеременную значение "для поля фильтрации", чтобы потом подставить в select? |
|
29.08.2003, 10:59 | #4 |
----------------
|
QueryRun vs select
Предлагаю попробовать использовать классы Query & QueryRun вместо select-ов, а для задания условий использовать queryRun.prompt()
|
|
29.08.2003, 14:29 | #5 |
Участник
|
Как я знаю класс Query используют для стандартного запроса, но если таблицу накак туда не подцепить, то приходится использовать select.
Поэтому мне и приходится по-другому задавать условия. Отсюда и интерес, - есть ли у класса Dialog метод, позволяющий задавать группу значений в условии? |
|
29.08.2003, 14:34 | #6 |
----------------
|
Цитата:
Как я знаю класс Query используют для стандартного запроса, но если таблицу накак туда не подцепить, то приходится использовать select
|
|
02.09.2003, 11:33 | #7 |
Участник
|
Цитата:
Изначально опубликовано Wamr
Поясни - что куда нельзя подцепить? InventTable, InventTrans, InventSum, InventTableModule, ... и нужны подобного вида условия select sum(Qty), sum(CostAmountPosted), sum(CostAmountAdjustment) from searchInventTrans group by ItemId where searchInventTrans.DatePhysical < dateStart && searchInventTrans.ItemId == inventTable.ItemId && (searchInventTrans.StatusIssue == StatusIssue::Sold || searchInventTrans.StatusIssue == StatusIssue:educted || searchInventTrans.StatusIssue == StatusIssue::FaAcquisition_RU || searchInventTrans.StatusReceipt == StatusReceipt::Purchased || searchInventTrans.StatusReceipt == StatusReceipt::Received || searchInventTrans.StatusReceipt == StatusReceipt::FaDisposalScrap_RU) join inventDim where inventDim.inventDimId == searchInventTrans.inventDimId && inventDim.InventLocationId like inventLocationId; и таких запросов нужно несколько с разными условиями кроме как при помощи select я не смог их реализовать ... Что скажете? |
|
02.09.2003, 13:23 | #8 |
Участник
|
Постараюсь конкретизировать вопрос
Как в Dialog задать несколько складов,
если заранее не известно их количество? |
|
02.09.2003, 14:15 | #9 |
Участник
|
Дело в том, что в selecte нельзя использовать перечислимые типы например:
in [a, b, ...] а в Query такую строку задать можно, Query сам потом создаст select через || в твоем случае можно сделать так: через кнопку выбрать задавать нужные склады в условии (диалоговая форма) либо сделать отчет через обычную форму, на которой либо задавать склады через stringedit (свойство ReplaceOnLookup = No, и перекрыть метод Lookup this.hasChanged(false)), либо задавать склады через ListBox чеками |
|