Funcionamento do WIzard | Início Anterior Próximo

Detalhes do funcionamento do WIzard

O principal objetivo do WIzard é ajudar o desenvolvedor na criação de páginas WSP baseada nas definições de elementos do tipo Objetos encontradas no Pré-Página. No momento da montagem da página o WIzard seguirá um modelo de página definido internamente por ele caso o projeto não ofereça nenhuma, caso o projeto use um modelo para a criação das páginas leia a nota que segue abaixo.

NOTA
A fim de obter um correto funcionamento do WIzard no caso onde um projeto esteja usando uma página que sirva como modelo para a criação das páginas WSP os seguintes requisitos tem que ser atendidos:

| ·

Caso o modelo já possua uma tag <HEAD> faça referência à variável |head.content| dentro dessa tag. Querendo, o desenvolvedor também poderá deixar a cargo do WIzard a montagem dos elementos da tag <HEAD> desde que para isso ele faça referência à variável |head| logo após a tag <HTML>, neste caso o página-modelo não poderá possuir explicitamente a tag <HEAD>.

| ·

O atributo onLoad da tag <BODY> deverá chamar a função init(). Esta função JavaScript encontra-se implicitamente definida no elemento <HEAD> da página quando gerada pelo WIzard.

| ·

Dentro da tag <BODY> faça referência à variável |body.content|, será no local onde foi inserida essa variável que o WIzard irá inserir o(s) formulário(s) que corresponde(m) ao(s) Objeto(s) encontrado(s) no Pré-Página.

| Logo abaixo segue um exemplo de código-fonte para uma página que servirá de modelo.

| <HTML>

| <HEAD>

| |head.content|

| </HEAD>

| <BODY onLoad="init()">

| <P ALIGN="center">MEU CABEÇALHO</P>

| |body.content|

| <P ALIGN="center">MEU RODAPÉ</P>

| </BODY>

| </HTML>

A primeira coisa a ser feita pelo WIzard quando o desenvolvedor solicita a sua ajuda será percorrer todos os elementos do Pré-Página procurando por Objetos, para cada elemento do tipo Objeto que for encontrado o WIzard irá inserir um formulário na página WSP e para cada coluna referenciada por um Objeto será criado um campo de entrada no formulário específico.
Como exemplo suponha que num Pré-Página haja um único Objeto identificado por tmp.obj com a seguinte instrução SQL: SELECT col1, col2, col3 FROM tab. Neste caso o WIzard iria criar apenas um formulário pois no Pré-Página só há um Objeto e nesse formulário seriam inseridos três campos de entrada que correspondem às três colunas (col1, col2 e col3) referenciadas pelo Objeto.
Ao montar a página o WIzard tentará descobrir se as colunas referenciadas pelo Objeto já possuem algum tamanho definido no banco de dados, assim quando os campos forem criados algumas propriedades como limite e tamanho do campo serão automaticamanete preenchidas. Usando essas mesmas informações, o WIzard irá dispor os campos para que os mesmos ocupem o máximo espaço da página.
Quando na instrução SQL de um elemento do tipo Objeto existir a cláusula WHERE, o WIzard irá considerá-las colunas-chaves portanto não serão permitidas alterações em seus valores através do formulário gerado. Os valores com os quais as colunas citadas no WHERE são comparados irão aparecer no formulário como campos do tipo HIDDEN caso possuam o prefixo tmp. Já as colunas que foram citadas na cláusula WHERE e no SELECT irão aparecer na página como um label, ou seja, apenas o nome da coluna seguido de seu valor.
Como exemplo suponha que num Pré-Página haja um único Objeto identificado por tmp.obj com a seguinte instrução SQL: SELECT col1, col2, col3 FROM tab WHERE col1 = |tmp.val1|. Neste caso o WIzard iria criar apenas um formulário pois no Pré-Página só há um Objeto e nesse formulário seriam inseridos dois campos de entrada que correspondem às colunas col2 e col3, um campo do tipo HIDDEN correspondente ao valor com o qual está sendo comparada a coluna col1 e um label para apenas visualizar o valor da coluna col1.
Esta "restrição" imposta pelo WIzard é para garantir o correto funcionamento no momento da geração da lógica de Pós-Página.

IMPORTANTE:

| A lógica dos elementos Update gerada para o Pós-Página pelo WIzard considera as colunas declaradas na cláusula WHERE do Objeto correspondente como sendo colunas que tem seus valores gerados automaticamente pelo banco de dados (valor auto-incremento, campo calculado, etc.) mas isso não impede que o desenvolvedor depois faça alterações nos elementos gerados com o intuito de alterar a sua lógica.

A lógica de Pós-Página só é gerada sob pedido do desenvolvedor quando se clica no ícone da janela de Propriedades porém para a lógica ser gerada o Objeto, a partir do qual está se construindo o Pós-Página, deverá possuir em sua instrução SQL as cláusulas WHERE e FROM e não pode usar mais de uma tabela.
Para cada Objeto do Pré-Página são criado 5 (cinco) elementos de Pós-Página: três Updates, um Objeto e um Gravar. Um dos Updates é responsável pela lógica de inserir os dados digitados no formulário no banco de dados através de um comando INSERT, outro Update serve para remover quando selecionada a opção excluir e o outro Update fica com a lógica para atualizar os dados através de um comando UPDATE. Os elementos Objeto e Gravar são utilizados quando no Objeto do Pré-Página a cláusula WHERE faz referência a alguma variável com prefixo tmp, o Objeto fica encarregado de retornar a(s) coluna(s) que é(são) considerada(s) chave(s) e o Gravar irá atribuir esses valores retornados pelo Objeto às respectivas variáveis temporárias.
Apagando o formulário correspondente a um Objeto os elementos de Pós-Página associadas a ele também serão removidos desde que o desenvolvedor não os tenha alterado.