× Linguagem de Programação ADVPL

Perguntas duvida de mark browse !!!!!!!

Mais
10 anos 9 meses atrás #15902 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)

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 1 mês atrás #22245 por renogueira89
Respondido por renogueira89 no tópico duvida de mark browse !!!!!!!
Fabio,

Como você resolveu o problema acima?

Obrigado!

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.107 segundos
Joomla templates by a4joomla