Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Работа с отборами (число прочтений - 4495 )
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Работа с отборами
23. Января 2008 :: 06:47
Печать  
Запрос:
     SELECT Жур.IDDOC [Док $Документ]
     , Жур.IDDOCDEF Док_вид
     FROM _1SJOURN AS Жур (NOLOCK)
     CROSS JOIN _1SCRDOC AS Отбор (NOLOCK)
     WHERE
      Жур.IDDOCDEF=$ВидДокумента.ПриходныйОрдерТБ
      AND Отбор.ChildID = Жур.IDDoc
      AND Отбор.MDID = 0
      AND Отбор.ParentVal = :ВыбДок*";

Срабатывает при
Запр.УстановитьТекстовыйПараметр("ВыбДок",Док.ТекущийДокумент())

Можно ли использовать вместо последней строки
AND Отбор.ParentVal IN  (SELECT Val FROM #СписДок) ?

При Запр.УложитьСписокОбъектов(СписокСвязанных, "#СписДок") не срабатывает, но не ругается, значит неправильно укладываю объекты (УложитьСписокОбъектов13 так же не срабатывает), подскажите, как сделать отбор по списку документов?
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Работа с отборами
Ответ #1 - 23. Января 2008 :: 06:57
Печать  
Что ты пытаешся выбрать этим запросом?
  
Наверх
ICQ  
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: Работа с отборами
Ответ #2 - 23. Января 2008 :: 07:03
Печать  
Есть группа взаимосвязанных документов (введенных на основании друг друга), нужно проверить, есть ли у них в подчинениии приходный ордер, сейчас проверяю циклом, в каждом запросе один документ
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Работа с отборами
Ответ #3 - 23. Января 2008 :: 07:16
Печать  
А зачем CROSS JOIN?
  
Наверх
ICQ  
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: Работа с отборами
Ответ #4 - 23. Января 2008 :: 07:32
Печать  
Конструкция стандартная для отбора подчиненных документов, взята из документации, если знаешь как сделать лучше, поделись
  
Наверх
 
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: Работа с отборами
Ответ #5 - 23. Января 2008 :: 07:34
Печать  
Извиняюсь, в другом месте используют  INNER JoIN, можно и с ним
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Работа с отборами
Ответ #6 - 23. Января 2008 :: 07:46
Печать  
СписокСвязанных - это что?  Просто фильтр заданный пользователем?
Как проверяешь что они не помещаются во временную таблицу? Попробуй после того как уложил сделать Select из неё
  
Наверх
ICQ  
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: Работа с отборами
Ответ #7 - 23. Января 2008 :: 07:59
Печать  
В цикле поиска документов идет
СписокСвязанных.ДобавитьЗначение(Док.ТекущийДокумент());
  
Наверх
 
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: Работа с отборами
Ответ #8 - 23. Января 2008 :: 08:02
Печать  
Может ли влиять на работу, что в СписокСвязанных жокументы разного вида (хотя по отдельности с каждым запрос отрабатывает)?
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Работа с отборами
Ответ #9 - 23. Января 2008 :: 08:11
Печать  
Понятно в ParentVal хранится в длинном формате - 23 символа, уложить в список укладывает в 9 символов
  
Наверх
ICQ  
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: Работа с отборами
Ответ #10 - 23. Января 2008 :: 08:17
Печать  
Nick писал(а) 23. Января 2008 :: 08:11:
Понятно в ParentVal хранится в длинном формате - 23 символа, уложить в список укладывает в 9 символов

А практически, можно что-то сделать?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Работа с отборами
Ответ #11 - 23. Января 2008 :: 08:22
Печать  
УложитьСписокОбъектов13 +
Код
Выбрать все
AND Отбор.ParentVal IN  (SELECT 'O1' + Val FROM #СписДок)  


И связь по DATE_TIME_IDDOC = CHILD_DATE_TIME_IDDOC вместо IDDOC для пущего попадания в индекс.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: Работа с отборами
Ответ #12 - 23. Января 2008 :: 09:11
Печать  
berezdetsky писал(а) 23. Января 2008 :: 08:22:
УложитьСписокОбъектов13 +
Код
Выбрать все
AND Отбор.ParentVal IN  (SELECT 'O1' + Val FROM #СписДок)  


И связь по DATE_TIME_IDDOC = CHILD_DATE_TIME_IDDOC вместо IDDOC для пущего попадания в индекс.


Работает! Прошу объяснить, как из 'O1' + Val при  УложитьСписокОбъектов13 получилось нужное имя (чтобы на будущее уметь самому). За помощь - ОГРОМНОЕ СПАСИБО
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Работа с отборами
Ответ #13 - 23. Января 2008 :: 09:15
Печать  
Ну Q1  - это значит что это документ
а УложитьСписокОбъектов13 делает тоже самое что просто УложитьСписокОбъектов только в переди примписывает ещё вид документа
  
Наверх
ICQ  
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: Работа с отборами
Ответ #14 - 23. Января 2008 :: 09:22
Печать  
Nick писал(а) 23. Января 2008 :: 09:15:
Ну Q1  - это значит что это документ
а УложитьСписокОбъектов13 делает тоже самое что просто УложитьСписокОбъектов только в переди примписывает ещё вид документа


01+13 как вышли на 23?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать