No artigo de hoje, vamos demonstrar em como atualizar os valores de parâmetros de um ParamBox ou Pergunte antes da tela de parâmetros ser exibida.
Imagine o seguinte cenário, você tem um relatório ou tela, e já quer trazer pré preenhido, informações como por exemplo, a data de e até já vir com o mês em questão, ou parâmetros como o Código de e até já virem com o conteúdo de branco a ZZZ.
Pensando nisso, resolvemos montar esse artigo de exemplo. Sendo que há duas formas, uma para o Pergunte e uma para o ParamBox.
Pergunte:
Há muito tempo atrás, em meados de 2016, eu criei uma função chamada zAtuPerg, que depois acabou sendo inspirando a famosa SetMVValue ( https://terminaldeinformacao.com/2017/02/28/funcao-altera-conteudo-de-perguntas-mv_par-em-advpl/ ).
Então para esse cenário é mais simples, basta acionar a função para atualizar os parâmetros antes de acionar a função Pergunte, ficando da seguinte forma (abaixo um exemplo atualizando para que os parâmetros fiquem de branco a zzz):
//Atualiza os parâmetros SetMvValue(cPerg, "MV_PAR01", Space(6)) //Código de vai vir com " " SetMvValue(cPerg, "MV_PAR02", Replicate("Z", 6)) //Código até vai vir com "ZZZZZZ" //Aciona a tela de parâmetros If Pergunte(cPerg, .T.) //... EndIf
ParamBox:
Para o ParamBox, ai você até pode usar a ParamSave() e ParamLoad() para fazer a gravação e carregamento das opções. Mas nesse exemplo, iremos demonstrar em como fazer nativamente direto no Array que vai para o ParamBox.
Então a princípio você define os valores nas variáveis, depois adiciona elas no Array, e quando for exibir o ParamBox, passa a opção para não salvar as parametrizações.
Abaixo um exemplo, também com branco a zzz:
//Define os valores iniciais dos parâmetros cCodigoDe := Space(6) cCodigoAte := Replicate("Z", 6) //Cria os parâmetros que serão exibidos aPergs := {} aAdd(aPergs, {1, "Código De", cCodigoDe, "", ".T.", "", ".T.", 60, .F.}) aAdd(aPergs, {1, "Código Até", cCodigoAte, "", ".T.", "", ".T.", 60, .T.}) //Aciona a tela de parâmetros (sem a opção de salvar) If ParamBox(aPergs, "Informe os parâmetros", , , , , , , , , .F., .F.) //... EndIf
Bom pessoal, por hoje é só.
Abraços e até a próxima.