Controle de consistência utilizando Cálculo em BASIC No Sphinx existem funções que possibilitam padronizar o formato das respostas e impedir erros durante a digitação. Além de oferecer funções nativas, ainda é possível desenvolver novos controles de consistência através da função “Cálculo em BASIC”. Neste tutorial serão apresentadas duas soluções de controles: Uso do hífen (‐) no CEP e a existência do arroba (@) no e‐mail. Observação Importante! Configure os controles sempre após ter definido e finalizado o questionário. Requisitos para compreender este tutorial: ‐ Lista das questões ‐ Desvios ‐ Formulário multimídia ‐ Resultados ‐ Conhecimento de lógica de programação CONTROLE DE CONSISTÊNCIA EM CEP O CEP Brasileiro é composto por cinco números mais três, separados por hífen. Apesar disto, os respondentes não seguem um padrão no seu preenchimento, o que acaba prejudicando a análise desta variável. Isto posto, o software pode fazer um controle de consistência levando o respondente a seguir um determinado padrão. Para a construção deste controle, siga os passos abaixo: 1. Posicione‐se no estágio “Elaboração do questionário” e clique na opção “Formulário multimídia”; 2. Acesse o menu superior “Dados” e clique na opção “Calcular...”; 3. Na janela apresentada, clique no botão “Recalcular uma variável” e clique em “Avançar” 4. Na janela seguinte, em “Recalcular a variável”, selecione a questão CEP e, no menu ao lado, escolha a opção “Editor assistido” 5. No espaço em branco, digite os comandos para desenvolver o controle. Abaixo o código completo variavel = CEP qtd = Len(variavel) caracter = "‐" indice = InStr(variavel,caracter) If qtd = 8 Then x = Left(variavel,5) y = Right(variavel,3) If Not CEP.isNull Then v = x & "‐" & y EndIf Else Select Case indice Case 6 w = CEP Case Else If CEP.isNull Then w = "xxxxx‐xxx" Else w = "Formato incorreto." EndIf EndSelect v = w EndIf Lista das estruturas de controles e funções expressões que serão utilizadas: a. Len: Exibe o número de caracteres contidos na expressão.
Len(expressão)
b. InStr: Exibe a posição da primeira ocorrência de um determinado caractere. InStr(expressão,“caractere”)
c. Left: Exibe o comprimento de caracteres extraídos da expressão a partir da esquerda. Left(expressão)
d. Right: Exibe o comprimento de caracteres extraídos da expressão a partir da direta. Right(expressão)
e. If: Permite a execução de um grupo de funções dada a condição.
f. Select: Executar um ou mais grupos de instruções segundo o valor de uma dada expressão. If condição then
Instrução EndIf Select Case expressão
Case expressão Instrução 1 Case Else Instrução 2 EndSelect 6. Marque o item “Cálculo automático” e clique em “Avançar” 7. Na tela seguinte, clique em “Concluir” 8. Para verificar se o controle está de fato funcionando, acesse o menu superior “Estágio” e
clique em “Digitar...” Digitando 8 números sem o hífen... O Sphinx inclui o hífen automaticamente. Digitando com o hífen posicionado no lugar errado... O Sphinx apresenta uma mensagem informando a digitação fora do formato. CONTROLE DE CONSISTÊNCIA EM EMAIL Para que um conjunto de caracteres seja reconhecido como um correio eletrônico (e‐mail) é preciso que o caractere arroba (@) esteja inserido neste conjunto. Desta forma, siga os passos abaixo para construir um controle que verifique a existência deste: 1. Posicione‐se no estágio “Elaboração do questionário” e clique na opção “Formulário multimídia” 2. Acesse o menu superior “Dados” e clique na opção “Calcular...” 3. Na janela apresentada, clique no botão “Calcular uma nova variável” e clique em “Avançar” No espaço em branco, digite os comandos para desenvolver o controle. Abaixo o código completo Variavel = V2 Caractere = "@" indice = 1 Do While indice <> 0 indice = InStr(Variavel,Caractere) If indice > 0 Then NombreDeFois = NombreDeFois + 1 Variavel = Mid(Variavel,indice) EndIf Loop qtd = Str(NombreDeFois) Select Case qtd Case 0 v = "E‐mail inválido" Case 1 v = "OK" Case Else v = "E‐mail inválido. O caracter @ está repetido " & qtd & " vezes." EndSelect Lista das estruturas de controles e funções expressões que serão utilizadas: a. Str: Exibe uma cadeia de caracteres representando o ‘qt’ específico.
Str(qt) b. InStr: Exibe a posição da primeira ocorrência de um determinado InStr(expressão,“caractere”)
caractere. c. Do While: Repete um bloco de instruções enquanto uma condição for verdadeira. d. If: Permite a execução de um grupo de funções dada a condição.
e. Select: Executar um ou mais grupos de instruções segundo o valor de uma dada expressão. Do While condição
Instrução Loop If condição then
Instrução EndIf Select Case expressão
Case expressão Instrução 1 Case Else Instrução 2 EndSelect 4. Marque o item “Cálculo automático” e clique em “Avançar” 5. Na tela seguinte, clique em “Avançar” 6. Para concluir, digite um título e uma variável para esta nova questão (exemplo: Valida CEP), em seguida defina como tipo “Texto” e clique em “Concluir” 7. Localize na barra de tarefa (localizado no lado esquerdo da tela) de questões a questão recém gerada e insira no formulário 8. Acesse as “Propriedades do objeto” desta questão e posicione‐se na aba Conteúdo 9. Em seguida, desmarque a opção “Título da questão” 10. Logo após, acesse a aba “Funcionamento”, marque o item “Não digitável”. Desta forma a questão será apresentada como se fosse uma mensagem e não como uma questão 11. Ainda na mesma aba, marque o item “Visualização condicionada ao perfil” e clique no botão “Alterar” 12. No menu apresentado, selecione a primeira opção “Definir um outro perfil 13. Na janela apresentada, será criada a condição para apresentação da mensagem. Desta forma, escolha a variável referente ao e‐mail, marque “não é” e escolha a opção de categoria “NonResponse”, ou seja, a mensagem será apresentada apenas quando a questão e‐mail for respondida. Clique em “OK” até voltar ao formulário 14. Para verificar se o controle está de fato funcionando, acesse o menu superior “Estágio” e clique em “Digitar...” Digitando sem o @, é apresentada a mensagem “E‐mail inválido”. Digitando como o @, é apresentada mensagem “OK”. Caso o respondente digite mais de uma vez o @, é apresentada a mensagem “E‐mail inválido” mais a informação de quantas vezes o caractere foi digitado. CONTROLE DE CONSISTÊNCIA EM PESQUISA WEB Os controles apresentados neste tutorial poderão ser utilizados para formulários “Tela” ou “Internet”, sendo que, em formulário “Internet” os controles só serão executados durante a troca de página. Desta forma, mesmo que o controle detecte alguma incoerência na digitação, o respondente conseguirá avançar para a próxima tela. Para contornar esta situação, podemos utilizar outro recurso disponível pelo software: Desvios. O primeiro desvio (para CEP) testará se a resposta gerada pelo controle é igual a “Formato de CEP incorreto.”. Se a igualdade for verdadeira, o respondente será encaminhado para a questão CEP, ou seja, para ela mesma. Para que o software execute o desvio, o respondente deverá clicar no botão de troca de página, neste momento o software processará todos os controles programados, inclusive os ensinados neste tutorial. O segundo desvio (para e‐mail) testará se a resposta gerada pelo controle é igual a “E‐mail incorreto.” ou “E‐mail inválido. O caractere @ está repetido N vezes.”. Se a igualdade for verdadeira, o respondente será encaminhado para a questão E‐mail, ou seja, para ela mesma. Abaixo seguem os passos para a programação destes desvios. 1. Posicione‐se no estágio “Elaboração do questionário”, acesse o menu superior “Organizar” e clique na opção “Definir desvios” 2. Na tela apresentada, em “Após a questão” escolha a variável “Valida_email” e clique no botão “Definir o perfil” 3. Na janela exibida, deixe marcado o sinal de igual (=) e digite no espaço ao lado “E‐mail inválido” e clique em “OK” 4. Marque o item “Ir para a questão” e no menu ao lado, escolha a própria variável 5. Clique no botão “Adicionar”, disponível na parte superior da janela ao lado do botão “Deletar” para criar o segundo desvio 6. Em “Após a questão” escolha a variável “CEP” e clique no botão “Definir o perfil” 7. Na janela exibida, deixe marcado o sinal de igual (=) e digite no espaço ao lado “E‐mail inválido” e clique em “OK” 8. Marque o item “Ir para a questão” e, no menu ao lado, escolha a própria variável 9. Clique em “Fechar” para concluir os desvios 10. Publique o formulário e teste os desvios 
Download

Controle de consistência utilizando Cálculo em