Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Descrição:

O ponto de entrada M460MARK é utilizado para validar os pedidos que foram marcados, e está localizado no início da função a460Nota (endereça rotinas para a geração dos arquivos SD2/SF2).
Será informado no terceiro parâmetro a série selecionada na geração da nota e Para obter o número da nota fiscal que foi selecionada, poderá ser verificado pela utilizado a variável private cNumero.

Programa Fonte:
MATA461.PRX

Sintaxe:

M460MARK ( cMark ,  lInvertlInvert, cSerie, cSqlFil ) --> lExecuta


Parâmetros:


Portuguese

Pagetitle
M460MARK - Validação de pedidos marcados
M460MARK - Validação de pedidos marcados

Ponto-de-Entrada: M460MARK - Validação de pedidos marcados


Versões:Todas
Compatível Países:Brasil
Sistemas Operacionais:Todos
Compatível às Bases de Dados:Todos
NomeTipoDescrição
cMarkCaracterMarca em uso pela Markbrowse.
lInvertLógicoSe
o pedido esta marcado ou não no MarkBrowse, .T. marcado e .F. não marcado
foi utilizado a opção de "Marcar todos" disponível na markbrowse. 
cSerieCaracterSérie selecionada na geração da nota fiscal.
cSqlFilCaracterParâmetros do filtro em expressão SQL.

Obs.: Esta opção estará disponível com o fonte MATA461.PRX com data igual ou superior a 03/04/2024.


Retorno:
lExecuta (lógico) - Determina se deverá prosseguir com o processamento para geração da nota fiscal.

Observações

Caso a variável "lInvert" esteja como   esteja marcado como .T., será necessário inverter a ordem considerando os marcados como não marcados e os não marcados como marcados em conjunto com os campos necessários conforme as validações da regra e legenda.

Utilizar as funções de FrameWork (Thismark(), ThisInv() e Ismark()), para realizar as validações da marcação dos registros. Não utilizar as validações pelo campo C9_OK, devido orientações da equipe técnica.

Exemplo 1Exemplo:

Bloco de código
languagec#
linenumberstrue
#Include#include 'protheus.ch'
#include 'Protheusparmtype.ch'
 
User Function M460MARK()

    Locallocal cMark   := PARAMIXB[1] // MARCA UTILIZADA
    Locallocal lInvert := PARAMIXB[2] // SELECIONOU "MARCA TODOS"
    Locallocal aArea   := GetArea("SC9")
    
    SC9->(DbGoTop())
    
    While (SC9->(!EOF()))
        If (lInvert) // "CHECK ALL" OPTION SELECTED
          If  If SC9->(IsMark("C9_OK")) .AND. (AllTrim(SC9->C9_OKBLEST) == cMark)
    '' .AND. AllTrim(SC9->C9_BLCRED)=='') 
            MsgInfo("UnmarkedMarked: " + SC9->C9_PEDIDO, "Entry Point M460MARK")
            Else
                MsgInfo("MarkedUnmarked: " + SC9->C9_PEDIDO, "Entry Point M460MARK")
            EndIf
        Else // "CHECK ALL" OPTION NOT SELECTED
            If (SC9->C9>(IsMark("C9_OK == cMark"))
                MsgInfo("Marked: " + SC9->C9_PEDIDO, "Entry Point M460MARK")
            Else
                MsgInfo("Unmarked: " + SC9->C9_PEDIDO, "Entry Point M460MARK")
            EndIf
        EndIf
    
       SC9->(DbSkip())
    EndDo
    
    RestArea(aArea)

Return (MsgYesNo("Continue the current process?", "Entry Point M460MARK"))


Exemplo 2 - Este exemplo irá retornar somente os item que foram selecionados, utilizando o parâmetro de filtro.
Obs.: Utilizar somente com o fonte MATA461.PRX com data igual ou superior a 03/04/2024.

Bloco de código
languagejs
linenumberstrue
#include 'protheus.ch'
  
User Function M460MARK()

Local cMark   := PARAMIXB[1]  //Marca utilizada
Local lInvert := PARAMIXB[2]  //Selecionou pelo "Marcar todos"
Local cSerie  := PARAMIXB[3]  //Série selecionada da Nota Fiscal
Local cSqlFil := PARAMIXB[4]  //Parâmetros do filtro em expressão SQL
Local cQuery  := ""
Local cArqTmp := GetNextAlias()
Local lRet    := .T.

//Esta query irá filtrar e retornar somente as liberações que foram marcadas no browser,
//conforme os parâmetros que foram informados no início da rotina.
cQuery := "SELECT * FROM " + RetSqlName("SC9") + " SC9 "
cQuery += "WHERE " 
cQuery += cSqlFil
cQuery += " AND SC9.C9_BLEST = ' ' AND SC9.C9_BLCRED = ' '"
If lInvert
   cQuery += " AND SC9.C9_OK <> '" + cMark + "'"
Else
   cQuery += " AND SC9.C9_OK = '" + cMark + "'"
EndIf
cQuery += " AND SC9.D_E_L_E_T_ = ' '"

cQuery := ChangeQuery(cQuery)
dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery),cArqTmp,.T.,.T.)

While (cArqTmp)->(!Eof())
   If (cArqTmp)->C9_PRODUTO == "PRODUTO_TESTE" .And. cSerie == "RPS"
      lRet := .F. //Não prossegue com o processamento de geração das notas fiscais
   EndIf
   (cArqTmp)->(DbSkip())
EndDo

(cArqTmp)->(dbCloseArea())

Return lRet




Composition Setup
import.css=/download/attachments/327912/newLayout.css

...