Tivoli Service Desk 6.0 Developer's Toolkit - Referência da Linguagem de Script
------------------------------------------------------------------------
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.
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.
$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.
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;
------------------------------------------------------------------------
Indica a tecla pressionada pelo usuário quando ocorre um evento $MsgChar.
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.
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;
Consulte também Códigos de Teclas.
------------------------------------------------------------------------
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.
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.
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. |
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].
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.
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.
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.
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.
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.
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ó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. |
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.
------------------------------------------------------------------------
Cria uma caixa de diálogo não-modal a partir de um arquivo de especificação da caixa de diálogo.
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. |
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.
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.
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.
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.
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:
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.
------------------------------------------------------------------------
Carrega um subformulário de um arquivo de formulário e o exibe no contexto de uma janela de formulário existente.
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. |
WHEN $Event IS $MsgCreate THEN
DlgCreateSubForm($Handle, instanceData.theSubForm, 'telas[theSubForm]', SubFormHandler, 3, 50);
END;
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.
------------------------------------------------------------------------
Remove uma página existente de um bloco de notas em um formulário existente.
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) |
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;
------------------------------------------------------------------------
Consulta o valor do controle de uma caixa de diálogo.
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. |
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.
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;
------------------------------------------------------------------------
Consulta o texto atual de um botão.
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. |
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;
------------------------------------------------------------------------
Obtém o texto selecionado de uma caixa de texto em uma caixa de diálogo.
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. |
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;
------------------------------------------------------------------------
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.
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. |
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;
------------------------------------------------------------------------
Insere uma cadeia na posição do cursor em uma caixa de texto, quadro de listagem ou caixa de combinação.
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. |
Texto selecionado é substituído pelo texto inserido.
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;
------------------------------------------------------------------------
Permite consultar se um controle de diálogo está ativado ou desativado.
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. |
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;
------------------------------------------------------------------------
Limpa todos os valores de qualquer caixa de texto, SQLManage ou controle de tabela.
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. |
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.
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;
------------------------------------------------------------------------
Exclui os elementos selecionados de qualquer caixa de texto, SQLManage ou controle de tabela.
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. |
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.
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;
------------------------------------------------------------------------
Consulta o índice do item selecionado de um quadro de listagem, SQLManage ou controle de tabela.
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. |
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;
------------------------------------------------------------------------
Insere um valor em qualquer caixa de texto, SQLManage ou controle de tabela.
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. |
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;
------------------------------------------------------------------------
Atualiza o valor selecionado de uma SQLManage ou de um controle de tabela.
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. |
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;
------------------------------------------------------------------------
Carrega um formulário a partir de um arquivo .df em um controle de subformulário existente. (Todo formulário existente é substituído.)
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. |
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;
------------------------------------------------------------------------
Consulta as colunas declaradas de uma SQLManage ou de um controle de tabela.
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. |
Conforme mostrado neste exemplo, WinWriteLN grava toda a lista de cadeias em seqüência.
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;
------------------------------------------------------------------------
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.
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. |
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).
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;
------------------------------------------------------------------------
Consulta o conteúdo de uma determinada linha de um quadro de listagem, uma caixa de combinação ou uma tabela.
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. |
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).
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;
------------------------------------------------------------------------
Move o cursor para o controle especificado.
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. |
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.
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;
------------------------------------------------------------------------
Altera o rótulo em um botão.
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. |
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 *);
------------------------------------------------------------------------
Define o status ativado ou desativado de um controle.
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. |
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;
------------------------------------------------------------------------
Define o valor do controle de uma caixa de diálogo e de quaisquer dados de ocorrência associados.
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. |
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.
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.
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;
------------------------------------------------------------------------
Define o estado visível ou oculto de um controle.
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. |
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;
------------------------------------------------------------------------
Seleciona um item ou itens em um quadro de listagem ou controle de tabela por seu índice ou índices.
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. |
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.
DlgSetListBoxIndex($Handle,'USER_LIST',5);
------------------------------------------------------------------------
Define o estado obrigatório de um controle.
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. |
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.
DlgSetMandatory ($Handle,'SOCIAL_SECURITY_NUMBER',TRUE);
------------------------------------------------------------------------
Define o estado somente de leitura do controle de uma caixa de diálogo.
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. |
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.
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 *);
------------------------------------------------------------------------
Emite uma instrução SQL Select e preenche uma SQLManage com a tabela de resultados.
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. |
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.
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;
------------------------------------------------------------------------
Muda o separador atual em uma caixa de diálogo com separadores para o separador escolhido.
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. |
(* 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;
------------------------------------------------------------------------
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.
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. |
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:
Tivoli Service Desk 6.0 Developer's Toolkit - Referência de Linguagem do TSD Script