Vai aí uma dica de como criar uma pergunta para usar em suas rotinas onde aparece uma tela com caixa de seleção. Primeiramente vamos montar o fonte para gerar a tela:
#include "protheus.ch" User Function fTipoSit(l1Elem,lTipoRet) Local cTitulo:="" Local MvPar Local MvParDef:="" Private aSit:={} l1Elem := If (l1Elem = Nil , .F. , .T.) DEFAULT lTipoRet := .T. cAlias := Alias() // Salva Alias Anterior IF lTipoRet MvPar:=&(Alltrim(ReadVar())) // Carrega Nome da Variavel do Get em Questao mvRet:=Alltrim(ReadVar()) // Iguala Nome da Variavel ao Nome variavel de Retorno EndIF aSit := {"A - TODOS","B - LIBERADOS","C - BLOQUEADOS"} MvParDef:="ABC" cTitulo :="Tipos de Situação" IF lTipoRet IF f_Opcoes(@MvPar,cTitulo,aSit,MvParDef,12,49,l1Elem) // Chama funcao f_Opcoes &MvRet := mvpar // Devolve Resultado EndIF EndIF dbSelectArea(cAlias) // Retorna Alias Return( IF( lTipoRet , .T. , MvParDef ) )Agora vamos configurar a pergunta: [caption id="attachment_2258" align="aligncenter" width="1048"] Clique na imagem para aumentá-la[/caption] Agora no fonte que irá receber o parâmetro o tratamento do resultado é bem simples: Usando CONTÉM ($)
cTipoSit := MV_PAR06 cTipoSit:= MV_PAR06 If "A"$cTipoSit //seu código Endifou usando numa consulta SQL
nReg := 0 cTipoSit:= MV_PAR06 //recebe o resultado da pegunta cSitQuery := "" For nReg:=1 to Len(cTipoSit) cSitQuery += "'"+Subs(cTipoSit,nReg,1)+"'" If ( nReg+1 ) <= Len(cTipoSit) cSitQuery += "," Endif Next nReg cSitQuery := "%" + cSitQuery + "%" BeginSql alias cAliasX SELECT SC1.* FROM %table:SC1% SC1 WHERE SC1.%notDel% SC1.C1_TPSIT IN (%exp:Upper(cSitQuery)%) ORDER BY %exp:cOrdem% EndSqlE o resultado final, quando você entrar e sai do campo a janela será exibida.