Jump to content
Fivewin Brasil

Problema ao utilizar 2 xBrowse. (Resolvido)


AprendizFW

Recommended Posts

Olá Pessoal,

Comecei a utilizar o xBrowse à pouco tempo e estou tendo um problema quando utilizo 2 xBrowse na mesma rotina. Exemplo: o primeiro xbrowse mostra os itens de uma nota de compra que está armazenado em um dbf e quando vou incluir um novo item na compra, chamo um segundo xbrowse que contêm um array com todos os itens disponiveis no cadastro. Nesse segundo xbrowse aparece apenas um item repetido várias vezes. Curiosamente isso só acontece quando eu preciso utilizar um xbrowse com um dbf e outro com um array, se eu utilizar os dois xbrowse com dbf's ou os dois xbrowse com array fica normal. Já tomei o cuidado de utilizar nomes diferentes para os dois xbrowse, alguém já passou por isso ???.

Um abraço a todos,

Edilson.

Editado por - AprendizFW on 23/10/2012 21:15:12

Link to comment
Share on other sites

Olá Pessoal,

Comecei a utilizar o xBrowse à pouco tempo e estou tendo um problema quando utilizo 2 xBrowse na mesma rotina. Exemplo: o primeiro xbrowse mostra os itens de uma nota de compra que está armazenado em um dbf e quando vou incluir um novo item na compra, chamo um segundo xbrowse que contêm um array com todos os itens disponiveis no cadastro. Nesse segundo xbrowse aparece apenas um item repetido várias vezes. Curiosamente isso só acontece quando eu preciso utilizar um xbrowse com um dbf e outro com um array, se eu utilizar os dois xbrowse com dbf's ou os dois xbrowse com array fica normal. Já tomei o cuidado de utilizar nomes diferentes para os dois xbrowse, alguém já passou por isso ???.

Um abraço a todos,

Edilson.

Editado por - AprendizFW on 23/10/2012 21:15:12

Link to comment
Share on other sites

Valeu João, segue a lógica...


// 1º Browse Com DBF

oBrwItem := TXBrowse():New( oDlgNota )

oBrwItem:nMarqueeStyle := MARQSTYLE_HIGHLROW

oBrwItem:nColDividerStyle := LINESTYLE_LIGHTGRAY

oBrwItem:nRowDividerStyle := LINESTYLE_LIGHTGRAY

oBrwItem:bSeek := {|c| DbSeek( Upper( c ) ) }

oBrwItem:bClrHeader := {|| {CLR_BLACK,CLR_LGREEN}}

oBrwItem:l2007:= .F.

oBrwItem:SetRDD()

oBrwItem:CreateFromResource( 120 )

oColnota:=oBrwItem:AddCol()

oColnota:cHeader := "Codigo"

oColnota:bStrData := { || MOVI->cdpr }

oColnota:nDataStrAlign := AL_LEFT

oColnota:nHeadStrAlign := AL_LEFT

oColnota:nWidth := 90

oColnota:=oBrwItem:AddCol()

oColnota:cHeader := "Produto"

oColnota:bStrData := { || MOVI->desc }

oColnota:nDataStrAlign := AL_LEFT

oColnota:nHeadStrAlign := AL_LEFT

oColnota:nWidth := 200

oColnota:=oBrwItem:AddCol()

oColnota:cHeader := "CFOP"

oColnota:bStrData := { || trans(MOVI->cfop,"@r 9.999") }

oColnota:nDataStrAlign := AL_LEFT

oColnota:nHeadStrAlign := AL_LEFT

oColnota:nWidth := 45

oColnota:=oBrwItem:AddCol()

oColnota:cHeader := "Quantidade"

oColnota:bStrData := { || str(MOVI->quan,10,3) }

oColnota:nDataStrAlign := AL_LEFT

oColnota:nHeadStrAlign := AL_LEFT

oColnota:nWidth := 80

oColnota:= oBrwItem:AddCol()

oColnota:cHeader := "Unitário"

oColnota:bStrData := { || transform(MOVI->vuni,wmasc2) }

oColnota:nDataStrAlign := AL_LEFT

oColnota:nHeadStrAlign := AL_LEFT

oColnota:nWidth := 100

oColnota:= oBrwItem:AddCol()

oColnota:cHeader := "Embalagem"

oColnota:bStrData := { || str(MOVI->emba,8,3) }

oColnota:nDataStrAlign := AL_LEFT

oColnota:nHeadStrAlign := AL_LEFT

oColnota:nWidth := 80

oColnota:= oBrwItem:AddCol()

oColnota:cHeader := "Descto(%)"

oColnota:bStrData := { || transform(MOVI->ades,"999.99") }

oColnota:nDataStrAlign := AL_LEFT

oColnota:nHeadStrAlign := AL_LEFT

oColnota:nWidth := 80

oColnota:= oBrwItem:AddCol()

oColnota:cHeader := "IPI(%)"

oColnota:bStrData := { || transform(MOVI->aipi,"999.99") }

oColnota:nDataStrAlign := AL_LEFT

oColnota:nHeadStrAlign := AL_LEFT

oColnota:nWidth := 80

oColnota:= oBrwItem:AddCol()

oColnota:cHeader := "S.Trib(%)"

oColnota:bStrData := { || transform(MOVI->psbt,"999.99") }

oColnota:nDataStrAlign := AL_LEFT

oColnota:nHeadStrAlign := AL_LEFT

oColnota:nWidth := 80

oColnota:= oBrwItem:AddCol()

oColnota:cHeader := "Total Item"

oColnota:bStrData := { || transform(MOVI->tpro,"@E 999,999.99") }

oColnota:nDataStrAlign := AL_LEFT

