Report da esportare per Web in unica schermata

di il
7 risposte

Report da esportare per Web in unica schermata

Se apro un report in Visualizzazione report mi appare lungo in una sola videata (scorrevole). Vorrei esportarlo così come lo vedo in un formato compatibile per il web. Questo articolo untitled dice che esportando in html, per i report risulta impossibile in una sola unica schermata, che devo optare per esportare la query sottostante.
Devo arrendermi? C'è una soluzione alternativa?

7 Risposte

  • Re: Report da esportare per Web in unica schermata

    Ciao,

    o esponi in html una query al posto del report e in questo caso hai una esposizione scorrevole comedicitu

    o dal report esporti in pdf e poi lo passi come documento alla pagina web

    o crei il report direttamente in html. In questo caso basta conoscere il linguaggio html per impostare le fields formattate e posizionate come faresti nel report.
    In pratica crei direttamente un file html con la stessa struttura che hai impostato nel report e te la gestisci a tuo piacimento.

    Invece per il report vale la documentazione che hai postato, ovviamente se fai quel tipo di export verranno rispettate le regole di formattazione dei report. Quindi avrai tante pagine html tante quante sono le pagine del report. 

    Nel caso tu voglia scrivere in vba direttamente in html, se ci pensi bene per agevolarti il lavoro, puoi prendere spunto dai file html che vengono creati dall'export del report. Fai molto prima a scrivere il codice.

  • Re: Report da esportare per Web in unica schermata

    Pare che la trasformazione sia riferita alla/alle singola/e pagina/e. crea un html per ogni pagina.

    alternative? essendo un html, quindi di tipo statico, puoi esportare il report in pdf e mostrare l'html con il pdf del report.

    https://pdf.wondershare.it/how-to/embed-pdf-in-html.html

    considera che qualunque soluzione in html sarà sempre statica. 

    ogni volta devi creare il report e pubblicarlo in html ma puoi sempre mantenere sempre lo stesso nome del file sovrascrivendo quello esistente ma non vedrai l'aggiornamento finchè non ricarichi la pagina.

  • Re: Report da esportare per Web in unica schermata

    Franco mi hai anticipato...

  • Re: Report da esportare per Web in unica schermata

    03/04/2025 - sihsandrea ha scritto:

    Franco mi hai anticipato...

    Ciao... capita....  ;-)

    Personalmente, per conservare eventuali automatismi delprogetto, etc etc.. , io adotterei lascrittura dell'html da codice vba ... molto semplice e veloce.
    Alla fine basta aprire e leggere il recordset che viene passato al report e posizionare e formattare i vari campi come nel report. 
    Una Open , una While e scrvi direttamente il file Html.  (molto molto semplice)

    Oppure si exporta il report in Html, si prendono gli enne file html che ha generato ed eliminando le intestazioni e piè di report in eccesso si fa la join dei file per ottenere un solo file html. Anche questo si può fare direttamente da codice Vba automatizzando il tutto.

  • Re: Report da esportare per Web in unica schermata

    03/04/2025 - By65Franco ha scritto:

    dal report esporti in pdf e poi lo passi come documento alla pagina web

    Questa soluzione l'ho trovata valida per report lunghissimi, il fatto che vedo i numeri pagina e le intestazioni ripetute, alla fin fine agevola la lettura di chi scorre. Molto comodo lo scorrimento barra laterale (interno). Valido per cataloghi.
    Una soluzione di compromesso (alla mia portata) sarebbe, diciamo per report minori di 10 pagine, eliminare il piè di pagina e la ripetizione delle intestazioni. In questo modo ottengo un risultato relativamente simile a ciò che avrei voluto...poco disturba l'occhio il salto di pagina... Valido per elencazioni di eventi annuali, liste soci annuali (per quest'ultimo va anche bene la query direttamente).

    Vi ringrazio, alla fine penso che ripiegherò su questa/e soluzione/i.

  • Re: Report da esportare per Web in unica schermata

    03/04/2025 - OsvaldoLaviosa ha scritto:

    03/04/2025 - By65Franco ha scritto:

    dal report esporti in pdf e poi lo passi come documento alla pagina web

    Questa soluzione l'ho trovata valida per report lunghissimi, il fatto che vedo i numeri pagina e le intestazioni ripetute, alla fin fine agevola la lettura di chi scorre. Molto comodo lo scorrimento barra laterale (interno). Valido per cataloghi.
    Una soluzione di compromesso (alla mia portata) sarebbe, diciamo per report minori di 10 pagine, eliminare il piè di pagina e la ripetizione delle intestazioni. In questo modo ottengo un risultato relativamente simile a ciò che avrei voluto...poco disturba l'occhio il salto di pagina... Valido per elencazioni di eventi annuali, liste soci annuali (per quest'ultimo va anche bene la query direttamente).

    Vi ringrazio, alla fine penso che ripiegherò su questa/e soluzione/i.

    L'altra alternativa è PHP eti costruisci il report senza passare da access. Non so se è intranet collegandoti al PC web server o su host. 

    Nel secondo caso esporti le tabelle e sempre con pho ti crei il report. In questo caso puoi anche decidere in base al login cosa mostrare (non sarebbe statico ma dinamico). In effetti il futuro è smart non più PC.

    P.s. anche il lavoro è diventato smart.

  • Re: Report da esportare per Web in unica schermata

    03/04/2025 - sihsandrea ha scritto:

    L'altra alternativa è PHP eti costruisci il report senza passare da access. Non so se è intranet collegandoti al PC web server o su host. 

    Si si si ... molto carino! e poi dinamico. 

    Io avrei preparato una sorta di demo per scrivere direttamente in vba il file html... me piace come solution ;-))
    ... fatto tanto per passare il tempo, quindi chiedo venia per eventuali imprecisioni.. ;-)

    Esempio, poniamo di avere una Query e un Report.
    Si prende il recordset che alimenta il report , in questo caso la Query.

    Poi si prende il Vba e si scrive il file Html.
    Questo il codice di esempio molto molto semplice:

    Sub ExportToHTMLVr2()
        Dim db As Database
        Dim rs As Recordset
        Dim htmlFile As Integer
        Dim filePath As String
        
        ' Set fullpath html file
        filePath = "C:\xxxxxxx\Query_File.html"
        ' Create file html
        htmlFile = FreeFile
        Open filePath For Output As htmlFile
        
        ' Initialize html and css style
        Print #htmlFile, "<HTML><HEAD><META HTTP-EQUIV=""Content-Type"" CONTENT=""text/html;charset=windows-1252"">"
        Print #htmlFile, "<TITLE>ReportTbl_Demo</TITLE>"
        Print #htmlFile, "<STYLE>"
        Print #htmlFile, "BODY {font-family: 'Franklin Gothic Book', sans-serif; font-size: 11pt; color: #404040; text-align: center;} "
        Print #htmlFile, "TABLE {border-collapse: collapse; width: 50%; max-width: 900px; margin: 0 auto;}"
        Print #htmlFile, "TD, TH {border: 1px solid #ccc; padding: 5px 10px; text-align: left;}"
        Print #htmlFile, "TH {background-color: #f2f2f2; font-weight: bold; color: blue;}"
        Print #htmlFile, "TR:nth-child(even) {background-color: #f9f9f9;}"
        Print #htmlFile, "TD.right-align, TH.right-align {text-align: right;}"
        Print #htmlFile, "H1 {font-size: 16pt; font-weight: bold; color: #2C3E50; text-align: center; padding-bottom: 2px;}"
        Print #htmlFile, "</STYLE>"
        Print #htmlFile, "</HEAD><BODY>"
        ' Add title
        Print #htmlFile, "<H1>Demo Report" & "&nbsp;&nbsp;&nbsp;&nbsp;" & Date & "</H1>"
        ' Add columns of the table
        Print #htmlFile, "<TABLE>"
        Print #htmlFile, "<TR>"
        Print #htmlFile, "<TH WIDTH='225'>Name</TH>"
        Print #htmlFile, "<TH WIDTH='225'>City</TH>"
        Print #htmlFile, "<TH WIDTH='100' class='right-align'>Double Nr</TH>"
        Print #htmlFile, "<TH WIDTH='100' class='right-align'>Date</TH>"
        Print #htmlFile, "<TH WIDTH='70'  class='right-align'>Flag</TH>"
        Print #htmlFile, "</TR>"
        
        ' Open recordset
        Set db = CurrentDb
        Set rs = db.OpenRecordset("QueryTbl_Demo", dbOpenSnapshot)
        ' Read and write
        Do While Not rs.EOF
            ' Populate all cells
            Print #htmlFile, "<TR>"
            Print #htmlFile, "<TD WIDTH='225'>" & rs.Fields("DemoTxt").Value & "</TD>"
            Print #htmlFile, "<TD WIDTH='225'>" & rs.Fields("DemoMemo").Value & "</TD>"
            Print #htmlFile, "<TD WIDTH='100' class='right-align'>" & rs.Fields("DemoDbl").Value & "</TD>"
            Print #htmlFile, "<TD WIDTH='100' class='right-align'>" & Format(rs.Fields("DemoDate").Value, "DD/MM/YYYY") & "</TD>"
            Print #htmlFile, "<TD WIDTH='70' class='right-align'>" & _
                              IIf(rs.Fields("DemoBln").Value = True, "<input type='checkbox' checked>", "<input type='checkbox'>") & "</TD>"
            Print #htmlFile, "</TR>"
            ' Move record next
            rs.MoveNext
        Loop
        ' Close body and html
        Print #htmlFile, "</TABLE></BODY></HTML>"
        
        ' Close file html
        Close htmlFile
        ' Close recordset
        rs.Close
        Set rs = Nothing
        Set db = Nothing
        ' Message end
        MsgBox "HTML completed export"
    End Sub
    

    e si ottiene il nostro Html :

    Ecco l'elenco che si scorre come un unica pagina
    (penso  che intendevi ottenere tale effetto) 

    .... detail   ;-)

    Molto semplice e veloce .... e a proprio piacimento si imposta lo stile e la formattazione che si desidera proprio come si fa in designer per il report.

    Ovviamente, in questo caso, non ti serve più creare il report, ti basta una Query o una Sql string con le Select, join, Where, Order By,etc etc.... e puoi fare tutto da Vba.

    Se ti vuoi divertire OsvaldoLaviosa, con questa piccola demo una base adesso ce l'hai...  male non fa... prova a provare  ;-)  

Devi accedere o registrarti per scrivere nel forum
7 risposte