gibaf Posted August 5, 2013 Report Share Posted August 5, 2013 ola a todos... estou fazendo um browse com o oBrw:SetArray( aCols ), esse aCols tenho isso: bla..bla..bla... aCols := {} ADDD( aCols , {"001" , "AAAAAAAAAAA" , 10 , 1 , 10 } ) ADDD( aCols , {"002" , "BBBBBBBBBBB" , 10 , 2 , 20 } ) ADDD( aCols , {"003" , "CCCCCCCCCCC" , 10 , 3 , 30 } ) oBrw:SetArray( aCols ) bla..bla..bla.. num determinado momento da aplicacao, tenho a necessidade de zerar a matriz aCols e add novas linhas, assim: aCols := {} //NESSE MOMENTO ACONTECE O ERRO ADDD( aCols , {"005" , "EEEEEEEEEEE" , 10 , 5 , 50 } ) ADDD( aCols , {"006" , "FFFFFFFFFFF" , 10 , 6 , 60 } ) ADDD( aCols , {"007" , "GGGGGGGGGGG" , 10 , 7 , 70 } ) oBrw:SetArray( aCols ) ja percebi q o erro acontece quando zero a matriz aCols, e falha nissso: aCols[oBrw:nAt,1] ,; aCols[oBrw:nAt,2] ,; Transform( aCols[oBrw:nAt,3] ,'@R 9999.999') ,; Transform( aCols[oBrw:nAt,4] ,'@E 999,999.9999') ,; Transform( aCols[oBrw:nAt,5] ,'@E 999,999.9999') mas, como resolver esse problema (evitar o error.log) ?? desde ja agradeco a ajuda q vier: MUITO OBRIGADO !!! Quote Link to comment Share on other sites More sharing options...
gibaf Posted August 5, 2013 Author Report Share Posted August 5, 2013 fiz isso antes de zerar a Matriz, resolveu, mas se alguem mais tiver outra solucao, peco q poste, por favor... aColsTmp := aCols oBrw:SetArray( aCols ) entao, ficou assim: bla..bla..bla... aCols := {} ADDD( aCols , {"001" , "AAAAAAAAAAA" , 10 , 1 , 10 } ) ADDD( aCols , {"002" , "BBBBBBBBBBB" , 10 , 2 , 20 } ) ADDD( aCols , {"003" , "CCCCCCCCCCC" , 10 , 3 , 30 } ) oBrw:SetArray( aCols ) bla..bla..bla.. aColsTmp := aCols oBrw:SetArray( aColsTmp) aCols := {} //NESSE MOMENTO ACONTECE O ERRO ADDD( aCols , {"005" , "EEEEEEEEEEE" , 10 , 5 , 50 } ) ADDD( aCols , {"006" , "FFFFFFFFFFF" , 10 , 6 , 60 } ) ADDD( aCols , {"007" , "GGGGGGGGGGG" , 10 , 7 , 70 } ) oBrw:SetArray( aCols ) Quote Link to comment Share on other sites More sharing options...
Yury Posted August 5, 2013 Report Share Posted August 5, 2013 Olá esse erro as vezes ocorre em razão de ter um refresh de tela (um msginfo, por exemplo) entre o momento que vc zera a tabela relacionada ao browse e o momento em que vc carrega um novo conteúdo, populando novamente a tabela uma dica para que não ocorra é nunca deixar a tabela vazia, veja este exemplo: aCols:= {"","< sem registros >",0,0,0} // "zere" a tabela assim ADDD( aCols , {"001" , "AAAAAAAAAAA" , 10 , 1 , 10 } ) // recarregue os dados ADDD( aCols , {"002" , "BBBBBBBBBBB" , 10 , 2 , 20 } ) ADDD( aCols , {"003" , "CCCCCCCCCCC" , 10 , 3 , 30 } ) for N:=1 TO LEN(aCols) // remova o item em branco IF EMPTY(aCols[N,1]) ADEL(aCols,N,.T.) N-- ENDIF NEXT oBrw:SetArray( aCols ) // atualizar a tabela do obejto oBrw:GoTop()oBrw:lHitBottom:=.F.oBrw:Refresh() Abraço Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted August 5, 2013 Report Share Posted August 5, 2013 Colega uma outra saída seria fazer assim: oBrw3:aCols[6]:bStrData := { || iif(len(aCompra3c)>0,(trans(aCompra3c[oBrw3:nArrayAt,6],"@E 999,999.99")),"") } Abraços Luiz Fernando Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.