Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    creare un documento rtf estraendo i dati da un DB

    Buonasera,
    vorrei poter stampare, ovvero salvare in Pdf i risultati di alcune pagine asp che sono, alla fine, delle query di un DB access.
    Cercando un po' nel forum e un po' in giro ho trovato questo codice che sembrerebbe fare al caso mio.
    Tuttavia non mi è chiaro come personalizzarlo.
    In particolare non capisco dove devo indicare il percorso del DB, ne se devo personalizzare qualche altro campo (ad esempio non cosa significhino i diversi parametri della stringa di connessione)
    grazie

    [code]
    <%

    ' lettura del contenuto dal template
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.OpenTextFile(Server.MapPath("template.rtf"), 1)
    Documento = f.ReadAll
    f.Close
    Set f = Nothing
    Set fso = Nothing

    ' carattere di a capo in RTF
    acapo = " \par " & VbCrLf

    ' stringa di conn
    strConn = "Provider=sqloledb; Data Source=localhost; Initial Catalog=pubs; Integrated Security=SSPI;"

    ' apro la connessione
    set conn = Server.CreateObject("ADODB.Connection")
    conn.Open strConn

    ' estraggo tutti i dati
    set rs = conn.Execute("SELECT au_lname, au_fname, address, city, state, zip FROM authors")

    do until rs.eof
    testo = testo & rs("au_lname") & " " & rs("au_fname") & acapo
    testo = testo & rs("address") & acapo
    testo = testo & rs("zip") & " " & rs("city") & " " & rs("state") & acapo & acapo
    rs.MoveNext
    loop

    ' chiusura
    rs.Close
    set rs = Nothing
    conn.Close
    set conn = Nothing

    ' sostituzione file
    Documento = Replace(Documento, "[testo]", testo)

    ' ContentType e risposta a video
    Response.ContentType="application/msword"
    Response.Write(documento)

    %>
    [\code]

  2. #2

  3. #3
    RTF in quanto mi sembra la soluzione più semplice.
    Poi se vi fosse la possibilità di mettere intestazioni e piè di pagina sarebbe ancora meglio. Ma per iniziare va bene anche RTF

  4. #4
    allora lascia perdere l'esempio. fai una interrogazione classica (come sei già abituato a fare) ed estrai i dati che ti servono. poi apri il file .rtf (con fso), e ne leggi il contenuto. poi fai una serie di replace per cambiare le variabili/placeholder del testo con i tuoi valori. infine riscrivi il file (con un altro nome, altrimenti perdi il template originale).

    that easy!


  5. #5
    ho cercato di fare quello che mi hai detto, scrivendo il seguente codice:
    codice:
    <%
    
    url_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/censimenti3.mdb")
    
    Set Conn = Server.CreateObject("ADODB.Connection") 
    conn.Open url_DB
    
    Set RS = Server.CreateObject("ADODB.Recordset") 
    
    sql = "SELECT * FROM ""query unione fra anagraf e unita'"""
    RS.Open sql, conn, adOpenKeyset 
    ' lettura del contenuto dal template
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.OpenTextFile(Server.MapPath("template.rtf"), 1)
    Documento = f.ReadAll
    f.Close
    Set f = Nothing
    Set fso = Nothing
    
    ' carattere di a capo in RTF
    acapo = " \par " & VbCrLf
    
    do until rs.eof
     testo =  rs("cognome") & " " & rs("nome") & " " & rs("data di nascita")& acapo
      rs.MoveNext
    loop
    
    
    
    ' chiusura
    rs.Close
    set rs = Nothing
    conn.Close
    set conn = Nothing
    
    ' sostituzione file
    Documento = Replace(Documento, "[testo]", testo)
    
    ' ContentType e risposta a video
    Response.ContentType="application/msword"
    Response.Write(documento)
    
    %>
    ho messo nella stessa cartella il file "template.rtf con dentro scritto solo queste parole
    [testo]

    lanciando la pagina però, a video, mi compaiono un sacco di simboli (tipo codice asci)
    ne riporto due riche:

    \rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507 \deff0\stshfdbch31506\stshfloch31506\stshfhich3150 6\stshfbi31507\deflang1040\deflangfe1040\themelang 1040\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset1\fprq2{\*\panose 02040503050406030204}Cambria Math;} {\f37\fbidi


    dove sbaglio?

  6. #6
    nessun suggerimento?

  7. #7
    i documenti rtf sono documenti di videoscrittura, li devi aprire con word e simili

  8. #8
    "stranamente" (non ho fatto proprio nulla) ora si apre un documento word, ma mi riporta solo un rigo, mentre l'estrazione dovrebbe prevederne più.
    dove sbaglio?

  9. #9
    Originariamente inviato da salvatore1966
    "stranamente" (non ho fatto proprio nulla) ora si apre un documento word, ma mi riporta solo un rigo, mentre l'estrazione dovrebbe prevederne più.
    dove sbaglio?
    help me

  10. #10
    salvatore, il giro è semplice

    1. ricava le tue variabili e mettile da parte
    2. apri il tuo file
    3. leggi tutto il contenuto in una variabile
    4. fai la replace (e LE replace) con i tuoi valori
    5. salvi la la variabile in un altro file

    è semplice, basta fare attenzione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.