× Linguagem de Programação ADVPL

Perguntas Tela avançada de filtros para relatórios[RESOLVIDO]

Mais
9 anos 9 meses atrás - 8 anos 4 meses atrás #27177 por armando.lima
Olá amigos, tudo bem?

Alguém tem um exemplo bem simples de como fazer essa tela de filtragem de dados para a geração de um relatório?
Segue anexo.

Fico no aguardo!

Armando.
Anexos:
Ultima edição: 8 anos 4 meses atrás por armando.lima.

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 6 meses atrás - 8 anos 4 meses atrás #28170 por armando.lima
Pessoal, descobri como fazer a tela.
A responsável por tudo isso é a função f_opcoes.

Dá uma olhada:
/*
+-------------------------------------------------------------------------------+
| PROGRAMA: fTipoSit       | AUTOR: Armando Lima        | DATA: 25/02/2015      |
+-------------------------------------------------------------------------------+
| DESCRIÇÃO: Função para abrir uma tela com todos os tipos de situações de      |
|            colaboradores e disponibilizar um checkbox para escolhê-los.       |
+-------------------------------------------------------------------------------+
| USO: ValidPerg         							|
+-------------------------------------------------------------------------------+
*/

User Function fTipoSit(l1Elem,lTipoRet)

	Local cTitulo	:= "Tipos de Situação"
	Local MvPar
	Local MvParDef	:= ""
	Private aSit	:= {}
	ASIZE(aSit,0)
	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
	
	//Percorre tabela genérica '31' onde estão todas as situações e carregá-las no vetor que será utilizado na tela do f_Opcoes
	dbSelectArea("SX5")
	SX5->(dbSeek(xFilial("SX5")+"31"))
	While SX5->(X5_FILIAL+X5_TABELA)==xFilial("SX5")+"31"
		MvParDef	+= If(AllTrim(X5_CHAVE)==""," ",AllTrim(X5_CHAVE))
		Aadd(aSit,If(AllTrim(X5_CHAVE)==""," ",AllTrim(X5_CHAVE)) + " - " + AllTrim(X5_DESCRI))
		SX5->(dbSkip())
	EndDo
	
	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 basta chamar essa função fTipoSit na validação da pergunta que vai funfar legal.

Boa sorte!

Att, Armando.
Ultima edição: 8 anos 4 meses atrás por armando.lima. Razão: Encerrar tópico

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.100 segundos
Joomla templates by a4joomla