Escolar Documentos
Profissional Documentos
Cultura Documentos
(SGI)
Elaboração
Luís Carlos Seifert de Souza
luis@senior.com.br
O conteúdo deste documento é de propriedade exclusiva da Senior Sistemas Ltda e está sujeito a
alterações sem aviso prévio.
Nenhuma parte desta publicação pode ser reproduzida nem transmitida em qualquer forma ou
meio, sem a autorização prévia expressa da Senior Sistemas Ltda.
As informações contidas neste documento destinam-se somente para uso em cursos ministrados
pela Senior Sistemas Ltda. A Senior Sistemas Ltda não assume nenhuma responsabilidade pelo
uso destas informações se aplicadas a quaisquer outros fins.
A posse deste documento não lhe confere nenhum direito sobre patentes, marcas comerciais,
copyrights ou outros direitos de propriedade intelectual, eventualmente citados neste documento.
1.1 Conceito
A sigla SGI significa Senior Gerenciador de Interfaces. A finalidade deste produto é permitir que o
usuário crie seus próprios formulários para cadastramento de tabelas, e depois publique estes for-
mulários em ambientes X-Window e websites. Uma vez que os formulários foram publicados, usu -
ários regulares do sistema poderão utilizá-los para operações de cadastramento nas tabelas espe-
cificadas.
1.2.1 Arquivo
1.2.1.1 Gravar Alterações
Grava no banco todos os dados, informações e alterações do SGI.
É importante notar que o botão aplicar das telas não salvam as alterações, por isso é relevante o
uso mais freqüente da opção "Gravar alterações".
1.2.1.2 Importar
Nessa opção o usuário pode importar do diretório fonte que ele especificar, qualquer interface ou
formulário que deseje utilizar.
1.2.1.3 Exportar
Ao contrário da opção Importar, esta opção permite que o usuário exporte para o diretório destino
que ele especificar, qualquer interface ou formulário que desejar.
Exportar: Exporta a interface selecionada. Se o arquivo já existe no diretório destino, ele o substi -
tui .
1.2.1.4 Sair
Sai do SGI.
Obs.: Se os dados foram alterados e não salvos, ao sair o SGI pergunta se o usuário deseja man-
ter essas alterações.
1.2.2 Sistemas
Adicionar: Adiciona um Menu|Formulário X-window. Abre uma tela ao usuário para escolha des-
se:
Editar: Abre a tela caso o usuário queira trocar o rótulo ou informar outro formulário. Para ativá-lo
deve-se selecionar um Menu|Formulário X-Window na Lista de Menus e Formulários.
Remover: Remove Menu|Formulário X-Window selecionado.
Para Cima: Move o Menu|Formulário X-Window para cima na lista..
Para Baixo: Move o Menu|Formulário X-Window para baixo na lista..
OK :Confirma a operação.
Cancela: Sai do Configurar Menu.
1.2.3 Ajuda
1.2.3.1 Sobre
Mostra uma caixa de diálogo com informações sobre o produto. Se você solicitar suporte técnico,
pode ser que o atendente solicite a versão exata do SGI e de alguns módulos que o SGI está utili -
zando. Caso você não saiba, use o comando "Ajuda", "Sobre" para abrir esta caixa de diálogo.
Obs: Podemos observar que pode ser adicionado ações aos campos da interface ou a campos de
uma tabela.
OK - Confirma a operação.
Cancela - Cancela a operação.
2. Elementos do SGI
2.1 Interface
Item utilizado pelo usuário para definir as tabelas, campos, ligações, condições e regras que vai
usar na sua interface, conforme visualizado na tela a seguir.
O campo que está em vermelho mostra a interface que acabou de ser criada ela terá um nome de-
fault até que o usuário modifique suas propriedades. Toda alteração deixará o campo em verme-
lho até que o usuário salve o formulário na opção de menu Gravar Alterações.
Toda interface apresenta três campos para sua manipulação:
• Campos da Interface,
• Tabelas,
• Ligações.
Opções da Tela
Nome: O nome da interface. Nomes não devem conter caracteres diferentes de letras, números e
underline, o espaço não é um caracter válido.
Informações Adicionais: Qualquer informação adicional que pode ajudar no melhor entendimen-
to da interface.
2.1.1 Tabelas
2.1.1.1 Adicionar Tabela
Nessa opção o usuário insere as tabelas desejadas uma por vez, já visualizando suas proprieda-
des, como demonstrado na tela a seguir.
Opções da Tela
Para adicionar tabelas físicas deve-se selecionar a tabela desejada e clicar no botão > , para re-
mover uma tabela adicionada é só usar o botão < .
Opções da Tela
Nessa opção o usuário vai adicionar um campo por vez, já visualizando suas propriedades.
Opções da Tela
• Number
• String
• Date
Máscara Padrão: Existe uma máscara padrão para todos os tipos de dados, basta clicar nos 3
pontinhos e a máscara do tipo escolhido aparecerá.
Lista para escolha do valor: Para escolher uma valor para o campo.
Fórmula do valor padrão: Usado para garantir um valor padrão.
Condição de Relevância : Expressão SQL. Condição necessária para verificar se o campo real-
mente é importante para o sistema.
Condição de editabilidade: Expressão SQL. Condição que determina se um campo pode ser edi-
tado ou não.
Valor do Campo não pode ser nulo: Com essa opção ativada ele não aceita valor nulo para o
campo.
Lembrando que o zero aqui, não é considerado um valor nulo, o vazio ( " " ) é
considerado nulo.
Condição de Validação: Expressão SQL. Condição para validar um campo.
Avançado... : O botão avançado vai mostrar a seguinte tela ao usuário:
Opções da Tela
Adicionar... : Adiciona uma nova condição a ser verificada e a mensagem de erro
caso essa condição não seje respeitada.
Alterar: Altera uma condição já existente.
Remover: Remove uma condição.
OK: Confirma a operação.
Cancelar: Cancela a operação.
Para adicionar um campo, deve-se selecioná-lo e através do botão > ele adiciona o campo. Para
remover um campo adicionado é só selecioná-lo e clicar no botão <. O botão >> adiciona todos os
campos e o << remove todos os campos.
Opções da Tela
Opções da Tela
Opções da Tela
Opções da Tela
Opções da Tela
2.1.4 Ligações
2.1.4.1 Ligações Simples
Uma ligação simples é uma ligação entre duas tabelas através de seus campos.
Opções da Tela
• 1 para ( 1 -opcional )
• 1 para n
• Referência para tabela externa: Faz referência a uma tabela que não foi adicio-
nada.
Tabela da esquerda: Para escolher uma das tabelas que vai ser usada na ligação.
Tabela da direita: Para escolher a outra tabela que vai fazer parte da ligação
Adicionar... : Adiciona os campos que o usuário desejar, das tabelas usadas na ligação.
O usuário deve escolher os campos respectivos, clicando nos 3 pontinhos: campos da esquerda
na tabela da esquerda e campos da direita na tabela da direita.
OK: Confirma.
Cancela: Cancela e sai.
Remover: Remove o campo adicionado.
Informações Adicionais: Qualquer informação que ajude na melhor compreensão da Ligação.
Aplicar: Confirma a operação.
Desfazer: Desfaz as alterações feitas antes de Aplicar
Na ligação customizada os campos funcionam como na Ligação Simples, com a diferença que
aqui não temos os Campos de Ligação, mas temos o campo Expressão de Ligação.
Opções da Tela
Opções da Tela
Nome: Deve ser informado um nome para o campo. Lembrando que nomes não devem conter ca-
racteres diferentes de letras, números e underline, o espaço não é um caracter válido.
Condição de ativação: Deve ser informado uma condição para ativação através de uma expres-
são SQL.
Regra: Este botão vai mostrar o editor de regras, onde deve ser informada a regra em LSP (Lin-
guagem Senior de Programação) que a ação executará. A regra deve ser relacionada com um
campo da tabela (Tabela_Campo).
Opções da Tela
• Uma linha com campos para exibição e/ou digitação de valores: permite adicionar um tipo
de linha de dado que o usuário possa digitar ou mostrar seu conteúdo na tela, Conforme vi -
sualizado na tela a seguir.
Opções da Tela Linhas de Dados
Rótulo: Nome da linha de dado.
Adicionar... :Ao clicar nesse botão será
apresentada uma tela ao usuário onde ele
poderá escolher os controles que serão
Alterar: Altera uma linha de controle. Será aberto ao usuário as mesmas telas que são apresenta-
das na inserção, para que o usuário altere qualquer informação que achar necessária.
Remover: Remove a linha de controle selecionada.
Mover p/ Cima: Move para cima a linha de controle selecionada.
Mover p/ Baixo: Move para baixo a linha de controle selecionada.
Inserir Todos: Insere todos os campos da tabela base, que foram informados na interface, como
linhas com campos para exibição e/ou digitação de valores / Caixa de Edição ( Editbox ).
Separar Chaves: Ao ativar esta opção o SGI usa um separador para separar as chaves.
Aplicar: Confirma a operação. Depois de qualquer alteração é necessário Aplicar antes de Tes-
tar. Lembrando que o Aplicar não salva as operações no banco, sendo necessário para isso o
uso da opção de menu, Gravar Alterações.
Desfazer: Desfaz todas as alterações feitas antes de Aplicar.
Testar: Essa opção testa a interface produzida, se estiver tudo ok, mostra o resultado com os
campos e propriedades informados na construção da interface.
Compilar: Compila o formulário e se não houver nenhum erro mostra a seguinte mensagem:
"Seu formulário foi compilado com sucesso!"
Editar Permissões... : O usuário escolhe quem terá permissões de acesso a seu formulário.
Opções da Tela
Adicionar... : Adiciona novos usuários.
Remover: Remove usuários.
Detalhes...: Mostra as permissões a serem liberadas ou não .
OK: Confirma a operação.
Cancelar: Cancela a oparação.
Usando o botão > o usuário adiciona o formulário selecionado, e < remove-o. Depois
de adicionados, um clique sobre eles, mostram as suas propriedades.
OK: Confirma a operação.
Cancela: Cancela a operação.
Após a inserção, deverá ser informado as propriedades da Caixa de Edição, conforme demonstra-
do na tela a baixo.
Opções da Tela
Campo Correspondente: Vai mostrar uma lista dos campos das tabelas usadas no formulário
correspondente, para a escolha de um campo para a caixa de edição.
Máscara: - Usar máscara padrão: Máscara padrão do SGI.
- Especificar uma máscara: Se não optar por usar a máscara padrão, deve especifi-
car a máscara a ser usada.
Caracteres Visíveis ( 0 = conforme a máscara ): Quantos caracteres vão ficar visíveis na tela, o
valor default dessa opção é 0 ( zero ) que assumirá o valor de caracteres visíveis de acordo com a
máscara padrão.
Maneira de ajudar o usuário a preencher: De que forma o usuário vai preencher os campos: au-
tomática, conforme os campos, ou se existir alguma ligação, conforme a ligação selecionada.
OK: Confirma a operação.
Cancelar: Cancela a operação.
Exemplo de Tela usando uma caixa de edição com o campo Nome:
Opções da Tela
Fórmula que retorna a string que será colocada no texto: Nesse campo deve ser informado
uma fórmula que determinará se o texto vai ou não ser retornado.
Tamanho aproximado ( em caracteres ): O tamanho do texto estático que será retornado.
Opções da Tela
Rótulo: O nome, informação que deverá ser mostrado ao usuário para verificação.
Campo Correspondente: O campo físico correspondente.
Valor correspondente ao "true": O valor passado que deve ser considerado como verdadeiro.
Valor correspondente ao "false": O valor passado que deve ser considerado como falso.
OK: Confirma a operação.
Cancelar: Cancela a operação.
Opções da Tela
2.2.3.5 Botão
Um botão que executa uma ação é correpondente a uma ação que vai ser inserida no formulário,
com as seguintes propriedades:
Opções da Tela
Ação Correspondente: Deve ser informada a ação correspondente no formato Tabela.Acao,
quando for uma ação de um campo da Tabela; e somente a Ação, quando for uma ação de um
campo da Interface.
Rótulo: O nome, informação que deverá ser mostrado ao usuário no botão.
Tamanho estimado em caracteres (0=auto): Informe o tamanho do botão em caracteres.
OK: Confirma a operação.
Cancelar: Cancela a operação.
Obs.: Devemos prestar atenção: muitas vezes para que as ações funcionem assim como os bo-
tões é necessário que nosso sistema (principalmente Regente e Sapiens) esteja habilitado. Para
verificar essa situação vamos ao editor SQL e executamos o seguinte comando:
INSERT INTO R900GPR(PRMID,PRMVAL) VALUES(8,'5')
ou
Opções da Tela
Opções da Tela
Opções da Tela
Nome do Cadastro: Nome do formulário.
Título da Janela: Título do formulário(que aparece na tela final).
Interface: A interface que será usada.
Tabela Base: A tabela base que será usada.
Campos Chave: Os campos chaves. Pode ter mais de um campo chave.
Inserir: Insere linhas de controle. Nessa opção será mostrada ao usuário uma tela com os tipos
de linha que ele pode inserir:
Uma linha com campos para exibição e/ou digitação de valores: Tipo de linha de dado que o
usuário pode utilizar para informar ou visualisar:
Opções da Tela
Alterar... : Selecionando uma linha de dados e clicando nesta opção, o usuário poderá alterar as
informações dessa linha de dados.
Remover: Remove uma linha de dados, basta selecionar a linha a ser removida e clicar em Re-
mover.
Mover p/ cima: Ao selecionar uma linha de dados o usuário pode movimentá-la para cima o quan-
to desejar, apenas clicando no botão Mover p/ cima.
Mover p/ baixo: Ao selecionar uma linha de dados o usuário pode movimentá-la para baixo o
quanto desejar, apenas clicando no botão Mover p/ baixo.
OK: Confirma as linhas de dados que foram adicionadas.
Cancelar: Cancela a operação.
• Um separador de seções: Insere uma linha onde for adicionado.
• O separador de seção-chave: Separa a seção chave do formulário.
• Uma Tabela (grid): Insere uma tabela no formulário.
Alterar: Altera uma linha de controle.Será aberto ao usuário as mesmas telas que são apresenta -
das na inserção, para que o usuário altere qualquer informação que achar necessária.
Remover: Remove a linha de controle selecionada.
Mover p/ Cima: Move para cima a linha de controle selecionada.
Mover p/ Baixo: Move para baixo a linha de controle selecionada.
Agrupar: Agrupa todas as linhas de controle.
Inserir Todos: Insere todos os campos da tabela base, que foram informados na interface, como
linhas com campos para exibição e/ou digitação de valores/ (Editbox).
Separar Chaves: Ao ativar esta opção o SGI usa um separador para separar as chaves.
Aplicar: Confirma a operação. Depois de qualquer alteração é necessário Aplicar antes de Tes-
tar. Lembrando que o Aplicar não salva as operações no banco, sendo necessário para isso o
uso da opção de menu, Gravar Alterações.
Desfazer: Desfaz todas as alterações feitas antes de Aplicar.
Testar: Essa opção testa a interfaceproduzida, se estiver tudo ok, mostra o resultado com os cam-
pos e propriedades informados na construção da interface (ainda não funciona para os formulários
Web).
Compilar: Compila o formulário e se não houver nenhum erro mostra a seguinte mensagem: "Seu
formulário foi compilado com sucesso!"
Editar Permissões: O usuário escolhe quem terá permissões de acesso a seu formulário.
Opções da Tela
Adicionar...: Adiciona novos usuários.
Remover: Remove usuários.
Detalhes...: Mostra as permissões a serem liberadas ou não.
OK: Confirma a operação.
Cancelar: Cancela a oparação.
Usando o botão > o usuário adiciona o formulário selecionado, e < remove-o. Depois de adiciona -
dos, um clique sobre eles, mostra as suas propriedades.
Torna-se válido lembrar que adicionando um formulário Web automaticamente, ele está sendo adi-
cionado a partir da interface escolhida, tendo necessidade de personalizá-lo ao seu gosto.
OK: Confirma a operação.
Cancel: Cancela a operação.
Usando o botão > o usuário adiciona o formulário selecionado, e < remove-o. Depois de adiciona -
dos, um clique sobre eles, mostrará as suas propriedades.
OK: Confirma a operação.
Cancel: Cancela a operação.
3. Tutorial SGI
Este guia foi elaborado para ser usado por usuário iniciante, assim como para aquele
que deseja conhecer um pouco mais sobre o SGI. Partimos de que já temos o SGI de -
vidamente instalado na máquina.
Nesse momento já criamos uma interface com o nome Interface1 como pode ser observado na ár-
vore das interfaces, agora podemos configurar como quisermos a nossa interface. No campo
Nome colocamos o nome que daremos a interface e que irá substituir o nome já existente (Interfa-
ce1). Nomes não devem conter caracteres diferentes de letras, números e underline, o espaço não
é um caracter válido. Em seguida podemos preencher o campo Descrição/Objetivo com uma pe-
quena descrição explicativa. Ainda temos o campo Informações Adicionais onde podem ser co-
locadas informações adicionais sobre a interface gerada.
Podemos Desfazer caso o resultado não seja satisfatório. Agora, resta-nos Aplicar as configura-
ções, clicando sobre o botão Aplicar.
Devemos selecionar a(s) tabela(s) desejada(s) e clicar no botão ">" para adicionar. Para remover
uma tabela que foi selecionada deve-se clicar sobre ela e usar o botão "<".
Clicando no botão OK, aparece um aviso de que foi adicionado uma ou mais tabelas e a quantida-
de de campos que ela(s) possui(em). Agora já podemos configurá-la(s) como foi feito com a tabela
anterior.
pondente, clicamos sobre o botão elipse (...) e vamos obter as opções de campos físicos contidos
na tabela que foi designada anteriormente como tabela física. Temos ainda que preencher o cam -
po Tipo de dado, com uma das opções Boolean, Number, String e Date.
O campo Informações Adicionais deve conter qualquer informação que possa ajudar na compre-
ensão do campo, e após já pode Aplicar.
Em seguida irá aparecer no painel esquerdo da tela do SGI a opção Adicionar Formulário X-
Window, damos um duplo clique sobre ela e obtemos a tela para configuração da nossa interface
(Tela Propriedades do Formulário X-Window). Assim, vamos preenchendo os campos Nome, com
o nome que chamaremos nossa interface e que irá substitur o nome Formulário1 que foi dado
como padrão pelo SGI. Lembrando que os nomes não devem conter caracteres diferentes de le -
tras, números, underline e espaço não é um caracter válido. Preenchemos também o Título da
Janela com o nome que desejamos que apareça na apresentação final da tela. Depois com os
campos Interface, Tabela-Base e Campos Chave de acordo com o que foi criado anteriormente.
Os formulários X-Window permitem a criação de abas, que possibilitam a visualização de mais pá -
ginas em uma tela. Elas podem ser adicionadas através do botão Adicionar Pág. e removidas
pelo botão Remover Pág., os botões "<" " >" são utilizados para ordenar as páginas no formulário.
Deve ser observado que para a criação de páginas em um formulários, estas páginas devem per -
tencer ao mesmo nível.
Agora vamos preencher cada página individualmente com suas propriedades: Título e se possuir
uma Tabela Detalhe devemos informá-la também, junto a sua chave. É válido lembrar que os no-
mes para estes campos devem ser exatamente os mesmos com que foram criados, obedecendo
letras maiúsculas e minúsculas. Preenchemos a grade linhas de controle com as linhas que de-
sejamos na nossa tela. Elas podem ser adicionadas através do botão Inserir que abrirá a tela a
seguir:
Podemos escolher o tipo da linha de dado que desejamos. Uma linha para exibição e/ou digita-
ção de valores, é o mais comumente usado, pode ser adicionado pela primeira opção, podendo
em seguida escolher os controles que serão usados nessa linha de dados, este procedimento está
melhor detalhado na seção Melhorando a Apresentação no Item Linhas de Controle.
Se optar por adicionar um separador de seções será inserido uma linha e optando por separador
de seção-chave, vamos separar o formulário por uma seção-chave.
Um fato importante a ser observado é que todo formulário deve possuir um separador de seção-
chave, se existir mais uma página se faz necessário somente na primeira ou na página que pos-
sua tabela-detalhe.
Temos condições de criar o formulário a partir interface.tabela. Usamos o botão ">" para adicionar
o formulário selecionado, e "<" para removê-lo, clicando em seguida no OK para efetivar a opera-
ção. Depois de adicionado(s), um clique sobre ele(s), mostrará as suas propriedades.
Torna-se válido salientar que um formulário criado automaticamente é criado a partir de uma inter-
face.tabela, mas não necessariamente está pronto, devemos então personalizá-lo a nosso gosto.
Exemplo disso é que ele não traz o separador de seção-chave obrigatório, devemos então colocar
onde acharmos ser melhor.
Se não precisamos fazer mais nenhuma alteração podemos Compilar o formulário, e se não hou-
ver nenhum erro será mostrada a seguinte mensagem: "Seu formulário foi compilado com suces-
so!".
Torna-se válido salientar que quando aplicamos um formulário e seguidamente testamos e compi-
lamos, como acabamos de fazer, estamos somente confirmando a operação, não significa que ter-
minamos.
Depois de qualquer outra alteração é necessário Aplicar antes de Testar. Lembrando que essa
operação não grava nada no banco.
Quando o ícone de uma interface ou formulário fica circundado por uma linha vermelha significa
que fizemos uma alteração e não salvamos. Então precisamos sempre gravar as alterações para
não perdê-las, isto pode ser obtido através do menu Arquivo|Gravar alterações.
Podemos iniciar nossas consistências setando as permissões. Permitindo ou não a inserção, alte-
ração e exclusão de registros na nossa tabela.
Muitas vezes as tabelas do sistema não nos dão essa liberdade, pois o SGI muitas vezes restringe
essa configuração somente as tabelas do usuário (as que o nome começa com USU_xxx), isso
deve ser observado para não causar mal entendimento.
Então podemos informar as outras consistências a partir dos campos que ficaram habilitados.
Muitas vezes queremos permitir inserção, alteração e exclusão, somente em alguns casos. Para
isso temos as condições que devem ser preenchidas com expressões SQL correspondentes.
• Condição para ativar a inserção de Registros: Expressão SQL. Condi-
ção usada para determinar quando se pode inserir registros.
• Condição para ativar a alteração do registro corrente: Expressão SQL.
Condição usada para determinar quando se pode alterar registros.
• Condição de validação geral: Expressão SQL. Condição usada para vali-
dar todas as operações da tabela.
• Condição para validar um novo registro: Expressão SQL. Condição
usada para determinar quando um registro novo é valido.
• Condição para validar um Registro sendo alterado: Expressão SQL.
Condição usada para determinar quando uma alteração é válida.
• Condição para ativar a exclusão do registro corrente: Expressão SQL.
Condição usada para determinar a exclusão de um registro corrente.
CodOpe: Variável utilizada para identificar o estado em que a tela se encontra no momento. Os
estados possíveis são:
• Iniciando - (Inicialização da Tela);
Se (CodOpe = "AntesInserir")
Inicio
/*** Bloco de Comandos ***/
Fim;
Senao
Se (CodOpe = "AntesAlterar")
Inicio
/*** Bloco de Comandos ***/
Fim;
Senao
Se (CodOpe = "AntesExcluir")
Inicio
/*** Bloco de Comandos ***/
Fim;
Campos da Tabela: Os campos da Tabela que estão no formulário, para serem identificados de-
vem ter o seguinte formato NomeTabela_NomeCampo.
Exemplo:
Definir Alfa VCodCar;
Definir Alfa VClaSal;
Definir Alfa VNivSal;
MsgErro: Permite mostrar uma mensagem de erro durante a execução de um processo, desde
que na sequência do comando seja executado o comando Cancel(1).
Exemplo:
Se (CodOpe = "AntesInserir")
Inicio
Se (HstFun_DataInicio = 0)
Inicio
MsgErro = "A Data Início deve ser preenchida! ";
Cancel(1);
Fim;
Fim;
Obs.: “Todos os comandos disponíveis nas regras, gerador e importação e exportação estão dis-
poníveis também nas regras do SGI”.
3.2.2 Consistências a Nível de Campo
As consistências particulares do campo podem ser configuradas a partir da tela de configuração
do campo, seja ele campo da tabela ou da interface.
Contudo as consistências de campo não podem ser aplicadas a campos lookup.
Devemos primeiramente acessar o campo (da tabela ou da interface) e clicar sobre ele, que estará
posicionado na árvore do SGI. Após isso obtemos a tela a seguir:
Podemos iniciar a configuração das consistências pelo campo Fórmula do valor-padrão que
pode ser informado diretamente no campo, ou pelo botão Avançado. Esse valor informado no
campo, é o valor com o qual esse campo irá iniciar. Depois informamos a Condição de relevân-
cia através de uma expressão SQL, essa condição determina a importância do campo. Seguida -
mente temos a Condição de editabilidade, preenchida também com uma expressão SQL, ela in-
dica a condição para que o campo se torne editável.
Temos ainda o checkbox para não permitir que o campo receba valor nulo.
O campo Condição de Validação através do botão avançado, nos fornecerá a tela a seguir para
configuração das condições:
Nesta tela, através do botão Adicionar podemos criar a condição de validação. Preenchemos o
campo Condição de forma que ele não permitirá valor nulo nem zero e se um desses valores for
digitado, emitirá a mensagem descrita no campo Mensagem. Você pode preencher com outras
condições também.
Para fazermos isso precisamos ir até a tela de Configuração do Campo, seja ele da tabela ou da
interface. Alteramos o campo Lista para escolha do valor, através do botão elipse (...) temos vá-
rias opções de listas. Podemos citar como exemplo a lista de meses, LMesDes; lista apenas com
valores, sim e não, LSimNao; dentre outras. Assim, podemos escolher a que melhor se adapta ao
nosso formulário.
Feita a escolha, temos que clicar sobre o botão Aplicar, para aplicarmos a lista a nossa interface.
Se o formulário já estiver criado, precisamos compilá-lo e em seguida gravar, através da opção Ar -
quivo|Gravar Alterações.
Esta propriedade torna muito mais fácil a utilização da tela pelo usuário.
Devemos agora configurá-la da seguinte maneira: no campo Rótulo colocamos o nome que que-
remos que apareça na nossa tela para esse campo. Procure colocar nomes significativos. Em se-
guida clicamos sobre o botão Adicionar e temos o menu que esperávamos, no qual poderemos
escolher o tipo da linha de dados.
Agora então vamos optar por Uma caixa de edição(editbox) que é a primeira opção. Abrirá en-
tão uma segunda tela para configuração (tela a seguir). Preenchemos o Campo correspondente,
com o campo da tabela que corresponderá a este edit, podemos utilizar o botão elipse (...). Infor-
mamos o tipo da Máscara a ser utilizada, lembrando que deve ser compatível com a máscara do
campo correspondente, se for informado diferente, a máscara informada aqui tem prioridade. De -
pois podemos informamos a Quantidade de campos visíveis e em seguida a Maneira que ajuda
o usuário a preencher o campo, com a forma que o usuário vai preencher os campos: automáti-
ca, conforme os campos, ou se existir alguma ligação, conforme a ligação selecionada.
Com nosso campo configurado adicionamos uma linha aos controle X-Window através do botão
Retornamos ao formulário, e clicamos sobre o botão Aplicar, e em seguida podemos Testar para
verificar o resultado.
Devemos agora configurá-la da seguinte maneira: no campo Rótulo colocamos o nome que que-
remos que apareça na nossa tela para esse campo. Procure colocar nomes significativos. Em se-
guida clicamos sobre o botão Adicionar e temos o menu que esperávamos, no qual poderemos
escolher o tipo da linha de dados.
Agora então vamos optar por Uma caixa de verificação(checkbox) que é a segunda opção. Abri-
rá então uma segunda tela para configuração (Figura abaixo). Preenchemos o campo Rótulo com
o nome que desejamos que apareça para esse campo, em seguida informamos o Campo corres-
pondente que pode ser pesquisado através do botão elipse (...) e nos campos Valor correpon-
dente ao "true" informamos o valor que deve ser considerado verdadeiro e no campo Valor cor-
repondente ao "false" informamos o valor que deve ser considerado falso.
Devemos agora configurá-la da seguinte maneira: no campo Rótulo colocamos o nome que que-
remos que apareça na nossa tela para esse campo. Procure colocar nomes significativos. Em se-
guida clicamos sobre o botão Adicionar e temos o menu que esperávamos, no qual poderemos
escolher o tipo da linha de dados .
Agora então vamos optar por Um texto estático (label) que é a terceira opção. Abrirá então uma
segunda tela para configuração (Figura abaixo). Preenchemos o campo Fórmula que retorna a
string que será colocada no texto:, com o nome da Tabela.Campo e o campo Tamanho aproxi-
mado, com o número de caracteres aproximado que aparecerá na tela. No caso da listagem do
conteúdo de um campo que é lista a sintaxe é Tabela.desc_CampoLista.
Exemplo: R034FUN.desc_TipSex.
Devemos agora configurá-la da seguinte maneira: no campo Rótulo colocamos o nome que que-
remos que apareça na nossa tela para esse campo. Procure colocar nomes significativos. Em se-
guida clicamos sobre o botão Adicionar e temos o menu que esperávamos, no qual poderemos
escolher o tipo da linha de dados.
Agora então vamos optar por Uma caixa de edição multi-linhas (memo) que é a quarta opção.
Abrirá então uma segunda tela para configuração (Figura abaixo). Preenchemos o Campo corres-
pondente, com o campo da tabela a que nos referimos, em seguida o campo Número de Linhas
com o número de linhas que desejamos no nosso memo e depois o Número de Colunas. Cada
caracter represente uma linhaXcoluna.
Então abrirá a tela para configuração do botão. No campo Ação correpondente informamos a Ta-
lela.Acao, no Rótulo informaremos o nome do botão e se for necessário informe também o Tama-
nho estimado em caracteres do botão.
Para acrescentarmos as colunas, que serão as próprias colunas da grid na nossa tela, devemos
primeiramente clicar sobre o botão Adicionar e ele nos fornecerá uma tela (Figura a seguir) para
que possamos configurar. Os demais botões Alterar, Remover, Mover p/ cima e Mover p/ baixo
serão usados se houver a necessidade de arrumar na tela os campos que estão sendo adiciona-
dos.
No campo Título da coluna, informamos o nome que aparecerá na grid para essa coluna que es-
tamos configurando; seguidamente informamos o Campo correspondente, que é o campo físico;
depois a Máscara que irá ajudar bastante, pois determinará o tamanho do campo exibido na tela
(quando este campo for deixado em branco assume a máscara do campo físico) e por último a
Maneira de ajudar o usuário a preencher, que pode ser escolhido através do botão B2, de acor-
do com a sua preferência.
Feito isso, a grid está quase pronta. Temos que retornar ao formulário, Aplicar as alterações e
Testar.
As ações podem ser incluídas tanto para os campos da interface, como para os campos da tabela.
Vamos fazer no campo da tabela, que é o mais usual, porém os mesmos passos podem ser segui-
dos para os campos da interface. Abrimos a tabela e podemos observar que surgiu a opção
Ações da Tabela. Clicamos sobre ela e no painel direito do SGI temos a opção Adicionar Ação.
Clicando sobre esta opção irá abrir a tela para configuração da Ação. No campo Nome informare-
mos o nome da ação que irá substituir o nome padrão dado pelo SGI, Acao1, Acao2... No campo
Condição para ativação, devemos informar sempre uma condição através de uma expressão
SQL, nesse caso o true permite que ação funcione sempre que acionada. Em seguida temos o bo -
tão para Exibir e Editar as regras, onde devem ser criadas as regras que designarão a funcionali-
dade da ação.
Nesse exemplo incluí apenas a linha: HstTit_Titulacao = HstTit_Titulacao + 1; que irá incrementar
a titulação a cada vez que o botão for pressionado.
Ainda temos o campo Informações Adicionais que pode ser preenchido com informações que
ajudam na compreensão da Ação.Depois só temos que clicar no botão Aplicar para confirmar a
operação.
Obs.: Somente após a criação da ação que será possível criar um botão que executa uma ação
no formulário.
Exercícios
1) Definir no CBDS um cadastro de Vales para os colaboradores com os seguintes Campos:
Código Empresa - chave
Tipo de Colaborador (1- Empregado, 2 – Terceiro, 3 - Parceiro)- chave
Cadastro do Colaborador - chave
Competencia (MM/YYYY) – chave
Tipo de Vale (1- Vale Mercado, 2 – Vale Alimentação)
Valor do Vale
Quantidade de Vales
Valor Total.
2) Criar uma Tabela de Estoque de Produtos Químicos e outra tabela de Vendas de Produtos
químicos no CBDS com os seguintes Campos:
Estoque de Produtos Químicos - Quantidade em Estoque
- Código da Empresa - chave Vendas de Produtos Químicos
- Código do Produto - chave - Código da Empresa - chave
- Nome Comercial do Produto - Código do Produto - chave
- Tipo - Data de Saída do Produto –
(agua,combustível,solvente,ácido,pó,capsula) chave
- Risco a Saúde - Sequência do Produto - chave
(inexistente,leve,médio,alto) - Quantidade Vendida
- Flamabilidade - Preço Unitário de Venda
(inexistente,leve,médio,alto) - Valor Total da Venda.
- Corrosividade
(inexistente,leve,médio,alto)
- Unidade de Medida (mililitros, li-
tros, gramas, quilos, toneladas )
- Preço Unitário de Compra
Após criar as tabela de Estoque de Produtos Químicos, definir no SGI as seguinte tela.
Após criar as tabela de Venda de Produtos Químicos, definir no SGI as seguinte tela:
- Não permitir a venda de uma quantidade de produtos superior ao que existe em es-
toque. Neste caso, mostrar uma mensagem de que não existe produtos suficientes
em estoque .
- Não permitir a venda de um produto com o valor de venda menor que o valor de
compra. Neste caso, mostrar uma mensagem de que o valor de venda não poderá
ser menor que o valor de compra.
- Não permitir Alteração de Registros nesta Tela.
3) Definir no CBDS duas tabelas, uma para cadastrar os Materiais de Segurança e Medicina, e
outra para o cadastro da Aquisição de Materiais, conforme os campos descritos a baixo:
Para a tabela de Materiais de Segurança e Medicina, criar uma tela como demonstrado na tela a
seguir:
Para a tabela de Aquisição de Materiais de Segurança e Medicina, criar uma tela como demons-
trado na tela a seguir:
Após a construção das telas acima descritas, deve-se criar uma tela para a Consulta de Materiais
de Segurança e Medicina, conforme a tela a baixo: