Список форумов КЛУБ FileMaker.RU КЛУБ FileMaker.RU

 
new forum: www.fmforum.ru
FileMaker DevCon Rus 2017.IV коенференция российских разработчиков на платформе FileMaker.
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Рапорт

 
Начать новую тему   Ответить на тему    Список форумов КЛУБ FileMaker.RU -> Практика FM
Предыдущая тема :: Следующая тема  
Автор Сообщение
Юрий



Зарегистрирован: 05.12.2003
Сообщения: 183
Откуда: СПб

СообщениеДобавлено: Пт Апр 30, 2004 12:09 pm    Заголовок сообщения: Рапорт Ответить с цитатой

Добрый день!
Заказчик попросил создать отчет следуещего вида:

Наименование Количество
------------------------------------
Покупатель 1:
Хлеб -1
Водка -2
Ириска -3
Покупок: 3
..............................................
Покупатель 2:
Хлеб -1
Ириска -2
Покупок: 2
------------------------------------
Всего продано:
Хлеб -2
Водка -2
Ириска -5

Проблема вывести такой итог.
Возможно ли такое в FM?
Буду рад любой подсказке.
_________________
Windows
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Alex_Z



Зарегистрирован: 17.11.2003
Сообщения: 871

СообщениеДобавлено: Пт Апр 30, 2004 3:46 pm    Заголовок сообщения: Re: Рапорт Ответить с цитатой

Юрий писал(а):
Заказчик попросил создать отчет


Основную часть отчета сделать довольно просто:

1. Поле "Наименование покупателя" нужно положить в парт Sub-summary When Sorted by: "Наименование покупателя" (Leading).

2. Поля "Наименование товара" и "Сумматор кол-ва товара" (поле типа Summary) - в парт Sub-summary When Sorted by: "Наименование товара" (Trailing).

3. Счетчик кол-ва покупок можно сделать с помощью функции GetSummary(summary field, break field). Для этого потребуется три поля:

Код:
COMMONOne (Calculation; Number) = 1
RecordCounterSum (Summary) = Total of COMMONOne
RecordCounterCalc (Calculation; Number) = GetSummary(RecordCounterSum, Наименование покупателя)


Поле RecordCounterCalc нужно положить в парт Sub-summary When Sorted by: "Наименование покупателя" (Trailing).

Парт Body в этом отчете не нужна. Перед просмотром/печатью отчета нужно отсортировать записи файла продаж по Покупателям и Товарам.

Итог проще всего печатать отдельным отчетом (на отдельном листе бумаги). В скрипте построения отчета, при этом, можно запрограммировать печать сразу двух отчетов.

Альтернативный способ печати такого итога - положить в Footer портал отображающий записи файла Товаров, растянуть этот портал на всё свободное пространство, а количество считать в файле Товаров через реляцию на файл Продаж. Если понадобится печатать отчет за некоторый период, то для описания реляции можно использовать технологию Smart Ranges Михаила Едошина.

P.S. Технология XML позволяет генерировать отчеты любого вида и в любом формате, в том числе и с повторением перечня всех товаров в итоге. Документацию и примеры работы с XML можно найти на инсталляционном диске FileMaker Developer, в папке Developer Extras/FileMaker, Inc/External FileMaker APIs/XML.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Юрий



Зарегистрирован: 05.12.2003
Сообщения: 183
Откуда: СПб

СообщениеДобавлено: Пт Апр 30, 2004 4:48 pm    Заголовок сообщения: Ответить с цитатой

Вся проблема как раз, в ИТОГЕ. Итог на отдельном листе, заказчик не хочет.
Можно попробовать, при помощи скрипта, создать нового покупателя (со строками товаров), которому вставлять итог по каждой, существующей позиции. Хотя это и противоречит всем правилам баз данных, но другого выхода пока не вижу. Embarassed
Цитата:
Альтернативный способ печати такого итога - положить в Footer портал отображающий записи файла Товаров, растянуть этот портал на всё свободное пространство, а количество считать в файле Товаров через реляцию на файл Продаж.

К сожалению, в портале можно задать лишь жесткое количество строк. Дальше идут полосы прокруток. Поэтому в отчетах, требующих распечатки, стараюсь их (порталы) не применять.
_________________
Windows
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Alex_Z



Зарегистрирован: 17.11.2003
Сообщения: 871

СообщениеДобавлено: Пт Апр 30, 2004 7:01 pm    Заголовок сообщения: Ответить с цитатой

