Riferimento Lingua del Tivoli Service Desk 6.0 Developer's Toolkit Script
Ritorna alla pagina principale
------------------------------------------------------------------------
Restituisce una handle alla finestra del desktop. Questo valore è
permanente durante la sessione corrente. Tuttavia, questo valore non
viene memorizzato in modo permanente.
Al successivo riavvio del programma, questa costante avrà un nuovo valore.
FUNCTION $Desktop: WINDOW;
Avvertenza: In OS/2, esistono messaggi validi che è possibile inviare al desktop
per sospendere l'elaborazione.
Ad esempio, inviando $MsgClose al desktop viene sospesa l'esecuzione
del programma. Questo comportamento viene
controllato dal sistema operativo.
$Desktop è una costante di sistema predefinita che contiene l'handle per
il desktop OS/2 o per il desktop Windows.
Viene spesso specificata
come costante padre nelle istruzioni delle caselle di dialogo e delle finestre.
KNOWLEDGEBASE Desktop;
ROUTINES
PROCEDURE Example;
PRIVATE
ROUTINES
(* Create a scroll window parented by the desktop with
default event processing *)
PROCEDURE Example IS
VARIABLES
whdl: WINDOW;
ACTIONS
WinCreateScrollWindow($Desktop, (*Window is a child of
OS/2 desktop *)
whdl, (* return handle
of new window *)
$NullHandler, (* Default event
processing *)
5, 5, 80, 20, (* Window location
and size *)
'Example', (* Window title *)
'', (* Use default font
0, (* Point size is
ignored for default *)
BitOr( $WinTitle, $WinBorder, $WinSysMenu ));
WinWait(whdl);
END;
------------------------------------------------------------------------
Indica il tasto premuto dall'utente quando si verifica un evento $MsgChar.
Script definisce diverse costanti per tasti speciali come i tasti di comando del cursore,
i tasti modificati
(cioè, i tasti premuti in combinazione con altri, come Control o Alt), ecc.
Nota: Per informazioni consultare la pagina Messaggi TSD Script.
EVENT MyEvent IS
ACTIONS
WHEN $Event IS $MsgChar THEN
WHEN $KeyCode IS $KeyUpArrow THEN
MoveUp;
ELSWHEN $KeyDownArrow THEN
MoveDown;
ELSWHEN $KeyLeftArrow THEN
MoveLeft;
ELSWHEN $KeyRightArrow THEN
MoveRight;
END;
END;
Consultare anche i Codici tasto.
------------------------------------------------------------------------
Crea una casella di dialogo modale da un file di specifica della casella di dialogo. Una casella di dialogo modale è posseduta dalla finestra principale dell'applicazione.
Una chiamata inviata a una casella di dialogo modale non viene restituita fino a quando la casella di dialogo non viene distrutta. Se il padre non è il desktop e il proprietario
non è specificato, la finestra padre viene disabilitata. Quando una casella di dialogo modale è attiva, l'utente finale
può non interagire con la sua
finestra padre o con una delle sua finestre figlio.
FUNCTION DlgBox(VAL parent: WINDOW, VAL dialogFile: STRING,
VAL EventHandler: EVENT,
REF returnRec: RECORD of ANY): INTEGER;
Avvertenza: Non utilizzare DlgBox mentre si elabora un messaggio $MsgDDEInitiate. In caso contrario,
$MsgDDEInitiate invia un messaggio alle applicazioni e blocca la coda messaggi fino a quando non
viene
restituita una risposta.
Intanto, l'istruzione DlgBox avvia un handler degli eventi anch'esso in attesa di risposta dalla coda messaggi.
DlgBox impedisce alle altre applicazioni di inviare messaggi alla coda messaggi. Ciò provoca uno stallo,
che blocca effettivamente l'interfaccia dell'utente.
Nome dell'argomento | Descrizione |
dialogFile | Il nome file del file di specifica della casella di dialogo. Viene effettuata la seguente
inquiry: 1. Se il file dispone di una qualsiasi directory esplicita specificata, essa
è l'unico luogo dove viene effettuata la inquiry. |
Se è impossibile trovare il file utilizzando questa strategia, DlgBox restituisce un
messaggio di errore che indica che il file non è stato trovato.
Facoltativamente, è possibile specificare il nome della casella di dialogo da visualizzare. Il nome del modulo è specificato nel formato: fileName[formName].
Un handler degli eventi che elabora gli eventi
creati dalla casella di dialogo o dalla finestra. Se non è necessaria alcuna elaborazione di evento,
è possibile utilizzare la parola chiave $NullHandler. Valore di ritorno returnRec. Se l'utente accetta la casella di dialogo, i dati
contenuti nella casella di dialogo vengono assegnati a questo record. Questa assegnazione si basa su comandi che hanno un nome comando che
corrisponde a un nome voce nella definizione del record. Se la finestra della casella di dialogo viene distrutta utilizzando altri metodi, il valore rimane
immutato. Se è presente un handler degli eventi, è necessario che questo record sia dello stesso tipo del parametro dei dati di istanza per l'handler degli eventi.
Primo messaggio ricevuto
Quando viene creata una casella di dialogo, vengono ricevuti i seguenti messaggi
nell'ordine mostrato:
* $MsgEnterField colloca il cursore sul primo controllo definito
nell'ordine del separatore.
* $MsgInitialize inizializza i controlli che contengono i dati. Viene ricevuto
un messaggio $MsgInitialize separato
per ogni controllo con i dati nella casella di dialogo.
* $MsgCreate crea la reale casella di dialogo.
Eliminazione spazio bianco
Lo spazio bianco viene eliminato dal controllo di una casella di dialogo se tutti gli spazi nel controllo sono vuoti. E' possibile che si verifichi ciò se
l'utente immette una stringa di spazi vuoti nel controllo o se il file di specifica della casella di dialogo contiene una stringa vuota
per il controllo. In entrambi i casi, se viene richiesto il valore del controllo vuoto, viene restituito $Unknown.
Per creare una casella di dialogo modale, utilizzare l'istruzione DlgBox. Una casella di dialogo modale è posseduta dalla
finestra principale dell'applicazione. Una chiamata inviata a una casella di dialogo modale non viene restituita fino a quando la casella di dialogo non viene
distrutta. Se il padre non è il desktop e il proprietario non è specificato, la finestra padre viene disabilitata.
Quando una casella di dialogo modale è attiva, l'utente finale
può non interagire con la sua finestra padre
o con una delle finestre figlio.
Per creare una casella di dialogo non modale, utilizzare l'istruzione DlgCreate. Una chiamata inviata a
una casella di dialogo non modale viene restituita immediatamente. La finestra esiste fino a quando non viene esplicitamente distrutta.
La casella di dialogo fornisce un modulo per l'immissione dei dati dell'utente. Diverse caselle di testo e controlli vengono creati dal
file di specifica della casella di dialogo. Ogni casella di testo fa riferimento a un campo database e ha un nome univoco. Una o più
caselle di testo possono essere collegate a campi di dati di istanza per la casella di dialogo. Le caselle di testo della casella di dialogo sono collegate
ai campi di dati di istanza con lo stesso nome.
Quando una casella di testo della casella di dialogo viene aggiornata dall'utente o dall'applicazione,
si aggiorna il campo di dati di istanza collegato.
Il sistema esegue una vasta gamma di conversioni del tipo che forzano la trasformazione dei dati della casella di dialogo nello stesso tipo dei dati di istanza.
Se è presente un handler degli eventi, all'applicazione vengono notificate le azioni dell'utente e viene fornita l'opportunità di rispondere
alle azioni o modificarle.
A meno che diversamente annotato, i primi due parametri evento di tutti i messaggi della casella di dialogo sono:
* Il parametro evento uno (numero intero) è l'ID del comando selezionato. E' possibile utilizzare l'alias $FieldID per accedervi.
* Il parametro evento due (stringa) è il nome del comando selezionato. E' possibile utilizzare l'alias $FieldName per accedervi.
Per un elenco di messaggi che le caselle di dialogo possono ricevere, consultare "Messaggi ricevibili della casella di dialogo" in questo manuale.
KNOWLEDGEBASE DlgExample;
TYPES
DlgData IS RECORD
sampleField: INTEGER;
END;
ROUTINES
PROCEDURE DialogExample;
PRIVATE
ROUTINES
EVENT DlgEvent(REF fields: DlgData) IS
ACTIONS
WHEN $Event IS $MsgCreate THEN
NOTHING; (* Sent once when dialog box is created *)
(* Has pseudo parameters $FormFile, and $FormName *)
ELSWHEN $MsgDestroy THEN
NOTHING; (* Sent once when dialog box is about to be destroyed *)
ELSWHEN $MsgHelp THEN
NOTHING; (* Sent when the help key or the help button*)(* is pressed and there is no help defined *)
(* for the current field, or the form *)
ELSWHEN $MsgEnterField THEN
NOTHING; (* Sent each time a new field becomes the *)
(* active field. The action may be refused*)
(* by returning 0 *)
ELSWHEN $MsgExitField THEN
NOTHING; (* Sent each time a field is about to *)
(* become inactive *)
(* The action may be refused by returning 0 *)
ELSWHEN $MsgAccept THEN
NOTHING; (* Sent when the user accepts the dialog
(* box. The accept action may be refused *)
(* by returning 0 *)
ELSWHEN $MsgCancel THEN
NOTHING; (* Sent when the user cancels the dialog box.*)(* The cancel action may be refused by *)
(* returning 0 *)
ELSWHEN $MsgSelect THEN
NOTHING;(* Sent when a change in a field value is *)
(* detected. *)
(* Changes made by the user in multiline
(* edit and entry fields are detected when*)(* the field is exited. Other changes are*)
(* detected immediately. *)
(* Returning 0 refuses the change. *)
(* The instance data is updated to
(* the new field *)
(* value. Event parameter three has the old(* field value, and Event parameter four*)
(* has the new field value *)
ELSWHEN $MsgMandField THEN
NOTHING; (* Sent when the user accepts the dialog box(* and a mandatory field does not have a*)
(* value. The system default action is to*)
(* display a message, and abort *)
(* the accept action. If the event handler*)
(* does not return 1 (the default) the *)
(* message is not displayed. If 0 is*)
(* returned the accept action is *)
(* processed and a $MsgAccept is sent *)
ELSWHEN $MsgUser THEN
NOTHING; (* Any message defined by the application *)
END;
END (* Dlg Event *);
PROCEDURE DialogExample IS
VARIABLES
dlghdl: WINDOW;
fields: DLGDATA;
ACTIONS
DlgBox ($Desktop,'example[dialog1]',
DlgEvent{fields},fields);
END (* dialog box Example *);
Codice di ritorno | Descrizione |
1 | Completamento riuscito. |
0 | Annullamento da parte dell'utente. L'utente ha chiuso la finestra o ha annullato l'operazione. Solitamente tale operazione si esegue premendo il tasto Esc o il tasto Canc o chiudendo la finestra dal menu di sistema. |
-1 | L'handle della finestra non si riferisce a una finestra valida. E' possibile che la finestra non esista più o che la finestra non supporti il comando. |
-2 | Valore sconosciuto |
-3 | Memoria insufficiente |
-4 | Nessuna creazione. Il sistema operativo non è stato in grado di creare l'oggetto richiesto. Una possibile causa è che l'handle della finestra padre fa riferimento a una finestra che non esiste più. |
-7 | Il controllo denominato di una casella di dialogo non può essere trovato nella casella di dialogo a cui l'handle della finestra fa riferimento. |
-8 | Il comando richiesto della casella di dialogo non può essere eseguito sul tipo di controllo denominato. |
-10 | La chiamata ha avuto esito negativo al livello del sistema operativo. Questo può essere causato da una configurazione non corretta o da risorse inadeguate. |
-12 | L'istruzione SendMessage o PostMessage è stata richiamata con un messaggio non supportato dalle istruzioni NETx. Il messaggio deve essere uno dei messaggi $MsgNetx supportati o un messaggio $MsgUser + n definito dall'utente specificatamente definito per essere utilizzato insieme con le istruzioni NETx. |
Per informazioni sulla creazione dei file di specifica della casella di dialogo, consultare il Manuale per la progettazione d'interfaccia Tivoli Service Desk 6.0 Developer's Toolkit.
------------------------------------------------------------------------
Crea una casella di dialogo non modale da un file di specifica della casella di dialogo.
FUNCTION DlgCreate(VAL parent: WINDOW, REF whdlDialog: WINDOW,
VAL dialogFile: STRING,
VAL EventFunction: EVENT): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlParent | Questo parametro specifica la finestra padre della casella di dialogo. |
whdlDialog | L'handle della nuova finestra viene restituito in questo parametro. In caso di errore, la variabile viene impostata su $Unknown. |
dialogFile | Il nome file del file di specifica della casella di dialogo. Viene effettuata la seguente
inquiry: 1. Se il file dispone di una qualsiasi directory esplicita specificata, essa è l'unico luogo dove viene effettuata la inquiry. 2. Ricerca le directory esplicitamente specificate sulla riga comandi. 3. Ricerca la directory correntemente attiva. 4. Ricerca la directory in cui è ubicato Script interpreter. 5. Ricerca le directory specificate nella variabile di ambiente SAIPATH. 6. (Solo OS/2) Ricerca le directory specificate nella variabile di ambiente DPATH. 7. Ricerca le directory specificate nella variabile di ambiente PATH. Se è impossibile trovare il file utilizzando questa strategia, DlgBox restituisce un messaggio di errore che indica che il file non è stato trovato. Facoltativamente, è possibile specificare il nome della casella di dialogo da visualizzare. Il nome del modulo è specificato nel formato: fileName[formName]. |
EventFunction | Un handler degli eventi che elabora gli eventi creati dalla casella di dialogo o dalla finestra. Se non viene richiesta alcuna elaborazione eventi, può essere utilizzata la parola chiave $NullHandler. |
Quando viene creata una casella di dialogo, vengono ricevuti i seguenti messaggi nell'ordine mostrato:
1. $MsgEnterField colloca il cursore sul primo controllo definito nell'ordine del separatore.
2. $MsgInitialize inizializza i controlli che contengono i dati. Viene ricevuto
un messaggio $MsgInitialize separato
per ogni controllo con i dati nella casella di dialogo.
3. $MsgCreate crea la reale casella di dialogo.
Per creare una casella di dialogo modale, utilizzare l'istruzione DlgBox. Una casella di dialogo
modale è posseduta dalla
finestra principale dell'applicazione. Una chiamata inviata a una casella di dialogo modale non viene restituita fino a quando la casella di dialogo non viene
distrutta. Se il padre non è il desktop e il proprietario non è specificato, la finestra padre viene disabilitata.
Quando una casella di dialogo modale è attiva, l'utente finale
può non interagire con la sua finestra padre
o con una delle finestre figlio.
Per creare una casella di dialogo non modale, utilizzare l'istruzione DlgCreate. Una chiamata inviata a
una casella di dialogo non modale viene restituita immediatamente. La finestra esiste fino a quando non viene esplicitamente distrutta.
La casella di dialogo fornisce un modulo per l'immissione dei dati dell'utente. Diversi controlli, come le caselle di testo, vengono
definiti nel file di specifica della casella di dialogo. Ogni controllo ha un nome univoco. Uno o più controlli
possono essere
collegati a campi del database. Il database fornisce i dati di istanza per la casella di dialogo. I nomi
.df dei
controlli collegati devono essere uguali ai nomi dei campi dei dati di istanza.
Ogni volta che un controllo della casella di dialogo viene aggiornato dall'utente o dall'applicazione, si
aggiorna il campo dei dati di istanza collegato.
Il sistema esegue una gamma di conversioni del tipo che forzano la trasformazione dei dati della casella di dialogo
nello stesso tipo dei dati
di istanza. Se è presente un handler degli eventi, all'applicazione vengono notificate le azioni dell'utente e le viene fornita l'opportunità
di rispondere ad esse e modificarle.
Lo spazio bianco viene eliminato dal controllo di una casella di dialogo se tutti gli spazi nel controllo sono vuoti. E' possibile che si verifichi ciò se
viene immessa una stringa di spazi vuoti nel controllo o se il file di specifica della casella di dialogo
contiene una stringa vuota per il controllo.
In entrambi i casi, se viene richiesto il valore del controllo vuoto, viene restituito $Unknown.
A meno che diversamente annotato, i primi due parametri evento di tutti i messaggi della casella di dialogo sono:
Per ulteriori informazioni sulla creazione dei file di specifica della casella di dialogo, consultare il
Manuale per la progettazione d'interfaccia Tivoli Service Desk 6.0 Developer's Toolkit.
------------------------------------------------------------------------
Carica un sottomodulo da un file di modulo e lo visualizza nel contesto di un modulo della finestra di dialogo esistente.
FUNCTION DlgCreateSubForm(VAL whdl:WINDOW,
REF SubFormHandle: WINDOW,
VAL formSpec: STRING,
VAL EventHandler: EVENT,
VAL xPos: INTEGER,
VAL yPos: INTEGER
): INTEGER;
Note argomenti | Descrizione nome argomento |
EventFunction | Un handler degli eventi che elabora gli eventi creati dalla casella di dialogo o dalla finestra. Se non viene richiesta alcuna elaborazione eventi, può essere utilizzata la parola chiave $NullHandler. |
EventHandler | Un handler degli eventi che elabora gli eventi creati da un nuovo sottomodulo. La parola chiave $NullHandler può essere utilizzata se non è richiesta l'elaborazione di alcun evento. |
formSpec | La specifica del modulo per il sottomodulo nella forma "FILE[FORM_NAME]". |
SubFormHandle | In questo parametro viene restituita l'handle del nuovo sottomodulo. In caso di errore la variabile è impostata su $Unknown. |
whdl | Il modulo della finestra di dialogo padre per il nuovo sotto modulo |
xPos | La posizione x utilizzata nell'angolo in alto a sinistra del nuovo sottomodulo. Questa coordinata si riferisce all'angolo in alto a sinistra del modulo della finestra di dialogo padre. |
yPos | La posizione y utilizzata nell'angolo in alto a sinistra del nuovo sottomodulo. Questa coordinata si riferisce all'angolo in alto a sinistra del modulo della finestra di dialogo padre. |
WHEN $Event IS $MsgCreate THEN
DlgCreateSubForm($Handle, instanceData.theSubForm, 'screens[theSubForm]', SubFormHandler, 3, 50);
END;
Per ulteriori informazioni sulla creazione dei file di specifica della casella di dialogo, consultare il Manuale per la progettazione d'interfaccia Tivoli Service Desk 6.0 Developer's Toolkit.
------------------------------------------------------------------------
Rimuove una pagina esistente da un blocco appunti su un modulo esistente.
FUNCTION DlgDeletePage ( VAL PARENT : WINDOW,
VAL NOTEBOOKID : STRING,
VAL PAGEID : STRING ) : INTEGER;
Note argomenti | Descrizione nome argomento |
Parent | L'handle della finestra per il modulo che contiene il blocco appunti. |
NotebookID | Il nome ID del blocco appunti (dalla specifica .df) |
PageID | Il nome ID della pagina da rimuovere (dalla specifica .df) |
KNOWLEDGEBASE dlgpage;
ROUTINES
PROCEDURE Main;
(* ***** PRIVATE ***** *)
PRIVATE
VARIABLES
(* Global Variable to hold the Window handle of the dialog box *)
mainWindow : WINDOW;
ROUTINES
PROCEDURE Main IS
VARIABLES
ACTIONS
(* Create a dialog using the form PAGE_MAIN from dlgpage.df *)
(* PAGE_MAIN has a subform with notebook PAGE_NOTEBOOK as it's form *)
(* PAGE_NOTEBOOK currently has two tabs *)
DlgCreate($Desktop, mainWindow, 'dlgpage[PAGE_MAIN]', $NullHandler);
(* Remove the second page from the notebook. *)
(* This page has the ID FORM_TAB2 *)
DlgDeletePage(mainWindow, 'PAGE_NOTEBOOK', 'FORM_TAB2');
WinWait(mainWindow);
END;
------------------------------------------------------------------------
Richiede il valore di un controllo della casella di dialogo.
FUNCTION DlgFieldValue(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
REF fieldValue: ANY): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. |
fieldValue | Restituisce il valore del controllo richiesto. I dati vengono convertiti nel tipo del parametro e il valore risultante viene assegnato al parametro. Alcune conversioni non producono risultati significativi. Se il controllo è un controllo SQLManage o una casella di elenco, il parametro aggiuntivo può essere un record o un elenco di numeri interi. L'azione viene eseguita controllo dopo controllo per ogni controllo del record. Se il controllo è in grado di eseguire più selezioni, come una casella di elenco e una tabella, e il parametro aggiuntivo è una variabile singola, viene restituita la prima voce. Vengono restituite tutte le voci se si tratta di un elenco di variabili. |
Lo spazio bianco viene eliminato dal controllo di una casella di dialogo se tutti gli spazi nel controllo sono vuoti. E' possibile che si verifichi ciò se
viene immessa una stringa di spazi vuoti nel controllo o se il file di specifica della casella di dialogo
contiene una stringa vuota per il comando. In entrambi i casi,
se è richiesto il valore del controllo vuoto, viene restituito $Unknown.
KNOWLEDGEBASE DlgField;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
END;
SQLDATA IS RECORD
firstName: STRING;
lastName: STRING;
END;
(* ******* PRIVATE ******** *)
PRIVATE
ROUTINES
(* ******** dialog box EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
VARIABLES
names: SQLDATA;
ACTIONS
(* All dialog box messages have pseudo parameters
$FieldID, *)
(* and $FieldName *)
WHEN $Event IS $MsgSelect THEN
IF $FieldName = 'insertButton' THEN
DlgFieldValue ( $Handle, 'sql_data', names );
IF DlgBox( $Desktop,'addDlg', $NullHandler{names},
names ) > 0
THEN
DlgListBoxInsert( $Handle, 'namesTable', names );
SQLInsert( 'names', names );
END;
END;
END;
END;
PROCEDURE DialogExample IS
VARIABLES
fields: DLGDATA;
ACTIONS
DlgBox( $Desktop,'example[dialog1]', DlgEvent{ fields },fields );
END;
------------------------------------------------------------------------
Richiede il testo corrente di un pulsante.
FUNCTION DlgGetButtonText (VAL whdlDialog: WINDOW,
VAL fieldName: String,
REF buttonText STRING): Integer;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra di una casella di dialogo. |
FieldName | Il nome controllo del pulsante di cui è richiesto il testo. |
ButtonText | Il testo restituito per il pulsante. |
KNOWLEDGEBASE GetButton;
TYPES
ROUTINES
PROCEDURE Main;
PRIVATE
ROUTINES
PROCEDURE Main IS
VARIABLES
handle : WINDOW;
text : STRING;
ACTIONS
DlgCreate($Desktop,
handle,
'sample.dfc[sample]',
$NullHandler);
DlgGetButtonText(handle, 'test_button', text);
WinMessageBox(handle, 'Button Text', $MBOK,
text);
WinWait(handle);
END;
------------------------------------------------------------------------
Richiama il testo selezionato da una casella di testo in una casella di dialogo.
FUNCTION DlgGetSelectedText(REF whdlDialog: WINDOW, REF fieldName: STRING,
REF selectedText: STRING): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. |
selectedText | In questo argomento viene restituito il testo selezionato di una casella di testo. Se non è stato selezionato nessun testo, viene restituita una stringa di lunghezza 0. In caso di errore, viene restituita una stringa sconosciuta. |
KNOWLEDGEBASE dlgform;
ROUTINES
PROCEDURE Main;
(* ***** PRIVATE ***** *)
PRIVATE
VARIABLES
(* Global Variable to hold the Window handle of the dialog box *)
mainWindow : WINDOW;
ROUTINES
EVENT MainEvent is FORWARD;
PROCEDURE Main IS
ACTIONS
(* Create the dialog box using FORM_DLG from dlgform.df *)
(* FORM_DLG has one EntryField with id CONTROl_TEXT and *)
(* a button with the id BUTTON_TEXT *)
DlgCreate($Desktop, mainWindow, 'dlgform[FORM_DLG]', MainEvent);
WinWait(mainWindow);
END;
EVENT MainEvent IS
VARIABLES
selString : STRING;
ACTIONS
(* When the button is pressed, the selected text from the entryfield *)
(* is displayed in a messagebox *)
WHEN $Event IS $MsgSelect THEN
IF $fieldName = 'BUTTON_TEXT' THEN
DlgGetSelectedText(mainWindow, 'CONTROL_TEXT', sel String);
WinMessageBox(mainWindow, 'Selected Text', $MBOK, selString);
END;
END;
END;
------------------------------------------------------------------------
Inserisce una nuova pagina da un file .dfc in un blocco appunti su un modulo esistente. L'handler degli eventi esistente e i dati di istanza si applicano al nuovo modulo.
FUNCTION DlgInsertPage (VAL FORM : WINDOW
VAL NotebookId : STRING
VAL PageId : STRING
VAL FormSpec : STRING
VAL TabName : STRING
VAL Position : INTEGER
): INTEGER;
Note argomenti | Descrizione nome argomento |
Form | Il modulo in cui viene inserita la nuova pagina. |
NotebookId | L'ID del blocco appunti dove viene inserita la pagina. |
PageId | L'ID della pagina da inserire. |
FormSpec | La specifica del modulo per il sottomodulo nella forma "FILE[FORM_NAME]'. |
TabName | Il testo del separatore della pagina da inserire. |
Position | La posizione, tra gli altri separatori, del separatore da inserire. |
KNOWLEDGEBASE dlgpage;
ROUTINES
PROCEDURE Main;
(* ***** PRIVATE ***** *)
PRIVATE
VARIABLES
(* Global Variable to hold the Window handle of the dialog box *)
mainWindow : WINDOW;
ROUTINES
PROCEDURE Main IS
VARIABLES
ACTIONS
(* Create a dialog using the form PAGE_MAIN from dlgpage.df *)
(* PAGE_MAIN has a subform with notebook PAGE_NOTEBOOK as it's form *)
(* PAGE_NOTEBOOK currently has two tabs *)
DlgCreate($Desktop, mainWindow, 'dlgpage[PAGE_MAIN]', $NullHandler);
(* Insert the form FORM_TAB3 from dlgpage.df into the notebook specified *)
(* with the id PAGE_NOTEBOOK after the last page. The tab will have the *)
(* id 'Tab 3' *)
DlgInsertPage(mainWindow, 'PAGE_NOTEBOOK', '', 'dlgpage[FORM_TAB3]', 'Tab 3', $After);
WinWait(mainWindow);
END;
------------------------------------------------------------------------
Inserisce una stringa, nella posizione del cursore, in una casella di testo, casella di elenco o casella combinata.
FUNCTION DlgInsertString(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL insertString: STRING): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso dall'interno di un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. |
insertString | Una stringa da inserire, nella posizione del cursore, nel controllo. Il testo selezionato viene sostituito dal testo inserito. |
Il testo selezionato viene sostituito dal testo inserito.
KNOWLEDGEBASE DlgIns_text;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
END;
(* ******* PRIVATE ******** *)
PRIVATE
ROUTINES
(* ******** dialog box EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
VARIABLES
insertString: STRING;
ACTIONS
(* All dialog box messages have pseudo parameters $FieldID, *)
(* and $FieldName *)
WHEN $Event IS $MsgChar THEN
WHEN $KeyCode IS $KeyFn2 THEN
(* Look for function key 2 *)
(* Prompt user for text to insert *)
IF WinEditField( $Desktop, insertString, 0, 0, 30,
'Enter insert text',
$WinAutoPos + $WinBorder
+ $WinTitle ) > 0
THEN
(* Field must be an MultiLineEditor, Entry Field, or ComboBox *)
DlgInsertString( $Handle, 'text_field', insertString );
END;
END;
END;
END;
PROCEDURE DialogExample IS
VARIABLES
fields: DLGDATA;
ACTIONS
DlgBox( $Desktop,'example[dialog1]', DlgEvent{ fields },fields );
END;
------------------------------------------------------------------------
Consente di chiedere se un controllo della finestra di dialogo è abilitato o disabilitato.
FUNCTION DlgIsItemEnabled (VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
REF enabledState: BOOLEAN):
Integer;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo |
fieldName | Il nome del controllo da testare (abilitato o disabilitato). |
enabledState | TRUE se il comando è abilitato, FALSE se è disabilitato. |
KNOWLEDGEBASE DlgEnabl;
ROUTINES
PROCEDURE Main;
PRIVATE
ROUTINES
PROCEDURE Main IS
VARIABLES
Handle : WINDOW;
enabled : BOOLEAN;
ACTIONS
DlgCreate($Desktop,
Handle,
'dlgenabl[sample]',
$NullHandler);
(* enable button, check button status, display
result *)
DlgSetEnabled(Handle, 'test_button', TRUE);
DlgIsItemEnabled(Handle, 'test_button',
enabled);
WinMessageBox(Handle, 'Button Status', $MBOK,
enabled);
(* disable button, check button status, display
result *)
DlgSetEnabled(Handle, 'test_button', FALSE);
DlgIsItemEnabled(Handle, 'test_button',
enabled);
WinMessageBox(Handle, 'Button Status', $MBOK,
enabled);
WinWait(Handle);
END;
------------------------------------------------------------------------
Elimina tutti i valori da ogni controllo tabella, SQLManage o casella di testo.
FUNCTION DlgListBoxClear(VAL whdlDialog: WINDOW,
VAL fieldName: STRING): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Un elenco di nomi controllo nella casella di dialogo indirizzata. E' possibile specificare il nome controllo in Progettazione di interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. Il comando viene eseguito per ogni nome controllo nell'elenco. Viene restituito il numero dei controlli elaborati. Se si verifica un errore, l'elaborazione si arresta. Se l'errore si verifica durante l'elaborazione del primo controllo, il codice di errore viene restituito dall'istruzione. |
Se è selezionato un valore quando si ripulisce la casella di elenco, viene inviato un $MsgSelect (o $MsgInitialize). Poiché il valore selezionato
non esiste più, rifiutare questo messaggio non ha alcun effetto.
KNOWLEDGEBASE dlglist;
TYPES
FIELDREC IS RECORD
test_list_box: STRING;
END;
ROUTINES
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
itemList IS { 'new item 1', 'new item 2', 'new item 3' }: LIST OF STRING;
ROUTINES
(* ******** dialog box EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
VARIABLES
index: INTEGER;
listEntry: STRING;
ACTIONS
WHEN $Event IS $MsgCreate THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'Init value'
ELSWHEN $MsgInitialize THEN
WinMessageBox( $Handle, 'Initialize message', $MBYesNo,
'Old value = ' & $EventParm( 3, STRING ) &
'New value = ' & $EventParm( 4, STRING ));
ELSWHEN $MsgSelect THEN
WHEN $FieldName IS 'but_lb_clear' THEN
DlgListBoxClear( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_insert' THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'new item' );
DlgListBoxInsert( $Handle, 'test_list_box',
itemList );
ELSWHEN 'but_lb_delete' THEN
DlgListBoxDelete( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_update' THEN
DlgFieldValue( $Handle, 'test_list_box',
listEntry );
WinEditField( $Desktop, listEntry, 0, 0, 30, 'New
value?',
$WinAutoPos + $WinBorder + $WinTitle );
DlgListBoxUpdate( $Handle, 'test_list_box',
listEntry );
ELSWHEN 'but_lb_set_index' THEN
WinEditField( $Desktop, index, 0, 0, 30,
'New Index?',
$WinAutoPos + $WinBorder
+ $WinTitle );
DlgSetListBoxIndex( $Handle,
'test_list_box', index );
ELSWHEN 'but_lb_index' THEN
WinMessageBox( $Handle, 'Listbox index', $MBOK,
DlgListBoxIndex( $Handle,
'test_list_box' ) );
END;
END;
END;
PROCEDURE ExampleDialog IS
VARIABLES
whdlDialog: WINDOW;
result : INTEGER;
data: FIELDREC;
ACTIONS
result := DlgCreate( $Desktop, whdlDialog, 'dlglist', DlgEvent, {data});
IF result < 1 THEN
WinMessageBox( $Desktop, 'Error', $MBOK + $MBIconError,
'dialog box Open failed' & result );
END;
WinWait( whdlDialog );
END;
------------------------------------------------------------------------
Cancella l'elemento selezionato da ogni controllo tabella, SQLManage o casella di testo.
FUNCTION DlgListBoxDelete(VAL whdlDialog: WINDOW,
VAL fieldName: STRING): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. |
La cancellazione dell'elemento selezionato in una casella di elenco, provoca l'invio di un $MsgSelect (o $MsgInitialize)
con un valore di
$Unknown. Poiché il valore precedentemente selezionato non esiste più,
rifiutare questo messaggio non ha alcun effetto.
KNOWLEDGEBASE dlglist;
TYPES
FIELDREC IS RECORD
test_list_box: STRING;
END;
ROUTINES
EVENT DlgEvent( REF fields: FIELDREC );
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
itemList IS {'new item 1', 'new item 2', 'new item 3' }: LIST OF STRING;
ROUTINES
(* ******** dialog box EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
VARIABLES
index: INTEGER;
listEntry: STRING;
ACTIONS
WHEN $Event IS $MsgCreate THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'Init value' );
ELSWHEN $MsgInitialize THEN
WinMessageBox( $Handle, 'Initialize message', $MBYesNo,
'Old value = ' & $EventParm( 3, STRING )
& '' 'New value = '
& $EventParm( 4, STRING ));
ELSWHEN $MsgSelect THEN
WHEN $FieldName IS 'but_lb_clear' THEN
DlgListBoxClear( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_insert' THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'new item' );
DlgListBoxInsert( $Handle, 'test_list_box',
itemList );
ELSWHEN 'but_lb_delete' THEN
DlgListBoxDelete( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_update' THEN
DlgFieldValue( $Handle, 'test_list_box', listEntry );
WinEditField( $Desktop, listEntry, 0, 0, 30,
'New value?',
$WinAutoPos + $WinBorder + $WinTitle );
DlgListBoxUpdate( $Handle, 'test_list_box',
listEntry );
ELSWHEN 'but_lb_set_index' THEN
WinEditField( $Desktop, index, 0, 0, 30,
'New Index?', $WinAutoPos + $WinBorder
+ $WinTitle );
DlgSetListBoxIndex( $Handle, 'test_list_box', index );
ELSWHEN 'but_lb_index' THEN
WinMessageBox( $Handle, 'Listbox index', $MBOK,
DlgListBoxIndex( $Handle,
'test_list_box' ) );
END;
END;
END;
PROCEDURE ExampleDialog IS
VARIABLES
whdlDialog: WINDOW;
result : INTEGER;
data: FIELDREC
ACTIONS
result := DlgCreate( $Desktop, whdlDialog, 'dlglist',
DlgEvent, {data});
IF result < 1 THEN
WinMessageBox( $Desktop, 'Error', $MBOK + $MBIconError,
'dialog box Open failed' & result );
END;
WinWait( whdlDialog );
END;
------------------------------------------------------------------------
Richiede l'indice della voce selezionata di un controllo tabella, SQLManage o casella di elenco.
FUNCTION DlgListBoxIndex(VAL whdlDialog : WINDOW,
VAL fieldName : STRING
): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. |
KNOWLEDGEBASE dlglist;
TYPES
FIELDREC IS RECORD
test_list_box: STRING;
END;
ROUTINES
EVENT DlgEvent( REF fields: FIELDREC );
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
itemList IS { 'new item 1', 'new item 2', 'new item 3' }: LIST OF STRING;
ROUTINES
(* ******** dialog box EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
VARIABLES
index: INTEGER;
listEntry: STRING;
ACTIONS
WHEN $Event IS $MsgCreate THEN
DlgListBoxInsert( $Handle, 'test_list_box', 'Init value' );
ELSWHEN $MsgInitialize THEN
WinMessageBox( $Handle, 'Initialize message',
$MBYesNo, 'Old value' &
$EventParm( 3, STRING ) &
'' 'New value = ' &
$EventParm( 4, STRING ));
ELSWHEN $MsgSelect THEN
WHEN $FieldName IS 'but_lb_clear' THEN
DlgListBoxClear( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_insert' THEN
DlgListBoxInsert( $Handle, 'test_list_box', 'new item' );
DlgListBoxInsert( $Handle, 'test_list_box', itemList );
ELSWHEN 'but_lb_delete' THEN
DlgListBoxDelete( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_update' THEN
DlgFieldValue( $Handle, 'test_list_box',
listEntry );
WinEditField( $Desktop, listEntry, 0, 0, 30,'New value?',
$WinAutoPos + $WinBorder + $WinTitle );
DlgListBoxUpdate( $Handle, 'test_list_box', listEntry );
ELSWHEN 'but_lb_set_index' THEN
WinEditField( $Desktop, index, 0, 0, 30, 'New Index?',
$WinAutoPos + $WinBorder
+ $WinTitle );
DlgSetListBoxIndex( $Handle, 'test_list_box', index );
ELSWHEN 'but_lb_index' THEN
WinMessageBox( $Handle, 'Listbox index', $MBOK,
DlgListBoxIndex( $Handle, 'test_list_box' ) );
END;
END;
END;
PROCEDURE ExampleDialog IS
VARIABLES
whdlDialog: WINDOW;
result : INTEGER;
ACTIONS
result := DlgCreate( $Desktop, whdlDialog, 'dlglist',
DlgEvent );
IF result < 1 THEN
WinMessageBox( $Desktop, 'Error', $MBOK + $MBIconError,
'dialog box Open failed' & result );
END;
WinWait( whdlDialog );
END;
------------------------------------------------------------------------
Inserisce un valore in ogni controllo tabella, SQLManage o casella di testo.
FUNCTION DlgListBoxInsert(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL newValues: LIST OF ANY): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. |
newValue | Un valore o un elenco di valori da inserire in una casella di elenco. Ogni voce nell'elenco viene convertita in una stringa e inserita nella casella di elenco. L'inserimento comincia dopo la voce selezionata. Se non è selezionata nessuna voce, il nuovo valore viene inserito alla fine. E' possibile
specificare un attributo di ordinamento. Questo attributo sostituisce l'ubicazione dell'inserimento. OS/2 supporta sia l'ordinamento crescente sia quello decrescente. Windows supporta solo l'ordinamento crescente. Gli ordinamenti non sono supportati per i controlli tabella. Per i controlli tabella, questo parametro può essere un record o un elenco di stringhe. I nomi del campo record vengono messi in corrispondenza con i nomi del campo colonna. Se un nome del campo colonna non corrisponde a un nome del campo record, la colonna viene lasciata vuota. |
KNOWLEDGEBASE dlglist;
TYPES
FIELDREC IS RECORD
test_list_box: STRING;
END;
ROUTINES
EVENT DlgEvent( REF fields: FIELDREC );
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
itemList IS { 'new item 1', 'new item 2', 'new item 3' }: LIST OF STRING;
ROUTINES
(* ******** dialog box EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
VARIABLES
index: INTEGER;
listEntry: STRING;
ACTIONS
WHEN $Event IS $MsgCreate THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'Init value' );
ELSWHEN $MsgInitialize THEN
WinMessageBox( $Handle, 'Initialize message',
$MBYesNo, 'Old value = ' &
$EventParm( 3, STRING ) & ''
'New value = ' &
$EventParm( 4, STRING ));
ELSWHEN $MsgSelect THEN
WHEN $FieldName IS 'but_lb_clear' THEN
DlgListBoxClear( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_insert' THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'new item' );
DlgListBoxInsert( $Handle, 'test_list_box', itemList );
ELSWHEN 'but_lb_delete' THEN
DlgListBoxDelete( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_update' THEN
DlgFieldValue( $Handle, 'test_list_box',
listEntry );
WinEditField( $Desktop, listEntry, 0, 0, 30, 'New value?',
$WinAutoPos +
$WinBorder + $WinTitle );
DlgListBoxUpdate( $Handle, 'test_list_box',
listEntry );
ELSWHEN 'but_lb_set_index' THEN
WinEditField( $Desktop, index, 0, 0, 30,
'New Index?',
$WinAutoPos + $WinBorder +
$WinTitle);
DlgSetListBoxIndex( $Handle, 'test_list_box',
index );
ELSWHEN 'but_lb_index' THEN
WinMessageBox( $Handle, 'Listbox index', $MBOK,
DlgListBoxIndex( $Handle,
'test_list_box' ) );
END;
END;
END;
PROCEDURE ExampleDialog IS
VARIABLES
whdlDialog: WINDOW;
result : INTEGER;
ACTIONS
result := DlgCreate( $Desktop, whdlDialog, 'dlglist', DlgEvent );
IF result < 1 THEN
WinMessageBox( $Desktop, 'Error', $MBOK + $MBIconError,
'dialog box Open failed' & result );
END;
WinWait( whdlDialog );
END;
------------------------------------------------------------------------
Aggiorna il valore selezionato di un controllo tabella o un SQLManage.
FUNCTION DlgListBoxUpdate(VAL whdlDialog: WINDOW,
VAL fieldName: STRING, VAL
updateValue: ANY): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. |
updateValue | Il record selezionato o l'elenco di stringhe in un controllo tabella o SQLManage viene sostituito con il valore di questo parametro. I campi record vengono messi in corrispondenza con i nomi colonna. Ogni colonna non corrispondente a un campo record viene lasciata vuota. Se non è stato selezionato nessun record, viene restituito un errore Campo non trovato. |
KNOWLEDGEBASE dlglist;
TYPES
FIELDREC IS RECORD
test_list_box: STRING;
END;
ROUTINES
EVENT DlgEvent( REF fields: FIELDREC );
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
itemList IS { 'new item 1', 'new item 2', 'new item 3': LIST OF STRING;
ROUTINES
(* ******** dialog box EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
VARIABLES
index: INTEGER;
listEntry: STRING;
ACTIONS
WHEN $Event IS $MsgCreate THEN
DlgListBoxInsert( $Handle, 'test_list_box', 'Init value' );
ELSWHEN $MsgInitialize THEN
WinMessageBox( $Handle, 'Initialize message', $MBYesNo,
'Old value = ' & $EventParm( 3, STRING ) & ''
'New value = ' & $EventParm( 4, STRING ));
ELSWHEN $MsgSelect THEN
WHEN $FieldName IS 'but_lb_clear' THEN
DlgListBoxClear( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_insert' THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'new item' );
DlgListBoxInsert( $Handle, 'test_list_box', itemList );
ELSWHEN 'but_lb_delete' THEN
DlgListBoxDelete( $Handle, 'test_list_box' );
ELSWHEN 'but_lb_update' THEN
DlgFieldValue( $Handle, 'test_list_box', listEntry );
WinEditField( $Desktop, listEntry, 0, 0, 30,
'New value?',
$WinAutoPos + $WinBorder + $WinTitle );
DlgListBoxUpdate( $Handle, 'test_list_box',
listEntry );
ELSWHEN 'but_lb_set_index' THEN
WinEditField( $Desktop, index, 0, 0, 30,
'New Index?', $WinAutoPos
+ $WinBorder + $WinTitle );
DlgSetListBoxIndex( $Handle, 'test_list_box',
index );
ELSWHEN 'but_lb_index' THEN
WinMessageBox( $Handle, 'Listbox index', $MBOK,
DlgListBoxIndex( $Handle,
'test_list_box' ) );
END;
END;
END;
PROCEDURE ExampleDialog IS
VARIABLES
whdlDialog: WINDOW;
result : INTEGER;
ACTIONS
result := DlgCreate( $Desktop, whdlDialog, 'dlglist',
DlgEvent );
IF result < 1 THEN
WinMessageBox( $Desktop, 'Error', $MBOK + $MBIconError,
'dialog box Open failed' & result );
END;
WinWait( whdlDialog box );
END;
------------------------------------------------------------------------
Carica un modulo da un file .df nel controllo di un sottomodulo esistente. (Ogni modulo esistente viene sostituito.)
FUNCTION DlgLoadSubForm( VAL dialog : WINDOW,
VAL subform : STRING,
VAL resource : STRING, ) : INTEGER;
Note argomenti | Descrizione nome argomento |
subform | Il nome del controllo del sottomodulo in cui viene caricato il nuovo modulo. |
resource | Il riferimento della stringa di risorsa del modulo in formato standard. |
KNOWLEDGEBASE dlgsub;
ROUTINES
PROCEDURE Main;
(* ***** PRIVATE ***** *)
PRIVATE
VARIABLES
(*Global Variable to hold the Window handle of the window *) mainWindow : WINDOW;
ROUTINES
PROCEDURE Main IS
VARIABLES
ACTIONS
DlgCreate($Desktop, mainWindow, 'dlgsub[FORM_MAIN]', $NullHandler);
(* Load the form FORM_NEW from dlgsub.df into the subform control *)
(* CONTROL_SUBFORM on the current form *)
DlgLoadSubForm(mainWindow, 'CONTROL_SUBFORM', 'dlgsub[FORM_NEW]');
WinWait(mainWindow);
END;
------------------------------------------------------------------------
Richiede le colonne dichiarate di un controllo tabella o SQLManage.
FUNCTION DlgQueryColumnNames(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
REF columnNames LIST OF STRING): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. |
columnName | Un elenco di stringhe in cui vengono restituiti i nomi colonna dichiarati per il controllo tabella o SQLManage. I nomi colonna vengono restituiti nell'ordine in cui sono stati dichiarati. |
Come spiegato in questo esempio, WinWriteLN scrive l'intero elenco di stringhe in modo sequenziale.
KNOWLEDGEBASE DlgCols;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
END;
SQLDATA IS RECORD
firstName: STRING;
lastName: STRING;
END;
(* ******* PRIVATE *********)
PRIVATE
ROUTINES
(* ******** dialog box EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
VARIABLES
columnNames: LIST OF STRING;
whdl: WINDOW;
ACTIONS
(* All dialog box messages have pseudo parameters $FieldID,
and $FieldName *)
WHEN $Event IS $MsgCreate THEN
DlgQueryColumnNames( $Handle, 'sql_manage_field',
columnNames );
WinCreateScrollWindow($Desktop, whdl, $NullHandler,
0, 0, 30, 12,
Column Names', $TimesRoman, 12,
$WinBorder + $WinTitle +
WinResize + $WinMinMax +
$WinHScroll + $WinVScroll
+ $WinSysMenu + $WinAutoPos );
WinWriteLN( whdl, columnNames );
END;
END;
PROCEDURE DialogExample IS
VARIABLES
fields: DLGDATA;
ACTIONS
DlgBox( $Desktop,'example[dialog1]', DlgEvent{ fields },fields );
END;
------------------------------------------------------------------------
Richiede il numero di voci correntemente contenute in una casella di elenco, casella combinata, controllo tabella o SQLManage.
FUNCTION DlgQueryItemCount (VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
REF itemCount: INTEGER): Integer;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo. |
fieldName | Il nome campo del controllo al quale richiedere il conteggio delle voci. |
itemCount | Dopo che è stata effettuata la chiamata della funzione, itemCount conserva il numero di voci contenute dal controllo. |
Questa funzione opera solo con i controlli che contengono elenchi di dati (una casella di elenco, casella combinata, controllo tabella o SQLManage).
KNOWLEDGEBASE QueryCnt;
ROUTINES
PROCEDURE Main;
PRIVATE
ROUTINES
PROCEDURE Main IS
VARIABLES
Handle : WINDOW;
MyList : LIST OF STRING;
Count : INTEGER;
ACTIONS
DlgCreate($Desktop,
Handle,
'querycnt[sample]',
$NullHandler);
ListInsert(MyList, 'Item #1');
DlgListBoxInsert(Handle, 'list_box', MyList);
DlgQueryItemCount(Handle, 'list_box', Count);
WinMessageBox(Handle, 'DlgQueryItemCount', $MBOK,
Count & ' item(s).');
WinWait(Handle);
END;
------------------------------------------------------------------------
Richiede il contenuto di una data riga per una casella di dialogo, casella combinata o tabella.
FUNCTION DlgQueryRowData (VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL index: INTEGER,
REF rowData: ANY ) : INTEGER
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. |
index | L'indice della riga di cui sono desiderati i dati. |
rowData | Conserva il valore della riga richiesta. Per i controlli di tipo LISTBOX e COMBOBOX, questo parametro deve essere di tipo STRING. Per i controlli tabella e SQLManage, questo parametro deve essere di tipo RECORD. |
Questa funzione opera solo con controlli che conservano elenchi di dati (cioè una casella di elenco, casella combinata o tabella).
KNOWLEDGEBASE MCLB;
TYPES
TABLEREC IS RECORD
System : STRING;
Component : STRING;
Item : STRING;
Module : STRING;
END;
EVENT DlgEvent(REF form : FORMREC) IS
VARIABLES
rowdata : TABLEREC;
retval : INTEGER;
ACTIONS
WHEN $Event IS $MsgSelect THEN
IF $Fieldname = 'GetRow' THEN
-- Get row data for row number 5
retval := DlgQueryRowData($handle, 'TABLE1', 5, rowda ta);
IF (retval = 1) THEN
WinMessageBox($handle, 'Row Data&', $MBOK,
'System value for row 5 is ' &
rowdata.System);
END;
END;
END;
END;
------------------------------------------------------------------------
Sposta il cursore sul controllo specificato.
FUNCTION DlgSelectField(VAL whdlDialog: WINDOW,
VAL fieldName: STRING): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. |
Lo spostamento del cursore su un nuovo controllo crea un $MsgExitField e un $MsgEnterField.
L'handler degli eventi
della casella di dialogo può rifiutare o l'uno o l'altro messaggio e provocare l'esito negativo dell'operazione.
KNOWLEDGEBASE DlgSLCT;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
END;
(* ******* PRIVATE *********)
PRIVATE
ROUTINES
(* ******** dialog box EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
ACTIONS
(* All dialog box messages have pseudo parameters $FieldID, and $FieldName *)
WHEN $Event IS $MsgCreate THEN
(* Select initial field for cursor *)
DlgSelectField( $Handle, 'startField' );
END;
END;
PROCEDURE DialogExample IS
VARIABLES
fields: DLGDATA;
ACTIONS
DlgBox( $Desktop,'example[dialog1]', DlgEvent{ fields },fields );
END;
------------------------------------------------------------------------
Modifica l'etichetta su un pulsante.
FUNCTION DlgSetButtonText(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL ButtonText: STRING): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. |
ButtonText | La nuova etichetta del pulsante. Il controllo deve essere un pulsante di comando. |
KNOWLEDGEBASE DlgButton;
TYPES
DlgData IS RECORD
allowEdit: BOOLEAN;
sampleField: INTEGER;
END;
ROUTINES
PROCEDURE DialogExample;
PRIVATE
ROUTINES
EVENT DlgEvent(REF fields: DlgData) IS
ACTIONS
WHEN $Event IS $MsgCreate THEN
IF NOT fields.allowEdit THEN
DlgSetButtonText($Handle,'editButton','View');
(* SAMPLEFIELD must be a MultiLineEditor, entry field,or combo box *)
DlgSetReadonly($Handle,'SAMPLEFIELD',TRUE);
END;
END;
END (* Dlg Event *);
PROCEDURE DialogExample IS
VARIABLES
fields: DlgData;
ACTIONS
fields.allowEdit := FALSE;
DlgBox ($Desktop,'example[dialog1]',
DlgEvent{fields},fields);
END (* dialog box Example *);
------------------------------------------------------------------------
Imposta lo stato abilitato o disabilitato di un controllo.
FUNCTION DlgSetEnabled(VAL whdlDialog: WINDOW,
VAL fieldNames: LIST OF STRING [,
VAL newState: BOOLEAN ]): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE
del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. Il comando viene eseguito per ogni nome controllo nell'elenco. Viene restituito il numero dei controlli elaborati. L'elaborazione viene arrestata quando si verifica un errore. La variabile di sistema $DlgError è impostata sul codice di errore. Se si verifica un errore durante l'elaborazione del primo controllo, viene restituito il codice di errore dall'istruzione. |
newState | Il nuovo stato del controllo. Questo parametro è facoltativo. Se omesso, si presume TRUE. |
KNOWLEDGEBASE dlg_set;
TYPES
FIELDREC IS RECORD
field_entry: STRING;
field_radio: STRING;
field_slide: STRING;
field_list: STRING;
field_button: STRING;
field_check_box: STRING;
field_mle: STRING;
field_combo: STRING;
field_pattern: STRING;
test_list_box: STRING;
test_combo_box: STRING;
END;
ROUTINES
EVENT DlgEvent( REF fields: FIELDREC );
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
fieldList IS { 'attrib_field_entry',
'attrib_field_radio',
'attrib_field_slide',
'attrib_field_list',
'attrib_field_button',
'attrib_field_check_box',
'attrib_field_mle',
'attrib_field_combo',
'attrib_field_pattern'
}: LIST OF STRING;
textFieldList IS { 'attrib_field_entry',
'attrib_field_mle',
'attrib_field_combo',
'attrib_field_pattern'
}: LIST OF STRING;
ROUTINES
(* ******** dialog box EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
ACTIONS
WHEN $Event IS $MsgSelect THEN
WHEN $FieldName IS 'but_disabled_on' THEN
DlgSetEnabled( $Handle, fieldList, FALSE );
ELSWHEN 'but_disabled_off' THEN
DlgSetEnabled( $Handle, fieldList, TRUE );
ELSWHEN 'but_hidden_on' THEN
DlgSetHidden( $Handle, fieldList, TRUE );
ELSWHEN 'but_hidden_off' THEN
DlgSetHidden( $Handle, fieldList, FALSE );
ELSWHEN 'but_mandatory_on' THEN
DlgSetMandatory( $Handle, textFieldList, TRUE );
ELSWHEN 'but_mandatory_off' THEN
DlgSetMandatory( $Handle, textFieldList, FALSE );
ELSWHEN 'but_read_only_on' THEN
DlgSetReadOnly( $Handle, textFieldList, TRUE );
ELSWHEN 'but_read_only_off' THEN
DlgSetReadOnly( $Handle, textFieldList, FALSE );
END;
END;
END;
PROCEDURE ExampleDialog IS
VARIABLES
whdlDialog: WINDOW;
result : INTEGER;
ACTIONS
result := DlgCreate( $Desktop, whdlDialog, 'dlg_set',
DlgEvent );
IF result < 1 THEN
WinMessageBox( $Desktop, 'Error', $mbok +
$MBIconError,
'dialog box Open failed' & result );
END;
WinWait( whdlDialog box );
END;
------------------------------------------------------------------------
Imposta il valore di un controllo della casella di dialogo e di tutti i dati di istanza associati.
FUNCTION DlgSetFieldValue(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL newValue: ANY): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. |
newValue | Il controllo indirizzato è impostato sul valore del parametro: Se il controllo è una casella di spunta, un pulsante opzione o un dispositivo di scorrimento, il nuovo valore viene convertito in un numero intero e il controllo viene impostato sul valore risultante. Se la conversione non riesce, il risultato, generalmente, è zero. Per le caselle di spunta, zero non è contrassegnato. Tutti gli altri valori vengono contrassegnati. Per tutti gli altri tipi di controllo, il valore viene convertito in una stringa. Per le caselle di testo, le caselle combinate, le caselle di elenco e i messaggi, il controllo è impostato sulla nuova stringa. Per le caselle di elenco, viene effettuata nell'elenco la inquiry di una stringa corrispondente. Se si trova una corrispondenza, viene selezionata. I controlli tabella e SQLManage vengono ignorati. Se il controllo viene aggiornato con esito positivo ed esiste un campo dei dati di istanza collegato al controllo della casella di dialogo, i dati di istanza vengono aggiornati. L'impostazione di un valore campo, crea un messaggio di selezione per il campo. |
L'impostazione del valore di un controllo crea un $MsgSelect. Se si modifica il valore del controllo, viene creato $MsgInitialize.
Il $MsgSelect può essere rifiutato dall'handler degli eventi della casella di dialogo.
Lo spazio bianco viene eliminato dal controllo di una casella di dialogo se tutti gli spazi nel controllo sono vuoti. E' possibile che si verifichi ciò se
viene immessa una stringa di spazi vuoti nel controllo o se il file di specifica della casella di dialogo
contiene una
stringa vuota per il controllo. In entrambi i casi, se viene richiesto il valore del controllo vuoto, viene restituito $Unknown.
KNOWLEDGEBASE DlgSet_f;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
END;
(* ******* PRIVATE *********)
PRIVATE
ROUTINES
(* ******** dialog box EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
ACTIONS
(* All dialog box messages have pseudo parameters $FieldID,and $FieldName*)
WHEN $Event IS $MsgCreate THEN
(* Select initial field for cursor *)
DlgSetFieldValue( $Handle, 'messageField',
'New text' );
END;
END;
PROCEDURE DialogExample IS
VARIABLES
fields: DLGDATA;
ACTIONS
DlgBox( $Desktop,'example[dialog1]', DlgEvent{ fields },fields );
END;
------------------------------------------------------------------------
Imposta lo stato visibile o nascosto di un controllo.
FUNCTION DlgSetHidden(VAL whdlDialog: WINDOW,
VAL fieldNames: LIST OF STRING [,
VAL newState: BOOLEAN ]): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. Il comando viene eseguito per ogni nome controllo nell'elenco. Viene restituito il numero dei controlli elaborati. L'elaborazione viene arrestata quando si verifica un errore. La variabile di sistema $DlgError viene impostata sul codice di errore. Se si verifica un errore durante l'elaborazione del primo controllo, viene restituito il codice di errore dall'istruzione. |
newState | Il nuovo stato del controllo. Questo parametro è facoltativo. Se omesso, si presume TRUE. |
KNOWLEDGEBASE dlg_set;
TYPES
FIELDREC IS RECORD
field_entry: STRING;
field_radio: STRING;
field_slide: STRING;
field_list: STRING;
field_button: STRING;
field_check_box: STRING;
field_mle: STRING;
field_combo: STRING;
field_pattern: STRING;
test_list_box: STRING;
test_combo_box: STRING;
END;
ROUTINES
EVENT DlgEvent( REF fields: FIELDREC );
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
fieldList IS
{ 'attrib_field_entry',
'attrib_field_radio',
'attrib_field_slide',
'attrib_field_list',
'attrib_field_button',
'attrib_field_check_box',
'attrib_field_mle',
'attrib_field_combo',
'attrib_field_pattern'
}: LIST OF STRING;
textFieldList IS { 'attrib_field_entry',
'attrib_field_mle',
'attrib_field_combo',
'attrib_field_pattern'
}: LIST OF STRING;
ROUTINES
(* ******** dialog box EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
ACTIONS
WHEN $Event IS $MsgSelect THEN
WHEN $FieldName IS 'but_disabled_on' THEN
DlgSetEnabled( $Handle, fieldList, FALSE );
ELSWHEN 'but_disabled_off' THEN
DlgSetEnabled( $Handle, fieldList, TRUE );
ELSWHEN 'but_hidden_on' THEN
DlgSetHidden( $Handle, fieldList, TRUE );
ELSWHEN 'but_hidden_off' THEN
DlgSetHidden( $Handle, fieldList, FALSE );
ELSWHEN 'but_mandatory_on' THEN
DlgSetMandatory( $Handle, textFieldList, TRUE );
ELSWHEN 'but_mandatory_off' THEN
DlgSetMandatory( $Handle, textFieldList, FALSE );
ELSWHEN 'but_read_only_on' THEN
DlgSetReadOnly( $Handle, textFieldList, TRUE );
ELSWHEN 'but_read_only_off' THEN
DlgSetReadOnly( $Handle, textFieldList, FALSE );
END;
END;
END;
PROCEDURE ExampleDialog IS
VARIABLES
whdlDialog: WINDOW;
result : INTEGER;
ACTIONS
result := DlgCreate( $Desktop, whdlDialog, 'dlg_set',
DlgEvent );
IF result < 1 THEN
WinMessageBox( $Desktop, 'Error', $mbok + $MBIconError,
'dialog box Open failed' & result );
END;
WinWait( whdlDialog );
END;
------------------------------------------------------------------------
Seleziona una voce o delle voci in un controllo tabella o casella di elenco tramite l'indice o gli indici ad esse relativi.
FUNCTION DlgSetListBoxIndex(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL newIndex:INTEGER | INTEGER
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. |
newIndex | L'indice in base 1 della voce da selezionare. Viene restituito 0 se l'indice è fuori dall'intervallo. Vengono selezionate tutte le voci in un elenco se viene inoltrato un elenco di numeri interi e il controllo è in grado di effettuare più selezioni. |
L'impostazione dell'indice della casella di elenco su un nuovo valore provoca l'invio di $MsgSelect (o $MsgInitialize). Il messaggio viene inviato anche se
il valore per il nuovo indice è uguale a quello per l'indice precedente.
Nota: L'impostazione dell'indice su 0 deseleziona tutte le voci in una casella di elenco standard ma non in un controllo tabella.
DlgSetListBoxIndex($Handle,'USER_LIST',5);
------------------------------------------------------------------------
Imposta lo stato obbligatorio di un controllo.
FUNCTION DlgSetMandatory(VAL whdlDialog: WINDOW,
VAL fieldNames: LIST OF STRING,
VAL newState: BOOLEAN): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. Il comando viene eseguito per ogni nome controllo nell'elenco. Viene restituito il numero dei controlli elaborati. L'elaborazione viene arrestata quando si verifica un errore. La variabile di sistema $DlgError viene impostata sul codice di errore. Se si verifica un errore durante l'elaborazione del primo controllo, viene restituito il codice di errore dall'istruzione. |
newState | Il nuovo stato del controllo. Questo parametro è facoltativo. Se omesso, si presume TRUE. |
E' possibile utilizzare DlgSetMandatory per modificare lo stato obbligatorio del controllo di una casella di dialogo. Ad esempio, se un controllo
non è obbligatorio, tranne in alcune circostanze, è possibile utilizzare l'istruzione DlgSetMandatory
($Handle,'THAT_FIELD',TRUE);
nell'handler degli eventi della casella di dialogo per la casella di dialogo, per rendere il controllo obbligatorio.Il sistema casella di dialogo
Tivoli Service Desk Developer's Toolkit
non consente di accettare una casella di dialogo con campi obbligatori vuoti. Si riceve un messaggio di errore
e il cursore si trova sul primo controllo obbligatorio vuoto.
DlgSetMandatory ($Handle,'SOCIAL_SECURITY_NUMBER',TRUE);
------------------------------------------------------------------------
Imposta lo stato di sola lettura del controllo di una casella di dialogo.
FUNCTION DlgSetReadOnly(VAL whdlDialog: WINDOW, VAL
fieldNames: LIST OF STRING [,
VAL newState: BOOLEAN ]): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. Il comando viene eseguito per ogni nome controllo nell'elenco. Viene restituito il numero dei controlli elaborati. L'elaborazione viene arrestata quando si verifica un errore. La variabile di sistema $DlgError viene impostata sul codice di errore. Se si verifica un errore durante l'elaborazione del primo controllo, viene restituito il codice di errore dall'istruzione. |
newState | Il nuovo stato del controllo. Questo parametro è facoltativo. Se omesso, si presume TRUE. |
DlgSetReadOnly consente di modificare lo stato di sola lettura del controllo di una casella di dialogo. Ad esempio, è possibile rendere un controllo di sola lettura
se l'utente corrente non dispone della sicurezza necessaria per modificare il valore del controllo.
Nota: I tipi di campo che è possibile rendere di sola lettura sono: caselle di elenco, caselle di testo e caselle combinate.
KNOWLEDGEBASE Dlg_But;
TYPES
DlgData IS RECORD
allowEdit: BOOLEAN;
sampleField: INTEGER;
END;
ROUTINES
PROCEDURE DialogExample;
PRIVATE
ROUTINES
EVENT DlgEvent(REF fields: DlgData) IS
ACTIONS
WHEN $Event IS $MsgCreate THEN
IF NOT fields.allowEdit THEN
DlgSetButtonText($Handle,'editButton','View');
(* SAMPLEFIELD must be a MLE, entry field or combo box *)
DlgSetReadonly($Handle,'SAMPLEFIELD',TRUE);
END;
END;
END (* Dlg Event *);
PROCEDURE DialogExample IS
VARIABLES
fields: DlgData;
ACTIONS
fields.allowEdit := FALSE;
DlgBox ($Desktop,'example[dialog1]',
DlgEvent{fields},fields);
END (* dialog box Example *);
------------------------------------------------------------------------
Emette un'istruzione SQL Select e riempie un SQLManage con la tabella risultante.
FUNCTION DlgSqlSelect(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL selectString: STRING, VAL
StripHyperlinks: BOOLEAN): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il controllo su cui operare. Se il comando viene emesso da un handler degli eventi che contiene il controllo, è possibile utilizzare lo pseudo parametro $Handle. |
fieldName | Il nome del controllo nella casella di dialogo indirizzata dal comando. E' possibile specificarlo in Progettazione d'interfaccia o nell'istruzione DEFINE del file di specifica della casella di dialogo. Il nome non è sensibile al maiuscolo-minuscolo. E' necessario che il controllo sia un controllo SQLManage. |
selectString | Il parametro deve essere un'istruzione SQL Select correttamente formattata. L'istruzione SQL Select viene inoltrata al gestore del database SQL. Se Select ha esito positivo, il SQLManage viene eliminato e tutti i record provenienti dalla selezione vengono inseriti nel campo. |
StringHyperlinks | Riduce una stringa hypertext al semplice nome del pulsante tra parentesi. Il testo precedente o successivo alla stringa non viene influenzato. |
UseHypertextFilter | Il documento corrente per DlgSqlSelect fornisce informazioni solo per Tre variabili di immissione. Tuttavia, diversi usi di questo comando nell'applicazione EA indicano che ne esistono 4. La quarta variabile sembra essere un boolean. E' necessario che sia spiegato cos'è e il suo utilizzo. |
Un SQLManage in OS/2 può contenere fino a 65,535 record. In Windows, un SQLManage può contenere quanto segue:
* 64K di dati per riga
* 256 byte per colonna per riga
* 256 colonne per riga.
Se l'istruzione DlgSQLSelect crea un errore SQL, quest'ultimo viene restituito.
KNOWLEDGEBASE DlgSQL;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
END;
(* ******* PRIVATE ******** *)
PRIVATE
ROUTINES
(* ******** dialog box EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
VARIABLES
selectString: STRING;
ACTIONS
(* All dialog box messages have pseudo parameters $FieldID,and $FieldName*)
WHEN $Event IS $MsgChar THEN
WHEN $KeyCode IS $KeyAltS THEN (* Look for Alt-S *)
(* Prompt user for text to insert *)
IF WinEditField( $Desktop, selectString, 0, 0, 30,
'Enter new SQL select statement',
$WinAutoPos + $WinBorder +
$WinTitle ) > 0
THEN
DlgSQLSelect( $Handle, 'sql_manage_field',
selectString );
END;
END;
END;
END;
PROCEDURE DialogExample IS
VARIABLES
fields: DLGDATA;
ACTIONS
DlgBox ($Desktop,'example[dialog1]',
DlgEvent{ fields }, fields );
END;
------------------------------------------------------------------------
In una casella di dialogo con separatori, modifica il separatore presente in quello selezionato.
FUNCTION DlgTurnToPage( VAL whdlDialog: WINDOW,
VAL Notebook : STRING,
VAL page: INTEGER ): INTEGER;
Note argomenti | Descrizione nome argomento |
whdlDialog | L'handle della finestra della casella di dialogo che contiene il blocco appunti. |
notebook | Il nome della casella di dialogo con separatori in cui viene eseguita l'azione. Questo nome viene impostato quando viene creato il modulo con il programma di utilità Progettazione di interfaccia. |
page | Un numero intero che rappresenta il numero del separatore da girare. Il primo separatore è 1; il secondo 2 e così via. |
(* Questo esempio crea una casella di dialogo con separatori e, durante la creazione, modifica il separatore nel separatore 2; il separatore 2 sarà il primo che l'utente vede. *)
KNOWLEDGEBASE Notebook;
ROUTINES
PROCEDURE MainProgram;
TYPES
record1 is RECORD
MLE1: String;
END;
PRIVATE
ROUTINES
EVENT WinEvent(REF rec: record1) IS
ACTIONS
WHEN $Event IS $MsgAccept THEN
Nothing;
ELSWHEN $MsgCreate THEN
DlgTurnToPage( $Handle, 'MyNotebook', 2);
END;
END;
PROCEDURE MainProgram IS
VARIABLES
rec: record1;
ACTIONS
DlgBox($Desktop, 'notebook[nbForm]',
WinEvent{rec}, rec);
END;
END;
------------------------------------------------------------------------
Crea una finestra generica o di scorrimento in un sottomodulo esistente. I messaggi per la
finestra vengono inoltrati
all'handler degli eventi specificato, non all'handler degli eventi della finestra di dialogo. (L'handler degli eventi della finestra di dialogo
può filtrare dei messaggi tasto
creati dalla routine che esegue la scansione della tastiera.) Se DlgWinCreate viene chiamato in un sottomodulo
"non vuoto", sostituisce il sottomodulo esistente.
FUNCTION DlgWinCreate( VAL form : WINDOW,
VAL subform : STRING,
REF win : WINDOW,
VAL eventHandler : EVENT,
VAL style : INTEGER
VAL scrollWindow : BOOLEAN
): INTEGER;
Note argomenti | Descrizione nome argomento |
form | Il nome del modulo. |
subform | L'ID del controllo del sottomodulo. |
win | La finestra nel sottomodulo esistente. |
eventHandler | Un handler degli eventi che elabora gli eventi creati dalla casella di dialogo o dalla finestra. Se non viene richiesta alcuna elaborazione eventi, è possibile utilizzare la parola chiave $NullHandler. |
style | Una maschera di bit numero intero che rappresenta una serie di indicatori degli stili utilizzata per controllare l'aspetto della finestra. Per un elenco di indicatori degli stili disponibili, consultare Stili delle finestre. |
scrollwindow | Se TRUE, viene creata una finestra di scorrimento. |
Non tutte le funzioni operano sull'handle restituita da questa chiamata. Le funzioni non supportate
hanno esito negativo a causa di un errore di handler non corretto
o di un errore generico. Le funzioni che seguono non operano su finestre create da DlgWinCreate:
Ritorna alla pagina principale
Riferimento Lingua del Tivoli Service Desk 6.0 Developer's Toolkit TSD Script
Ritorna alla pagina principale