- Questo topic ha 7 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 7 anni, 8 mesi fa da
robitex.
-
CreatoreTopic
-
5 Gennaio 2011 alle 16:27 #54290::
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
-
CreatoreTopic
-
AutoreRisposte
-
-
5 Gennaio 2011 alle 16:42 #54291::
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.
-
5 Gennaio 2011 alle 17:55 #54292::
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 datiPer 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
-
5 Gennaio 2011 alle 18:43 #54293::
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.
-
6 Gennaio 2011 alle 15:23 #54294::
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
-
24 Marzo 2011 alle 16:41 #54295::
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 Stringtxt = 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” & vbNewLineCall VisualData(row)
txt = txt & rowtxt = txt & “Il totale è = ” & Range(“G21”) & vbNewLine & _
“\end{document}”Open “C:\Users\Orlando\VBA\test.tex” For Output As #1
Print #1, txt
Close #1End Sub
Public Sub VisualData(row As String)
Const headTab = “\begin{tabular}{|c|c|c|S|}\hline” & vbNewLine
Const footTab = “\end{tabular}” & vbNewLineConst inteTab = “Codice & Q.tà & Prezzo & {Prezzo lotto}\\” & _
vbNewLine & “\hline” & vbNewLineDim iRow As Integer
iRow = 9While 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 & vbNewLineEnd Sub`
Questo presuppone un foglio opportunamente impostato:

Ciao,
ansys.
-
8 Gennaio 2019 alle 4:38 #54296::
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!
-
8 Gennaio 2019 alle 10:26 #54297::
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.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.