|
Вывести итоги из табличной части печатной формы | ☑ | ||
---|---|---|---|---|
0
Mtrlcnlk
25.05.20
✎
16:10
|
Добрый день, делаю лабораторную работу. Документ "Экзамен" в табличной части ФИО студентов и их оценки. Оценки созданы с помощью перечисления (Отлично, Хорошо, Удоволетворительно и тд). В подвале печатной формы мне нужно вывести сколько студентов получили оценку Отлично, сколько хорошо и тд). Я нашел примерный вариант решения, но он не работает. Ругается на "ЭтотОбьект". Буду благодарный за любой совет!
ЗапросН = Новый Запрос; ЗапросН.УстановитьПараметр("Оценка1",Перечисления.Оценки.Неявка ); ЗапросН.УстановитьПараметр("Оценка2",Перечисления.Оценки.Недопуск ); ЗапросН.УстановитьПараметр("Ссылка",ЭтотОбъект.Ссылка); ТекстЗапросаН = "ВЫБРАТЬ ЭкзаменационнаяВедомостьТабличнаяЧасть1.Оценка |ИЗ Документ.ЭкзаменационнаяВедомость.ТабличнаяЧасть1 КАК ЭкзаменационнаяВедомостьТабличнаяЧасть1 |ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭкзаменационнаяВедомость КАК ЭкзаменационнаяВедомость1 |ПО ЭкзаменационнаяВедомостьТабличнаяЧасть1.Ссылка = ЭкзаменационнаяВедомость1.Ссылка |ГДЕ (ЭкзаменационнаяВедомостьТабличнаяЧасть1.Оценка = &Оценка1 |ИЛИ ЭкзаменационнаяВедомостьТабличнаяЧасть1.Оценка = &Оценка2) |И ЭкзаменационнаяВедомость1.Ссылка = &Ссылка" ; ЗапросН.Текст = ТекстЗапросаН; Область.Параметры.Неявка = ЗапросН.Выполнить().Выбрать().Количество(); //Подсчет оценок ТекстЗапроса = "ВЫБРАТЬ ЭкзаменационнаяВедомостьТабличнаяЧасть1.Оценка |ИЗ Документ.ЭкзаменационнаяВедомость.ТабличнаяЧасть1 КАК ЭкзаменационнаяВедомостьТабличнаяЧасть1 |ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭкзаменационнаяВедомость КАК ЭкзаменационнаяВедомость1 |ПО ЭкзаменационнаяВедомостьТабличнаяЧасть1.Ссылка = ЭкзаменационнаяВедомость1.Ссылка |ГДЕ ЭкзаменационнаяВедомость1.Ссылка = &Ссылка |И ЭкзаменационнаяВедомостьТабличнаяЧасть1.Оценка = &Оценка" ; //Подсчет 5(отл) Запрос5 = Новый Запрос; Запрос5.УстановитьПараметр("Оценка",Перечисления.Оценки.Отлично ); Запрос5.УстановитьПараметр("Ссылка",ЭтотОбъект.Ссылка); Запрос5.Текст = ТекстЗапроса; Область.Параметры.Отлично = Запрос5.Выполнить().Выбрать().Количество(); //Подсчет 4(хор) Запрос4 = Новый Запрос; Запрос4.УстановитьПараметр("Оценка",Перечисления.Оценки.Хорошо ); Запрос4.УстановитьПараметр("Ссылка",ЭтотОбъект.Ссылка); Запрос4.Текст = ТекстЗапроса; Область.Параметры.Хорошо = Запрос4.Выполнить().Выбрать().Количество(); //Подсчет 3(удов) Запрос3 = Новый Запрос; Запрос3.УстановитьПараметр("Оценка",Перечисления.Оценки.Удовлетворительно); Запрос3.УстановитьПараметр("Ссылка",ЭтотОбъект.Ссылка); Запрос3.Текст = ТекстЗапроса; Область.Параметры.Удовл = Запрос3.Выполнить().Выбрать().Количество(); //Подсчет 2(неуд) Запрос2 = Новый Запрос; Запрос2.УстановитьПараметр("Оценка",Перечисления.Оценки.Неудовлетворительно ); Запрос2.УстановитьПараметр("Ссылка",ЭтотОбъект.Ссылка); Запрос2.Текст = ТекстЗапроса; Область.Параметры.Неуд = Запрос2.Выполнить().Выбрать().Количество(); |
|||
1
lodger
25.05.20
✎
17:52
|
такое количество запросов к одной и той же ТЧ это явно неуд.
напиши один запрос, а подсчетами занимайся потом. Ругается на "ЭтотОбьект" - это смотря где разместить этот код. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |