Espressioni utili negli scripts

Tutte le funzioni successive possono essere sfruttate anche come espressioni nel report, ma sono sicuramente più utilizzate negli scripts.

 

Istruzione

Descrizione

ElementExists(Name: String): Boolean

Controlla se esiste un elemento del report con un certo nome.

Esempio:

 

ElementExists('Label1')

 

SetBoolProp(ComponentName, PropertyName, PropertyValue)

Assegna una proprietà booleana in una componente.

Esempio:

 

SetBoolProp('Childband1','Enabled',False)

SetBoolProp('MyShape','Enabled',True)

 

SetIntProp(ComponentName, PropertyName, PropertyValue)

 

Assegna una proprietà numerica in una componente.

Esempio:

 

SetIntProp('Band1',Height,200)

 

SetFloatProp(ComponentName, PropertyName, PropertyValue)

Assegna una proprietà in una componente.

 

SetStrProp(ComponentName, PropertyName, PropertyValue)

Assegna una proprietà stringa in una componente.

Esempio:

 

SetStrProp('Label1','Caption','This is a test')

 

GetBoolProp(ComponentName, PropertyName, PropertyValue): Boolean

Legge una proprietà booleana da una componente.

Esempio:

 

IF (GetBoolProp('DBText1','Enabled))

 SetColor('DBText1',Black)

ENDIF

 

GetIntProp(ComponentName, PropertyName): Integer

Legge una proprietà numerica da una componente.

Esempio:

 

SETVAR('LastBandHeight',GetIntProp('DetailBand','Height'))

 

GetFloatProp(ComponentName, PropertyName): Float

Legge una proprietà da una componente.

 

 

GetStrProp(ComponentName, PropertyName,): String

Legge una proprietà stringa da una componente.

Esempio:

 

GetStrProp('Expr1','Caption')

 

OkBox(Text: String)

Visualizza una finestra di messaggio con il testo specificato ed il pulsante OK.

Esempio:

 

OkBox('Fasten your seat belts')

 

OkCancelBox(Text: String): Boolean

Visualizza una finestra di messaggio con il testo specificato e sia il pulsante OK che il pulsante CANCEL. Ritorna VERO se è stato premuto il pulsante OK, FALSO in caso contrario.

Esempio:

 

IF (OkCancelBox('Print now?'))

 Return(True)

ELSE

 Return(False)

ENDIF

 

YesNoBox(Text: String): Boolean

Come la funzione OkCancelBox, ma con i pulsanti SI o NO.

 

InputBox(Title, Text, VariableName): Boolean

Visualizza una finestra di dialogo. L'utente deve indicare un valore, che viene salvato nella variabile specificata.

Esempio:

 

InputBox('Input start date','Start date:','VDate')

 

SetColor(Name, Color)

Assegna il colore di sfondo all'elemento del report indicato. Il parametro del colore è un valore numerico (come in Delphi), ma possono essere utilizzate le seguenti costanti: Black, Maroon, Green, Olive, Navy, Purple, Teal, Gray, Silver, Red, Lime, Blue, Fuchsia, Aqua, White. Si può utilizzare anche la funzione RGBCOLOR (vedi sotto).

Esempi:

 

SetColor('Childband2',Yellow)

SetColor('Childband2',87123)

SetColor('Childband2', RGBColor(255,0,128))

 

RGBColor(Red, Green, Blue): Integer

Questa funzione crea il valore di un colore, da utilizzare con SETCOLOR e SETFONTCOLOR, indicando le parti di rosso, verde, blu.

Esempio:

 

RGBColor(64,0,0) (dà un rosso scuro)

 

SetFont(ComponentName, FontName)

Assegna un font ad una componente.

Esempio:

 

SetFont('Label1','Arial')

 

SetFontColor(ComponentName, Color)

Assegna il colore del font ad una componente (vedi SETCOLOR).

 

SetFontSize(ComponentName, Fontsize)

Assegna la grandezza del font ad una componente.

Esempio:

 

SetFontSize('TitleLabel',24)

 

SetFontStyle(ComponentName, IsBold, IsItalic, IsUnderline, IsStrikeout)

Assegna lo stile del font (grassetto, corsivo, sottolineato, sbarrato) ad una componente. Ogni stile è un parametro booleano, che deve essere impostato su VERO per poterlo attivare.

 

Esempio:

SetFontStyle(DBText1,true,false,false,false)

 

GetDatasetSum(NomeDataset,Nomecampo)

Fa la somma del campo indicato.

Esempio: si vuole fare la somma del campo saldo di una fattura messa in una ricerca per visualizzare poi la percentuale della singola fattura sul totale. Nello script 'Prima di stampare' si inserisce un' espressione setvar('aSum', GETDATASETSUM('qryGeneric', 'SALDO')) e sulle singole righe quindi un espressione qryGeneric.SALDO / STRTONUM(GetVar('aSum')) * 100.

 

SetDatasetOrder(Nome dataset, campi sui quali ordinare)

Utile per cambiare l'ordine dei dati prima di stampare; in via generale da inserire nello script 'Prima di stampare'; la stringa per i nomi dei campi può contenere le parole chiavi ASC o DESC che stanno per ascendente o discendente e inoltre l'indicazione CS o CIS per case sensitiv o insensitiv cioè sensitivo al maiuscolo o meno.

Esempio: una ricerca sui documenti che 'nativamente' è ordinata sul nome del documento dev'essere ordinata per l'estensione come primo argomento e il nome come secondo: SETDATASETORDER('qryGeneric', 'ESTENSIONE ASC CIS, NOME ASC CIS');

 

GetDatasetOrder(Nome dataset)

Torna l'attuale campo di ordinamento di un dataset.

 

SetDatasetFilter(Nome dataset, filtro)

Utile per filtrare un dataset prima di iniziare la stampa; impostanto l'argomento 'filtro' su vuoto il filtro viene tolto.

Esempio:

SETDATASETFILTER('qryGeneric', 'SIGLA='GIGLIO'') per filtrare i dati sull'operatore con la sigla 'GIGLIO'; ovviamente le stesso effetto si può avere mettendo una condizione sulla banda interessata.

 

GetDatasetFilter(Nome dataset)

Torna l'attuale filtro di un dataset.

 

DateTimeODuration(data/ora)

 

Converte una durata di tipo data_ora in una stringa.

Esempio: stampare quanti giorni fa è stata inserita una prestazione DATETIMETODURATION(datediff(QryRigheGrid.DATA_PREST, PRINTDATE))

 

HourStODuration(Durata)

Converte una durata in una stringa.

Esempio: la durata di una ricerca su righe timesheet (prestazioni) dev'essere stampata in formatto 'leggibile': HOURSTODURATION(qryGeneric.DURATA)