- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- duvida de mark browse !!!!!!!
×
Linguagem de Programação ADVPL
Perguntas duvida de mark browse !!!!!!!
- fcarneirosantos
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 57
- Obrigados Recebidos: 0
11 anos 4 meses atrás #15902
por fcarneirosantos
duvida de mark browse !!!!!!! foi criado por fcarneirosantos
Boa tarde,
Pessoal,
NO mark Browse somente consigo selecionar item a item, mas se eu selecionar todos pelo botão no canto superior esquerdo que marca todos , não funciona .
Alguem poderi ame ajudar por favor :
Exemplo abaixo do fonte.
#include "Protheus.ch"
#include "Rwmake.ch"
#include "Topconn.ch"
//MarkBrow
User Function HSMARKFIN()
Local _lRetorno := .F. //Validacao da dialog criada oDlg
Local _nOpca := 0 //Opcao da confirmacao
Local bOk := {|| _nOpca:=1,_lRetorno:=.T.,oDlg:End() } //botao de ok
Local bCancel := {|| _nOpca:=0,oDlg:End() } //botao de cancelamento
Local _cArqEmp := "" //Arquivo temporario com as empresas a serem escolhidas
Local _aStruTrb := {} //estrutura do temporario
Local _aBrowse := {} //array do browse para demonstracao das empresas
Local _aEmpMigr := {} //array de retorno com as empresas escolhidas
Private lInverte := .F. //Variaveis para o MsSelect
Private cMarca := GetMark() //Variaveis para o MsSelect
Private oBrwTrb //objeto do msselect
Private oDlg
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Define campos do TRB ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aadd(_aStruTrb,{"A1COD" ,"C",06,0})
aadd(_aStruTrb,{"A1LOJA" ,"C",02,0})
aadd(_aStruTrb,{"A1NOME" ,"C",40,0})
aadd(_aStruTrb,{"OK" ,"C",02,0})
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Define campos do MsSelect ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aadd(_aBrowse,{"OK" ,,"" })
aadd(_aBrowse,{"A1COD",,"Codigo" })
aadd(_aBrowse,{"A1LOJA",,"Loja" })
aadd(_aBrowse,{"A1NOME" ,,"Nome" })
If Select("TRB") > 0
TRB->(DbCloseArea())
Endif
_cArqEmp := CriaTrab(_aStruTrb)
dbUseArea(.T.,__LocalDriver,_cArqEmp,"TRB")
//Aqui você monta sua query que serve para gravar os dados no arquivo temporario...
cQuery := "SELECT A1_COD ,A1_LOJA ,A1_NOME ,A1_XOK FROM SA1010 "
cQuery += "WHERE A1_XOK = '' AND D_E_L_E_T_ <> '*' AND A1_COD BETWEEN '014340' AND '014350' "
cQuery += "ORDER BY A1_COD "
TCQuery cQuery new Alias (cAlias:=GetNextAlias())
While (cAlias)->(!Eof())
RecLock("TRB",.T.)
TRB->OK := (cAlias)->A1_XOK //space(2)
TRB->A1COD := (cAlias)->A1_COD
TRB->A1LOJA := (cAlias)->A1_LOJA
TRB->A1NOME := (cAlias)->A1_NOME
MsUnlock()
(cAlias)->(DbSkip())
Enddo
(cAlias)->(DbCloseArea())
@ 001,001 TO 400,700 DIALOG oDlg TITLE OemToAnsi("Titulos a Vencer")
@ 015,005 SAY OemToAnsi("Envio de Titulos a Vencer por e-mail")
oBrwTrb := MsSelect():New("TRB","OK","",_aBrowse,@lInverte,@cMarca,{025,001,170,350})
oBrwTrb:oBrowse:lCanAllmark := .T.
Eval(oBrwTrb:oBrowse:bGoTop)
oBrwTrb:oBrowse:Refresh()
Activate MsDialog oDlg On Init (EnchoiceBar(oDlg,bOk,bCancel,,)) Centered VALID _lRetorno
TRB->(DbGotop())
If _nOpca == 1
Do While TRB->(!Eof())
If !Empty(TRB->OK) //se usuario marcou o registro
aAdd(_aEmpMigr,{TRB->A1COD})
EndIf
TRB->(DbSkip())
If !Empty(TRB->OK)
MsgAlert(_aEmpMigr)
EndIf
EndDo
Endif
//fecha area de trabalho e arquivo temporário criados
If Select("TRB") > 0
DbSelectArea("TRB")
DbCloseArea()
Ferase(_cArqEmp+OrdBagExt())
Endif
Return(_aEmpMigr)
Pessoal,
NO mark Browse somente consigo selecionar item a item, mas se eu selecionar todos pelo botão no canto superior esquerdo que marca todos , não funciona .
Alguem poderi ame ajudar por favor :
Exemplo abaixo do fonte.
#include "Protheus.ch"
#include "Rwmake.ch"
#include "Topconn.ch"
//MarkBrow
User Function HSMARKFIN()
Local _lRetorno := .F. //Validacao da dialog criada oDlg
Local _nOpca := 0 //Opcao da confirmacao
Local bOk := {|| _nOpca:=1,_lRetorno:=.T.,oDlg:End() } //botao de ok
Local bCancel := {|| _nOpca:=0,oDlg:End() } //botao de cancelamento
Local _cArqEmp := "" //Arquivo temporario com as empresas a serem escolhidas
Local _aStruTrb := {} //estrutura do temporario
Local _aBrowse := {} //array do browse para demonstracao das empresas
Local _aEmpMigr := {} //array de retorno com as empresas escolhidas
Private lInverte := .F. //Variaveis para o MsSelect
Private cMarca := GetMark() //Variaveis para o MsSelect
Private oBrwTrb //objeto do msselect
Private oDlg
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Define campos do TRB ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aadd(_aStruTrb,{"A1COD" ,"C",06,0})
aadd(_aStruTrb,{"A1LOJA" ,"C",02,0})
aadd(_aStruTrb,{"A1NOME" ,"C",40,0})
aadd(_aStruTrb,{"OK" ,"C",02,0})
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Define campos do MsSelect ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aadd(_aBrowse,{"OK" ,,"" })
aadd(_aBrowse,{"A1COD",,"Codigo" })
aadd(_aBrowse,{"A1LOJA",,"Loja" })
aadd(_aBrowse,{"A1NOME" ,,"Nome" })
If Select("TRB") > 0
TRB->(DbCloseArea())
Endif
_cArqEmp := CriaTrab(_aStruTrb)
dbUseArea(.T.,__LocalDriver,_cArqEmp,"TRB")
//Aqui você monta sua query que serve para gravar os dados no arquivo temporario...
cQuery := "SELECT A1_COD ,A1_LOJA ,A1_NOME ,A1_XOK FROM SA1010 "
cQuery += "WHERE A1_XOK = '' AND D_E_L_E_T_ <> '*' AND A1_COD BETWEEN '014340' AND '014350' "
cQuery += "ORDER BY A1_COD "
TCQuery cQuery new Alias (cAlias:=GetNextAlias())
While (cAlias)->(!Eof())
RecLock("TRB",.T.)
TRB->OK := (cAlias)->A1_XOK //space(2)
TRB->A1COD := (cAlias)->A1_COD
TRB->A1LOJA := (cAlias)->A1_LOJA
TRB->A1NOME := (cAlias)->A1_NOME
MsUnlock()
(cAlias)->(DbSkip())
Enddo
(cAlias)->(DbCloseArea())
@ 001,001 TO 400,700 DIALOG oDlg TITLE OemToAnsi("Titulos a Vencer")
@ 015,005 SAY OemToAnsi("Envio de Titulos a Vencer por e-mail")
oBrwTrb := MsSelect():New("TRB","OK","",_aBrowse,@lInverte,@cMarca,{025,001,170,350})
oBrwTrb:oBrowse:lCanAllmark := .T.
Eval(oBrwTrb:oBrowse:bGoTop)
oBrwTrb:oBrowse:Refresh()
Activate MsDialog oDlg On Init (EnchoiceBar(oDlg,bOk,bCancel,,)) Centered VALID _lRetorno
TRB->(DbGotop())
If _nOpca == 1
Do While TRB->(!Eof())
If !Empty(TRB->OK) //se usuario marcou o registro
aAdd(_aEmpMigr,{TRB->A1COD})
EndIf
TRB->(DbSkip())
If !Empty(TRB->OK)
MsgAlert(_aEmpMigr)
EndIf
EndDo
Endif
//fecha area de trabalho e arquivo temporário criados
If Select("TRB") > 0
DbSelectArea("TRB")
DbCloseArea()
Ferase(_cArqEmp+OrdBagExt())
Endif
Return(_aEmpMigr)
Por favor Acessar ou Registrar para participar da conversa.
- renogueira89
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 6
- Obrigados Recebidos: 0
10 anos 8 meses atrás #22245
por renogueira89
Respondido por renogueira89 no tópico duvida de mark browse !!!!!!!
Fabio,
Como você resolveu o problema acima?
Obrigado!
Como você resolveu o problema acima?
Obrigado!
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- duvida de mark browse !!!!!!!
Tempo para a criação da página:0.130 segundos