Árvore de páginas

Ponto-de-Entrada: VEI018FBRW - Filtro no Browse da rotina VEIXA018 (Atend. Modelo 2)
Abrangências: Microsiga Protheus 10 , Microsiga Protheus 11
Versões: Microsiga Protheus 10 , Microsiga Protheus 11
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todos
Idiomas: Português (Brasil)
Descrição:
Este ponto de entrada permite o usuário criar um filtro em expressão SQL, para filtrar os registros que serão exibidos no browse da rotina Atend. Modelo 2 (VEIXA018).
Eventos

 /*

ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Funcao    ³ VEIXA018 ³ Autor ³ Andre Luis Almeida / Rubens       ³ Data ³ 30/03/10 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descricao ³ Atendimento de Veiculos                                                ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Uso       ³ Veiculos                                                               ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Function VEIXA018()
Local cFiltro := ""
Local cFilUser := ""
Local aRegs       := {}
Local aCoresUsr   := {}
Private cCadastro := STR0001
Private aRotina   := MenuDef()
Private aCores     := {{'VV9->VV9_STATUS == "A" .AND. VXA018VEIVD()','lbok_ocean'},;  // Em Aberto com Veiculo ja Vendido
{'VV9->VV9_STATUS == "A"','BR_VERDE'},; // Em Aberto
{'VV9->VV9_STATUS == "P"','BR_AMARELO'},; // Pendente de Aprovacao
{'VV9->VV9_STATUS == "O"','BR_BRANCO'},; // Pre-Aprovado
{'VV9->VV9_STATUS == "L"','BR_AZUL'},; // Aprovado
{'VV9->VV9_STATUS == "R"','BR_LARANJA'},; // Reprovado
{'VV9->VV9_STATUS == "F"','BR_PRETO'},; // Finalizado
{'VV9->VV9_STATUS == "C"','BR_VERMELHO'}} // Cancelado
 
//////////////////////////////////////////////////////////////////////////////
// Ponto de Entrada para manipular o aCores ( VV9_STATUS )                  //
//////////////////////////////////////////////////////////////////////////////
 
If ( ExistBlock("VM011LEG") )
aCoresUsr := ExecBlock("VM011LEG",.F.,.F.,{aCores,"C"})
If ( ValType(aCoresUsr) == "A" )
aCores := aClone(aCoresUsr)
EndIf
EndIf
 
//////////////////////////////////////////////////////////////////////////////
// Valida se a empresa tem autorizacao para utilizar os modulos de Veiculos //
//////////////////////////////////////////////////////////////////////////////
If !AMIIn(11)
Return()
EndIf
 
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Pergunte para Configuracao da Rotina ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
 
AADD(aRegs,{"Tp. Operacao Veiculos Novos ", "", "", "mv_ch1", "C", SFM->(TamSx3("FM_TIPO")[1])   , 0, 0, "G", "Vazio() .or. ExistCpo('SX5','DJ'+MV_PAR01)", "mv_par01", "", "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "DJ " , "" , "" , "" ,{"Tipo de operação a ser utilizado no","atendimento de veiculos novos para o","preenchimento do TES utilizando o","recurso do TES inteligente."},{},{}})
AADD(aRegs,{"Tp. Operacao Veiculos Usados", "", "", "mv_ch2", "C", SFM->(TamSx3("FM_TIPO")[1])   , 0, 0, "G", "Vazio() .or. ExistCpo('SX5','DJ'+MV_PAR02)", "mv_par02", "", "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "DJ " , "" , "" , "" ,{"Tipo de operação a ser utilizado no","atendimento de veiculos usados para o","preenchimento do TES utilizando o","recurso do TES inteligente."},{},{}})
AADD(aRegs,{"Cliente Padrão"              , "", "", "mv_ch3", "C", SA1->(TamSx3("A1_COD")[1])    , 0, 0, "G", "Vazio() .or. ExistCpo('SA1',MV_PAR03+AllTrim(MV_PAR04),1)", "mv_par03", "", "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "SA1" , "001" , "" , "" ,{"Cliente padrão para digitação de   ","atendimento sem cliente cadastrado"},{},{}})
AADD(aRegs,{"Loja Cliente Padrão"         , "", "", "mv_ch4", "C", SA1->(TamSx3("A1_LOJA")[1])   , 0, 0, "G", "Vazio() .or. ExistCpo('SA1',MV_PAR03+MV_PAR04,1)", "mv_par04", "", "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "   " , "002" , "" , "" ,{"Loja do Cliente padrão para digitação","atendimento sem cliente cadastrado"},{},{}})
AADD(aRegs,{"Vendedor para Orcamento"     , "", "", "mv_ch5", "C", SA3->(TamSx3("A3_COD")[1])    , 0, 0, "G", "Vazio() .or. ExistCpo('SA3',MV_PAR05)", "mv_par05", "", "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "SA3" , "" , "" , "" ,{"Vendedor padrão para ser utilizado no","momento da criacao do Orcamento","atraves da Acao de Vendas."},{},{}})
AADD(aRegs,{"Tipo de Tempo Interno"       , "", "", "mv_ch6", "C", VOI->(TamSx3("VOI_TIPTEM")[1]), 0, 0, "G", "Vazio() .or. ExistCpo('VOI',MV_PAR06)", "mv_par06", "", "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "VOI" , "" , "" , "" ,{"Tipo de Tempo Interno a ser utilizado","no momento da criacao do Orcamento","atraves da Acao de Vendas."},{},{}})
AADD(aRegs,{"Tipo de Tempo Cliente"       , "", "", "mv_ch7", "C", VOI->(TamSx3("VOI_TIPTEM")[1]), 0, 0, "G", "Vazio() .or. ExistCpo('VOI',MV_PAR07)", "mv_par07", "", "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "VOI" , "" , "" , "" ,{"Tipo de Tempo Cliente a ser utilizado","no momento da criacao do Orcamento","atraves da Acao de Vendas."},{},{}})
AADD(aRegs,{"TES Faturamento Direto"      , "", "", "mv_ch8", "C", SF4->(TamSx3("F4_CODIGO")[1]) , 0, 0, "G", "Vazio() .or. ExistCpo('SF4',MV_PAR08)", "mv_par08", "", "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "SF4" , "" , "" , "" ,{"TES para faturamento direto"},{},{}})
 
AjustaSX1("VXA018",aRegs)
 
Pergunte("VXA018",.F.)
 
While .t.
If Empty(MV_PAR01) .or. Empty(MV_PAR02) .or. Empty(MV_PAR03) .or. Empty(MV_PAR04) .or. Empty(MV_PAR05) .or. Empty(MV_PAR06) .or. Empty(MV_PAR07) .or. Empty(MV_PAR08)
If !Pergunte("VXA018",.t.)
Return()
EndIf
Else
Exit
EndIf
EndDo
 
If ExistBlock("VEI018FBRW") // Ponto de Entrada para Filtro no Browse
cFilUser := ExecBlock("VEI018FBRW",.F.,.F.)
Endif
 
SetKey(VK_F12,{||Pergunte("VXA018",.T.)})
//
DbSelectArea("VV9")
DbSetOrder(1)
If FGX_USERVL( xFilial("VAI") , __cUserID , "VAI_TIPTEC" , "==" , "4" ) // Vendedor
cFiltro := "VV9->VV9_FILIAL == '" + xFilial("VV9") + "' .and. VV9->VV9_USUARI == '" + __cUserID + "' "
cFiltro += iif( !Empty(cFilUser) , ' .and. ' + cFilUser , "" )
FilBrowse( "VV9" , {} , cFiltro ) // Filtra Box do Usuario e Status
mBrowse( 6, 1,22,75,"VV9",,,,,,aCores)
DbSelectArea("VV9")
dbClearFilter()
Else
cFiltro := iif( !Empty(cFilUser) , cFilUser , "" )
if !Empty(cFiltro)
FilBrowse( "VV9" , {} , cFiltro ) // Filtra Box do Usuario e Status
endif
mBrowse(06,01,22,75,"VV9",,,,,,aCores)
DbSelectArea("VV9")
dbClearFilter()
EndIf
 
SetKey(VK_F12,Nil)
 
Return
Programa Fonte
VEIXA018, VEI018FBRW
Sintaxe

VEI018FBRW - Filtro no Browse da rotina VEIXA018 (Atend. Modelo 2) ( [ ] ) --> cFiltro

Parâmetros:
Nome Tipo Descrição Default Obrigatório Referência
Array of Record
Retorno
    cFiltro(caracter)
  • Contém a expressão em SQL referente ao filtro da tabela VV9.
Exemplos
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜܱ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±±±³Fun‡Æo    ³ VEI018FBRW ³ Autor ³ Otavio Favarelli    ³ Data ³ 16/02/11 ³±±±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±±±³Descri‡Æo ³ Ponto de entrada para montar um filtro no browse da rotina ³±±±±³			 ³ VEIXA018 (Atendimendo Modelo 2.)                           ³±±±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±±±³Sintaxe   ³                                                            ³±±±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±±±³Uso       ³ VEICULOS                                                   ³±±±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/User Function VEI018FBRW()Local cFiltro := "VV9->VV9_FILIAL == '01'"//MsgAlert("Mensagem para o ponto de entrada 'VEI018FBRW'!","Atencao!")Return(cFiltro)
Variáveis
Nome Tipo Escopo Pode Alterar descrição
Array of Record Global Não