report = ptabs.new do title "Ricerca 0000 - Demo programma pTabs" subtitle "(Versione 1.3.0)" footer "© 2014 - Company Name" img "http://www.ptabs.eu/_static/logo_ptabs.jpg", "http://www.ptabs.eu/" img_foot "http://www.ptabs.eu/_static/logo_ptabs_small.jpg" theme :sea # carico file spss spss.open 'demo_data' debug allvars ## calcolo ponderazione su marginali (IPF / Raking) rake :names => [:ipf, :espcam, :espuni], :counts => [350, 4500], :population => { :sesso => [150, 150], :eta => [25, 75, 150, 50], :area => [75, 75, 75, 75] }, :maxit => 10, :epsilon => 0.01, :sav => "ipf", :id => :ser_no ## attivo il peso weight! :espcam low_values :raw low_table_count 20 low_table :message low_cell_count 5 low_cell :hide low_cell_label "***" label :dc => "Stato civile" drop_levels :dc, :prof interaction :sexeta => [:sesso, :eta] ## hole count singole e multiple hc :sesso, :eta, :sexeta hcm s(:d7_,1..10) # i pannelli panels.add :_t, :area, :sesso, :sexeta panels.add :_t, :titolo, :prof, :dc # tabelle campione camp cbyc ## accentuazioni phl 5, 10, 15 mhl :auto # etichetta per il corner della tavola all :label => "Totale intervistati" # frequenze singola + statistiche riassuntive con pesi ord :d1, "Tabella 1 - Di solito con quale frequenza va al cinema" do w :legend, 4, 2, 1.5, 1, :na end # frequenze singola cat :d2, "Tabella 2 - Rispetto a un anno fa diresti che é cambiato qualcosa nella frequenza con cui va al cinema?" # frequenze singola + statistiche riassuntive con pesi (anche legenda valori) + net ord :d5, "Tabella 5 - Quanto č d'accordo con la frase ...?" do w :legend, :na, 1, 2, 3, 4 net "NON RISPONDE" => 1, "NEGATIVO" => 2..3, "POSITIVO" => 4..5 hide 2 end ## pairwise comparisons sulle medie pcm_test! # attivo standard error se! # solo statistiche riassuntive con pesi scale s(:d6_,10), "Tabella 6 - Quanto sono importanti per Lei questi aspetti?" do w :legend, 4, 3, 2, 1 sort :d, :mean end # disattivo standard error se_ # ciclo di ripetizione: una tabella per ciascuna delle 10 variabili s(:d6_,10).rep do |var, index| # frequenze singola + statistiche riassuntive con pesi ord var, "Tabella 6.#{index} - Quanto e' importante per Lei:\n -*- $var_label() -*-" do w "( # ) *", 4, 3, 2, 1 end end pcm_test_ # multipla con nessuna citazione automatica md s(:d7_, 10), "Tabella 7 - Quali delle seguenti motivazioni ritiene rilevanti?" do none "(nessuna citazione)" end mc s(:d6_,10), "mc: multiresponse" # griglia (foto) su singole grid s(:d8_, 7), "Tabella 8 - Quanto e' d'accordo che un film sia ...\n(Esempio GRID con domande singole)" do label "Affermazioni" end # ciclo di ripetizione: una tabella per ciascuna delle 7 variabili s(:d8_,7).rep do |var, index| # frequenze singola cat var, "Tabella 8.#{index} - Quanto e' d'accordo che un film sia:\n -*- $var_label() -*-" end # griglia (foto) su multiple grid "Tabella 9 - Immagine dei prodotti\n(Esempio GRID con domande multiple)" do vars ss("q50_#1_#2", 4, 4) label "PRODOTTI" labels "A", "B", "C", "D" end # cambio temporaneamente i pannelli panels.switch :_t, :area # unione orizzontale di pių tavole hjoin "Tabella 10 - Confronto gradimento variante prodotto X vs Y\n(Esempio di HJOIN: unione orizzontale di tabelle)" do ord :x100, "Variante X" ord :y100, "Variante Y" end # ripristino i pannelli panels.restore copy :etaq => :etacon # unione verticale di pių tavole vjoin "Tabella 11 - Eta'\n(Esempio VJOIN: unione verticale di tabelle)" do total_after! ord [:etaq, :etacon] cat :eta do titles "Classi di eta'" end end # selezione filter :sesso => 1, :label => "Intervistati MASCHI" # modifica etichette levels :d27 => ["meno di mezzora", "mezzora-1 ora", "1-2 ore", "2-3 ore", "3-4 ore", "pių di 4 ore", "mai"] ord :d27 do w :legend, 15, 45, 90, 150, 210, 300, :na end end # output report.save :r report.render :html report.render :pdf report.render :xlsx, :single_panel => true, :xhnote => 30, :sheets => { "VA %" => [:tcount, :trowpct, :tcolpct, :count, :rowpct, :colpct, :mresp, :base, :mean, :sd, :se, :nresp, :mresp, :i_conc, :pcm_test, :pcp_test], "%" => [:tcount, :trowpct, :tcolpct, :rowpct, :colpct, :mresp, :base, :mean, :sd, :i_conc ], "VA" => [:tcount, :trowpct, :tcolpct, :count, :mresp, :base, :mean ] } report.render :db, :company => "Company Name", :period => "1: Gennaio 2013"