Histórico da Página
Ponto de Entrada
Descrição: | Este Ponto de Entrada será executado na rotina Painel Orçamento (OFIXA018) na abertura da rotina. A mesma permite personalizar o filtro do browse da rotina. |
Localização: | Atualizações \ Mov Peças \ Painel Orçamento (OFIXA018) |
Eventos: | cCamposVS1 := "" for nCntFor := 1 to Len(aLbCampos) if aLbCampos[nCntFor,3] != "V" cCamposVS1 +=aLbCampos[nCntFor,1] + "," endif next cCamposVS1 := Left(cCamposVS1,Len(cCamposVS1)-1) cQryAl001 := GetNextAlias() cQuery := "SELECT R_E_C_N_O_ RECVS1, " + cCamposVS1 cQuery += " FROM " + RetSQLName("VS1") cQuery += " WHERE VS1_FILIAL ='" + xFilial("VS1") + "'" cQuery += IIF(!lMostraVenc," AND VS1_DATVAL >='" + dtos(ddatabase) + "'","") cQuery += IIF(!lMostraFatu," AND VS1_STATUS !='X'","") cQuery += IIF(!lMostraCanc," AND VS1_STATUS !='C'","") If ExistBlock("OX018FBR") // Ponto de Entrada para Filtro dos Orçamentos no Browse cFiltroX18 := ExecBlock("OX018FBR", .f., .f.) EndIf If Empty(Alltrim(cFiltroX18)) cFiltroX18 := " AND VS1_TIPORC IN ('1','2') " EndIf cQuery += " AND D_E_L_E_T_ = ' ' " + cFilVend18 + cFilFase18 + cRFilVS1Orc + cFiltroX18 + " ORDER BY VS1_FILIAL, VS1_NUMORC " dbUseArea( .T., "TOPCONN", TcGenQry( ,, cQuery ), cQryAl001, .F., .T. ) |
Programa Fonte: | OFIXA018.PRW |
Função: | OXA018MTOR() |
Retorno: | cFiltroX18 - Caracter - Caracter que compõe as instruções em linguagem ADVPL para utilização do filtro no browse. |
Exemplo:
#INCLUDE "RWMAKE.CH"
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TOPCONN.CH"
/*
===============================================================================
###############################################################################
##+----------+------------+-------+-----------------------+------+----------+##
##|Função | OX018FBR | Autor | MIL | Data | 18/03/19 |##
##+----------+------------+-------+-----------------------+------+----------+##
##|Descrição | Verificação de filtro para visualização de orçamentos tipo |##
## | Balcão, Oficina ou Ambos na função OXA018MTOR() da rotina |##
## | Painel de Orçamento (OFIXA018) |##
##+----------+--------------------------------------------------------------+##
##+----------+--------------------------------------------------------------+##
###############################################################################
===============================================================================
*/
User Function OX018FBR()
Local _cUsuario := ""
Local _cRet := ""
Local _aAreaVAI := VAI->(GetArea()) //Guarda a área do VAI
// Guarda o código do usuário
_cUsuario := __CUSERID
// Posiciona no código do usuário na Equipe Técnica
DbSelectArea("VAI")
VAI->(DbSetOrder(4)) //VAI_FILIAL+VAI_CODUSR
// Se posiciona, filtra o usuário da Equipe Técnica
If VAI->(DbSeek(xFilial("VAI") + _cUsuario))
If AllTrim(VAI->VAI_TIPTEC) == "4" // VAI_TIPTEC = "4" VENDEDOR
Do Case
Case _cUsuario $ "000002" // Por exemplo, João
_cRet := " AND VS1_TIPORC = '1' " // Todos os códigos informados visualizam orçamentos Balcão
Otherwise
_cRet := " AND VS1_TIPORC = '2' " // Os demais visualizam orçamentos Oficina
End Case
Else
_cRet := " AND VS1_TIPORC IN ('1','2') " // Gerente e Faturista visualizam todos os orçamentos
EndIf
MsgAlert("Ponto de Entrada OX018FBR executado com sucesso!")
EndIf
// Retorna a área do VAI
RestArea(_aAreaVAI)
Return(_cRet)