- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Funções AdvPL
- Visualizar informações de um arquivo de dados e navegar entre o registro anterior e o próximo
Perguntas Visualizar informações de um arquivo de dados e navegar entre o registro anterior e o próximo
- alexcarvalhodasilva
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 22
- Obrigados Recebidos: 0
8 anos 3 meses atrás - 8 anos 3 meses atrás #30992
por alexcarvalhodasilva
Visualizar informações de um arquivo de dados e navegar entre o registro anterior e o próximo foi criado por alexcarvalhodasilva
Caros,
Aqui na empresa existe uma customização com uma grid usando msselect e um botão visualizar no final da tela. Apesar do usuário poder selecionar vários itens na grid, ao clicar no botão visualizar, é executada a função AxVisual para exibir somente as informações do item posicionado.
Preciso mudar o comportamento desse botão visualizar, ao clicar nele o usuário irá ver o primeiro item selecionado na msselect e o usuário teria a opção de navegar entre o registro anterior e o próximo.
Alguém pode me ajudar?
A primeira parte é tranquilo, visualizar o primeiro item selecionado na msselect:
O problema é como fazer para ir para o registro anterior e próximo:
Dúvidas:
1 - Ao clicar em próximo, como eu fecho a Axvisual aberta para poder reposicionar no próximo registro. Fiz a tentativa oImvisu:End() mas não funcionou.
2 - Quando o usuário clicar no botão fechar, como sair do loop?
Aqui na empresa existe uma customização com uma grid usando msselect e um botão visualizar no final da tela. Apesar do usuário poder selecionar vários itens na grid, ao clicar no botão visualizar, é executada a função AxVisual para exibir somente as informações do item posicionado.
Preciso mudar o comportamento desse botão visualizar, ao clicar nele o usuário irá ver o primeiro item selecionado na msselect e o usuário teria a opção de navegar entre o registro anterior e o próximo.
Alguém pode me ajudar?
A primeira parte é tranquilo, visualizar o primeiro item selecionado na msselect:
DbSelectArea(cAlias)
DbGoTop()
Do While !Eof()
IF (cAlias)->E2_OK == cMarca
DbSelectArea("SZ4")
DbSetOrder(1)
If DbSeek(xFilial("SZ4") + (cAlias)->Z4_NUMERO + (cAlias)->Z4_ITEM)
RegToMemory("SZ4")
AxVisual("SZ4",SZ4->(Recno()),2,,,,,aButtons,,,,,,,,,)
SZ4->(Dbclosearea())
RestArea(aArea)
Return
EndIf
Else
Dbskip()
Endif
EndDo
O problema é como fazer para ir para o registro anterior e próximo:
Dúvidas:
1 - Ao clicar em próximo, como eu fecho a Axvisual aberta para poder reposicionar no próximo registro. Fiz a tentativa oImvisu:End() mas não funcionou.
2 - Quando o usuário clicar no botão fechar, como sair do loop?
Static Function IM002Vis(cAlias)
Local aArea := GetArea()
Local nReg := 0
Local cnumero
Local citem
Local cacao := "Dbskip()"
Private oImvisu
Private aButtons := {}
Private cCadastro := "Solicitação de pagamento"
//adiciona botoes na Enchoice
aAdd( aButtons, { "PRÓXIMO", {|| oImvisu:End(),cacao := "Dbskip()}, "Próximo", "Próximo" } )
aAdd( aButtons, { "ANTERIOR", {|| oImvisu:End(),cacao := "Dbskip(-1)",MsgAlert("Anterior novamente")}, "Anterior", "Anterior" } )
DbSelectArea(cAlias)
DbGoTop()
Do While !Eof()
IF (cAlias)->E2_OK == cMarca
DbSelectArea("SZ4")
DbSetOrder(1)
If DbSeek(xFilial("SZ4") + (cAlias)->Z4_NUMERO + (cAlias)->Z4_ITEM)
RegToMemory("SZ4")
oImvisu := AxVisual("SZ4",SZ4->(Recno()),2,,,,,aButtons,,,,,,,,,)
EndIf
&cacao
Else
&cacao
Endif
EndDo
SZ4->(Dbclosearea())
RestArea(aArea)
Return
Ultima edição: 8 anos 3 meses atrás por alexcarvalhodasilva.
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
8 anos 3 meses atrás #30995
por kanaamlrr
Respondido por kanaamlrr no tópico Visualizar informações de um arquivo de dados e navegar entre o registro anterior e o próximo
Acho que no caso o ideal seria você montar uma tela com um componente MsMGet e adicionar os botões próximo/anterior na tela.
Cada vez que clicar em próximo/anterior você só atualiza as variáveis de memória e dá um refresh no MsMget
Dessa forma você conseguirá o efeito desejado.
Obs: O AxVisual implementa o MsMget internamente, dessa forma você não utilizará mais o AxVisual.
Abraço!
Cada vez que clicar em próximo/anterior você só atualiza as variáveis de memória e dá um refresh no MsMget
Dessa forma você conseguirá o efeito desejado.
Obs: O AxVisual implementa o MsMget internamente, dessa forma você não utilizará mais o AxVisual.
Abraço!
Por favor Acessar ou Registrar para participar da conversa.
- alexcarvalhodasilva
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 22
- Obrigados Recebidos: 0
8 anos 3 meses atrás #30996
por alexcarvalhodasilva
Respondido por alexcarvalhodasilva no tópico Visualizar informações de um arquivo de dados e navegar entre o registro anterior e o próximo
Perfeito! Você tem toda razão.
Muito obrigado!!!!!!
Muito obrigado!!!!!!
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
8 anos 3 meses atrás #31000
por kanaamlrr
Respondido por kanaamlrr no tópico Visualizar informações de um arquivo de dados e navegar entre o registro anterior e o próximo
Por nada!
Se tiver alguma dúvida no processo de desenvolvimento da tela posta ai.
Abraço!
Se tiver alguma dúvida no processo de desenvolvimento da tela posta ai.
Abraço!
Por favor Acessar ou Registrar para participar da conversa.
- alexcarvalhodasilva
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 22
- Obrigados Recebidos: 0
8 anos 3 meses atrás #31007
por alexcarvalhodasilva
Respondido por alexcarvalhodasilva no tópico Visualizar informações de um arquivo de dados e navegar entre o registro anterior e o próximo
Blz, obrigado.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Funções AdvPL
- Visualizar informações de um arquivo de dados e navegar entre o registro anterior e o próximo
Tempo para a criação da página:0.128 segundos