abc
Browse com array
Moderador: Moderadores
-
clebervn
- Usuário Nível 3

- Mensagens: 286
- Registrado em: 12 Jun 2007 10:49
- Localização: Florianópolis/SC
Browse com array
Como faço pra saber qual posição do array eu estou qdo teclo um ENTER, pro exemplo, num browse com array 
abc
abc
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Browse com array
msginfo(oBrowse1:nCurrent)
Acabei de postar um exemplo completinho no Grupo da Hwgui vou postar aqui nesse topico tmb. talvez lhe ajude tmb.
Acabei de postar um exemplo completinho no Grupo da Hwgui vou postar aqui nesse topico tmb. talvez lhe ajude tmb.
Código: Selecionar todos
**********************
FUNCTION Gera_lote_NFP
**********************
PRIVATE oGroup1, oGroup2, oBrowse1, oBrowse2, oButtonex3, oButtonex4,
oButtonex2 ;
, oButtonex1, oDatabase1
PRIVATE oSERIE, vSERIE := "1"
PRIVATE aITENS_SERIE := {}
IF eSERIE_NF > 1 // variavel publica de quantas series esta sendo usado
FOR x:=1 TO eSERIE_NF
AADD(aITENS_SERIE, ALLTRIM(STR(x)) )
NEXT
ELSE
AADD(aITENS_SERIE, vSERIE )
ENDIF
Private aARRAY_LOTE := {{0," " ,DATE()}}
//GravaLog("GERAÇÃO DE ARQUIVO DE LOTE DA NOTA FISCAL PAULISTA")
DBCLOSEALL()
USE CAG_NOT ALIAS CAG_NOT SHARED
SELE CAG_NOT
INIT DIALOG oDlg TITLE "Geração de Lote da Nota Fiscal Paulista" ;
AT 350,134 SIZE 676,482 ;
FONT HFont():Add( '',0,-13,400,,,) CLIPPER NOEXIT ;
ON INIT {||
Excluir_NF_LOTE(oBrowse1:nCurrent),Atualiza_FiltroNF3(9,vSERIE,oBrowse1),.T.}
;
STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_MINIMIZEBOX+DS_CENTER
@ 10,430 say "Para Selecionar Varias Notas, preecione a Tecla CTRL e
marque com o Mouse" SIZE 300, 25;
FONT HFont():Add( '',0,-11,400,,,) ;
COLOR x_BLUE
@ 10 ,450 SAY LNOTA_AUTO CAPTION "Selecione a Serie das Notas:" SIZE
150,22 TRANSPARENT
@ 200,450 GET COMBOBOX oSERIE VAR vSERIE ITEMS aITENS_SERIE SIZE 50,22
TEXT;
ON CHANGE { || Atualiza_FiltroNF3(,vSERIE,oBrowse1) };
Style WS_TABSTOP;
TOOLTIP "Informe Qual serie de Notas você deseja Usar"
@ 16,29 BROWSE oBrowse1 DATABASE OF oGroup1 SIZE 350,379 ;
STYLE WS_TABSTOP ;
ON CLICK {|o,key|
ADD_NF_LOTE(oBrowse1:aSelected),Atualiza_FiltroNF2(oBrowse2) };
FONT HFont():Add( '',0,-11,400,,,);
MULTISELECT ;
ON POSCHANGE {|| SetFocus(oBrowse1:handle ) }
oBrowse1:bKeyDown := {|o,key| BrowseLoteNF(o, key ) }
// CREATE oBrowse1 // SCRIPT GENARATE BY DESIGNER
oBrowse1:aColumns := {}
oBrowse1:nHeadRows:= 1
oBrowse1:nFootRows:= 0
oBrowse1:lDispHead:= .T.
oBrowse1:lDispSep:= .T.
oBrowse1:lSep3d:= .F.
oBrowse1:headColor:= 0
oBrowse1:sepColor:= 12632256
oBrowse1:nLeftCol:= 2
oBrowse1:freeze:= 1
oBrowse1:alias := 'cag_not'
oBrowse1:nColumns := 4
SELECT (oBrowse1:alias)
oBrowse1:AddColumn( HColumn():New('Nº' , FieldBlock( 'nffs' ) ,'N',6 ,
0 ,.F.,0,0,'@e 999999',,,,,))
oBrowse1:AddColumn( HColumn():New('S' , FieldBlock( 'serie' ) ,'C',1 ,
0 ,.F.,0,0,'!!',,,,,))
oBrowse1:AddColumn( HColumn():New('Nome', FieldBlock( 'nome' ) ,'C',40,
0 ,.F.,0,0,'@!',,,,,))
oBrowse1:AddColumn( HColumn():New('Data', FieldBlock( 'dataem' ) ,'D',8 ,
0 ,.F.,0,0,'@D',,,,,))
@ 375,375 BUTTONEX oButtonex3 CAPTION "&Adicionar na Lista" OF oGroup1
SIZE 119,32 ;
STYLE WS_TABSTOP ;
TOOLTIP 'Clique aqui para adicionar uma nota' ;
ON CLICK {||
ADD_NF_LOTE(oBrowse1:aSelected),Atualiza_FiltroNF2(oBrowse2) }
@ 547,375 BUTTONEX oButtonex4 CAPTION "&Remover da Lista" OF oGroup1
SIZE 116,32 ;
STYLE WS_TABSTOP ;
TOOLTIP 'Clique aqui para adicionar uma nota' ;
ON CLICK {||
Excluir_NF_LOTE(oBrowse2:nCurrent),Atualiza_FiltroNF2(oBrowse2) }
@ 8,6 GROUPBOX oGroup1 CAPTION "Geração de Lote da Nota Fiscal Paulista"
SIZE 661,415 ;
COLOR 16711680
@ 380,40 BROWSE oBrowse2 ARRAY OF oGroup1 SIZE 270,310 ;
STYLE WS_VSCROLL + WS_HSCROLL;
FONT HFont():Add( '',0,-12,400,,,)
oBrowse2:bKeyDown := {|o,key| BrowseLoteNF(o, key ) }
oBrowse2:aArray := aARRAY_LOTE
CreateArList( oBrowse2, aARRAY_LOTE )
oBrowse2:aColumns[1]:heading := "Nº"
oBrowse2:aColumns[2]:heading := "S"
oBrowse2:aColumns[3]:heading := "Data"
oBrowse2:aColumns[1]:length := 6
oBrowse2:aColumns[2]:length := 1
oBrowse2:aColumns[1] :picture:="@E 999999"
oBrowse2:aColumns[2] :picture:="!!"
oBrowse2:aColumns[3] :picture:="@D"
@ 375,24 GROUPBOX oGroup2 CAPTION "Lista de Notas para o Lote" SIZE
288,347 ;
COLOR 16711680
@ 416,430 BUTTONEX oButtonex2 CAPTION "&Gerar Arquivo" SIZE 140,38 ;
STYLE WS_TABSTOP ;
BSTYLE 0;
TOOLTIP 'Clique aqui para Gerar o Lote';
ON CLICK {|| Gera_lote_nfp2(aARRAY_LOTE) }
@ 569,430 BUTTONEX oButtonex1 CAPTION "&Cancelar" SIZE 100,38 ;
STYLE WS_TABSTOP ;
BSTYLE 0;
TOOLTIP 'Clique aqui para cancelar' ;
ON CLICK {|| EndDialog() }
ACTIVATE DIALOG oDlg SHOW SW_HIDE
RETURN Nil
*************************************
Function BrowseLoteNF( oBrowse, key )
*************************************
DO CASE
CASE KEY = VK_F1
Sobre()
CASE KEY = VK_F2
BUSCA_NOME(oBrowse)
CASE KEY = VK_F4
Lista_ordem(oBrowse)
CASE KEY = VK_F9
ShellExecute("calc")
otherwise
if key=65 // tecla "A"
ADD_NF_LOTE(oBrowse1:aSelected)
Atualiza_FiltroNF2(oBrowse2)
elseif key=46 // tecla "DEL"
Excluir_NF_LOTE(oBrowse2:nCurrent)
Atualiza_FiltroNF2(oBrowse2)
elseif key=67 // tecla "C"
ADD_NF_LOTE(oBrowse1:aSelected)
Atualiza_FiltroNF2(oBrowse2)
ENDIF
ENDCASE
Return .T.
*********************************
Function Atualiza_FiltroNF2(oOBJ)
*********************************
oOBJ:Bottom()
oOBJ:SetFocus()
oOBJ:Refresh(.T.)
Return .T.
*****************************
Function ADD_NF_LOTE(vVARIAS)
*****************************
Local vADD := RECNO()
IF LEN(vVARIAS) > 0
FOR nI := 1 TO Len(oBrowse1:aSelected)
SELE CAG_NOT
DBGOTO(oBrowse1:aSelected[nI]) // RECNO DA ALTERAÇÃO
vNFFS=NFFS
vSERIE=SERIE
vDATAEM=DATAEM
IF AScan( aARRAY_LOTE, {|a| a[1] = vNFFS } )=0
AADD(aARRAY_LOTE,{vNFFS,vSERIE,vDATAEM})
ELSE
MsgInfo("A Nota Fiscal Numero: " + StrZero(vNFFS,6) + ", já foi
adicionada, Favor Revisar","Aviso do Sistema")
ENDIF
NEXT
ELSEIF vADD > 0
SELE CAG_NOT
DBGOTO(vADD) // RECNO DA ALTERAÇÃO
vNFFS=NFFS
vSERIE=SERIE
vDATAEM=DATAEM
IF AScan( aARRAY_LOTE, {|a| a[1] = vNFFS } )=0
AADD(aARRAY_LOTE,{vNFFS,vSERIE,vDATAEM})
ELSE
MsgInfo("A Nota Fiscal Numero: " + StrZero(vNFFS,6) + ", já foi
adicionada, Favor Revisar","Aviso do Sistema")
ENDIF
ELSE
msgstop("erro")
ENDIF
Return
******************************
Function Excluir_NF_LOTE(vREG)
******************************
IF vREG > 0
ADel( aARRAY_LOTE, vREG, .T. )
ELSE
msgstop("erro")
endif
Return .T.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
clebervn
- Usuário Nível 3

- Mensagens: 286
- Registrado em: 12 Jun 2007 10:49
- Localização: Florianópolis/SC
Re: Browse com array
mto tks
acabei pesquisando no hbrowse.prg e resolvi assim :
nPosicao := oBrowse:nCurrent
abc..... mas vlw pelo exemplo....
acabei pesquisando no hbrowse.prg e resolvi assim :
nPosicao := oBrowse:nCurrent
abc..... mas vlw pelo exemplo....