|
|
|
| Здравствуйте! Помогите пожалуйста разобраться в построении отчета.
Есть таблица:
Филиал Статья Сумма
Стоматология Выручка 500
Стоматология Расход 400
На основе нее нужно построить отчет:
Филиал Выручка Расход
Стоматология 500 400
Как данные по выручке и расходы в отчете разместить по разным столбцам, если в таблице они находятся в одном? (В таблице сделать отдельно поле Выручка и Расход нельзя). | |
|
| |
|
|
|
| сделать отчет на основе перекрестного запроса | |
|
| |
|
|
|
| Спасибочки ;) очень помогли! И как сама не догадалась... Это ведь так легко оказалось. | |
|
| |
|
|
|
| это легко когда у вас постоянное количество полей в перекресном запросе
если за период не будет ни одной операции прихода или ни одной операции расхода (или вообще не будет операций) результат может быть всяким | |
|
| |
|
|
|
| Такого точно не будет.
Можно тогда попутный вопрос. Строю перекресный запрос на обычном запросе на выборку. Выборка происходит по полю Бизнес. Если я пишу в запросе на выборку
Бизнес = 1, то перекресный запрос работает, если же я пишу Бизнес=forms!frmOtch!Businesses, то при запуске перекресного запроса выдается ошибка "forms!frmOtch!Businesses не распознается ядром базы данных как допустимое имя поля или выражение". Как это можно исправить? | |
|
| |
|
|
|
| PARAMETERS forms!frmOtch!Businesses Long;
TRANSFORM ..............
вот так нужно - можно прав кнопка мыша в конструкторе выбрать меню Параметры и заполнить 2 поля появившейся формы - в SQL появится автоматом | |
|
| |
|
|
|
| Спасибочки, получилось и тем и тем способом =) Правда второй способ оказался попроще. | |
|
| |
|
|
|
| Запрос-источник отчета:
SELECT [Филиал], IIF([Статья]='Выручка', [Сумма], 0) As [Выручка], IIF([Статья]='Расход', [Сумма], 0) As [Расход] FROM [таблица];
|
Это если поле "Статья" текстовое. Если вариантов только 2, то лучше сделать его логическим. | |
|
| |
|
|
|
| В предложенном варианте получится вот так:
Филиал Выручка Расход
Стоматология 500 0
Стоматология 0 400
А мне нужно что бы строчка была одна. | |
|
| |
|
|
|
| Это в области данных, которую можно и скрыть. Если в отчете сделать группировку по "Филиал" и в заголовке/примечании группы положить итоговые поля с =Sum(Выручка) и =Sum(Расход), то получите то, что хотите.
Я с осторожностью отношусь к перекрестным запросам... | |
|
| |
|
|
|
| Мммм... Тоже хороший метод =) надо взять на заметку. | |
|
| |
|
|
|
| группировку можно сделать на уровне запроса - тогда в отчете мороки не будет | |
|
| |
|
|
|
|
| И можно задать еще один легкий вопрос. Как можно изменить название заголовка запроса програмно? И можно ли указать, чтобы он выводился по центру? | |
|
| |
|
|
|
| А что тпкое заголовок запроса? Может заголовок отчета?
1. на событие "открытие" (Open)
me.caption=". Свой заголовок" - это заголовок отчета
Чтобы сместить в центр надо ввести пробелы слева.
Если же имеется ввиду надпись в разделе заголовка отчета - то правьте в конструкторе как в ворде! | |
|
| |
|
|
|
| Нет запроса. Я просто решила новую тему не создавать, а здесь спросить.
При нажание на кнопку должен появляться запрос, а у него в заголовке "zptFil запрос на выборку" написано. Получается не очень крассиво. | |
|
| |
|
|
|
| На открытие:
Me.RecordSource = "название запроса"
А что тогда значит выводить по центру - кого?
Хотя нет. я не понял, наверное. Запрос как выдается - как таблица? | |
|
| |
|
|
|
| Если Me.RecordSource = "название запроса", то название меняет форма из которой этот запрос вызывался (при нажатии на кнопку).
Запрос выдается как таблица, да. | |
|
| |
|
|
|
| т.е. у вас табличная форма.
тогда просто me.caption="Краcивое название" | |
|
| |