Riferimento Lingua del Tivoli Service Desk 6.0 Developer's Toolkit Script

Gestione caselle di dialogo

Ritorna alla pagina principale

------------------------------------------------------------------------

$Desktop

Descrizione

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.

Sintassi

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.

Note

$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.

Esempio

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;

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

$KeyCode

Descrizione

Indica il tasto premuto dall'utente quando si verifica un evento $MsgChar.

Note

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.

Esempio

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;

Codici di ritorno

Consultare anche

Consultare anche i Codici tasto.

------------------------------------------------------------------------

DlgBox

Descrizione

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.

Sintassi

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.

Note argomento

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.
2. Ricerca le directory esplicitamente specificate sulla riga comandi. Ricerca della directory correntemente attiva.
3. Ricerca la directory in cui è ubicato Script interpreter.
4. Ricerca le directory specificate nella variabile di ambiente SAIPATH.
5. (Solo OS/2) Ricerca le directory specificate nella variabile di ambiente DPATH.
6. 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].

EventHandler

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.

Note

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.

Modalità 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.

File di specifica della casella di dialogo

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.

Gestione degli eventi

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.

Esempio

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 *);

Codici di ritorno per tutte le istruzioni che iniziano con Dlg o Win

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.

Consultare anche

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.

------------------------------------------------------------------------

DlgCreate

Descrizione

Crea una casella di dialogo non modale da un file di specifica della casella di dialogo.

Sintassi

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.

Note

Primo messaggio ricevuto

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.

Modalità

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.


Controlli della casella di dialogo

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.

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
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.

Messaggi della casella di dialogo: Parametri

A meno che diversamente annotato, i primi due parametri evento di tutti i messaggi della casella di dialogo sono:

Codici di ritorno

Consultare anche

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.

------------------------------------------------------------------------

DlgCreateSubForm

Descrizione

Carica un sottomodulo da un file di modulo e lo visualizza nel contesto di un modulo della finestra di dialogo esistente.

Sintassi

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.

Esempio

      WHEN $Event IS $MsgCreate THEN
DlgCreateSubForm($Handle, instanceData.theSubForm, 'screens[theSubForm]', 
SubFormHandler, 3, 50);
      END;

Codici di ritorno

Consultare anche

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.

------------------------------------------------------------------------

DlgDeletePage

Descrizione

Rimuove una pagina esistente da un blocco appunti su un modulo esistente.

Sintassi

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)


Esempio

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;

Codici di ritorno

Consultare anche

DlgInsertPage

------------------------------------------------------------------------

DlgFieldValue

Descrizione

Richiede il valore di un controllo della casella di dialogo.

Sintassi

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.

Note

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.

Esempio

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;

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgGetButtonText

Descrizione

Richiede il testo corrente di un pulsante.

Sintassi

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.

Esempio

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;

Codici di ritorno

Consultare anche

DlgSetButtonText

------------------------------------------------------------------------

DlgGetSelectedText

Descrizione

Richiama il testo selezionato da una casella di testo in una casella di dialogo.

Sintassi

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.


Esempio

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;

Codici di ritorno

Consultare anche

DlgInsertString

------------------------------------------------------------------------

DlgInsertPage

Descrizione

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.

Sintassi

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.


Esempio

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;

Codici di ritorno

Consultare anche

DlgDeletePage

------------------------------------------------------------------------

DlgInsertString

Descrizione

Inserisce una stringa, nella posizione del cursore, in una casella di testo, casella di elenco o casella combinata.

Sintassi

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.

Note

Il testo selezionato viene sostituito dal testo inserito.

Esempio

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;

Codici di ritorno

Consultare anche

DlgGetSelectedText

------------------------------------------------------------------------

DlgIsItemEnabled

Descrizione

Consente di chiedere se un controllo della finestra di dialogo è abilitato o disabilitato.

Sintassi

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.


Esempio

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;

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgListBoxClear

Descrizione

Elimina tutti i valori da ogni controllo tabella, SQLManage o casella di testo.

Sintassi

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.

Note

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.

Esempio

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;

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgListBoxDelete

Descrizione

Cancella l'elemento selezionato da ogni controllo tabella, SQLManage o casella di testo.