oColnota:nHeadStrAlign := AL_LEFT

oColnota:nWidth := 100

ACTIVATE DIALOG oDlgNota CENTER ON INIT ( oBrwItem:Refresh() )

// 2º Browse Com Array

oBroItens:= TXBrowse():New( oDlgItens )

oBroItens:CreateFromResource( 350 )

oBroItens:nMarqueeStyle := MARQSTYLE_HIGHLROW

oBroItens:nColDividerStyle := LINESTYLE_LIGHTGRAY

oBroItens:nRowDividerStyle := LINESTYLE_LIGHTGRAY

oBroItens:bClrHeader := {|| {CLR_BLACK,CLR_LGREEN}}

oBroItens:bClrSelFocus := {|| {CLR_WHITE,CLR_LBLUE} }

oBroItens:bClrRowFocus := {|| {CLR_WHITE,CLR_LBLUE} }

oBroItens:bClrSel := {|| {CLR_WHITE,CLR_LBLUE} }

oBroItens:l2007 := .F.

oBroItens:SetRDD()

oBroItens:SetArray( aItens )

oBroItens:aCols[ 1 ]:cHeader := "Código"

oBroItens:aCols[ 1 ]:bStrData := { || aItens[oBroItens][1] }

oBroItens:aCols[ 1 ]:nWidth := 90

oBroItens:aCols[ 1 ]:nDataStrAlign := AL_LEFT

oBroItens:aCols[ 1 ]:nHeadStrAlign := AL_LEFT

oBroItens:aCols[ 2 ]:cHeader := "Descrição"

oBroItens:aCols[ 2 ]:bStrData := { || aItens[oBroItens][2] }

oBroItens:aCols[ 2 ]:nWidth := 500

oBroItens:aCols[ 2 ]:nDataStrAlign := AL_LEFT

oBroItens:aCols[ 2 ]:nHeadStrAlign := AL_LEFT

ACTIVATE DIALOG oDlgItens CENTER ON INIT ( oBroItens:Refresh() )

id=code>id=code>

Um abraço,

Edilson.

Link to comment
Share on other sites

1) Mostra aí como você está povoando a matriz aItens.

2) Retire a linha: oBroItens:SetRDD()

3) Altera a linha : oBroItens:SetArray( aItens, .t. )

4) Retire ON INIT ( oBroItens:Refresh() )

marciano.jpg

Marciano Queiroz

Teixeira de Freitas-Ba

FW 10.12 + xHb 1.2.1 | BCC 5.82 | SQLLIB | PAF-ECF | TEF | NF-e | SPED Fiscal | PBM´s | Biometria | Ret.XML NF-e

Link to comment
Share on other sites

Grande Kleyber Derick,

Meu amigão é que estou tendo que trabalhar com DBF, MYSQL e TXT ao mesmo tempo. Deixa eu tentar explicar, em uma rotina de pedido de compras que trabalha com DBF, ele importa um arquivo TXT que veio de outra loja como transferência, sendo que eu tenho que mostrar os itens dessa transferência antes que a importação seja realizada, para isto utilizo um xbrowse com o array criado apartir do TXT. Na outra ponta existe uma tabela em MYSQL com todos os produtos da empresa que estão centralizados em um servidor remoto e utilizo o SQLARRAY para pegar esses dados que são armazenados também em um array. Resumindo, enquanto eu não terminar de converter o sistema para MYSQL, estou utilizando browse com DBF e com ARRAY. Eu devo está fazendo alguma coisa errada que não está certa (rsrsrsrs, essa frase é tua), pois o xBrowse com array fica doidinho. Pra não perder mais tempo, troquei o xBrowse para Listbox na hora de usar array apenas nesta rotina e resolveu meu problema, pois em outras rotinas em que utilizo apenas um xBrowse com array funciona normal.

Um abração,

Edilson.

Link to comment
Share on other sites

Olá Marciano Queiroz,

Rapaz vc é fera mesmo heim, foi só eu retirar a linha abaixo:

oBroItens:SetRDD()

que funcionou legal.

Então isso significa que só pode haver o :SetRDD() no primeiro browse, os outros devem ficam sem ele. Eu não sabia disso e já tinha até trocado pra listbox, mas vou voltar a usar o xBrowse pois ele têm um visual melhor.

Muitissímo obrigado e um grande abraço,

Edilson.

Editado por - AprendizFW on 23/10/2012 21:32:29

Editado por - AprendizFW on 23/10/2012 21:33:29

Link to comment
Share on other sites

Pelo que entendi da solução não é que não pode ter dois SETRDD e sim pq no 1o xBrowse é com base em uma tabela e no 2o é com base em um array.

Ou seja, o que não pode é ter SETRDD no 2o, já que a base das informações é ARRAY e não tabela. Se no 2o array a base para as informações fosse uma tabela deveria ter SETRDD e funcionaria.

Foi isso que entendi....

citação:

Olá Marciano Queiroz,

Rapaz vc é fera mesmo heim, foi só eu retirar a linha abaixo:

oBroItens:SetRDD()

que funcionou legal.

Então isso significa que só pode haver o :SetRDD() no primeiro browse, os outros devem ficam sem ele. Eu não sabia disso e já tinha até trocado pra listbox, mas vou voltar a usar o xBrowse pois ele têm um visual melhor.

Muitissímo obrigado e um grande abraço,

Edilson.

Editado por - AprendizFW on 23/10/2012 21:32:29

Editado por - AprendizFW on 23/10/2012 21:33:29


id=quote>id=quote>

Eduardo Motta

emotta@gmail.com.br

FWH 9.09 (original) - xHARBOUR 1.2.1 (comercial e original) - SQLRDD

AJbJ

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...