Succede anche questo … cioè posti la tua soluzione su un forum … di montagna!!! … ti fanno notare che esiste un qualche cosa .. scarichi .. leggi .. studi .. implementi ..
Un passo indietro: subito dopo aver implementato lo script per la “Prima nota” ho postato la soluzione su vari forum. Un po’ per donare alla comunità il lavoro … un po’ per “farmi vedere”. Proprio su uno di questi forum mi hanno fatto notare che attraverso BUC (http://buc.opensource.tk/) è possibile dare una gui ad un bash script. Poche righe in xml e il gioco è fatto.
Ecco il file .mc:
<?xml version="1.0"?> <config> <tab> <title>echo "Genera Prima Nota 1.0"</title> </tab> <label> echo "Seleziona il percorso" </label> <file var="percorso" mode="dir" filter=""> </file> <label> echo "Seleziona il tipo di file" </label> <combobox var="formato"> echo "xls" echo "ods" </combobox> <label> echo "Clicca su AVVIA per effettuare la conversione" </label> <button title="AVVIA"> direct=echo $PWD sh primanota.sh $percorso $formato </button> </config>
e quello .sh che richiamo:
#!/bin/sh # Script Bash by F3d7 # # Prima nota: lo scipt converte i file ODS e/o XLS in CSV # estrae da questi il numero fattura, la data, il nome e l'importo # li assembla in un nuovo file CSV pronto per CALC # # Release 1.0 with BUC # del 4/7/2008 # # Enjoy!!!!!!!!! cd $1 for nomefile in * do mv "$nomefile" $(echo "$nomefile" | tr " " "_") done soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard& java -jar /home/fedsette/Download/jodconverter-2.2.1/lib/jodconverter-cli-2.2.1.jar -f csv *.$2 processo=`ps ax | grep port=8100 | grep -v grep | grep -v etc | awk '{print $1;}'` kill $processo mkdir tmp mv *.csv ./tmp/ cd tmp for nomefile2 in * do riga_numero=`sed -n '5p;5q' "$nomefile2"` riga_data=`sed -n '9p;9q' "$nomefile2"` riga_nome=`sed -n '13p;13q' "$nomefile2"` riga_importo=`sed -n '38p;38q' "$nomefile2"` numero_tmp=`expr substr "$riga_numero" 44 10` data_tmp=`expr substr "$riga_data" 39 10` nome_tmp=`expr substr "$riga_nome" 16 25` importo_tmp=`expr substr "$riga_importo" 22 15` numero=`echo ${numero_tmp%'"'*','}` data=`echo ${data_tmp%'"'*','}` nome=`echo ${nome_tmp%'"'*','}` importo_pre=`echo ${importo_tmp%'"'*''}` importo=`echo ${importo_pre#''*'"'}` riga=$numero';'$data';'$nome';'$importo echo $riga >> prima_nota.csv done soffice prima_nota.csv
Ho letto la documentazione al volo … non ho capito se ho fatto un errore o se è un limite quello di non poter andare oltre un certo numero di righe (a cui ho ovviato con il file .sh) … cmq per ottenere piccoli applicativi BUC è ottimo!!