Автоматизация создания отчетов [закрыто]
Вопрос
Мы используем Stata для объединения и анализа данных по всем нашим агентствам в округе каждый месяц.Я хотел бы каким-то образом автоматически создавать отчеты об анализе данных для этих ежемесячных отчетов.Отчет включает сводную таблицу сообщаемых показателей, пару графиков ключевых показателей и аналитическую таблицу, показывающую статистически значимые различия в группах данных.Я бы хотел, чтобы они были в формате pdf и автоматически отправлялись по электронной почте агентствам.Есть идеи по поводу программного обеспечения, которое я могу использовать для автоматизации этого процесса?
Решение
Поскольку вы используете Stata для анализа, вы также можете позволить ему выполнять тяжелую работу по автоматизации отчетов.
Хитрость заключается в использовании пакета Stata, такого как -rtfutil-, для экспорта описанных вами таблиц и графики в один документ.На этом этапе вам нужно будет преобразовать его в PDF, прежде чем отправлять по электронной почте.
Вот пример кода для использования -rtfutil- для автоматизации создания документа, включающего таблицу и две графики (плюс несколько абзацев текста) в документе RTF (на примере системного набора данных «auto.dta»):
******
clear
//RTF UTILITY FOR INSERTING GRAPHICS & TABLES//
local sf "/users/ppri/desktop/"
//SETUP
sysuse auto, clear
twoway scatter mpg price, mlabel(make) || lfitci mpg price
graph export "`sf'myplot1.eps", replace
twoway scatter price mpg, mlabel(make) by(for)
graph export "`sf'myplot2.eps", replace
**
tempname handle1
//RTFUTIL
rtfopen `handle1' using "`sf'mydoc1.rtf", replace
file write `handle1' _n _tab "{\pard\b SAMPLE DOCUMENT \par}" _tab _n
file write `handle1' _n "{\line}"
// Figure1
file write `handle1' "{\pard\b FIGURE 1: Plot of Price\par}" _n
rtflink `handle1' using "`sf'myplot1.eps"
// Figure2
file write `handle1' _n "{\page}" _n /*
*/ "{\pard Here is the plot and a paragraph about it. Here is the plot and a paragraph about it. Here is the plot and a paragraph about it. Here is the plot and a paragraph about it.....blah blah blah blah blah \line}" _n
file write `handle1' _n "{\line}"
file write `handle1' "{\pard\b FIGURE2: Plots of Price vs. MPG\par}" _n
rtflink `handle1' using "`sf'myplot2.eps"
// Table Title
file write `handle1' _n "{\page}" _n
file write `handle1' _n "{\par\pard}" _n /*
*/ "{\par\pard HERE IS A TABLE WITH THE CARS: \par\pard}" _n
file write `handle1' _n "{\par\pard}" _n
// Summary Table
rtfrstyle make mpg weight, cwidths(2000 1440 1440) local(b d e)
listtex make foreign mpg if mpg<15, /*
*/ handle(`handle1') begin("`b'") delim("`d'") end("`e'") /*
*/ head("`b'\ql{\i Make}`d'\qr{\i Foreign}`d'\qr{\i MPG }`e'")
file write `handle1' _n "{\line}"
file write `handle1' _n _tab(2) /*
*/ "{\pard\b Sources: Census Data, etc... \par}" _n _n
**
rtfclose `handle1'
******
Это поместит все элементы, о которых вы просили, в документ RTF (будьте осторожны с любыми проблемами с переносом этого кода при копировании/вставке его с веб-страницы).
В своем вопросе вы также упомянули о желании создать PDF-файл во время этого процесса.Здесь вам нужно будет использовать какое-то решение, отличное от Stata.Если вы используете Mac OSX, вы можете использовать для этого утилиту или автоматизатор Terminal -convert- или вот несколько других решений: http://codesnippets.joyent.com/posts/show/1601
Я не использую Windows, поэтому не уверен в решениях для этой ОС.Удачи.