Página 1 de 1

Pegar Valor da Coluna no BROWSE com ARRAY

Enviado: 05 Out 2011 10:51
por jelias
Amigos,

Tenho um BROWSE ARRAY com os dados das notas fiscais faturadas em um determinado período. Gostaria que quando o usuário der um click em uma determinada nota fiscal, outro BROWSE apareça e mostre os itens pertencentes a esta nota fiscal.
Para fazer isso preciso pegar o valor da segunda coluna e terceira coluna, que refere-se ao número da NF-e e série. Não estou conseguindo pegar estes valores, no ON CLICK.
Irei postar abaixo o código.

Código: Selecionar todos

 @ 3,31 BROWSE oBrowse1 ARRAY SIZE 1075,492 ;
		  FONT oFont;
		  OF oPage1;
		  STYLE  WS_VSCROLL + WS_HSCROLL MULTISELECT;
		  ON CLICK {|| MSGINFO(EVAL(oBrowse1:aCOLUMNS[2]:value),"e") }

		  oBrowse1:aArray := oDados
		  CREATEARLIST(oBrowse1, oDados)

		  oBrowse1:aColumns[1]:heading:="*"
		  oBrowse1:aColumns[2]:heading:="Nota Fiscal"
		  oBrowse1:aColumns[3]:heading:="Serie"
		  oBrowse1:aColumns[4]:heading:="Emissao"
		  oBrowse1:aColumns[5]:heading:="Cliente"
		  oBrowse1:aColumns[6]:heading:="Nome Cliente"
		  oBrowse1:aColumns[7]:heading:="Cidade"
		  oBrowse1:aColumns[8]:heading:="Valor Produtos"
		  oBrowse1:aColumns[9]:heading:="Valor Total"

		  oBrowse1:aColumns[8]:picture:="@R 99,999,999.99"
		  oBrowse1:acolumns[9]:picture:="@R 99,999,999.99"

		  oBrowse1:aColumns[8]:nJuslin:=DT_RIGHT
		  oBrowse1:acolumns[9]:nJuslin:=DT_RIGHT

		  oBrowse1:Refresh()
Mensagem do erro.
Error BASE/1004 Message not found: HBROWSE:GETCOLUMN
Called from tobject.prg->HBROWSE:ERROR(172)
Called from tobject.prg->HBROWSE:MSGNOTFOUND(205)
Called from tobject.prg->HBROWSE:GETCOLUMN(0)

Sds,

Júlio.

Pegar Valor da Coluna no BROWSE com ARRAY

Enviado: 05 Out 2011 13:24
por esbasso
voce usa a hwgui atualizada?

Pegar Valor da Coluna no BROWSE com ARRAY

Enviado: 05 Out 2011 13:40
por ANDRIL
Faz muito tempo que nao uso HWGUI, mais qdo estava usando, era a versao 2.16 e nesta versao lembro que procurei muito isso... e por fim, fiz uma gambi para obter esse tipo de dado.

Eu criava o BROWSE sem via DBF, agora como vc cria via array, pode aproveitar a mesma tecnica mais facilmente,
veja:

declarava um array que montava o cabecalho do browse

Código: Selecionar todos

    
    acmps:={{" ","SIT","C",1,0,.f.,""},;
            {"Sel","SEL","C",1,0,.f.,"!"},;
            {"Estoque","ESTOQUE","N",2,0,.T.,""},;
            {"Cod.ABC","MED_ABC","C",09,0,.F.,""},;
            {"Cod.Site","CODSITE","C",09,0,.T.,"999999999"},;
            {"Gen","MED_GENE","C",03,0,.F.,""},;
            {"Medicamentos","MED_DES","C",45,0,.F.,""},;
            {"Custo","MED_PLA1","N",10,2,.T.,"999,999.99"},;
            {"Venda","MED_PCO1","N",10,2,.T.,"999,999.99"},;
            {"Laboratorio","LAB_NOM","C",30,0,.F.,""},;
            {"Dat.Cad","DATCADA","C",1,0,.T.,""},;
           }
    for i = 1 to 11 //len(acmps)
        oBrowse1:AddColumn( HColumn():New( acmps[i,1],FieldBlock(acmps[i,2])
    next
depois atraves do objeto oBrowse1, obtia a coluna onde estava o cursor, por exemplo, ao teclar F4 em uma
coluna.

Para saber o campo realmente (pois tem como pegar o headiang) porem nao servia, entao fiz isso:

Código: Selecionar todos

campoatual=acmps[oBrowse1:setcolumn(), 2]
Precisa ver se ta funfando ai, pq ha muito nao uso. Espero em breve voltar a usar a HWGUI, nem sei qual a versao mais recente mais creio ter tido muitas alteracoes.

Abracos

Pegar Valor da Coluna no BROWSE com ARRAY

Enviado: 05 Out 2011 13:55
por esbasso
perguntei posi se for a atualizada pode fazer

oBrowse:aColumns[2]:value := xvalue
ou xvalue := oBrowse:aColumns[2]:value

Pegar Valor da Coluna no BROWSE com ARRAY

Enviado: 05 Out 2011 13:57
por esbasso
senão

xvalue := oBrowse:aArray[ oBrowse:nCurrent, 2 ] onde 2 é a coluna

Pegar Valor da Coluna no BROWSE com ARRAY

Enviado: 05 Out 2011 21:06
por jelias
Amiguinho,

Muito Obrigado pela ajuda. Deu certinho, consegui extrair o valor da coluna.

Valeu.

Sds,
Júlio