русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Работа с запросами и создание отчетов

1. Таблица

Для создания печатных форм и для ввода табличных данных используется объект «Таблица». Таблицы могут располагаться в разделе «Общие таблицы» и в формах визуальных объектов системы. Форма может иметь одну таблицу для ввода и много таблиц для вывода.

1.1. Таблица для ввода

Таблица для ввода может быть только в отчетах и обработках. Чтобы задать имя таблицы для ввода нужно войти в окно «Свойства формы», и установить переключатель «Использовать таблицу» в положение «Для ввода данных». В этом случае при открытии формы отчета становится видна таблица, в которую можно ввести данные. Обращаться к ячейкам таблицы можно по именам, которые задаются в конфигураторе.

1.2. Таблица для вывода

Таблица для вывода фактически является шаблоном для вывода данных. В свойствах каждая ячейки таблицы можно задать тип ячейки: «Текст», «Выражение», «Шаблон» и «Фиксированный шаблон». «Текст» печатается так, как он задан в конфигураторе. «Выражение» вычисляется и в ячейку записывается результат. «Шаблон» – это текст, в котором может присутствовать выражение, которое задается в квадратных скобках. Пример шаблона: «Сумма равна [ПечСумма]».

Вывод данных производится по секциям. Секции бывают горизонтальные и вертикальные (см. рисунок). 

Пример.

Таб=СоздатьОбъект(«Таблица»);    // Создаем объект

Таб.ИсходнаяТаблица(«ТОРГ-12»);  // Задаем конкретную таблицу

Таб.ВывестиСекцию(«Шапка»); // Выводим горизонтальную секцию

Док.ВыбратьСтроки();

Пока Док.ПолучитьСтроку()=1 Цикл

Таб.ВывестиСекцию(«Строка|БезНГСМиНП»);   //Выводим ячейки на //пересечении секций «Строка» и «БезНГСМиНП»
Если ПечататьНП=1 Тогда
Таб.ПрисоединитьСекцию(«Строка|НГСМиНП»); //Присоединяем //к текущей секции ячейки на пересечении секций «Строка» и //«НГСМиНП»
КонецЕсли;
КонецЦикла;

Таб.ВывестиСекцию(«Подвал»);

Таб.Показать(); // Выводим таблицу на экран

 

2. Запросы

Выборку сводных данных можно осуществлять «вручную». Для этого мы делаем выборку с помощью функции «ВыбратьДокументы()», а затем заполняем объект типа «ТаблицаЗначений» нужными значениями и сворачиваем таблицу значений с помощью функции «Свернуть()». Однако более быстро как на стадии разработки, так и на стадии выполнения, это позволяет сделать механизм запросов.

2.1. Создание запроса

Запрос создается функцией «СоздатьОбъект(«Запрос»)». Для выполнения запроса используется функция «Выполнить(<ТекстЗапроса>)», которая возвращает 1, если запрос выполнился. <ТекстЗапроса> – это строковое выражение на “языке запросов”.

Пример:

НашЗапрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|СКЛАД = Документ.РасходнаяНакладная.Склад;
|ТОВАР = Документ.РасходнаяНакладная.Товар;
|КОЛИЧЕСТВО = Документ.РасходнаяНакладная.Количество;
|Группировка ТОВАР Упорядочить По ТОВАР.Код;
|Группировка СКЛАД Упорядочить По СКЛАД.Код;
|Функция КОЛ = Сумма(КОЛИЧЕСТВО);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если НашЗапрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

Структура временного набора данных, созданная запросом "НашЗапрос" после его выполнения, представлена на следующем рисунке:

Товар

Склад

Кол.

Итог общий

X

X

62

Итог по товару Стол

Стол

X

35

Строка по товару Стол на складе Первый

Стол

Первый

10

Строка по товару Стол на складе Второй

Стол

Второй

20

Строка по товару Стол на складе Третий

Стол

Третий

5

Итог по товару Стул

Стул

X

9

Строка по товару Стул на складе Второй

Стул

Второй

7

Строка по товару Стул на складе Третий

Стул

Третий

2

Итог по товару Шкаф

Шкаф

X

18

Строка по товару Шкаф на складе Первый

Шкаф

Первый

8

Строка по товару Шкаф на складе Третий

Шкаф

Третий

10

После выполнения запроса в программе можно использовать полученный временный набор данных. Изначально объект "НашЗапрос" спозиционирован на первой записи временного набора данных, где содержится общий итог по запросу. Поэтому общие итоги по запросу можно использовать сразу же после выполнения запроса.

Далее, допустим, в цикле мы проходим только по самой внешней группировке запроса: "Товар". В теле этого цикла объект "НашЗапрос" позиционируется во временном наборе данных на записи, содержащие итоги по каждому конкретному товару, поэтому в теле этого цикла мы можем использовать итоги по товарам.

После завершения цикла по самой внешней группировке, объект "НашЗапрос" снова позиционируется на первой записи временного набора данных, где содержится общий итог по запросу. Поэтому, общие итоги по запросу можно использовать в двух местах: до и после цикла по самой внешней группировке запроса.

//Итог общий
Пока НашЗапрос.Группировка("Товар") = 1 Цикл
//Итог по товару
КонецЦикла;
//Итог общий

 

2.2. Обработка результатов запроса

Для обработки результатов запроса обычно используется следующая последовательность команд:

Запрос=СоздатьОбъект(«Запрос»);

ТекстЗапроса = «…»;     // Создаем текст запроса на «языке запросов»

Если Запрос.Выполнить(ТекстЗапроса)<>1 Тогда
Возврат;
КонецЕсли;

Пока Запрос.Группировка(1)=1 Цикл

     // Вывод результатов по первой группировке

Пока Запрос.Группировка(2)=1 Цикл

     // Вывод результатов по второй группировке


КонецЦикла;

КонецЦикла;

// Вывод результатов по всем группировкам («Итого»)

 

2.3. Использование конструктора запросов

Запроса можно создать с помощью конструктора запросов. С его помощью можно в диалоговых формах задать параметры запроса и конструктор сам сгенерирует процедуру и таблицу для печати результатов отчета.

Просмотров: 18897

Вернуться воглавление


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.