Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: esportare in rtf

  1. #1

    esportare in rtf

    Salve ragazzi, so che è un argomento trito e ritrito, ma pur consultando i molti traed relativi, non sono riuscito a risolvere il problema.

    il codice è questo.

    while not rs.eof
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.OpenTextFile(Server.MapPath("prova.rtf"), 1)
    Documento = f.ReadAll
    f.Close
    Set f = Nothing
    Marca = Ucase(RS("marca"))
    response.write marca & "
    "
    Documento2 = Replace(Documento, "[Marca]", Marca)
    rs.movenext
    Set f = fso.OpenTextFile(Server.MapPath("../attach/Prova.rtf"), 2, True)
    f.Write Documento2
    f.Close
    Set fso = Nothing
    wend

    il file prova.rtf mi restituisce un solo record anzichè i nove presenti in tabella.
    Grazie anticipatamente del vostro aiuto e buona domenica.

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ma tu fai un solo replace di [Marca], dovresti averne 9 di nome diverso.

    Roby

  3. #3
    Ciao, io non so in partenza quanti record ho, in questo caso 9 ma potrebbero essere n.
    Come faccio a fare il replace di [Marca] per n volte con n nomi diversi???
    Pensavo di risolvere mettendo tutto dentro il ciclo ma evidentemente mi sbagliavo.
    Puoi aiutarmi???

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Se tu hai solo [Marca] lo sostituisci solo la prima volta...

    Roby

  5. #5
    Mi spiego meglio.
    Marca è il nome della colonna di una tabella di un database.
    Questa tabella contiene chiaramente molti record ed io vorrei esportare tutti i record che estraggo da una query.

    SqlString = "Select * from certify where marca = 'marca' "
    set RS = Conn.Execute(sqlString)

    il problema è che mi esporta nel file rtf solamente l'ultimo record mentre a video
    response.write marca & "
    "
    mi visualizza tutti i record correttamente.
    Vorrei sapere, se possibile, come poter esportare anche gli altri record.
    E' chiaro che successivamente esporterò anche altri dati ma intanto per capire il principio mi basterebbe esportare solo i record della Marca.
    Grazie 1000 per l'interessamento e spero tu possa aiutarmi.
    Buona Notte.

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non ho capito se il problema è sul file RTF o ancor prima nella query.

    Roby

  7. #7
    Arieccome!!!
    Buongiorno.
    Il problema non è nella query, infatti i dati estrapolati dalla stessa sono corretti.
    Il problema sta nel fatto che quando poi vado ad esportare i record, visualizzati correttamente nella pagina asp, nel file rtf mi esporta solamente l'ultimo record e non tutti quelli che riesco invece a vedere a video..
    Nel file rtf c'è un unico campo [Marca].
    Da quel poco che ho capito, probabilmente ne dovrei avere molti di più, [Marca1][Marca2]etc...
    Se è così però devo prevedere un numero max di record nel file rtf.
    Non si potrebbe renderlo dinamico???
    Grazie ancora.

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Si ma devi rendere dinamica quell'unica riga del file rtf che contiene [Marca]

    In pratica [Marca] lo metti in una stringa all'interno del loop e quindi ad ogni ciclo cambia, ma il risultato del cambiamento devi inserirlo in una stringa che all'interno del ciclo mantieni. In questo modo alla fine del loop hai tante righe (marche) quanti sono o record e soprattutto diverse.
    Non so se mi sono spiegato.

    Roby

  9. #9
    Per spiegarti ti sei spiegato anche bene.
    E' proprio questo che non riesco a fare, mantenere il risultato di marca dopo aver completato il ciclo.

    Ho provato a fare così

    i = 0
    while not rs.eof
    i = i + 1
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.OpenTextFile(Server.MapPath("prova.rtf"), 1)
    Documento = f.ReadAll
    f.Close
    Set f = Nothing
    Marca = Ucase(RS("marca"))
    response.write marca & "
    "
    Documento2 = Replace(Documento, "[Marca_" & i & "]", Marca)
    rs.movenext
    Set f = fso.OpenTextFile(Server.MapPath("../attach/Prova.rtf"), 2, True)
    f.Write Documento2
    f.Close
    Set fso = Nothing
    wend

    ma mi stampa sempre e solo l'ultimo record della tabella.

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    C'è prima da ragionare, poi da provare.
    Devi estrapolare dal documento rtf originale la sola riga che contiene la [Marca] assegnarla ad una variabile, ciclare tutte le volte che occorre nel ciclo ed il risultato assegnarlo ad una variabile che a sua volta tiene "a mente" le modifiche fatte ad ogni ciclo.

    codice:
    original_marca = "....[Marca]...."
    
    sMarche = ""
    ciclo
    sMarche = sMarche & replace(original_marca, "[Marca]", "Fiat")
    fine ciclo
    Alla fine sMarche contiene tante righe quanti i record.
    Ora puoi fare esperimenti.


    Roby

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.