orefkov писал(а) 13. Декабря 2010 :: 21:37:Kondarat писал(а) 13. Декабря 2010 :: 15:30:Это если выбФирма, выбКлиент, выбПоставщик являются реквизитами документов, а у меня один или несколько реквизитов - Общие. В данном случае выбФирма.
Ну и прелестно!
Если отбор по Фирма включен, значит, поле вообще в журнале.
where Ж.Фирма = :выбФирма
Если отбора нет - зачит, поле есть в каждой шапке:
where coalesce(Д1.Фирма, Д2.Фирма, Д3.Фирма) = :выбФирма
В чем вопрос то?
Условия наложить?
Еще раз - структура основного запроса для SQLiteDataProvider'а по документам всегда одна - выборка из журнала (с ключом порядка по idx_date_time_iddoc) к которому лефтджойнятся шапки нужных доков, и накладывается ограничение по необходимым iddocdef или idjournal.
Ну и далее накладывай ограничения - что показывать, что нет.
Может я и не прав, но: если применить условие
where Ж.Фирма = :выбФирма
то, будут выбраны документы только выбФирмы из журнала.
Возможно я не достаточно точно сформулировал задачу, или все же чего-то не понял
Например пользователь работает с приходными накладными по фирме1, а с расходными по Фирме2. В случае фильтра по журналу
(IN (Фирма1, Фирма2)) он будет видеть документы обоих видов, а мне нужно, чтобы не видел. Или я не прав?