×
Linguagem de Programação ADVPL
Perguntas Markbrow
- josuel.silva
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 69
- Obrigados Recebidos: 0
11 anos 7 meses atrás #12895
por josuel.silva
Markbrow foi criado por josuel.silva
Prezados boa tarde,
estou tentando criar uma Markbrow, porém, a rotina só está deixando eu navegar pela lista, ou seja, ele não deixa eu descer para o segundo item para poder selecionar.
Mesmo se eu der uma Down ou Up, ele sempre fica posicionado no primeiro item do Markbrow.
Agradeço se puderem dá uma olhada. Segue fonte.
#Include "rwmake.Ch"
#include "TOPCONN.CH"
User Function GArqmarkb()
private _carq := ""
private _carqtmp1 := ""
processa({|| _Qry()})
ccadastro:="Selecionar Arquivos"
arotina:={}
aadd(arotina,{"Pesquisa" ,'u_GP121',0,3})
aadd(arotina,{"Gerar Arq" ,'u_GP122A',0,3})
acampos:={}
aadd(acampos,{ "OK" ,"",""})
dbselectarea("SX3")
dbsetorder(1)
dbseek("ZZQ",.t.)
while !sx3->(eof()) .and. sx3->x3_arquivo == "ZZQ"
if alltrim(sx3->x3_campo) <> "ZZQ_FILIAL"
aadd(aCampos,{x3_campo,"",x3_titulo})
endif
sx3->(dbskip())
end-while
cmarca :=getmark()
lgrade :=.f.
linverte :=.f.
markbrowse("TMP1","OK",,acampos,@linverte,@cmarca)
tmp1->(dbclosearea())
Return Nil
estou tentando criar uma Markbrow, porém, a rotina só está deixando eu navegar pela lista, ou seja, ele não deixa eu descer para o segundo item para poder selecionar.
Mesmo se eu der uma Down ou Up, ele sempre fica posicionado no primeiro item do Markbrow.
Agradeço se puderem dá uma olhada. Segue fonte.
#Include "rwmake.Ch"
#include "TOPCONN.CH"
User Function GArqmarkb()
private _carq := ""
private _carqtmp1 := ""
processa({|| _Qry()})
ccadastro:="Selecionar Arquivos"
arotina:={}
aadd(arotina,{"Pesquisa" ,'u_GP121',0,3})
aadd(arotina,{"Gerar Arq" ,'u_GP122A',0,3})
acampos:={}
aadd(acampos,{ "OK" ,"",""})
dbselectarea("SX3")
dbsetorder(1)
dbseek("ZZQ",.t.)
while !sx3->(eof()) .and. sx3->x3_arquivo == "ZZQ"
if alltrim(sx3->x3_campo) <> "ZZQ_FILIAL"
aadd(aCampos,{x3_campo,"",x3_titulo})
endif
sx3->(dbskip())
end-while
cmarca :=getmark()
lgrade :=.f.
linverte :=.f.
markbrowse("TMP1","OK",,acampos,@linverte,@cmarca)
tmp1->(dbclosearea())
Return Nil
Por favor Acessar ou Registrar para participar da conversa.
- mbrigagao
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 350
- Obrigados Recebidos: 1
11 anos 7 meses atrás #12909
por mbrigagao
Josuel,
Eu tive um problema similar ao seu utilizando o MarkBrow com o Protheus 11.
Para eliminar o problema, passei a utilizar o FWMarkBrow conforme exemplo abaixo:
A linha onde consta oMark:SetSemaphore(.F.) define se pode ou não marcar mais de um elemento, para marcar diversos deixe como .F.
Espero que te de uma luz.
Eu tive um problema similar ao seu utilizando o MarkBrow com o Protheus 11.
Para eliminar o problema, passei a utilizar o FWMarkBrow conforme exemplo abaixo:
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Programa ³VK904Slp ³ Autor ³ Marcelo Brigagao ³ Data ³ 11/11/10 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡…o ³Seleciona pedido para controle de projetos ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function VK904Slp()
Local cFilSC6 := ""
Local aIndexSC6 := {}
Local aCpos := {}
Local aBkRotina := Aclone(aRotina)
Local cTitBrow := OemToAnsi("Controle de Projeto")
Private aRotina := {{"Processa","U_VK904CPR", 0,4}}
Private oMark
cFilSC6 += "C6_NUM>='"+_cPedIni+"' .And. C6_NUM<='"+_cPedFim+"' .And. "
If _lEnvia
cFilSC6 += "C6_FILIAL='"+cSC6Filial+"' .And. Empty(C6_XDTENV) .And. ( Empty(C6_BLQ) .Or. C6_BLQ = 'N' )"
Else
cFilSC6 += "C6_FILIAL='"+cSC6Filial+"' .And. Empty(C6_XDTRET) .And. !Empty(C6_XDTENV) .And. ( Empty(C6_BLQ) .Or. C6_BLQ = 'N' )"
EndIf
dbSelectArea("SC6")
dbSetOrder(1)
aCpos := {}
aAdd(aCpos,{"C6_XDTENV" ,,"Dt.Env.Projeto" ,PesqPict("SC6","C6_XDTENV")})
aAdd(aCpos,{"C6_XDTRET" ,,"Dt.Ret.Projeto" ,PesqPict("SC6","C6_XDTRET")})
aAdd(aCpos,{"C6_XPROG" ,,"Prog.Produção" ,PesqPict("SC6","C6_XPROG")})
aAdd(aCpos,{"C6_NUM" ,,"Nr.Pedido" ,PesqPict("SC6","C6_NUM")})
aAdd(aCpos,{"C6_ITEM" ,,"It.Pedido" ,PesqPict("SC6","C6_ITEM")})
aAdd(aCpos,{"C6_PRODUTO" ,,"Produto" ,PesqPict("SC6","C6_PRODUTO")})
aAdd(aCpos,{"C6_DESCRI" ,,"Descrição" ,PesqPict("SC6","C6_DESCRI")})
aAdd(aCpos,{"C6_QTDVEN" ,,"Qtd.Vendida" ,PesqPict("SC6","C6_QTDVEN")})
aAdd(aCpos,{"C6_OPC" ,,"Opcionais" ,PesqPict("SC6","C6_OPC")})
aAdd(aCpos,{"C6_MEDIDA" ,,"Med./Formação" ,PesqPict("SC6","C6_MEDIDA")})
aAdd(aCpos,{"C6_ENTREG" ,,"Entrega " ,PesqPict("SC6","C6_ENTREG")})
aAdd(aCpos,{"C6_NUMOP" ,,"Nr. OP" ,PesqPict("SC6","C6_NUMOP") })
aAdd(aCpos,{"C6_ITEMOP" ,,"Item OP" ,PesqPict("SC6","C6_ITEMOP")})
aAdd(aCpos,{"C6_QTDENT" ,,"Qtd.Entregue" ,PesqPict("SC6","C6_QTDENT")})
aAdd(aCpos,{"C6_CLI" ,,"Cod.Cliente" ,PesqPict("SC6","C6_CLI")})
aAdd(aCpos,{"C6_NOTA" ,,"Nr.N Fiscal" ,PesqPict("SC6","C6_NOTA")})
aAdd(aCpos,{"C6_SERIE" ,,"Serie NF" ,PesqPict("SC6","C6_SERIE")})
aAdd(aCpos,{"C6_DATFAT" ,,"Data NF" ,PesqPict("SC6","C6_DATFAT")})
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Construcao do MarkBrowse ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
oMark:= FWMarkBrowse():NEW() // Cria o objeto oMark - MarkBrowse
oMark:SetAlias("SC6") // Define a tabela do MarkBrowse
oMark:SetDescription(cTitBrow) // Define o titulo do MarkBrowse
oMark:SetFieldMark("C6_OK") // Define o campo utilizado para a marcacao
oMark:SetFilterDefault(cFilSC6)// Define o filtro a ser aplicado no MarkBrowse
oMark:SetFields(aCpos) // Define os campos a serem mostrados no MarkBrowse
oMark:SetSemaphore(.F.) // Define se utiliza marcacao exclusiva
oMark:DisableDetails() // Desabilita a exibicao dos detalhes do Browse
oMark:Activate() // Ativa o MarkBrowse
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Restaura condicao original ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SC6")
RetIndex("SC6")
dbClearFilter()
aRotina := ACLONE(aBkRotina)
Return()
A linha onde consta oMark:SetSemaphore(.F.) define se pode ou não marcar mais de um elemento, para marcar diversos deixe como .F.
Espero que te de uma luz.
Por favor Acessar ou Registrar para participar da conversa.
- josuel.silva
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 69
- Obrigados Recebidos: 0
11 anos 7 meses atrás #12914
por josuel.silva
Respondido por josuel.silva no tópico Markbrow
Marcelo obrigado pela resposta, mais descobri que meu X2 estava faltando informações.
Faltava preencher as AC Unidade e Ac Empresa estavam em branco.
Preenchi os campos e funcionou.
Grato.
Faltava preencher as AC Unidade e Ac Empresa estavam em branco.
Preenchi os campos e funcionou.
Grato.
Por favor Acessar ou Registrar para participar da conversa.
- lourenconi
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 6
- Obrigados Recebidos: 0
11 anos 6 meses atrás #13214
por lourenconi
Respondido por lourenconi no tópico Markbrow
boa tarde Marcelo,
tambem tive o mesmo problema com o MARKBROW e tive que usar o FWMarkBrowse.
porem estou com duvidas a respeito da função e não encontro solução.
Primeiro como coloco legendas nessa função.
Segundo como faço um refresh para "retirar" as NF da tela após o processamento da função.
obrigado
tambem tive o mesmo problema com o MARKBROW e tive que usar o FWMarkBrowse.
porem estou com duvidas a respeito da função e não encontro solução.
Primeiro como coloco legendas nessa função.
Segundo como faço um refresh para "retirar" as NF da tela após o processamento da função.
obrigado
Por favor Acessar ou Registrar para participar da conversa.
- mbrigagao
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 350
- Obrigados Recebidos: 1
11 anos 6 meses atrás #13394
por mbrigagao
Fernando, bom dia.
A TOTVS ainda não disponibilizou documentação da classe FWMarkBrowse, porém utilizie os seguintes documentos (eles me ajudaram, porém não solucionaram todas as duvidas).
tdn.totvs.com/display/public/mp/Material+de+Apoio+MVC
tdn.totvs.com/display/public/mp/FWBrowse
Qualquer coisa posta seu fonte que a galera da uma força.
A TOTVS ainda não disponibilizou documentação da classe FWMarkBrowse, porém utilizie os seguintes documentos (eles me ajudaram, porém não solucionaram todas as duvidas).
tdn.totvs.com/display/public/mp/Material+de+Apoio+MVC
tdn.totvs.com/display/public/mp/FWBrowse
Qualquer coisa posta seu fonte que a galera da uma força.
Por favor Acessar ou Registrar para participar da conversa.
- titosca
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 7
- Obrigados Recebidos: 0
11 anos 3 meses atrás #16131
por titosca
Posso utilizar filtro em SQL nesse browse??? Pode me dar um exemplo?
marcelo brigagao escreveu: Josuel,
Eu tive um problema similar ao seu utilizando o MarkBrow com o Protheus 11.
Para eliminar o problema, passei a utilizar o FWMarkBrow conforme exemplo abaixo:/*/ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±± ±±³Programa ³VK904Slp ³ Autor ³ Marcelo Brigagao ³ Data ³ 11/11/10 ³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±± ±±³Descri‡…o ³Seleciona pedido para controle de projetos ³±± ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß /*/ Static Function VK904Slp() Local cFilSC6 := "" Local aIndexSC6 := {} Local aCpos := {} Local aBkRotina := Aclone(aRotina) Local cTitBrow := OemToAnsi("Controle de Projeto") Private aRotina := {{"Processa","U_VK904CPR", 0,4}} Private oMark cFilSC6 += "C6_NUM>='"+_cPedIni+"' .And. C6_NUM<='"+_cPedFim+"' .And. " If _lEnvia cFilSC6 += "C6_FILIAL='"+cSC6Filial+"' .And. Empty(C6_XDTENV) .And. ( Empty(C6_BLQ) .Or. C6_BLQ = 'N' )" Else cFilSC6 += "C6_FILIAL='"+cSC6Filial+"' .And. Empty(C6_XDTRET) .And. !Empty(C6_XDTENV) .And. ( Empty(C6_BLQ) .Or. C6_BLQ = 'N' )" EndIf dbSelectArea("SC6") dbSetOrder(1) aCpos := {} aAdd(aCpos,{"C6_XDTENV" ,,"Dt.Env.Projeto" ,PesqPict("SC6","C6_XDTENV")}) aAdd(aCpos,{"C6_XDTRET" ,,"Dt.Ret.Projeto" ,PesqPict("SC6","C6_XDTRET")}) aAdd(aCpos,{"C6_XPROG" ,,"Prog.Produção" ,PesqPict("SC6","C6_XPROG")}) aAdd(aCpos,{"C6_NUM" ,,"Nr.Pedido" ,PesqPict("SC6","C6_NUM")}) aAdd(aCpos,{"C6_ITEM" ,,"It.Pedido" ,PesqPict("SC6","C6_ITEM")}) aAdd(aCpos,{"C6_PRODUTO" ,,"Produto" ,PesqPict("SC6","C6_PRODUTO")}) aAdd(aCpos,{"C6_DESCRI" ,,"Descrição" ,PesqPict("SC6","C6_DESCRI")}) aAdd(aCpos,{"C6_QTDVEN" ,,"Qtd.Vendida" ,PesqPict("SC6","C6_QTDVEN")}) aAdd(aCpos,{"C6_OPC" ,,"Opcionais" ,PesqPict("SC6","C6_OPC")}) aAdd(aCpos,{"C6_MEDIDA" ,,"Med./Formação" ,PesqPict("SC6","C6_MEDIDA")}) aAdd(aCpos,{"C6_ENTREG" ,,"Entrega " ,PesqPict("SC6","C6_ENTREG")}) aAdd(aCpos,{"C6_NUMOP" ,,"Nr. OP" ,PesqPict("SC6","C6_NUMOP") }) aAdd(aCpos,{"C6_ITEMOP" ,,"Item OP" ,PesqPict("SC6","C6_ITEMOP")}) aAdd(aCpos,{"C6_QTDENT" ,,"Qtd.Entregue" ,PesqPict("SC6","C6_QTDENT")}) aAdd(aCpos,{"C6_CLI" ,,"Cod.Cliente" ,PesqPict("SC6","C6_CLI")}) aAdd(aCpos,{"C6_NOTA" ,,"Nr.N Fiscal" ,PesqPict("SC6","C6_NOTA")}) aAdd(aCpos,{"C6_SERIE" ,,"Serie NF" ,PesqPict("SC6","C6_SERIE")}) aAdd(aCpos,{"C6_DATFAT" ,,"Data NF" ,PesqPict("SC6","C6_DATFAT")}) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ Construcao do MarkBrowse ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ oMark:= FWMarkBrowse():NEW() // Cria o objeto oMark - MarkBrowse oMark:SetAlias("SC6") // Define a tabela do MarkBrowse oMark:SetDescription(cTitBrow) // Define o titulo do MarkBrowse oMark:SetFieldMark("C6_OK") // Define o campo utilizado para a marcacao oMark:SetFilterDefault(cFilSC6)// Define o filtro a ser aplicado no MarkBrowse oMark:SetFields(aCpos) // Define os campos a serem mostrados no MarkBrowse oMark:SetSemaphore(.F.) // Define se utiliza marcacao exclusiva oMark:DisableDetails() // Desabilita a exibicao dos detalhes do Browse oMark:Activate() // Ativa o MarkBrowse //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Restaura condicao original ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ dbSelectArea("SC6") RetIndex("SC6") dbClearFilter() aRotina := ACLONE(aBkRotina) Return()
A linha onde consta oMark:SetSemaphore(.F.) define se pode ou não marcar mais de um elemento, para marcar diversos deixe como .F.
Espero que te de uma luz.
Posso utilizar filtro em SQL nesse browse??? Pode me dar um exemplo?
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.103 segundos