Fatture: dati su file dati (ods…) testo su LateX, stampa

  • Creatore
    Topic
  • #54290
    Up
    0
    Down
    ::


    Ciao,
    anche se l’oggetto è un po incasinato, la sostanza è questa:
    – ho i dati delle mie fatture su un file .ods
    – il ‘template’ è un file .odt
    -faccio la stampa unione e ottengo la mia fattura.

    Siccome ho iniziato ad usare LateX e i risultati si vedono 😯 , vorrei passare anche questa procedura in Latex, quindi:
    1 – è possibile farlo?
    2 – Come?
    3 – Cosa posso usare come sorgente dati? (un DB o un foglio di calcolo sarebbe gradito)

    grazie

    Renato

Visualizzazione 6 filoni di risposte
  • Autore
    Risposte
    • #54291
      admin
      Amministratore del forum
        Up
        0
        Down
        ::

        Ciao,
        anche se l’oggetto è un po incasinato, la sostanza è questa:
        – ho i dati delle mie fatture su un file .ods
        – il ‘template’ è un file .odt
        -faccio la stampa unione e ottengo la mia fattura.

        Siccome ho iniziato ad usare LateX e i risultati si vedono 😯 , vorrei passare anche questa procedura in Latex, quindi:
        1 – è possibile farlo?
        2 – Come?
        3 – Cosa posso usare come sorgente dati? (un DB o un foglio di calcolo sarebbe gradito)

        grazie

        Renato

        Forse con datatool si può fare, dipende dalla complessità della fattura. Come sorgente dati potresti usare un CSV.
        C’è un articolo interessante di Massimiliano Dominici su ArsTeXnica che tratta proprio questo.

        Ulteriori informazioni, sul pacchetto, le trovi con texdoc datatool da terminale.

        Ciao,
        ansys.

      • #54292
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::

          Ciao,
          anche se l’oggetto è un po incasinato, la sostanza è questa:
          – ho i dati delle mie fatture su un file .ods
          – il ‘template’ è un file .odt
          -faccio la stampa unione e ottengo la mia fattura.

          Siccome ho iniziato ad usare LateX e i risultati si vedono 😯 , vorrei passare anche questa procedura in Latex, quindi:
          1 – è possibile farlo?
          2 – Come?
          3 – Cosa posso usare come sorgente dati? (un DB o un foglio di calcolo sarebbe gradito)

          grazie

          Renato

          Anch’io produco fatture e ricevute con LaTeX. I documenti oltre che tipograficamente gradevoli mantengono sempre la perfetta consistenza uno con l’altro.
          Risolvere il tuo problema tuttavia è anche una questione di gestione dati ma, diversamente da ansys, ti sconsiglio datatool diciamo per una mia particolare allergia nei confronti del pacchetto di Nicola Talbot.
          La logica direbbe:
          * diamo a LaTeX l’incombenza della gestione tipografica
          * diamo ad un secondo strumento l’incombenza della gestione dati

          Per fissare le idee diciamo che il tuo strumento di gestione dati sia un foglio di calcolo (adatto solo per piccoli uffici ed attività). Per passare i dati dal foglio a LaTeX, basta fare un copia incolla in un sorgente già predisposto e compilare.
          Per esempio in alcune celle delle formule restituiscono i dati come comandi LaTeX tipo (in A1 è riportata la data del documento):
          `
          = concatena(“\def\data{“;A1;”}”)
          `
          Copiando ed incollando tali celle siamo già pronti per compilare ed ottenere la fatture.
          In conclusione, prima crea il sorgente LaTeX dove userai alcune macro che svolgono il ruolo di campo (tipo “Data documento: \data”), poi passa alla fase di produzione.

          Avrai separato l’aspetto della fattura dai dati di fatturazione: l’aspetto può quindi cambiare indipendentemente dai dati (modello e vista).

          Altre soluzioni più comode se per esempio le fatture da generare sono 1000, potrebbero essere quelle basate su script molto semplici da scrivere ed efficienti.
          L’argomento è interessante e spero in futuro di portare a termine un progetto che risolve brillantemente la cosa, ma che è ancora chiuso in un cassetto…
          Bye

        • #54293
          admin
          Amministratore del forum
            Up
            0
            Down
            ::


            Vediamo se ho capito: nel foglio di calcolo abbiamo (per esempio) un foglio1 con tutti i calcoli ed un foglio2 con il preambolo da copiare poi nel file .tex, dove le celle si collegano a quelle del foglio1 con l’aggiunta del mark-up di LaTeX, giusto?

            Due parole in più sui pacchetti di N.T.?

            Ciao,
            ansys.

          • #54294
            robitex
            Amministratore del forum
              Up
              0
              Down
              ::

              Vediamo se ho capito: nel foglio di calcolo abbiamo (per esempio) un foglio1 con tutti i calcoli ed un foglio2 con il preambolo da copiare poi nel file .tex, dove le celle si collegano a quelle del foglio1 con l’aggiunta del mark-up di LaTeX, giusto?

              Due parole in più sui pacchetti di N.T.?

              Ciao,
              ansys.

              Si qualcosa del genere, anche se intendevo che con le formule nel foglio2 si costruiscono i campi da copiare in un sorgente “template”.
              Uso questa tecnica in un ambito particolare: costruire le etichette con codice a barre e campi variabili da un ordine di articoli. Il primo foglio contiene i dati che vengono predisposti per il copia incolla in un template di LaTeX.

              La soluzione potrebbe essere diversa, ma per iniziare un po’ di esperimenti potrebbe essere utile: comunque sia occorre scrivere il template LaTeX e questo è un buon esercizio.

              Ciao

            • #54295
              admin
              Amministratore del forum
                Up
                0
                Down
                ::


                Riprendo questo topic per segnalare che non è difficile scrivere una macro in VBA per stampare un output formattato per LaTeX.

                Ho scoperto questa cosa per la tesi, ed ora riporto qui un semplice esempio di fattura. Ovviamente, la parte TeXnica va curata in un primo momento, la parte di stampa del .tex, attraverso una macro VBA, in un secondo momento. Non dovrebbe essere difficile farla anche in OpenOffice.

                Il codice è un continuo manipolare di stringhe:
                `Sub CorpoDocumento()

                Dim txt As String
                Dim row As String
                Dim preambolo As String

                txt = txt & “\documentclass{article}” & vbNewLine & _
                “\usepackage[latin1]{inputenc}” & vbNewLine & _
                “\usepackage{siunitx}” & vbNewLine & _
                “\sisetup{output-decimal-marker={,}}” & vbNewLine & _
                “\title{Fattura del ” & ActiveSheet.Name & “}” & vbNewLine & _
                “\begin{document}\sffamily” & vbNewLine & _
                “\maketitle” & vbNewLine

                Call VisualData(row)
                txt = txt & row

                txt = txt & “Il totale è = ” & Range(“G21”) & vbNewLine & _
                “\end{document}”

                Open “C:\Users\Orlando\VBA\test.tex” For Output As #1
                Print #1, txt
                Close #1

                End Sub

                Public Sub VisualData(row As String)

                Const headTab = “\begin{tabular}{|c|c|c|S|}\hline” & vbNewLine
                Const footTab = “\end{tabular}” & vbNewLine

                Const inteTab = “Codice & Q.tà & Prezzo & {Prezzo lotto}\\” & _
                vbNewLine & “\hline” & vbNewLine

                Dim iRow As Integer
                iRow = 9

                While Cells(iRow, 2).Value <> “”

                row = row & Cells(iRow, 2) & “&” & Cells(iRow, 4) & _
                “&” & Cells(iRow, 5) & “&” & Cells(iRow, 7) & _
                “\\” & vbNewLine & “\hline” & vbNewLine
                iRow = iRow + 1
                Wend
                row = headTab & inteTab & row & footTab & vbNewLine

                End Sub`

                Questo presuppone un foglio opportunamente impostato:

                Ciao,
                ansys.

              • #54296
                Stemby
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Ho notato che, passando dal vecchio al nuovo forum, sembrerebbe andato perso un messaggio. Metto il link per completezza:

                  http://www.guit.sssup.it/phpbb/viewtopic.php?p=56403#56403

                  Ciao!

                • #54297
                  robitex
                  Amministratore del forum
                    Up
                    0
                    Down
                    ::

                    Stemby” post=115474Ho notato che, passando dal vecchio al nuovo forum, sembrerebbe andato perso un messaggio. Metto il link per completezza:

                    http://www.guit.sssup.it/phpbb/viewtopic.php?p=56403#56403

                    Ciao!

                    Ciao Stemby.
                    Grazie della segnalazione che tra l’altro è l’unica nel suo genere.
                    La migrazione del forum è avvenuta “congelando” il precedente e convertendo il database.
                    Il nuovo database è quindi quello al momento del blocco del forum precedente in sola consultazione.
                    Può essere che il messaggio non è stato incluso in questo forum perché contiene un’immagine che supera in dimensione il limite deciso per il forum guitex.org oppure perché il link è stato scartato.

                    R.

                Visualizzazione 6 filoni di risposte
                • Devi essere connesso per rispondere a questo topic.

                Go to top