Últimos assuntos
Abrir caixa de diálogo apenas se determinada condição for atendida
2 participantes
Página 1 de 1
Abrir caixa de diálogo apenas se determinada condição for atendida
Criamos uma série de scripts que realizam testes específicos, sendo que cada script abre uma caixa de diálogo solicitando a informação de período (mês e ano) para realização dos testes.
Agora, queremos criar um script que executa todos os demais scripts de uma única vez, e também que o usuário forneça a informação de período apenas uma vez, mas queremos manter ainda a opção de executar os scripts individualmente.
Resumindo, queremos continuar com nossos scripts individuais, caso o usuário queira executar um ou outro script individualmente, e queremos também ter uma opção em que o usuário possa executá-los todos de uma vez, sendo que nessa última, o usuário informaria o período apenas uma vez.
Tentei fazer o seguinte: no script "geral" (script que ordena a execução de todos os outros) existiria um flag que indicaria se o script individual está sendo chamado pelo script geral ou se foi chamado "diretamente". Dentro do script individual, eu colocaria o comando DIALOG dentro do GROUP e faria o teste no flag, somente executando o GROUP se o flag indicasse que o script foi chamado diretamente.
Exemplo:
SCRIPT GERAL (Serve para chamar a execução de todos os outros)
DIALOG .... v_mes ... v_ano ....
v_flag = "TRUE"
DO SCRIPT Script1
v_flag = "FALSE"
_________________________________
SCRIPT1
GROUP IF (MATCH(v_flag;"FALSE"))
DIALOG ... v_mes ... v_ano ...
END
Restante do script
_________________________________
Só que não é permitido usar DIALOG dentro de GROUP, e agora?
Agora, queremos criar um script que executa todos os demais scripts de uma única vez, e também que o usuário forneça a informação de período apenas uma vez, mas queremos manter ainda a opção de executar os scripts individualmente.
Resumindo, queremos continuar com nossos scripts individuais, caso o usuário queira executar um ou outro script individualmente, e queremos também ter uma opção em que o usuário possa executá-los todos de uma vez, sendo que nessa última, o usuário informaria o período apenas uma vez.
Tentei fazer o seguinte: no script "geral" (script que ordena a execução de todos os outros) existiria um flag que indicaria se o script individual está sendo chamado pelo script geral ou se foi chamado "diretamente". Dentro do script individual, eu colocaria o comando DIALOG dentro do GROUP e faria o teste no flag, somente executando o GROUP se o flag indicasse que o script foi chamado diretamente.
Exemplo:
SCRIPT GERAL (Serve para chamar a execução de todos os outros)
DIALOG .... v_mes ... v_ano ....
v_flag = "TRUE"
DO SCRIPT Script1
v_flag = "FALSE"
_________________________________
SCRIPT1
GROUP IF (MATCH(v_flag;"FALSE"))
DIALOG ... v_mes ... v_ano ...
END
Restante do script
_________________________________
Só que não é permitido usar DIALOG dentro de GROUP, e agora?
andrewandrade- Mensagens : 4
Data de inscrição : 24/01/2013
GROUP?
não entendi bem o uso do GROUP. Usamos o GROUP quando estamos lendo um arquivo linha a linha e queremos tomar uma decisão a cada linha.
entre outras restrições o GROUP não aceita qualquer comando ou parametro de comando que vá mudar a ordem de leitura do arquivo ou provocar o CLOSE do arquivo lido.
DIALOG, entre outros comandos não funciona dentro de um GROUP, mas não entendi se é exatamente este comportamento (Abrir a caixa de dialogo a cada linha do arquivo), que você esperava com esta codificação.
Talvez seja o caso de você ter que colocar um IF antes de cada caixa de dialogo
IF (MATCH(v_flag;"FALSE")) DIALOG1 ... v_mes ... v_ano ...
IF (MATCH(v_flag;"FALSE")) DIALOG2 ... v_mes ... v_ano ...
IF (MATCH(v_flag;"FALSE")) DIALOG3 ... v_mes ... v_ano ...
entre outras restrições o GROUP não aceita qualquer comando ou parametro de comando que vá mudar a ordem de leitura do arquivo ou provocar o CLOSE do arquivo lido.
DIALOG, entre outros comandos não funciona dentro de um GROUP, mas não entendi se é exatamente este comportamento (Abrir a caixa de dialogo a cada linha do arquivo), que você esperava com esta codificação.
Talvez seja o caso de você ter que colocar um IF antes de cada caixa de dialogo
IF (MATCH(v_flag;"FALSE")) DIALOG1 ... v_mes ... v_ano ...
IF (MATCH(v_flag;"FALSE")) DIALOG2 ... v_mes ... v_ano ...
IF (MATCH(v_flag;"FALSE")) DIALOG3 ... v_mes ... v_ano ...
Tópicos semelhantes
» Separar em colunas e apropriar valor
» Localizar dentro de uma coluna (texto) todos os registros que contenham determinada palavra
» Como transformar vários registros em apenas um?
» Como fazer para renomear o campo apenas na exibição?
» Localizar dentro de uma coluna (texto) todos os registros que contenham determinada palavra
» Como transformar vários registros em apenas um?
» Como fazer para renomear o campo apenas na exibição?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|
Sex 13 Out - 10:25 por Felipe Naibert
» Exportar Arquivos em quantidades (blocos) fixos de linhas.
Qui 20 Ago - 12:17 por Miro
» GRUPO DE ESTUDOS AUDIT ANALYTICS
Ter 9 Jun - 9:22 por Miro
» Cálculo do número da Semana no ano
Seg 11 maio - 11:18 por Miro
» A ordem dos argumentos altera o tempo de processamento
Qui 23 Abr - 14:50 por Miro
» Como pegar dados únicos de um campo?
Seg 23 Fev - 19:33 por Fernanda
» Existe algum comando no Analyzer que eu realize as instruções do SQL?
Qua 18 Fev - 9:22 por Raphael Moita Bertolino
» Lei de Benford: How Forensic Accountants Use Benford's Law To Detect Fraud
Qua 24 Dez - 7:53 por Márcia
» Importação de PDF
Ter 9 Dez - 13:23 por Fernanda