Exemplo de validação na rotina de Documento de Saída:
/*
=============================================================
Rotina : M460MARK
————————————————————————————————-
Autor : Thiago Coimbra
————————————————————————————————-
Descricao : Ponto de entrada na rotina de Documento de Saída (MATA460)
no momento em que é pressionado o botão Prepara Docs
ThisMark() retorna a chave C9_OK para descobrir os itens
que foram marcados pelo usuário.
————————————————————————————————-
Partida : MATA460 (Documento de Saída)
=============================================================
*/
#include “Protheus.ch”
#include “topconn.ch”
//—————————————————————————
User Function M460MARK()
//—————————————————————————
Local lRet := .T.
Local cQuery
Local cAlias := CriaTrab(Nil,.F.)
cQuery := “SELECT DISTINCT ”
cQuery += ” C9_PEDIDO ”
cQuery += “FROM ”
cQuery += RETSQLNAME(“SC9″)+” ”
cQuery += “WHERE ”
cQuery += ” C9_FILIAL = ‘”+xFilial(“SC9″)+”‘ ”
cQuery += ” AND D_E_L_E_T_ = ” ”
cQuery += ” AND C9_NFISCAL = ” ”
cQuery += ” AND C9_OK = ‘”+ThisMark()+”‘ ”
TCQuery cQuery NEW ALIAS (cAlias)
(cAlias)->(dbGoTop())
While !(cAlias)->(Eof())
//**********************************************************
// Validação aqui a partir de (cAlias)->C9_PEDIDO
//
// lRet := .F.
// Break
//**********************************************************
(cAlias)->(dbSkip())
EndDo
(cAlias)->(dbCloseArea())
Return(lRet)
Estava utilizando um tratamento semelhante ao seu, porem, quando o usuário realiza a seleção através do inverter seleção, cabeçalho da coluna, a condição não funciona.
Teria alguma sugestão para realizar o tratamento, quando o paramixb[2] := .t., que é o indicador do inverter.
Oi meu amigo. O que acontece? O ponto de entrada não roda ou o ThisMark vem vazio?
NESSA SITUAÇÃO NAO GRAVA O THISMARK() NO C9_OK, VEM VAZIO, ASSIM NÃO HÁ COMO COMPARAR ESSE CAMPO NA VALIDAÇÃO. COMO PEGAR OS MARCADOS NESSA CONDIÇÃO?
Amigo assim que sobrar um tempinho vou tentar fazer umas simulações. Se você tiver resolvido o problema coloca a solução aqui pra gente 😉
O C9_OK fica vazio, mesmo os itens tendo sido preenchidos.
Douglas na ocasião isso não aconteceu comigo. Será que não pode ser versão do Protheus? Assim que eu tiver um tempinho vou fazer umas simulações aqui.