Юрий писал(а):
Можно попробовать, при помощи скрипта, создать нового покупателя (со строками товаров), которому вставлять итог по каждой, существующей позиции.


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

Цитата:
в портале можно задать лишь жесткое количество строк


Вот и задайте в этом портале жесткое количество строк = 650. При ширине строки портала 13 точек у Вас ещё останется достаточно места бля остальных частей отчета. Отключите полосы прокрутки и разлиновку строк портала, и объявите для него и всех его полей сжатие (меню Format->Sliding/Printing):

    Sliding up based on: All above
    Also reduce the size of the enclosing part


Никто и не заметит что итог распечатан порталом.

Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Михаил Едошин
Модератор


Зарегистрирован: 20.11.2003
Сообщения: 1210
Откуда: Россия, Вологда

СообщениеДобавлено: Вс Май 02, 2004 10:13 pm    Заголовок сообщения: Ответить с цитатой

Можно просто сложить все промежуточные суммы в текстовом поле и поместить его в итог. Если по-английски читаешь, посмотри у меня на сайте Fast Summaries. Если не читаешь, так расскажу, но это медленнее будет. Таким макаром удобно перекрестные таблицы делать, для чего, собственно, способ и был изобретен.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора AIM Address
Гость
Гость





СообщениеДобавлено: Пн Май 03, 2004 11:41 am    Заголовок сообщения: Ответить с цитатой

Ну если Ваш заказчик такой непробиваемый, то вот Вам еще одно решение.
Создаете два скрипта:
В первом получаете группировку по товару, входите в Preview mod, Copy
Во втором - Paste в container field и помещаете этот field в конце отчета группирующего по клиенту и товару.
Я попробовал - у меня выходит. Я так же получаю разные диаграммы в одном документе.
Вернуться к началу
Юрий



Зарегистрирован: 05.12.2003
Сообщения: 183
Откуда: СПб

СообщениеДобавлено: Вт Май 04, 2004 2:10 am    Заголовок сообщения: Ответить с цитатой

Alex_Z писал(а):
у Вас ещё останется достаточно места бля

Места действительно хватает, но к сожалению, портал не делится на страницы (я его помещал в Trailing Grand Summary). Если портал не поместился на первой странице - его судьба сиротливо висеть на второй. А первая страница выглядит незаконченной. Wink
_________________
Windows
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Alex_Z



Зарегистрирован: 17.11.2003
Сообщения: 871

СообщениеДобавлено: Вт Май 04, 2004 9:14 am    Заголовок сообщения: Ответить с цитатой

Юрий писал(а):
портал не делится на страницы


А чекбокс "Allow part to break across page boundaries" не помогает?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Юрий



Зарегистрирован: 05.12.2003
Сообщения: 183
Откуда: СПб

СообщениеДобавлено: Пт Май 07, 2004 12:13 am    Заголовок сообщения: Ответить с цитатой

Alex_Z писал(а):
А чекбокс "Allow part to break across page boundaries" не помогает?


Помогает, но не очень. Когда он включен, портал рвется на середине строки. Shocked
Конечно, можно его (портал) выставить так, чтобы граница строки, совпадала с границей листа, но тогда ни о какой универсальности программы не может быть и речи. Т.к. каждый принтер отмеряет себе разные поля.
Ну да ладно, работа сдана, заказчик доволен. Embarassed
Вышел из ситуации, следующим образом:
-в файле продаж записи сортируем по наименованию товара;
-экспортируем подсуммы количества товаров во временный файл (для этого в диал. окне Specify Field Order for Export выбираем поля с наименованием товара и поле суммирующее количество товара. Нажимаем кн. Summarize by... ставим галочку возле поля, по которому была сортировка и т.д.);
-импортируем в файл продаж записи из временного файла.
Скрипт уместился в 3 строки.
Да простят меня уважаемые коллеги, за ненаучный подход. Twisted Evil
_________________
Windows
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Михаил Едошин
Модератор


Зарегистрирован: 20.11.2003
Сообщения: 1210
Откуда: Россия, Вологда

СообщениеДобавлено: Пт Май 07, 2004 11:53 am    Заголовок сообщения: Ответить с цитатой

Почему же ненаучный Smile Вполне здравое решение, главное --- быстрое. Еще лучше, на мой взгляд, обойтись без экспорта-импорта и поместить сводные данные просто в текстовое поле.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора AIM Address
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов КЛУБ FileMaker.RU -> Практика FM Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB