Формирование Запросов
27.10.2004
11:33
#1
Если в окне задать список (перечисление), то как можно задать в запросе сортировку со значением выбранным в этом списке. Спасибо.
27.10.2004
11:56
#2
"Например нужно задать два способа граппировки
|Группировка ДатаПродажи; или |Группировка НомерТелефона;
и должен выполняться только один ( и он выбирается по списку в окне)..
Нужно сделать примерно так
Если список = телефон тогда |Группировка НомерТелефона;
иначе |Группировка ДатаПродажи;
Но если в запросе не обрабатывается!!!!!
Или |Группировка КАКАЯТОПЕРЕМ
где КАКАЯТОПЕРЕМ = ВыборПоСписку(НомерТелефона,ДатаПродажи)....
Помогите пожалуйста!!!!!
"
|Группировка ДатаПродажи; или |Группировка НомерТелефона;
и должен выполняться только один ( и он выбирается по списку в окне)..
Нужно сделать примерно так
Если список = телефон тогда |Группировка НомерТелефона;
иначе |Группировка ДатаПродажи;
Но если в запросе не обрабатывается!!!!!
Или |Группировка КАКАЯТОПЕРЕМ
где КАКАЯТОПЕРЕМ = ВыборПоСписку(НомерТелефона,ДатаПродажи)....
Помогите пожалуйста!!!!!
"
27.10.2004
13:13
#3
"На сколько я понял нужен запрос с группировкой, выбираемой в юзером.
Вот примерчик накатал.. должно быть понятно...
перем ДатаОтбора, номер, условие; // Это просто так. По хорошему они в форме стоят
номер = 10;
условие = 1;
ДатаОтбора = дата(01.05.2004);
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС()
|ОС = Документ.ВводВЭксплуатациюОС.ТекущийДокумент;"
;
Если условие = 1 Тогда
ТекстЗапроса = ТекстЗапроса + "
|Группировка ОС упорядочить по ОС.ДатаДок;
|Условие(ОС.ДатаДок > ДатаОтбора);";
иначе
ТекстЗапроса = ТекстЗапроса + "
|Группировка ОС упорядочить по ОС.НомерДок;
|Условие(ОС.НомерДок > номер);";
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "
|"//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Пока Запрос.Группировка(1) = 1 Цикл
.......................
КонецЦикла;
Вроде должно быть понятно. При условие = 1 выбирает по дате документа, иначе по номеру
"
Вот примерчик накатал.. должно быть понятно...
перем ДатаОтбора, номер, условие; // Это просто так. По хорошему они в форме стоят
номер = 10;
условие = 1;
ДатаОтбора = дата(01.05.2004);
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС()
|ОС = Документ.ВводВЭксплуатациюОС.ТекущийДокумент;"
;
Если условие = 1 Тогда
ТекстЗапроса = ТекстЗапроса + "
|Группировка ОС упорядочить по ОС.ДатаДок;
|Условие(ОС.ДатаДок > ДатаОтбора);";
иначе
ТекстЗапроса = ТекстЗапроса + "
|Группировка ОС упорядочить по ОС.НомерДок;
|Условие(ОС.НомерДок > номер);";
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "
|"//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Пока Запрос.Группировка(1) = 1 Цикл
.......................
КонецЦикла;
Вроде должно быть понятно. При условие = 1 выбирает по дате документа, иначе по номеру
"
27.10.2004
13:30
#4
"Да ! Я вот тут подумал... Всё равно документы упорядочиваются обычно пономеру, тогда может легче сделать так:
условие = "|условие(МойДок."
Если что_то_тама тогда
условие = условие + "НомерТелефона = номер)";
иначе
условие = условие + "ДатаДок = ДатаДокумента )";
КонецЕсли;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС()
|МойДок = Документ.МойКрутойДокумент.ТекущийДокумент;
|Группировка МойДок упорядочить по МойДок.НомерДок;" + условие + "
|"//}}ЗАПРОС
;
В общем текст запроса - это обычный текст, строй его как хочешь, главное правильно что бы получился... из разных кусков собирай и всё будет абгемахт... :)"
условие = "|условие(МойДок."
Если что_то_тама тогда
условие = условие + "НомерТелефона = номер)";
иначе
условие = условие + "ДатаДок = ДатаДокумента )";
КонецЕсли;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС()
|МойДок = Документ.МойКрутойДокумент.ТекущийДокумент;
|Группировка МойДок упорядочить по МойДок.НомерДок;" + условие + "
|"//}}ЗАПРОС
;
В общем текст запроса - это обычный текст, строй его как хочешь, главное правильно что бы получился... из разных кусков собирай и всё будет абгемахт... :)"
Читают тему
(гостей: 1)