Descrizione: Diverse combinazioni di input formattato in oggetto text
Sorgente PHP: examples/format/format_text.php
Sorgente XML: examples/format/format_text.xml
La formattazione è la tecnica con la quale, partendo da un dato "grezzo" è possibile presentarlo in una forma comprensibile o maggiormente comprensibile all'utente o all'applicazione che lo dovrà elaborare.
Supponiamo di avere come dato "grezzo" la data 20090205(ANNOMESEGIORNO), lo stesso dato potrebbe essere presentato come 05/02/2009(GIORNO/MESE/ANNO) in una forma sicuramente più leggibile all'uomo.
Esistono tre tipologie di formattazione in base al dato presente in ingresso:
- Numeri
- Date
- Stringhe
Descrizione: Diverse combinazioni di input formattato in oggetto textarea
Sorgente PHP: examples/format/format_textarea.php
Sorgente XML: examples/format/format_textarea.xml
In JAMP la formattazione è uno strumento molto flessibile in quanto a differenza dei tradizionali linguaggi di programmazione non pone il vincolo di accettare in input solo lo standard inglese, inoltre per la formattazione di numeri e date permette la completa reversibilità, intesa come la capacità di poter riportare il dato formattato nel suo formato originale. Affinché quanto detto sia possibile è neccessario specificare sia il formato di input che quello di output:
TYPE|LANGUAGE|FORMAT|LANGUAGE|FORMAT
|_____ INPUT ____|____OUTPUT ____|
Sintassi:
number|lingua|formato|lingua|formato
La formattazione deve essere attinente alla lingua, specificando EN si intende(,) separatore delle migliaia ed il (.) separatore delle decine, viceversa la lingua IT il (.) separatore delle migliaia e la (,) separatore delle decine. Se ad esempio il numero è nel formato inglese: 10,012,345.67890 si dovrà specificare come formato di input ,0.00000
| INGRESSO | USCITA | RISULTATO | ||
| LINGUA | FORMATO | LINGUA | FORMATO | RISULTATO |
| EN | ,0.00000 | IT | 0 | 10012346 |
| EN | ,0.00000 | IT | 0,0 | 10012345,6 |
| EN | ,0.00000 | IT | 0,00 | 10012345,67 |
| EN | ,0.00000 | IT | 0,000 | 10012345,678 |
| EN | ,0.00000 | IT | .0,0000 | 10.012.345,6789 |
| EN | ,0.00000 | IT | 0,00000 | 10012345,67890 |
| EN | ,0.00000 | IT | .0,000000 | 10.012.345,678900 |
| EN | ,0.00000 | IT | 000000000,000000 | 010012345,678900 |
Nel caso in cui il numero sia nello standard italiano: 10.012.345,67890 si dovrà:
| INGRESSO | USCITA | RISULTATO | ||
| LINGUA | FORMATO | LINGUA | FORMATO | RISULTATO |
| IT | .0,00000 | EN | 0 | 10012346 |
| IT | .0,00000 | EN | 0.0 | 10012345.6 |
| IT | .0,00000 | EN | 0.00 | 10012345.67 |
| IT | .0,00000 | EN | ,0.000 | 10,012,345.678 |
| IT | .0,00000 | EN | 0.0000 | 10012345.6789 |
| IT | .0,00000 | EN | ,0.00000 | 10,012,345.67890 |
| IT | .0,00000 | EN | 0.000000 | 10012345.678900 |
| IT | .0,00000 | EN | ,000000000.000000 | 010,012,345.678900 |
Sintassi: date|lingua|formato|lingua|formato
| TAG | DESCRIZIONE | |
| d | Visualizza il numero del giorno: 1-31(1 o 2 cifre) | |
| dd | Visualizza il numero del giorno: 01-31(2 cifre) | |
| ddd | Visualizza le prime 3 lettere del giorno della settimana: Lun-Dom | |
| dddd | Visualizza il giorno della settimana: Lunedì-Domenica | |
| m | Visualizza il numero del mese: 1-12(1 o 2 cifre) | |
| mm | Visualizza il numero del mese: 01-12(2 cifre) | |
| mmm | Visualizza le prime 3 lettere del mese: Gen-Dic | |
| mmmm | Visualizza il nome del mese: Gennaio-Dicembre | |
| yy | Visualizza l'anno a due cifre: 08 | |
| yyyy | Visualizza l'anno a quattro cifre: 2008 | |
| h | Visualizza ora: 1-12(1 o 2 cifre) | |
| hh | Visualizza ora: 01-12(2 cifre) | |
| H | Visualizza ora: 0-23(1 o 2 cifre) | |
| HH | Visualizza ora: 00-23(2 cifre) | |
| k | Visualizza ora: 1-24(1 o 2 cifre) | |
| kk | Visualizza ora: 01-24(2 cifre) | |
| K | Visualizza ora: 0-11(1 o 2 cifre) | |
| KK | Visualizza ora: 00-11(2 cifre) | |
| i | Visualizza minuti: 0-59(1 o 2 cifre) | |
| ii | Visualizza minuti: 00-59(2 cifre) | |
| s | Visualizza secondi: 0-59(1 o 2 cifre) | |
| ss | Visualizza secondi: 00-59(2 cifre) | |
| a | Visualizza mattina/pomeriggio: AM/PM |
Per inserire altre lingue basta modificare il file /js/format.js
Aggiungere all'array il nome della lingua desiderata:
this.intSetting['IT'] = Array();
this.intSetting['EN'] = Array();
this.intSetting['LINGUA'] = Array();
Inserire successivamente i dati per la lingua desiderata:
this.intSetting['IT']['decimal'] = ".";
this.intSetting['IT']['month'] = Array("Gennaio","Febbraio","Marzo","Aprile","Maggio", "Giugno","Luglio","Agosto","Settembre", "Ottobre","Novembre","Dicembre");
this.intSetting['IT']['mon'] = Array("Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic");
this.intSetting['IT']['weekstart'] = 1; this.intSetting['IT']['weekday'] = Array("Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato");
this.intSetting['IT']['day'] = Array("Dom","Lun","Mar","Mer","Gio","Ven","Sab");
this.intSetting['EN']['thousand'] = ".";
this.intSetting['EN']['decimal'] = ",";
this.intSetting['EN']['month'] = Array("January","February","March","April","May","June","July", "August","September","October","November","December");
this.intSetting['EN']['mon'] = Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
this.intSetting['EN']['weekstart'] = 0; this.intSetting['EN']['weekday'] = Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
this.intSetting['EN']['day'] = Array("Sun","Mon","Tue", "Wed","Thu","Fri","Sat");
this.intSetting['LINGUA']['thousand'] = ",";
this.intSetting['LINGUA']['decimal'] = ".";
this.intSetting['LINGUA']['month'] = Array("......","......","......","......","......","......","......","......","......","......","......","......");
this.intSetting['LINGUA']['mon'] = Array("...","...","...","...","...","...","...","...","...","...","...","...");
this.intSetting['LINGUA']['weekstart'] = n;
this.intSetting['LINGUA']['weekday'] = Array("......","......","......","......","......","......","......");
this.intSetting['LINGUA']['day'] = Array("...","...","...","...","...","...","...");
Sintassi: string|[lower][upper][trim][@@@@]
- lower Trasforma tutti i caratteri della stringa in ingresso in minuscolo
- upper Trasforma tutti i caratteri della stringa in ingresso in maiuscolo
- trim Elimina tutti gli spazi bianchi alla sinistra e alla destra della stringa
- @ Fissa la lunghezza minima della stringa, se minore aggiunge spazi a destra
- ! Da usare con @ se la lunghezza minima della stringa è minore aggiunge spazi a sinistra
<?php
/**
* PHP Source File
* @author Alyx Association <info@alyx.it>
* @version 1.0
* @copyright Alyx Association 2008-2010
* @license GNU Public License
*/
require_once("./../../class/system.class.php");
$system = new ClsSystem(true);
$xml = new ClsXML("format_text.xml");
$event = new ClsEvent($xml);
$event->managerRequest();
?>
<jamp>
<page typeobj="page" title="JAMP - Esempio sulla formattazione dei dati" icon="../../favicon.ico" loaddata="true">
<ds1 typeobj="ds" conn="conn8" scope="tree" base="/jamp/data/date" dskey="key" readonly="true" />
<tabs1 typeobj="tabs" width="600px" height="autosize" selected="tab1" align="left">
<tab1 typeobj="tab" label="Formattazione stringhe">
<f_stringa typeobj="text" dsobj="ds1" dsitem="stringa" label="Stringa originale:\n" size="40" />
<f_lower typeobj="text" dsobj="ds1" dsitem="stringa" label="\nTrasforma tutti i caratteri alfabetici in minuscolo:\n" size="40" format="string|lower"/>
<f_upper typeobj="text" dsobj="ds1" dsitem="stringa" label="\nTrasforma tutti i caratteri alfabetici in maiuscolo:\n" size="40" format="string|upper"/>
<f_trim typeobj="text" dsobj="ds1" dsitem="stringa" label="\nElimina gli spazi agli estremi:\n" size="40" format="string|trim"/>
</tab1>
<tab2 typeobj="tab" label="Formattazione numeri">
<number1 typeobj="text" dsobj="ds1" dsitem="number1" label="Formato originale(EN|,0.00):\n" size="30" />
<numer_ita typeobj="text" dsobj="ds1" dsitem="number1" label="\nFormato uscita(IT|.0,00)\n" format="number|EN|,0.00|IT|.0,00" readonly="true" size="30" />
<numer_ita2 typeobj="text" dsobj="ds1" dsitem="number1" label="\nFormato uscita(IT|.0,0000)\n" format="number|EN|,0.00|IT|.0,0000" readonly="true" size="30" />
<numer_ita3 typeobj="text" dsobj="ds1" dsitem="number1" label="\nFormato uscita(IT|.0,0)\n" format="number|EN|,0.00|IT|.0,0" readonly="true" size="30" />
<numer_ita4 typeobj="text" dsobj="ds1" dsitem="number1" label="\nFormato uscita(IT|.0000000,0)\n" format="number|EN|,0.00|IT|.0000000,0" readonly="true" size="30" />
<number2 typeobj="text" dsobj="ds1" dsitem="number2" label="\nFormato originale(IT|.0,00):\n" size="30" />
<numer_en typeobj="text" dsobj="ds1" dsitem="number2" label="\nFormato uscita(EN|.0,00)\n" format="number|IT|.0,00|EN|,0.00" readonly="true" size="30" />
<numer_en2 typeobj="text" dsobj="ds1" dsitem="number2" label="\nFormato uscita(EN|.0,0000)\n" format="number|IT|.0,00|EN|,0.0000" readonly="true" size="30" />
<numer_en3 typeobj="text" dsobj="ds1" dsitem="number2" label="\nFormato uscita(EN|.0,0)\n" format="number|IT|.0,00|EN|,0.0" readonly="true" size="30" />
<numer_en4 typeobj="text" dsobj="ds1" dsitem="number2" label="\nFormato uscita(EN|.0000000,0)\n" format="number|IT|.0,00|EN|,0000000.0" readonly="true" size="30" />
</tab2>
<tab3 typeobj="tab" label="Formattazione date">
<date0 typeobj="text" dsobj="ds1" dsitem="date1" label="Formato originale(EN|yyyy-mmm-dd):\n" size="30" />
<date1 typeobj="text" dsobj="ds1" dsitem="date1" label="\nFormato uscita(IT|dd/mmm/yyyy)\n" format="date|EN|yyyy-mmm-dd|IT|dd/mmm/yyyy" readonly="true" size="30" />
<date2 typeobj="text" dsobj="ds1" dsitem="date1" label="\nFormato uscita(EN|mm/dd/yyyy)\n" format="date|EN|yyyy-mmm-dd|EN|mm/dd/yyyy" readonly="true" size="30" />
<date3 typeobj="text" dsobj="ds1" dsitem="date1" label="\nFormato uscita(IT|dddd dd/mmm/yyyy):\n" format="date|EN|yyyy-mmm-dd|IT|dddd dd/mmm/yyyy" readonly="true" size="30" />
<date4 typeobj="text" dsobj="ds1" dsitem="date2" label="\nFormato originale:(IT|d/mmmm/yyyy)\n" size="30" />
<date5 typeobj="text" dsobj="ds1" dsitem="date2" label="\nFormato uscita(IT|dd mmm yyyy):\n" format="date|IT|d/mmmm/yyyy|IT|dd mmm yyyy" readonly="true" size="30" />
<date6 typeobj="text" dsobj="ds1" dsitem="date2" label="\nFormato uscita(EN|dd-mmmm-yyyy):\n" format="date|IT|d/mmmm/yyyy|EN|dd-mmmm-yyyy" readonly="true" size="30" />
<date7 typeobj="text" dsobj="ds1" dsitem="date2" label="\nFormato uscita(EN|mmm-dd-yyyy):\n" format="date|IT|d/mmmm/yyyy|EN|mmm-dd-yyyy" readonly="true" size="30" />
</tab3>
</tabs1>
</page>
</jamp>