Tivoli Service Desk 6.0 Developer's Toolkit - Referência da Linguagem de Script

Tratamento da Caixa de Diálogo

Retornar à Página Principal

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

$Desktop

Descrição

Retorna um identificador para a janela do desktop. Esse valor é permanente durante a sessão atual. Entretanto, esse valor não é armazenado permanentemente.
Da próxima vez que o programa executar, essa constante tem um novo valor.

Sintaxe

FUNCTION $Desktop: WINDOW;

Cuidado: No OS/2, há mensagens válidas que podem ser enviadas para o desktop para pausar o processamento.
Por exemplo, enviar $MsgClose para o desktop pausa a execução do programa. Este procedimento é
controlado pelo sistema operacional.

Notas

$Desktop é uma constante pré-definida do sistema que contém o identificador para o desktop do OS/2 ou do Windows.
Normalmente é especificada como o pai nas instruções de janela e caixa de diálogo.

Exemplo

KNOWLEDGEBASE Desktop;
    ROUTINES
 PROCEDURE Example;
PRIVATE
    ROUTINES
 (* Crie uma janela de deslocamento tendo como pai o ambiente de trabalho com
 processamento de evento padrão *)
 PROCEDURE Example IS
 VARIABLES
 whdl: WINDOW;
 ACTIONS
 WinCreateScrollWindow($Desktop, (*Janela é um filho do
                       desktop do OS/2 *)
                       whdl, (* identificador de retorno
                       da nova janela *)
                       $NullHandler, (* Processamento de eventos
 padrão *)
                       5, 5, 80, 20, (* Localização e tamanho
                       da janela *)
                       'Exemplo', (* Título da janela *)
                       '', (* Utilizar fonte padrão
                       0, (* O tamanho do ponto é
 ignorado por padrão *)
BitOr( $WinTitle, $WinBorder, $WinSysMenu ));
    WinWait(whdl);
              END;

Códigos de Retorno

Consulte Também

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

$KeyCode

Descrição

Indica a tecla pressionada pelo usuário quando ocorre um evento $MsgChar.

Notas

Script define diversas constantes para teclas especiais como as teclas de controle do cursor, teclas modificadas
(isto é, teclas que são pressionadas em combinação com outras, como Control ou Alt), etc.

Nota: Para obter informações, consulte a página Mensagens do TSD Script.

Exemplo

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;

Códigos de Retorno

Consulte também

Consulte também Códigos de Teclas.

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

DlgBox

Descrição

Cria uma caixa de diálogo modal a partir de um arquivo de especificação da caixa de diálogo. Uma caixa de diálogo modal pertence à janela principal do aplicativo.
Uma chamada enviada a uma caixa de diálogo modal não retorna até que a caixa de diálogo seja destruída. Se o pai não for o desktop e o proprietário
não for especificado, a janela principal será desativada. Quando uma caixa de diálogo modal é ativada, o usuário final pode não interagir com sua
janela principal ou qualquer das outras janelas filhas.

Sintaxe

FUNCTION DlgBox(VAL parent: WINDOW, VAL dialogFile: STRING,

VAL EventHandler: EVENT,

REF returnRec: RECORD of ANY): INTEGER;

Cuidado: Não utilize DlgBox enquanto processa uma mensagem $MsgDDEInitiate. Se o fizer,
$MsgDDEInitiate distribui uma mensagem aos aplicativos e bloqueia a fila de mensagens até que uma
resposta seja retornada.

Enquanto isso, a instrução DlgBox inicia uma rotina de tratamento de eventos que também aguarda uma resposta da fila de mensagens.
DlgBox impede que outros aplicativos enviem mensagens para a fila de mensagens. O resultado é um bloqueio,
que trava efetivamente a interface com o usuário.

Notas do Argumento

Nome do Argumento Descrição
dialogFile O nome do arquivo de especificação da caixa de diálogo. A seguinte pesquisa é executada:

1. Se o arquivo tiver um diretório explícito especificado, este diretório será o único local pesquisado.
2. Pesquisa os diretórios explicitamente especificados na linha de comandos. Pesquisa o diretório de trabalho atual.
3. Pesquisa o diretório no qual o interpretador do Script está localizado.
4. Pesquisa os diretórios especificados na variável de ambiente SAIPATH.
5. (Somente OS/2) Pesquisa os diretórios especificados na variável de ambiente DPATH.
6. Pesquisa os diretórios especificados na variável de ambiente PATH.

Se o arquivo não puder ser encontrado utilizando esta estratégia, DlgBox retornará uma mensagem de erro indicando que o arquivo não foi encontrado.
Opcionalmente, você pode especificar o nome da caixa de diálogo a ser exibida. O nome do formulário é especificado no formato: fileName[formName].

EventHandler

Uma rotina de tratamento de eventos que processa eventos gerados pela janela ou caixa de diálogo. Se nenhum processamento de evento for necessário,
a palavra-chave $NullHandler poderá ser utilizada. valor de Retorno returnRec. Se o usuário aceitar a caixa de diálogo, os dados
contidos nela serão atribuídos a este registro. Esta atribuição é baseada nos controles que possuem um nome de controle que
corresponde a um nome de item na definição do registro. Se a janela da caixa de diálogo for destruída por algum outro meio, o valor ficará
inalterado. Se uma rotina de tratamento estiver presente, este registro deverá ser do mesmo tipo do parâmetro de dados da ocorrência para a rotina de tratamento do evento.

Notas

Primeira Mensagem Recebida

Quando uma caixa de diálogo é criada, as seguintes mensagens são recebidas na

ordem mostrada:

* $MsgEnterField coloca o cursor no primeiro controle definido na

ordem de tabulação.

* $MsgInitialize inicializa os controles que contêm dados. Uma mensagem $MsgInitialize separada
é recebida para cada controle com dados na caixa de diálogo.

* $MsgCreate cria a caixa de diálogo real.

Delimitadores de Espaço em Branco

O espaço em branco será delimitado em um controle de caixa de diálogo se todos os espaços no controle estiverem vazios. Isso poderá ocorrer se o
usuário digitar uma cadeia de espaços vazios no controle ou se o arquivo de especificação da caixa de diálogo contiver uma cadeia vazia
para o controle. Em qualquer um dos casos, se o valor do controle vazio for solicitado, $Unknown será retornado.

Modalidade da Caixa de Diálogo

Para criar uma caixa de diálogo modal, crie-a com a instrução DlgBox. Uma caixa de diálogo modal pertence
à janela principal do aplicativo. Uma chamada enviada a uma caixa de diálogo modal não retorna até que a caixa de diálogo seja
destruída. Se o pai não for o desktop e o proprietário não for especificado, a janela principal será desativada.
Quando uma caixa de diálogo modal é ativada, o usuário final pode não interagir com sua janela principal ou com uma de suas
outras janelas filhas.

Para criar uma caixa de diálogo não-modal, crie-a com a instrução DlgCreate. Uma chamada enviada a uma
caixa de diálogo não-modal é retornada imediatamente. A janela existirá até que seja explicitamente destruída.

Arquivo de Especificação da Caixa de Diálogo

A caixa de diálogo fornece um gabarito para entrada de dados do usuário. Várias caixas de texto e controles são criados do
arquivo de especificação da caixa de diálogo. Cada caixa de texto relaciona-se a um campo de banco de dados e possui um nome exclusivo. Uma ou mais
caixas de texto podem ser ligadas a campos de dados da ocorrência para a caixa de diálogo. Caixas de texto da caixa de diálogo são ligadas
a campos de dados de ocorrências do mesmo nome.

Tratamento de Eventos

Quando uma caixa de texto da caixa de diálogo é atualizada pelo usuário ou pelo aplicativo, o campo de dados de ocorrência ligado é atualizado.
O sistema executa uma ampla faixa de conversões de tipos que forçam os dados da caixa de diálogo a terem o mesmo tipo de dados da ocorrência.
Se uma rotina de tratamento de eventos estiver presente, o aplicativo será notificado sobre as ações do usuário e terá a oportunidade de responder
e modificar as ações.

A não ser que especificados de forma contrária, os dois primeiros parâmetros de eventos de todas as mensagens da caixa de diálogo são:

* O primeiro parâmetro de evento (inteiro) é o ID do controle selecionado. O alias $FieldID pode ser usado para acessá-lo.

* O segundo parâmetro de evento (cadeia) é o nome do controle selecionado. O alias $FieldName pode ser utilizado para acessá-lo.

Para obter uma lista de mensagens que as caixas de diálogo podem receber, consulte "Mensagens que Podem ser Recebidas pela Caixa de Diálogo" neste manual.

Exemplo

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; (* Enviada uma vez quando a caixa de diálogo é criada *)
(* Possui pseudoparâmetros $FormFile e $FormName *)
   ELSWHEN $MsgDestroy THEN
NOTHING; (* Enviada uma vez quando a caixa de diálogo está prestes a ser destruída *)
ELSWHEN $MsgHelp THEN
NOTHING; (* Enviada quando a tecla Help ou o botão de auxílio*)(* é pressionado e não há auxílio definido *)
(* para o campo atual ou formulário *)
ELSWHEN $MsgEnterField THEN
NOTHING; (* Enviada toda vez que um novo campo se torna o *)
(* campo ativo. A ação pode ser recusada*)
(* retornando 0 *)
ELSWHEN $MsgExitField THEN
NOTHING; (* Enviada toda vez que um campo está prestes a *)
(* se tornar inativo *)
(* A ação pode ser recusada retornando 0 *)
ELSWHEN $MsgAccept THEN
NOTHING; (* Enviada quando o usuário aceita a caixa de
(* diálogo. A ação de aceitação pode ser recusada *)
(* retornando 0 *)
ELSWHEN $MsgCancel THEN
NOTHING; (* Enviada quando o usuário cancela a caixa de diálogo.*)(* A ação de cancelamento pode ser recusada *)
(* retornando 0 *)
     ELSWHEN $MsgSelect THEN
NOTHING;(* Enviada quando uma alteração em um valor de campo é *)
(* detectada. *)
(* Alterações feitas pelo usuário em edição multilinha
(* e em campos de entrada são detectadas quando*)(* o campo sai. Outras alterações são*)
(* detectadas imediatamente. *)
(* Retornar 0 recusa a alteração. *)
(* Os dados da ocorrência são atualizados para
(* o novo valor do *)
(* campo. O terceiro parâmetro de evento possui o(* valor de campo antigo e o quarto parâmetro de evento*)
(* possui o novo valor de campo *)
ELSWHEN $MsgMandField THEN
NOTHING; (* Enviada quando o usuário aceita a caixa de diálogo(* e um campo obrigatório não possui um*)
(* valor. A ação padrão do sistema é*)
(* exibir uma mensagem e abortar *)
(* a ação de aceitação. Se a rotina de tratamento de eventos*)
(* não retornar 1 (o padrão) a *)
(* mensagem não será exibida. Se 0 for*)
(* retornado, a ação de aceitação será *)
(* processada e uma $MsgAccept será enviada *)
ELSWHEN $MsgUser THEN
NOTHING; (* Qualquer mensagem definida pelo aplicativo *)
END;
END (* Evento Dlg *);
PROCEDURE DialogExample IS
 VARIABLES
dlghdl: WINDOW;
fields: DLGDATA;
 ACTIONS
DlgBox ($Desktop,'exemplo[dialog1]',
DlgEvent{fields},fields);
END (* Exemplo de caixa de diálogo *);

Códigos de Retorno para Todas a Instruções Iniciadas por Dlg ou Win

Código de Retorno Descrição
1 Conclusão bem-sucedida.
0 Abortado pelo usuário. O usuário fechou a janela ou abortou a operação. Normalmente, isso é feito pressionando-se a tecla Esc, ou o botão Cancelar, ou fechando a janela no menu do sistema.
-1 O parâmetro identificador de janela não se refere a uma janela válida. A janela pode não existir mais ou não suporta o comando.
-2 Valor Desconhecido
-3 Memória insuficiente
-4 Sem criação. O sistema operacional não pôde criar o objeto solicitado. Um motivo possível é que um identificador de janela pai faz referência a uma janela que não existe mais.
-7 O controle mencionado de uma caixa de diálogo não pôde ser encontrado na caixa de diálogo indicada pelo identificador da janela.
-8 O comando da caixa de diálogo solicitado pode não ser executado no tipo de controle indicado.
-10 Uma chamada falhou no nível do sistema operacional. O motivo pode ser uma configuração imprópria ou recursos inadequados.
-12 A instrução SendMessage ou PostMessage foi chamada com uma mensagem que não é suportada pelas instruções NETx. As mensagens devem ser uma das $MsgNetx suportadas ou uma mensagem $MsgUser + n definida pelo usuário, para ser especificamente usada com as instruções NETx.

Consulte também

Para obter informações sobre a criação de arquivos de especificação da caixa de diálogo, consulte o Tivoli Service Desk 6.0 Developer's Toolkit - Guia do Criador de Interface.

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

DlgCreate

Descrição

Cria uma caixa de diálogo não-modal a partir de um arquivo de especificação da caixa de diálogo.

Sintaxe

FUNCTION DlgCreate(VAL parent: WINDOW, REF whdlDialog: WINDOW,

VAL dialogFile: STRING,

VAL EventFunction: EVENT): INTEGER;

Notas do Argumento Descrição do Nome do Argumento
whdlParent Este parâmetro especifica a janela principal da caixa de diálogo.
whdlDialog O identificador da nova janela é retornado neste parâmetro. Se houver um erro, a variável será definida como $Unknown.
dialogFile O nome do arquivo de especificação da caixa de diálogo. A seguinte pesquisa é executada:

1. Se o arquivo tiver um diretório explícito especificado, este diretório será o único local pesquisado.
2. Pesquisa os diretórios explicitamente especificados na linha de comandos.
3. Pesquisa o diretório de trabalho atual.
4. Pesquisa o diretório no qual o interpretador do Script está localizado.
5. Pesquisa os diretórios especificados na variável de ambiente SAIPATH.
6. (Somente OS/2) Pesquisa os diretórios especificados na variável de ambiente DPATH.
7. Pesquisa os diretórios especificados na variável de ambiente PATH.

Se o arquivo não puder ser encontrado utilizando esta estratégia, DlgBox retornará uma mensagem de erro indicando que o arquivo não foi encontrado. Opcionalmente, você pode especificar o nome da caixa de diálogo a ser exibida. O nome do formulário é especificado no formato: fileName[formName].
EventFunction Uma rotina de tratamento de eventos que processa eventos gerados pela janela ou caixa de diálogo. Se não for necessário nenhum processamento de eventos, a palavra-chave $NullHandler pode ser usada.

Notas

Primeiras Mensagens Recebidas

Quando uma caixa de diálogo é criada, as seguintes mensagens são recebidas na ordem mostrada:

1. $MsgEnterField coloca o cursor no primeiro controle definido na ordem de tabulação.

2. $MsgInitialize inicializa os controles que contêm dados. Uma mensagem $MsgInitialize separada
é recebida para cada controle com dados na caixa de diálogo.

3. $MsgCreate cria a caixa de diálogo real.

Modalidade

Para criar uma caixa de diálogo modal, crie-a com a instrução DlgBox. Uma caixa de diálogo modal pertence à
janela principal do aplicativo. Uma chamada enviada a uma caixa de diálogo modal não retorna até que a caixa de diálogo seja
destruída. Se o pai não for o desktop e o proprietário não for especificado, a janela principal será desativada.
Quando uma caixa de diálogo modal é ativada, o usuário final pode não interagir com sua janela principal ou com uma de suas
outras janelas filhas.

Para criar uma caixa de diálogo não-modal, crie-a com a instrução DlgCreate. Uma chamada enviada a uma
caixa de diálogo não-modal é retornada imediatamente. A janela existirá até que seja explicitamente destruída.


Controles da Caixa de Diálogo

A caixa de diálogo fornece um gabarito para entrada de dados do usuário. Vários controles, tais como caixas de texto, são
definidas no arquivo de especificação da caixa de diálogo. Cada controle possui um nome exclusivo. Um ou mais desses podem
estar ligados a campos de banco de dados. O banco de dados fornece dados de ocorrência para a caixa de diálogo. Os nomes .df dos
controles ligados devem ser os mesmos dos nomes dos campos de dados da ocorrência.

Toda vez que um controle de caixa de diálogo é atualizado pelo usuário ou pelo aplicativo, o campo de dados de ocorrência ligado é atualizado.
O sistema executa uma faixa de conversões de tipos que forçam os dados da caixa de diálogo a terem o mesmo tipo de dados da
ocorrência. Se uma rotina de tratamento de eventos estiver presente, o aplicativo será notificado sobre as ações do usuário e terá a oportunidade
de respondê-las e modificá-las.

Delimitadores de Espaço em Branco

O espaço em branco será delimitado em um controle de caixa de diálogo se todos os espaços no controle estiverem vazios. Isso poderá ocorrer se o usuário
digitar uma cadeia de espaços vazios no controle ou se o arquivo de especificação da caixa de diálogo contiver uma cadeia vazia para o controle.
Em qualquer um dos casos, se o valor do controle vazio for solicitado, $Unknown será retornado.

Mensagens da Caixa de Diálogo: Parâmetros

A não ser que especificados de forma contrária, os dois primeiros parâmetros de eventos de todas as mensagens da caixa de diálogo são:

Códigos de Retorno

Consulte também

Para obter mais informações sobre a criação de arquivos de especificação da caixa de diálogo, consulte o

Tivoli Service Desk 6.0 Developer's Toolkit - Guia do Criador de Interface.

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

DlgCreateSubForm

Descrição

Carrega um subformulário de um arquivo de formulário e o exibe no contexto de uma janela de formulário existente.

Sintaxe

FUNCTION DlgCreateSubForm(VAL whdl:WINDOW,
REF SubFormHandle: WINDOW,
VAL formSpec: STRING,
VAL EventHandler: EVENT,
VAL xPos: INTEGER,
VAL yPos: INTEGER
): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
EventFunction Uma rotina de tratamento de eventos que processa eventos gerados pela janela ou caixa de diálogo. Se não for necessário nenhum processamento de eventos, a palavra-chave $NullHandler pode ser usada.
EventHandler Uma rotina de tratamento de eventos que processa eventos gerados pelo novo subformulário. A palavra-chave $NullHandler poderá ser utilizada se nenhum processamento de evento for necessário.
formSpec A especificação de formulário do subformulário no formato "FILE[FORM_NAME]".
SubFormHandle O identificador do novo subformulário é retornado neste parâmetro. A variável será definida como $Unknown se houver um erro.
whdl Formulário do diálogo pai para o novo subformulário
xPos A posição x utilizada no canto superior esquerdo do novo subformulário. Esta coordenada é relativa ao canto superior esquerdo do formulário de diálogo principal.
yPos A posição y utilizada no canto superior esquerdo do novo subformulário. Esta coordenada é relativa ao canto superior esquerdo do formulário de diálogo principal.

Exemplo

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

Códigos de Retorno

Consulte também

Para obter mais informações sobre a criação de arquivos de especificação da caixa de diálogo, consulte o Tivoli Service Desk 6.0 Developer's Toolkit - Guia do Criador de Interface.

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

DlgDeletePage

Descrição

Remove uma página existente de um bloco de notas em um formulário existente.

Sintaxe

FUNCTION DlgDeletePage ( VAL PARENT : WINDOW,

VAL NOTEBOOKID : STRING,

VAL PAGEID : STRING ) : INTEGER;

Notas do Argumento Descrição do Nome do Argumento
Parent O identificador de janela para o formulário que contém o bloco de notas.
NotebookID O nome de ID do bloco de notas (da especificação .df)
PageID O nome de ID da página a ser removida (da especificação .df)


Exemplo

KNOWLEDGEBASE dlgpage;
    ROUTINES
 PROCEDURE Main;
(* ***** PRIVATE ***** *)
PRIVATE
 VARIABLES
(* Variável global para manter o identificador de Janela da caixa de diálogo *)
 mainWindow: WINDOW;
    ROUTINES
 PROCEDURE Main IS
 VARIABLES
 ACTIONS
(* Criar um diálogo utilizando o formulário PAGE_MAIN a partir de dlgpage.df *)
(* PAGE_MAIN possui um subformulário com o bloco de notas PAGE_NOTEBOOK como seu formulário *)
(* PAGE_NOTEBOOK possui, atualmente, dois separadores *)
DlgCreate($Desktop, mainWindow, 'dlgpage[PAGE_MAIN]', $NullHandler);
(* Remover a segunda página do bloco de notas. *)
(* Esta página tem o ID FORM_TAB2 *)
DlgDeletePage(mainWindow, 'PAGE_NOTEBOOK', 'FORM_TAB2');
           WinWait(mainWindow);
              END;

Códigos de Retorno

Consulte também

DlgInsertPage

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

DlgFieldValue

Descrição

Consulta o valor do controle de uma caixa de diálogo.

Sintaxe

FUNCTION DlgFieldValue(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
REF fieldValue: ANY): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas.
fieldValue Retorna o valor do controle consultado. Os dados são convertidos no tipo do parâmetro e o valor resultante é atribuído ao parâmetro. Algumas conversões não produzem resultados significativos. Se for um controle SQLManage ou um quadro de listagem, o parâmetro adicional poderá ser um registro ou uma lista de inteiros. A ação é executada controle por controle para cada controle do registro. Se o controle for capaz de várias seleções, como um quadro de listagem e uma tabela, e o parâmetro adicional for uma única variável, o primeiro item será retornado. Todos os itens serão retornados se for uma lista de variáveis.

Notas

O espaço em branco será delimitado em um controle de caixa de diálogo se todos os espaços no controle estiverem vazios. Isso poderá ocorrer se o usuário digitar
uma cadeia de espaços vazios no controle ou se o arquivo de especificação da caixa de diálogo contiver uma cadeia vazia para o controle. Em qualquer um dos casos,
se o valor do controle vazio for solicitado, $Unknown será retornado.

Exemplo

KNOWLEDGEBASE DlgField;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
              END;
SQLDATA IS RECORD
firstName: STRING;
lastName: STRING;
              END;
(* ******* PRIVATE ******** *)
PRIVATE
    ROUTINES
(* ******** caixa de diálogo EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
 VARIABLES
names: SQLDATA;
 ACTIONS
(* Todas as mensagens da caixa de diálogo possuem pseudoparâmetros
$FieldID, *)
(* e $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( 'nomes', names );
              END;
              END;
              END;
              END;
PROCEDURE DialogExample IS
 VARIABLES
fields: DLGDATA;
 ACTIONS
DlgBox( $Desktop,'exemplo[dialog1]', DlgEvent{ fields },fields );
              END;

Códigos de Retorno

Consulte também

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

DlgGetButtonText

Descrição

Consulta o texto atual de um botão.

Sintaxe

FUNCTION DlgGetButtonText (VAL whdlDialog: WINDOW,

VAL fieldName: String,

REF buttonText STRING): Integer;

Notas do Argumento Descrição do Nome do Argumento
whdlDialog Identificador da janela de uma caixa de diálogo.
FieldName Nome de controle do botão cujo texto é consultado.
ButtonText Texto retornado para o botão.

Exemplo

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, 'Texto do botão', $MBOK,
text);
WinWait(handle);
              END;

Códigos de Retorno

Consulte também

DlgSetButtonText

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

DlgGetSelectedText

Descrição

Obtém o texto selecionado de uma caixa de texto em uma caixa de diálogo.

Sintaxe

FUNCTION DlgGetSelectedText(REF whdlDialog: WINDOW, REF fieldName: STRING,
REF selectedText: STRING): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas.
selectedText O texto selecionado de uma caixa de texto é retornado neste argumento. Se nenhum texto for selecionado, uma cadeia de comprimento 0 será retornada. Se houver um erro, uma cadeia desconhecida será retornada.


Exemplo

KNOWLEDGEBASE dlgform;
    ROUTINES
 PROCEDURE Main;
(* ***** PRIVATE ***** *)
PRIVATE
 VARIABLES
(* Variável global para manter o identificador de Janela da caixa de diálogo *)
 mainWindow: WINDOW;
    ROUTINES
EVENT MainEvent is FORWARD;
 PROCEDURE Main IS
 ACTIONS
(* Criar a caixa de diálogo utilizando FORM_DLG a partir de dlgform.df *)
(* FORM_DLG possui um EntryField com id CONTROl_TEXT e *)
(* um botão com o id BUTTON_TEXT *)
DlgCreate($Desktop, mainWindow, 'dlgform[FORM_DLG]', MainEvent);
           WinWait(mainWindow);
              END;
EVENT MainEvent IS
 VARIABLES
selString : STRING;
 ACTIONS
(* Quando o botão é pressionado, o texto selecionado do campo de entrada *)
(* é exibido em uma caixa de mensagens *)
WHEN $Event IS $MsgSelect THEN
IF $fieldName = 'BUTTON_TEXT' THEN
DlgGetSelectedText(mainWindow, 'CONTROL_TEXT', sel String);
WinMessageBox(mainWindow, 'Texto Selecionado', $MBOK, selString);
              END;
              END;
              END;

Códigos de Retorno

Consulte também

DlgInsertString

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

DlgInsertPage

Descrição

Insere uma nova página a partir de um arquivo .dfc em um bloco de notas em um formulário existente. A rotina de tratamento de eventos e os dados de ocorrência existentes aplicam-se ao novo formulário.

Sintaxe

FUNCTION DlgInsertPage (VAL FORM : WINDOW
VAL NotebookId : STRING
VAL PageId : STRING
VAL FormSpec : STRING
VAL TabName : STRING
VAL Position : INTEGER
                    ): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
Formulário O formulário onde a nova página é inserida.
NotebookId O ID do bloco de notas onde a página é inserida.
PageId O ID da página sendo inserida.
FormSpec A especificação de formulário do subformulário no formato "FILE[FORM_NAME].
TabName O texto do separador da página sendo inserida
Position A posição do separador, entre os outros separadores, sendo inserido.


Exemplo

KNOWLEDGEBASE dlgpage;
    ROUTINES
 PROCEDURE Main;
(* ***** PRIVATE ***** *)
PRIVATE
 VARIABLES
(* Variável global para manter o identificador de Janela da caixa de diálogo *)
 mainWindow: WINDOW;
    ROUTINES
 PROCEDURE Main IS
 VARIABLES
 ACTIONS
(* Criar um diálogo utilizando o formulário PAGE_MAIN a partir de dlgpage.df *)
(* PAGE_MAIN possui um subformulário com o bloco de notas PAGE_NOTEBOOK como seu formulário *)
(* PAGE_NOTEBOOK possui, atualmente, dois separadores *)
DlgCreate($Desktop, mainWindow, 'dlgpage[PAGE_MAIN]', $NullHandler);
(* Inserir o formulário FORM_TAB3 a partir de dlgpage.df no bloco de notas especificado *)
(* com o id PAGE_NOTEBOOK depois da última página. O separador terá o *)
(* id 'Separador 3' *)
DlgInsertPage(mainWindow, 'PAGE_NOTEBOOK', '', 'dlgpage[FORM_TAB3]', 'Separador 3', $After);
           WinWait(mainWindow);
              END;

Códigos de Retorno

Consulte também

DlgDeletePage

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

DlgInsertString

Descrição

Insere uma cadeia na posição do cursor em uma caixa de texto, quadro de listagem ou caixa de combinação.

Sintaxe

FUNCTION DlgInsertString(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL insertString: STRING): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas.
insertString Uma cadeia a ser inserida na posição do cursor no controle. Texto selecionado é substituído pelo texto inserido.

Notas

Texto selecionado é substituído pelo texto inserido.

Exemplo

KNOWLEDGEBASE DlgIns_text;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
              END;
(* ******* PRIVATE ******** *)
PRIVATE
    ROUTINES
(* ******** caixa de diálogo EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
 VARIABLES
insertString: STRING;
 ACTIONS
(* Todas as mensagens da caixa de diálogo possuem pseudoparâmetros $FieldID, *)
(* e $FieldName *)
WHEN $Event IS $MsgChar THEN
WHEN $KeyCode IS $KeyFn2 THEN
(* Procurar tecla de função 2 *)
(* Solicitar do usuário texto a ser inserido *)
IF WinEditField( $Desktop, insertString, 0, 0, 30,
'Digitar texto a ser inserido',
$WinAutoPos + $WinBorder
+ $WinTitle ) > 0
THEN
(* O campo deve ser um MultiLineEditor, um Campo de Entrada ou um ComboBox *)
DlgInsertString( $Handle, 'text_field', insertString );
              END;
              END;
              END;
              END;
PROCEDURE DialogExample IS
 VARIABLES
fields: DLGDATA;
 ACTIONS
DlgBox( $Desktop,'exemplo[dialog1]', DlgEvent{ fields }, fields );
              END;

Códigos de Retorno

Consulte também

DlgGetSelectedText

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

DlgIsItemEnabled

Descrição

Permite consultar se um controle de diálogo está ativado ou desativado.

Sintaxe

FUNCTION DlgIsItemEnabled (VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
REF enabledState: BOOLEAN):
Integer;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog Identificador de janela da caixa de diálogo
fieldName Nome do controle a ser testado (ativado ou desativado).
enabledState TRUE se o controle estiver ativado, FALSE se desativado.


Exemplo

KNOWLEDGEBASE DlgEnabl;
    ROUTINES
 PROCEDURE Main;
PRIVATE
    ROUTINES
 PROCEDURE Main IS
 VARIABLES
 Handle : WINDOW;
enabled : BOOLEAN;
 ACTIONS
DlgCreate($Desktop,
                       Handle,
'dlgenabl[sample]',
$NullHandler);
(* ativar botão, verificar status do botão, exibir
resultado *)
DlgSetEnabled(Handle, 'test_button', TRUE);
DlgIsItemEnabled(Handle, 'test_button',
enabled);
WinMessageBox(Handle, 'Status do Botão', $MBOK,
enabled);
(* desativar botão, verificar status do botão, exibir
resultado *)
DlgSetEnabled(Handle, 'test_button', FALSE);
DlgIsItemEnabled(Handle, 'test_button',
enabled);
WinMessageBox(Handle, 'Status do Botão', $MBOK,
enabled);
 WinWait(Handle);
              END;

Códigos de Retorno

Consulte também

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

DlgListBoxClear

Descrição

Limpa todos os valores de qualquer caixa de texto, SQLManage ou controle de tabela.

Sintaxe

FUNCTION DlgListBoxClear(VAL whdlDialog: WINDOW,
VAL fieldName: STRING): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName Uma lista de nomes de controle na caixa de diálogo que é enviada. O nome de controle pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas. O comando é executado para cada nome de controle na lista. O número de controles processados é retornado. Se ocorrer um erro, o processamento será interrompido. Se o erro ocorrer no primeiro controle processado, o código de erro será retornado pela instrução.

Notas

Se um valor for selecionado quando o quadro de listagem for limpo, uma $MsgSelect (ou $MsgInitialize) será enviada. Como o valor selecionado
não existe mais, recusar esta mensagem não causará nenhum efeito.

Exemplo

KNOWLEDGEBASE dlglist;
TYPES
FIELDREC IS RECORD
test_list_box: STRING;
              END;
    ROUTINES
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
itemList IS { 'novo item 1', 'novo item 2', 'novo item 3' }: LIST OF STRING;
    ROUTINES
(* ******** caixa de diálogo EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
 VARIABLES
index: INTEGER;
listEntry: STRING;
 ACTIONS
     WHEN $Event IS $MsgCreate THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'Valor inicial'
ELSWHEN $MsgInitialize THEN
WinMessageBox( $Handle, 'Inicializar mensagem', $MBYesNo,
'Valor antigo = ' & $EventParm( 3, STRING ) &
'Valor novo = ' & $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',
'novo 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, 'Novo
valor?',
$WinAutoPos + $WinBorder + $WinTitle );
DlgListBoxUpdate( $Handle, 'test_list_box',
listEntry );
ELSWHEN 'but_lb_set_index' THEN
WinEditField( $Desktop, index, 0, 0, 30,
'Novo Índice?',
$WinAutoPos + $WinBorder
+ $WinTitle );
DlgSetListBoxIndex( $Handle,
'test_list_box', index );
ELSWHEN 'but_lb_index' THEN
WinMessageBox( $Handle, 'Índice do quadro de listagem', $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, 'Erro', $MBOK + $MBIconError,
'Abertura da caixa de diálogo falhou' & resultado );
              END;
WinWait( whdlDialog );
              END;

Códigos de Retorno

Consulte também

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

DlgListBoxDelete

Descrição

Exclui os elementos selecionados de qualquer caixa de texto, SQLManage ou controle de tabela.

Sintaxe

FUNCTION DlgListBoxDelete(VAL whdlDialog: WINDOW,
VAL fieldName: STRING): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas.

Notas

Excluir um elemento selecionado em um quadro de listagem faz com que uma $MsgSelect (ou $MsgInitialize) seja enviada com um valor
$Unknown. Como o valor selecionado anteriormente não existe mais, recusar esta mensagem não causará nenhum efeito.

Exemplo

KNOWLEDGEBASE dlglist;
TYPES
FIELDREC IS RECORD
test_list_box: STRING;
              END;
    ROUTINES
EVENT DlgEvent( REF fields: FIELDREC );
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
itemList IS {'novo item 1', 'novo item 2', 'novo item 3' }: LIST OF STRING;
    ROUTINES
(* ******** caixa de diálogo EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
 VARIABLES
index: INTEGER;
listEntry: STRING;
 ACTIONS
     WHEN $Event IS $MsgCreate THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'Valor inicial' );
ELSWHEN $MsgInitialize THEN
WinMessageBox( $Handle, 'Inicializar mensagem', $MBYesNo,
'Valor antigo = ' & $EventParm( 3, STRING )
& '' 'Valor novo = '
& $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',
'novo 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,
'Novo valor?',
$WinAutoPos + $WinBorder + $WinTitle );
DlgListBoxUpdate( $Handle, 'test_list_box',
listEntry );
ELSWHEN 'but_lb_set_index' THEN
WinEditField( $Desktop, index, 0, 0, 30,
'Novo Índice?', $WinAutoPos + $WinBorder
+ $WinTitle );
DlgSetListBoxIndex( $Handle, 'test_list_box', index );
ELSWHEN 'but_lb_index' THEN
WinMessageBox( $Handle, 'Índice do quadro de listagem', $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, 'Erro', $MBOK + $MBIconError,
'Abertura da caixa de diálogo falhou' & resultado );
              END;
WinWait( whdlDialog );
              END;

Códigos de Retorno

Consulte também

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

DlgListBoxIndex

Descrição

Consulta o índice do item selecionado de um quadro de listagem, SQLManage ou controle de tabela.

Sintaxe

FUNCTION DlgListBoxIndex(VAL whdlDialog : WINDOW,
VAL fieldName : STRING
                    ): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas.

Exemplo

KNOWLEDGEBASE dlglist;
TYPES
FIELDREC IS RECORD
test_list_box: STRING;
              END;
    ROUTINES
EVENT DlgEvent( REF fields: FIELDREC );
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
itemList IS { 'novo item 1', 'novo item 2', 'novo item 3' }: LIST OF STRING;
    ROUTINES
(* ******** caixa de diálogo EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
 VARIABLES
index: INTEGER;
listEntry: STRING;
 ACTIONS
     WHEN $Event IS $MsgCreate THEN
DlgListBoxInsert( $Handle, 'test_list_box', 'Valor inicial' );
ELSWHEN $MsgInitialize THEN
WinMessageBox( $Handle, 'Inicializar mensagem',
$MBYesNo, 'Valor antigo' &
$EventParm( 3, STRING ) &
'' 'Valor novo = ' &
$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', 'novo 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,'Novo valor?',
$WinAutoPos + $WinBorder + $WinTitle );
DlgListBoxUpdate( $Handle, 'test_list_box', listEntry );
ELSWHEN 'but_lb_set_index' THEN
WinEditField( $Desktop, index, 0, 0, 30, 'Novo Índice?',
$WinAutoPos + $WinBorder
+ $WinTitle );
DlgSetListBoxIndex( $Handle, 'test_list_box', index );
ELSWHEN 'but_lb_index' THEN
WinMessageBox( $Handle, 'Índice do quadro de listagem', $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, 'Erro', $MBOK + $MBIconError,
'Abertura da caixa de diálogo falhou' & resultado );
              END;
WinWait( whdlDialog );
              END;

Códigos de Retorno

Consulte também

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

DlgListBoxInsert

Descrição

Insere um valor em qualquer caixa de texto, SQLManage ou controle de tabela.

Sintaxe

FUNCTION DlgListBoxInsert(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL newValues: LIST OF ANY): INTEGER;

Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas.
newValue Um valor ou lista de valores a serem inseridos no quadro de listagem. Cada item da lista é convertido em uma cadeia e inserido no quadro de listagem. A inserção começa depois do item selecionado. Se nenhum item for selecionado, o novo valor será inserido no final. Você pode especificar um atributo de ordem de classificação. Este atributo substitui a localização da inserção.

O OS/2 suporta a ordenação crescente e decrescente.
O Windows suporta somente a ordenação crescente.
As ordens de classificação não são suportadas para controles de tabelas.

Para elas, este parâmetro pode ser um registro ou uma lista de cadeias. Os nomes dos campos de registro correspondem aos nomes de campos de colunas. Se o nome de um campo de coluna não corresponder a um nome de campo de registro, a coluna ficará vazia.


Exemplo

KNOWLEDGEBASE dlglist;
TYPES
FIELDREC IS RECORD
test_list_box: STRING;
              END;
    ROUTINES
EVENT DlgEvent( REF fields: FIELDREC );
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
itemList IS { 'novo item 1', 'novo item 2', 'novo item 3' }: LIST OF STRING;
    ROUTINES
(* ******** caixa de diálogo EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
 VARIABLES
index: INTEGER;
listEntry: STRING;
 ACTIONS
     WHEN $Event IS $MsgCreate THEN
DlgListBoxInsert( $Handle, 'test_list_box',
'Valor inicial' );
ELSWHEN $MsgInitialize THEN
WinMessageBox( $Handle, 'Inicializar mensagem',
$MBYesNo, 'Valor antigo = ' &
$EventParm( 3, STRING ) & ''
'Valor novo = ' &
$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',
'novo 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, 'Novo valor?',
$WinAutoPos +
$WinBorder + $WinTitle );
DlgListBoxUpdate( $Handle, 'test_list_box',
listEntry );
ELSWHEN 'but_lb_set_index' THEN
WinEditField( $Desktop, index, 0, 0, 30,
'Novo Índice?',
$WinAutoPos + $WinBorder +
              $WinTitle);
DlgSetListBoxIndex( $Handle, 'test_list_box',
index );
ELSWHEN 'but_lb_index' THEN
WinMessageBox( $Handle, 'Índice do quadro de listagem', $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, 'Erro', $MBOK + $MBIconError,
'Abertura da caixa de diálogo falhou' & resultado );
              END;
WinWait( whdlDialog );
              END;

Códigos de Retorno

Consulte também

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

DlgListBoxUpdate

Descrição

Atualiza o valor selecionado de uma SQLManage ou de um controle de tabela.

Sintaxe

FUNCTION DlgListBoxUpdate(VAL whdlDialog: WINDOW,
VAL fieldName: STRING, VAL
updateValue: ANY): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas.
updateValue O registro selecionado ou lista de cadeias em uma SQLManage ou um controle de tabela é substituído pelo valor deste parâmetro. Os campos de registro correspondem aos nomes de colunas. Qualquer coluna que não corresponder a um campo de registro ficará em branco. Se nenhum registro for selecionado, um erro Campo Não Encontrado será retornado.

Exemplo

KNOWLEDGEBASE dlglist;
TYPES
FIELDREC IS RECORD
test_list_box: STRING;
              END;
    ROUTINES
EVENT DlgEvent( REF fields: FIELDREC );
PROCEDURE ExampleDialog;
PRIVATE
CONSTANTS
itemList IS { 'novo item 1', 'novo item 2', 'novo item 3': LIST OF STRING;
    ROUTINES
(* ******** caixa de diálogo EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: FIELDREC ) IS
 VARIABLES
index: INTEGER;
listEntry: STRING;
 ACTIONS
     WHEN $Event IS $MsgCreate THEN
DlgListBoxInsert( $Handle, 'test_list_box', 'Valor inicial' );
ELSWHEN $MsgInitialize THEN
WinMessageBox( $Handle, 'Inicializar mensagem', $MBYesNo,
'Valor antigo = ' & $EventParm( 3, STRING ) & ''
'Valor novo = ' & $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',
'novo 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,
'Novo valor?',
$WinAutoPos + $WinBorder + $WinTitle );
DlgListBoxUpdate( $Handle, 'test_list_box',
listEntry );
ELSWHEN 'but_lb_set_index' THEN
WinEditField( $Desktop, index, 0, 0, 30,
'Novo Índice?', $WinAutoPos
+ $WinBorder + $WinTitle );
DlgSetListBoxIndex( $Handle, 'test_list_box',
index );
ELSWHEN 'but_lb_index' THEN
WinMessageBox( $Handle, 'Índice do quadro de listagem', $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, 'Erro', $MBOK + $MBIconError,
'Abertura da caixa de diálogo falhou' & resultado );
              END;
WinWait( whdlDialog box );
              END;

Códigos de Retorno

Consulte também

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

DlgLoadSubForm

Descrição

Carrega um formulário a partir de um arquivo .df em um controle de subformulário existente. (Todo formulário existente é substituído.)

Sintaxe

FUNCTION DlgLoadSubForm( VAL dialog : WINDOW,
VAL subform : STRING,
VAL resource : STRING, ) : INTEGER;
Notas do Argumento Descrição do Nome do Argumento
subform O nome do controle de subformulário no qual o novo formulário é carregado.
resource Referência da cadeia de recursos do formulário no formato padrão.


Exemplo

KNOWLEDGEBASE dlgsub;
    ROUTINES
 PROCEDURE Main;
(* ***** PRIVATE ***** *)
PRIVATE
 VARIABLES
(*Variável global para manter o identificador de Janela da janela *) mainWindow : WINDOW; 
    ROUTINES
 PROCEDURE Main IS
 VARIABLES
 ACTIONS
DlgCreate($Desktop, mainWindow, 'dlgsub[FORM_MAIN]', $NullHandler);
(* Carregar o formulário FORM_NEW a partir de dlgsub.df no controle de subformulário *)
(* CONTROL_SUBFORM no formato atual *)
DlgLoadSubForm(mainWindow, 'CONTROL_SUBFORM', 'dlgsub[FORM_NEW]');
           WinWait(mainWindow);
              END;

Códigos de Retorno

Consulte também

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

DlgQueryColumnNames

Descrição

Consulta as colunas declaradas de uma SQLManage ou de um controle de tabela.

Sintaxe

FUNCTION DlgQueryColumnNames(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
REF columnNames LIST OF STRING): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas.
columnName Uma lista de cadeias na qual os nomes das colunas declaradas para a SQLManage ou controle de tabela são retornados. Os nomes das colunas são retornados na ordem em que são declarados.

Notas

Conforme mostrado neste exemplo, WinWriteLN grava toda a lista de cadeias em seqüência.

Exemplo

KNOWLEDGEBASE DlgCols;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
              END;
SQLDATA IS RECORD
firstName: STRING;
lastName: STRING;
              END;
(* ******* PRIVATE *********)
PRIVATE
    ROUTINES
(* ******** caixa de diálogo EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
 VARIABLES
columnNames: LIST OF STRING;
 whdl: WINDOW;
 ACTIONS
(* Todas as mensagens da caixa de diálogo possuem pseudoparâmetros $FieldID, 
e $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,'exemplo[dialog1]', DlgEvent{ fields },fields );
              END;

Códigos de Retorno

Consulte também

DlgSQLSelect

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

DlgQueryItemCount

Descrição

Consulta o número de itens que estão contidos atualmente em um quadro de listagem, caixa de combinação, controle de tabela ou SQLManage.

Sintaxe

FUNCTION DlgQueryItemCount (VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
REF itemCount: INTEGER): Integer;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog Identificador de janela da caixa de diálogo.
fieldName Nome de campo do controle a ser consultado para a contagem de seu item.
itemCount Depois da chamada de função ser feita, itemCount retém o número de itens contidos pelo controle.

Notas

Esta função funciona somente com controles que contêm listas de dados (um quadro de listagem, uma caixa de combinação, um controle de tabela ou uma SQLManage).

Exemplo

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(ns).');
 WinWait(Handle);
              END;

Códigos de Retorno

Consulte também

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

DlgQueryRowData

Descrição

Consulta o conteúdo de uma determinada linha de um quadro de listagem, uma caixa de combinação ou uma tabela.

Sintaxe

FUNCTION DlgQueryRowData (VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL index: INTEGER,
REF rowData: ANY ) : INTEGER
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando.
index O índice da linha cujos dados são desejados.
rowData Retém o valor da linha consultada. Para controles do tipo LISTBOX e COMBOBOX, este parâmetro deve ser do tipo STRING. Para controles de tabelas e controles SQLManage, este parâmetro deve ser do tipo RECORD.

Notas

Esta função funciona somente com controles que retêm listas de dados (isto é, um quadro de listagem, uma caixa de combinação ou uma tabela).

Exemplo

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
-- Obter dados de linha para linha número 5
retval := DlgQueryRowData($handle, 'TABLE1', 5, rowda ta);
IF (retval = 1) THEN
WinMessageBox($handle, 'Dados da Linha&', $MBOK,
'O valor de sistema da linha 5 é ' &
rowdata.System);
              END;
              END;
              END;
              END;

Códigos de Retorno

Consulte também

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

DlgSelectField

Descrição

Move o cursor para o controle especificado.

Sintaxe

FUNCTION DlgSelectField(VAL whdlDialog: WINDOW,
VAL fieldName: STRING): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas.

Notas

Mover o cursor para um novo controle gera uma $MsgExitField e uma $MsgEnterField. A rotina de tratamento
da caixa de diálogo pode recusar uma das mensagens e causar a falha da operação.

Exemplo

KNOWLEDGEBASE DlgSLCT;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
              END;
(* ******* PRIVATE *********)
PRIVATE
    ROUTINES
(* ******** caixa de diálogo EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
 ACTIONS
(* Todas as mensagens da caixa de diálogo possuem pseudoparâmetros $FieldID e $FieldName *)
     WHEN $Event IS $MsgCreate THEN
(* Selecionar campo inicial para cursor *)
DlgSelectField( $Handle, 'startField' );
              END;
              END;
PROCEDURE DialogExample IS
 VARIABLES
fields: DLGDATA;
 ACTIONS
DlgBox( $Desktop,'exemplo[dialog1]', DlgEvent{ fields },fields );
              END;

Códigos de Retorno

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

DlgSetButtonText

Descrição

Altera o rótulo em um botão.

Sintaxe

FUNCTION DlgSetButtonText(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL ButtonText: STRING): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas.
ButtonText O novo rótulo para o botão. O controle deve ser um botão de comando.


Exemplo

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','Exibir');
(* SAMPLEFIELD deve ser um MultiLineEditor, um campo de entrada ou uma caixa de combinação *)
DlgSetReadonly($Handle,'SAMPLEFIELD',TRUE);
              END;
              END;
END (* Dlg Event *);
PROCEDURE DialogExample IS
 VARIABLES
fields: DlgData;
 ACTIONS
fields.allowEdit := FALSE;
DlgBox($Desktop,'exemplo[dialog1]',
DlgEvent{fields},fields);
END (* Exemplo de caixa de diálogo *);

Códigos de Retorno

Consulte também

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

DlgSetEnabled

Descrição

Define o status ativado ou desativado de um controle.

Sintaxe

FUNCTION DlgSetEnabled(VAL whdlDialog: WINDOW,
VAL fieldNames: LIST OF STRING [,
VAL newState: BOOLEAN ]): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas. O comando é executado para cada nome de controle na lista. O número de controles processados é retornado. O processamento é interrompido quando é encontrado um erro. A variável de sistema
$DlgError é definida para o código de erro. Se um erro ocorrer no primeiro controle processado, o código de erro será retornado pela instrução.
newState O novo estado do controle. Este parâmetro é opcional. Se omitido, TRUE será assumido.

Exemplo

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
(* ******** caixa de diálogo 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, 'Erro', $mbok +
                              $MBIconError,
'Abertura da caixa de diálogo falhou' & resultado );
              END;
WinWait( whdlDialog box );
              END;

Códigos de Retorno

Consulte também

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

DlgSetFieldValue

Descrição

Define o valor do controle de uma caixa de diálogo e de quaisquer dados de ocorrência associados.

Sintaxe

FUNCTION DlgSetFieldValue(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL newValue: ANY): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas.
newValue O controle enviado é definido com o valor do parâmetro:

Se o controle for uma caixa de opções, botão de rádio ou régua de controle, o novo valor será convertido em um inteiro e o controle será definido com o valor resultante. Se a conversão falhar, o resultado será zero, em geral.

Para caixas de opções, zero não é marcado. Todos os outros valores são.

Para outros tipos de controles, o valor é convertido em uma cadeia.

Para caixas de texto, caixas de combinação, quadros de listagem e mensagens, o controle é definido com a nova cadeia.

Para quadros de listagem, a lista é pesquisada para se encontrar uma cadeia correspondente. Se uma correspondência é encontrada, ela é selecionada.

SQLManage e controles de tabelas são ignorados. Se o controle for atualizado com êxito e houver um campo dos dados de ocorrência ligado ao controle da caixa de diálogo, os dados da ocorrência serão atualizados. Definir um valor de campo gera uma mensagem de seleção para o campo.

Notas

Definir o valor de um controle gera uma $MsgSelect. Se o valor do controle for alterado, $MsgInitialize será gerada.
A $MsgSelect pode ser recusada pela rotina de tratamento da caixa de diálogo.

Delimitadores de Espaço em Branco

O espaço em branco será delimitado em um controle de caixa de diálogo se todos os espaços no controle estiverem vazios. Isso poderá ocorrer se o
usuário digitar uma cadeia de espaços vazios no controle ou se o arquivo de especificação da caixa de diálogo contiver uma
cadeia vazia para o controle. Em qualquer um dos casos, se o valor do controle vazio for solicitado, $Unknown será retornado.

Exemplo

KNOWLEDGEBASE DlgSet_f;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
              END;
(* ******* PRIVATE *********)
PRIVATE
    ROUTINES
(* ******** caixa de diálogo EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
 ACTIONS
(* Todas as mensagens da caixa de diálogo possuem pseudoparâmetros $FieldID e $FieldName *)
     WHEN $Event IS $MsgCreate THEN
(* Selecionar campo inicial para cursor *)
DlgSetFieldValue( $Handle, 'messageField',
'Texto novo' );
              END;
              END;
PROCEDURE DialogExample IS
 VARIABLES
fields: DLGDATA;
 ACTIONS
DlgBox( $Desktop,'exemplo[dialog1]', DlgEvent{ fields },fields );
              END;

Códigos de Retorno

Consulte também

DlgFieldValue

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

DlgSetHidden

Descrição

Define o estado visível ou oculto de um controle.

Sintaxe

FUNCTION DlgSetHidden(VAL whdlDialog: WINDOW,
VAL fieldNames: LIST OF STRING [,
VAL newState: BOOLEAN ]): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas. O comando é executado para cada nome de controle na lista. O número de controles processados é retornado. O processamento é interrompido quando é encontrado um erro. A variável de sistema $DlgError é definida com o código de erro. Se um erro ocorrer no primeiro controle processado, o código de erro será retornado pela instrução.
newState O novo estado do controle. Este parâmetro é opcional. Se omitido, TRUE será assumido.


Exemplo

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
(* ******** caixa de diálogo 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, 'Erro', $mbok + $MBIconError,
'Abertura da caixa de diálogo falhou' & resultado );
              END;
WinWait( whdlDialog);
              END;

Códigos de Retorno

Consulte também

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

DlgSetListBoxIndex

Descrição

Seleciona um item ou itens em um quadro de listagem ou controle de tabela por seu índice ou índices.

Sintaxe

FUNCTION DlgSetListBoxIndex(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL newIndex:INTEGER | INTEGER
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas.
newIndex O índice baseado em 1 do item a ser selecionado. 0 será retornado se o índice estiver fora de faixa. Todos os itens de uma lista serão selecionados se uma lista de inteiros for passada e o controle for capaz de múltiplas seleções.


Notas

Definir o índice do quadro de listagem com um novo valor faz com que $MsgSelect (ou $MsgInitialize) seja enviada. A mensagem será enviada mesmo se
o valor no novo índice for o mesmo do valor no índice antigo.

Nota: Definir o índice como 0 desmarca todos os itens de um quadro de listagem padrão, mas não um controle de tabela.

Exemplo

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

Códigos de Retorno

Consulte também

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

DlgSetMandatory

Descrição

Define o estado obrigatório de um controle.

Sintaxe

FUNCTION DlgSetMandatory(VAL whdlDialog: WINDOW,
VAL fieldNames: LIST OF STRING,
                           VAL newState: BOOLEAN): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas. O comando é executado para cada nome de controle na lista. O número de controles processados é retornado. O processamento é interrompido quando é encontrado um erro. A variável de sistema $DlgError é definida com o código de erro. Se um erro ocorrer no primeiro controle processado, o código de erro será retornado pela instrução.
newState O novo estado do controle. Este parâmetro é opcional. Se omitido, TRUE será assumido.


Notas

Você pode utilizar DlgSetMandatory para alterar o estado obrigatório de um controle de caixa de diálogo. Por exemplo, se um controle
não for obrigatório, mas estiver sob certas circunstâncias, você poderá utilizar a instrução DlgSetMandatory ($Handle,'THAT_FIELD',TRUE);
na rotina de tratamento da caixa de diálogo para que a caixa de diálogo torne o controle obrigatório. O sistema de caixa de diálogo do Tivoli Service Desk Developer's Toolkit
não permite que você aceite uma caixa de diálogo com campos obrigatórios vazios. Você recebe uma mensagem de erro
e o cursor fica posicionado no primeiro controle obrigatório vazio.

Exemplo

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

Códigos de Retorno

Consulte também

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

DlgSetReadOnly

Descrição

Define o estado somente de leitura do controle de uma caixa de diálogo.

Sintaxe

FUNCTION DlgSetReadOnly(VAL whdlDialog: WINDOW, VAL
fieldNames: LIST OF STRING [,
VAL newState: BOOLEAN ]): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas. O comando é executado para cada nome de controle na lista. O número de controles processados é retornado. O processamento é interrompido quando é encontrado um erro. A variável de sistema $DlgError é definida com o código de erro. Se um erro ocorrer no primeiro controle processado, o código de erro será retornado pela instrução.
newState O novo estado do controle. Este parâmetro é opcional. Se omitido, TRUE será assumido.


Notas

DlgSetReadOnly permite a alteração do estado somente de leitura do controle de uma caixa de diálogo. Por exemplo, você pode tornar
um controle somente de leitura se o usuário atual não tiver a segurança necessária para modificar o valor do controle.

Nota: Os tipos de campos que podem se tornar somente de leitura são: quadros de listagem, caixas de texto e caixas de combinação.

Exemplo

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','Exibir');
(* SAMPLEFIELD deve ser um MLE, um campo de entrada ou uma caixa de combinação *)
DlgSetReadonly($Handle,'SAMPLEFIELD',TRUE);
              END;
              END;
END (* Evento Dlg *);
PROCEDURE DialogExample IS
 VARIABLES
fields: DlgData;
 ACTIONS
fields.allowEdit := FALSE;
DlgBox($Desktop,'exemplo[dialog1]',
DlgEvent{fields},fields);
END (* Exemplo de caixa de diálogo *);

Códigos de Retorno

Consulte também

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

DlgSQLSelect

Descrição

Emite uma instrução SQL Select e preenche uma SQLManage com a tabela de resultados.

Sintaxe

FUNCTION DlgSqlSelect(VAL whdlDialog: WINDOW,
VAL fieldName: STRING,
VAL selectString: STRING, VAL
StripHyperlinks: BOOLEAN): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o controle no qual operar. Se o comando for emitido de uma rotina de tratamento de eventos que contenha o controle, o pseudoparâmetro $Handle poderá ser utilizado.
fieldName O nome do controle na caixa de diálogo que é enviado pelo comando. Ele pode ser especificado no Criador de Interface ou na instrução DEFINE do arquivo de especificação da caixa de diálogo. O nome não faz distinção entre maiúsculas/minúsculas. O controle deve ser uma SQLManage.
selectString O parâmetro deve ser uma instrução SQL Select formatada corretamente. A instrução SQL Select é passada para o gerenciador de banco de dados do SQL. Se Select obtiver êxito, SQLManage será limpa e todos os registros de select serão inseridos no campo.
StringHyperlinks Reduz uma cadeia de hipertexto em um nome de botão entre colchetes apenas. Todo texto antes ou depois da cadeia de hipertexto não é afetado.
UseHypertextFilter O doc atual para DlgSqlSelect fornece informações para Três variáveis de entrada apenas. No entanto, vários usos deste comando no aplicativo EA indicam que há 4. A quarta variável parece ser booleana. É preciso documentar o que é e qual o seu uso.


Notas

Uma SQLManage no OS/2 pode conter até 65.535 registros. No Windows, uma SQLManage pode conter o seguinte:

* 64K de dados por linha

* 256 bytes por coluna por linha

* 256 colunas por linha.

Se a instrução DlgSQLSelect gerar um erro de SQL, o erro de SQL será retornado.

Exemplo

KNOWLEDGEBASE DlgSQL;
TYPES
DLGDATA IS RECORD
sampleField: INTEGER;
              END;
(* ******* PRIVATE ******** *)
PRIVATE
    ROUTINES
(* ******** caixa de diálogo EVENT HANDLER ******** *)
EVENT DlgEvent( REF fields: DLGDATA ) IS
 VARIABLES
selectString: STRING;
 ACTIONS
(* Todas as mensagens da caixa de diálogo possuem pseudoparâmetros $FieldID e $FieldName *)
WHEN $Event IS $MsgChar THEN
WHEN $KeyCode IS $KeyAltS THEN (* Procurar Alt-S *)
(* Solicitar do usuário texto a ser inserido *)
IF WinEditField( $Desktop, selectString, 0, 0, 30,
'Digitar nova instrução SQL select',
$WinAutoPos + $WinBorder +
$WinTitle ) > 0
THEN
DlgSQLSelect( $Handle, 'sql_manage_field',
selectString );
              END;
              END;
              END;
              END;
PROCEDURE DialogExample IS
 VARIABLES
fields: DLGDATA;
 ACTIONS
DlgBox( $Desktop,'exemplo[dialog1]',
DlgEvent{ fields }, fields );
              END;

Códigos de Retorno

Consulte também

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

DlgTurnToPage

Descrição

Muda o separador atual em uma caixa de diálogo com separadores para o separador escolhido.

Sintaxe

FUNCTION DlgTurnToPage( VAL whdlDialog: WINDOW,
VAL Notebook : STRING,
VAL page: INTEGER ): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
whdlDialog O identificador de janela da caixa de diálogo que contém o bloco de notas.
bloco de notas O nome da caixa de diálogo com separadores onde a ação é executada. Este nome é definido quando o formulário é criado com o utilitário Criador de Interface.
página Um inteiro que representa o número do separador ao qual se deve ir. O primeiro separador é 1; o segundo é 2, e assim por diante.

Exemplo

(* Este exemplo utiliza uma caixa de diálogo com separadores e, na criação, muda o separador para o separador 2, que seria o primeiro a ser consultado pelo usuário. *)

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

Descrição

Cria uma janela genérica ou janela de rolagem em um subformulário existente. As mensagens para a janela são passadas
para a rotina de tratamento de eventos especificada, não para a rotina de tratamento de eventos do diálogo. (A rotina de tratamento de eventos do diálogo pode filtrar algumas mensagens de teclas
mensagens geradas pela rotina que atravessa o teclado.) Se DlgWinCreate for chamada em um subformulário "não-vazio", ela substituirá o subformulário existente.

Sintaxe

FUNCTION DlgWinCreate( VAL form : WINDOW,
VAL subform : STRING,
REF win : WINDOW,
VAL eventHandler : EVENT,
VAL style : INTEGER
VAL scrollWindow : BOOLEAN
                    ): INTEGER;
Notas do Argumento Descrição do Nome do Argumento
form O nome do formulário.
subform ID do controle de subformulário.
win A janela no subformulário existente.
eventHandler Uma rotina de tratamento de eventos que processa eventos gerados pela janela ou caixa de diálogo. Se não for necessário nenhum processamento de eventos, a palavra-chave $NullHandler poderá ser usada.
style Uma máscara de bit de inteiro que representa um conjunto de sinalizadores de estilo utilizados para controlar a aparência da janela. Para obter uma lista dos sinalizadores de estilo disponíveis, consulte Estilos de Janelas.
scrollwindow Se TRUE, uma janela de rolagem será criada.


Notas

Nem todas as funções funcionam no identificador retornado desta chamada. Funções não-suportadas falham por causa de um erro grave na rotina de tratamento
ou falha geral. As seguintes funções não funcionam em janelas criadas por DlgWinCreate:

Códigos de Retorno

Consulte também

Retornar à Página Principal


Tivoli Service Desk 6.0 Developer's Toolkit - Referência de Linguagem do TSD Script

Retornar à Página Principal

Copyright