Sintassi

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.

Note

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.

Esempio

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;

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgListBoxIndex

Descrizione

Richiede l'indice della voce selezionata di un controllo tabella, SQLManage o casella di elenco.

Sintassi

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.

Esempio

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;

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgListBoxInsert

Descrizione

Inserisce un valore in ogni controllo tabella, SQLManage o casella di testo.

Sintassi

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.


Esempio

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;

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgListBoxUpdate

Descrizione

Aggiorna il valore selezionato di un controllo tabella o un SQLManage.

Sintassi

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.

Esempio

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;

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgLoadSubForm

Descrizione

Carica un modulo da un file .df nel controllo di un sottomodulo esistente. (Ogni modulo esistente viene sostituito.)

Sintassi

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.


Esempio

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;

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgQueryColumnNames

Descrizione

Richiede le colonne dichiarate di un controllo tabella o SQLManage.

Sintassi

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.

Note

Come spiegato in questo esempio, WinWriteLN scrive l'intero elenco di stringhe in modo sequenziale.

Esempio

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;

Codici di ritorno

Consultare anche

DlgSQLSelect

------------------------------------------------------------------------

DlgQueryItemCount

Descrizione

Richiede il numero di voci correntemente contenute in una casella di elenco, casella combinata, controllo tabella o SQLManage.

Sintassi

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.

Note

Questa funzione opera solo con i controlli che contengono elenchi di dati (una casella di elenco, casella combinata, controllo tabella o SQLManage).

Esempio

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;

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgQueryRowData

Descrizione

Richiede il contenuto di una data riga per una casella di dialogo, casella combinata o tabella.

Sintassi

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.

Note

Questa funzione opera solo con controlli che conservano elenchi di dati (cioè una casella di elenco, casella combinata o tabella).

Esempio

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;

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgSelectField

Descrizione

Sposta il cursore sul controllo specificato.

Sintassi

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.

Note

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.

Esempio

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;

Codici di ritorno

------------------------------------------------------------------------

DlgSetButtonText

Descrizione

Modifica l'etichetta su un pulsante.

Sintassi

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.


Esempio

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 *);

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgSetEnabled

Descrizione

Imposta lo stato abilitato o disabilitato di un controllo.

Sintassi

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.

Esempio

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;

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgSetFieldValue

Descrizione

Imposta il valore di un controllo della casella di dialogo e di tutti i dati di istanza associati.

Sintassi

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.

Note

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.

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
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.

Esempio

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;

Codici di ritorno

Consultare anche

DlgFieldValue

------------------------------------------------------------------------

DlgSetHidden

Descrizione

Imposta lo stato visibile o nascosto di un controllo.

Sintassi

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.


Esempio

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;

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgSetListBoxIndex

Descrizione

Seleziona una voce o delle voci in un controllo tabella o casella di elenco tramite l'indice o gli indici ad esse relativi.

Sintassi

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.


Note

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.

Esempio

DlgSetListBoxIndex($Handle,'USER_LIST',5);

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgSetMandatory

Descrizione

Imposta lo stato obbligatorio di un controllo.

Sintassi

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.


Note

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.

Esempio

DlgSetMandatory ($Handle,'SOCIAL_SECURITY_NUMBER',TRUE);

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgSetReadOnly

Descrizione

Imposta lo stato di sola lettura del controllo di una casella di dialogo.

Sintassi

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.


Note

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.

Esempio

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 *);

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgSQLSelect

Descrizione

Emette un'istruzione SQL Select e riempie un SQLManage con la tabella risultante.

Sintassi

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.


Note

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.

Esempio

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;

Codici di ritorno

Consultare anche

------------------------------------------------------------------------

DlgTurnToPage

Descrizione

In una casella di dialogo con separatori, modifica il separatore presente in quello selezionato.

Sintassi

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.

Esempio

(* 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;

------------------------------------------------------------------------

DlgWinCreate

Descrizione

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.

Sintassi

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.


Note

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:

Codici di ritorno

Consultare anche

Ritorna alla pagina principale


Riferimento Lingua del Tivoli Service Desk 6.0 Developer's Toolkit TSD Script

Ritorna alla pagina principale

Copyright