Nella sezione dedicata a CustomField abbiamo visto che questa proprietà restituisce sempre un valore testuale, anche quando il campo letto da Ready Pro contiene in realtà una quantità, un importo o un altro valore numerico.
Per questo motivo, quando viene inserito tramite la procedura guidata un campo numerico come Quantità da ordinare, Ready Pro genera automaticamente:
invece del solo:
Per capire perché questa conversione è importante occorre introdurre il concetto di tipo di dato.
Che cos'è un tipo di dato
Ogni valore utilizzato in uno script può avere una natura diversa.
Può essere, ad esempio:
un testo;
un numero intero;
un numero con decimali;
una data;
un valore vero o falso.
Il tipo di dato indica come deve essere interpretato un valore e determina quali operazioni possono essere eseguite correttamente su di esso.
Vediamo un semplice esempio.
Supponiamo di assegnare due numeri a due variabili:
In questo caso Valore1 contiene il numero 10 e Valore2 contiene il numero 5.
L'operatore + esegue quindi una somma:
e il risultato è:
Vediamo ora lo stesso e con gli stessi valori ma memorizzati come testo
Modifichiamo ora solamente l'assegnazione iniziale, racchiudendo i due valori tra virgolette:
Visivamente i valori sembrano ancora 10 e 5, ma le virgolette indicano che non sono stati memorizzati come numeri: sono valori testuali.
In questo caso VBScript non esegue la somma numerica, ma concatena i due testi.
Il risultato sarà quindi:
Questo semplice esempio mostra perché il tipo di dato è importante.
I valori:
sono numeri e possono essere sommati ottenendo 15.
I valori:
sono invece testi. Anche se contengono solamente cifre, rimangono valori testuali e possono quindi comportarsi in modo differente quando vengono utilizzati in un'operazione.
Per questo motivo, quando viene inserito tramite la procedura guidata un campo numerico come Quantità da ordinare, Ready Pro genera automaticamente:
Rdy.toDouble(Product.CustomField(335))invece del solo:
Product.CustomField(335)
Per capire perché questa conversione è importante occorre introdurre il concetto di tipo di dato.
Che cos'è un tipo di dato
Ogni valore utilizzato in uno script può avere una natura diversa.
Può essere, ad esempio:
un testo;
un numero intero;
un numero con decimali;
una data;
un valore vero o falso.
Il tipo di dato indica come deve essere interpretato un valore e determina quali operazioni possono essere eseguite correttamente su di esso.
Vediamo un semplice esempio.
Supponiamo di assegnare due numeri a due variabili:
Option Explicit
Dim Valore1
Dim Valore2
Dim Risultato
Valore1 = 10
Valore2 = 5
Risultato = Valore1 + Valore2
Response.Write(Risultato)
In questo caso Valore1 contiene il numero 10 e Valore2 contiene il numero 5.
L'operatore + esegue quindi una somma:
Risultato = Valore1 + Valore2
e il risultato è:
15Vediamo ora lo stesso e con gli stessi valori ma memorizzati come testo
Modifichiamo ora solamente l'assegnazione iniziale, racchiudendo i due valori tra virgolette:
Option Explicit
Dim Valore1
Dim Valore2
Dim Risultato
Valore1 = "10"
Valore2 = "5"
Risultato = Valore1 + Valore2
Response.Write(Risultato)
Visivamente i valori sembrano ancora 10 e 5, ma le virgolette indicano che non sono stati memorizzati come numeri: sono valori testuali.
In questo caso VBScript non esegue la somma numerica, ma concatena i due testi.
Il risultato sarà quindi:
105Questo semplice esempio mostra perché il tipo di dato è importante.
I valori:
10
5
sono numeri e possono essere sommati ottenendo 15.
I valori:
"10"
"5"
sono invece testi. Anche se contengono solamente cifre, rimangono valori testuali e possono quindi comportarsi in modo differente quando vengono utilizzati in un'operazione.
Utilizzare il tipo corretto prima di eseguire un'operazione
Quando un valore deve essere utilizzato per un calcolo, un confronto o un'altra elaborazione, è quindi importante che sia rappresentato con il tipo di dato corretto.
Questo spiega il comportamento visto con CustomField.
Ad esempio:
restituisce il contenuto del campo Quantità da ordinare come valore testuale.
Prima di utilizzarlo come numero, Ready Pro può convertirlo tramite:
In questo modo il valore restituito da CustomField viene trasformato in un valore numerico, che può essere utilizzato correttamente per calcoli e altre operazioni numeriche.
N.B. Quando si conosce il tipo di dato che si desidera utilizzare, è consigliabile effettuare esplicitamente la conversione necessaria prima di eseguire delle operazioni, invece di affidarsi alle conversioni automatiche che VBScript potrebbe effettuare in alcune situazioni.
Quando un valore deve essere utilizzato per un calcolo, un confronto o un'altra elaborazione, è quindi importante che sia rappresentato con il tipo di dato corretto.
Questo spiega il comportamento visto con CustomField.
Ad esempio:
Product.CustomField(335)
restituisce il contenuto del campo Quantità da ordinare come valore testuale.
Prima di utilizzarlo come numero, Ready Pro può convertirlo tramite:
Rdy.toDouble(Product.CustomField(335))In questo modo il valore restituito da CustomField viene trasformato in un valore numerico, che può essere utilizzato correttamente per calcoli e altre operazioni numeriche.
N.B. Quando si conosce il tipo di dato che si desidera utilizzare, è consigliabile effettuare esplicitamente la conversione necessaria prima di eseguire delle operazioni, invece di affidarsi alle conversioni automatiche che VBScript potrebbe effettuare in alcune situazioni.
I principali tipi di dati
Negli script di Ready Pro si incontrano principalmente i seguenti tipi di dati:
String
È un valore testuale. Ad esempio una descrizione, un codice o una ragione sociale.
Long
È un numero intero, cioè senza parte decimale.
Double
È un valore numerico che può contenere anche una parte decimale. Viene utilizzato frequentemente per quantità, pesi, prezzi e importi.
Date
Contiene una data oppure una data e un'ora.
Boolean
Può contenere solamente uno dei due valori True oppure False, utilizzati per rappresentare una condizione vera o falsa.
Il termine String che abbiamo incontrato parlando di CustomField indica quindi semplicemente un valore testuale.
Allo stesso modo, Double indica un valore numerico che può contenere decimali.
Negli script di Ready Pro si incontrano principalmente i seguenti tipi di dati:
String
È un valore testuale. Ad esempio una descrizione, un codice o una ragione sociale.
Long
È un numero intero, cioè senza parte decimale.
Double
È un valore numerico che può contenere anche una parte decimale. Viene utilizzato frequentemente per quantità, pesi, prezzi e importi.
Date
Contiene una data oppure una data e un'ora.
Boolean
Può contenere solamente uno dei due valori True oppure False, utilizzati per rappresentare una condizione vera o falsa.
Il termine String che abbiamo incontrato parlando di CustomField indica quindi semplicemente un valore testuale.
Allo stesso modo, Double indica un valore numerico che può contenere decimali.
Convertire i tipi di dati
L'oggetto Rdy mette a disposizione alcune funzioni che consentono di convertire esplicitamente un valore nel tipo necessario.
Tra quelle utilizzate più frequentemente:
Rdy.toString converte un valore in un valore testuale di tipo String;
Rdy.toLong converte un valore in un numero intero di tipo Long;
Rdy.toDouble converte un valore in un numero di tipo Double;
Rdy.toDate converte un valore in una data di tipo Date.
Ad esempio:
legge tramite CustomField un valore inizialmente restituito come testo e lo converte in un valore numerico di tipo Double.
Nelle sezioni successive vedremo come utilizzare correttamente i diversi tipi di dati nelle operazioni più comuni, iniziando dai valori numerici.
L'oggetto Rdy mette a disposizione alcune funzioni che consentono di convertire esplicitamente un valore nel tipo necessario.
Tra quelle utilizzate più frequentemente:
Rdy.toString converte un valore in un valore testuale di tipo String;
Rdy.toLong converte un valore in un numero intero di tipo Long;
Rdy.toDouble converte un valore in un numero di tipo Double;
Rdy.toDate converte un valore in una data di tipo Date.
Ad esempio:
Rdy.toDouble(Product.CustomField(335))legge tramite CustomField un valore inizialmente restituito come testo e lo converte in un valore numerico di tipo Double.
Nelle sezioni successive vedremo come utilizzare correttamente i diversi tipi di dati nelle operazioni più comuni, iniziando dai valori numerici.



