Numero sequencial en ListBox

Numero sequencial en ListBox

Postby daniel_halon » Mon Apr 28, 2014 9:22 pm

Buenas tardes amigos, estoy con un problema que debe ser simple pero no estoy encontrando la manera de hacerlo.
Tengo un ListBox y quiero que tenga a la izquierda en una columna el numero sequencial de la lbx, coloque oLbx:nRowPos e aparece solo el numero 1 y en la medida que voy bajando por la lbx van apareciendo los numeros sequenciales como en la foto
Code: Select all  Expand view


           
     REDEFINE LISTBOX oLbx VAR retorno ;
             FIELDS ALLTRIM (str(oLbx:nAt)),;
                    str(Tempo60->a_numped60),;
                    Tempo60->a_cli___60,;
                    IIF(TEMPO60->A_STATUS60 == 'C','CANCELADO',SubStr(Tempo60->a_nome__60,1,20)),;
                    Dtoc(Tempo60->a_dtped_60),;
                    Tempo60->a_turno_60,;
                    Tempo60->a_horae_60,;
                    Tempo60->a_horas_60,;
                    IIF ( !empty( Tempo60->a_progra60 ), 'PRO', strzero( ( time_secs( iIF (empty(Tempo60->a_horas_60),time(),Tempo60->a_horas_60) ) - time_secs(Tempo60->a_horae_60) )/60  ,3,0 ) ),;
                    Tempo60->a_entre_60;
             HEADERS "Seq",;
                     "Numero",;
                     "Telefone",;
                     "Nome",;
                     "Data",;
                     "T",;
                     "H.Ent",;
                     "H.Sai",;
                     "Dem",;
                     "Entre";
                     ID 120;
                     FONT oFont1;
          FIELDSIZES 30,65,85,250,80,20,50,50,50,80 UPDATE;
                     OF oDlgPdia;
          On DBLCLICK( Dados_Pedido(oDlgPdia),lFora := .t.) //SELECT a_dtped_60 FOR tele0050->a_dtmov_50;
     
       oLbx:nAt      := 01
      oLbx:bKeyDown      :={|nKey|IF (nkey=13, Dados_Pedido(oDlgPdia), ''),oLbx:Refresh(),lFora := .T.,IF(nKey=46,Cancela_Pedido_dia(oLbx),'')}
      oLbx:nClrPane     := { || IIF( TEMPO60->A_STATUS60 == "C", CLR_ROSA, IIF( ( oLbx:cAlias)->( OrdKeyNo()) %2 == 1, CLR_LGREEN,CLR_HYEL ))}
      oLbx:nClrBackFocus := CLR_AZUL    // Cor do Cursor Em Cima do Ötem
    *  oLbx:nClrForeFocus := CLR_AMARELO // cor da letra da barra ativa
      oLbx:nLineStyle    := 3           // Estilo das linhas nos dados da Browse
      oLbx:aJustIFy      := { .T.,.T.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.}
      oLbx:SetFocus()                   // Refocus on The Browse
      oLbx:Refresh()                    // Estabiliza o Browse/Listbox
      oLbx:lCellStyle   := .F.
      *oLbx:bRClicked= { || oLbx:ShowSizes() }      // nao sei tem q pesquisar
             
     ACTIVATE DIALOG oDlgPdia CENTERED //VALID lFora
     setkey(VK_F7,{|| Ver_pedidos_do_dia() })
 Return
 

[img]
http://www.portobakers.com.br/lbx.jpg
[/img]
daniel_halon
 
Posts: 41
Joined: Tue May 13, 2008 1:53 am
Location: Porto Alegre - Brazil

Re: Numero sequencial en ListBox

Postby joseluisysturiz » Tue Apr 29, 2014 1:05 am

Para los que quieran aprovechar, esta forma la encontre en un foro para usar con MYSQL, corrio perfectamente, saludos... :shock:

* CREAR COLUMNA VIRTUAL ENUMERANDO LOS REGISTROS, PARA SER USADO EN EL XBROWSE

SELECT @rownum:=@rownum + 1 'No.', producto_nombre FROM delipollo_productos P, (SELECT @rownum:=0) R
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Numero sequencial en ListBox

Postby FranciscoA » Tue Apr 29, 2014 1:23 am

Otra manera:
ADD TO oLbx AT 1 DATA StrZero(oLbx:KeyNo(),5) HEADER "Item"
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Numero sequencial en ListBox

Postby Willi Quintana » Tue Apr 29, 2014 2:06 am

Mas fácil que pellizcar un vidrio.. pero solo para arrays.... para dbfs,,, ave ,, veo
Code: Select all  Expand view

       REDEFINE LISTBOX oLbx;
                FIELDS  STR(oLbx:nAt,2) + ".", ;  //    numero secuencial ....
                        aDetVen[oLbx:nAt,3], ;
                        aDetVen[oLbx:nAt,1], ;
                        aDetVen[oLbx:nAt,2], ;
 
 
User avatar
Willi Quintana
 
Posts: 1002
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Numero sequencial en ListBox

Postby ACC69 » Tue Apr 29, 2014 3:16 pm

Hola Daniel Halon otro ejemplo de numero secuencial o movimientos,espero que te ayude.

Code: Select all  Expand view
REDEFINE LISTBOX oLbx4;
               FIELDS  [b]STR((S13)->MV_NUMV)[/b],EXT_xNIV((S13)->MV_NCTA),STR((S13)->SEGNEG,4),DTOC((S13)->MV_FHAM),SUBS((S13)->MV_REFE,1,12),SUBS((S13)->MV_CONC,1,28),;
                       TRANS((S13)->MV_CARG,"@Z 99,999,999.99"),TRANS((S13)->MV_ABON,"@Z 99,999,999.99"), ;
                       TRANS((S13)->IMPBS1,"@Z 9,999,999.99"),TRANS((S13)->TASA1,"@Z 99"),TRANS((S13)->IVA_1,"@Z 999,999.99"),;
                       TRANS((S13)->IMPBS2,"@Z 999,999.99"),TRANS((S13)->TASA2,"@Z 99"),TRANS((S13)->IVA_2,"@Z 999,999.99"),TRANS((S13)->OTROS,"@Z 99,999.99"),;
                       IF((S13)->AFECTAR, "Sí" ,"No")                                                    ;
               HEADER  "Num Mov",Cuenta","Segm", "Fecha", "Ref.", "Concepto", "Cargo", "Abono", ;
                       "
Base IVA","Tasa","IVA", "Base IVA", "Tasa","IVA", "Otros","Afect" ;
               SIZES   113,32,50,58,186,70,70    ,;
                        70,30,65, 60,35,70,60,36  ;
               ALIAS   (S13)->(ALIAS()) ID 114 OF oDlg2 colors CLR_BLACK, rgb( 210, 230, 250 )

//------------------------------------------------------------------------------

STATIC FUNCTION Reg_Cap()
 Local nNumMov,cCtaSN

 IF lAdd  // SI AGREGA NUEVO REGISTRO
     (S13)->(DbGoBottom())

     nNumMov  += nNumMov     //(S13)->MV_NUMV + 1 // Incrementa nuevos registros de 1 a 99999

     (S13)->(DbSkip())
     (S13)->(DbAppend())

     (S13)->FECALTA := DATE()
     (S13)->REGHORA := AMPM(TIME())
     (S13)->NICKUSUA:= cNombUsua
     (S13)->NOMBUSUA:= cNombre
 ELSE
     nNumMov := (S13)->MV_NUMV
 ENDIF

 IF !OCUPADO(S13) // Bloquea S13:=MOVTxMxA.DBF
   (S13)->MV_NUMV := nNumMov // Incrementa registros
   (S13)->MV_TIPO := cTipo
   (S13)->MV_NUMP := nNumPol
   (S13)->MV_FHAM := dFecha


   (S13)->(DbCommit())
   (S13)->(DbUnlock()) // Desbloquea
 ENDIF



Saludos y buen dia.!

Atte: Adrian C. C.
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Re: Numero sequencial en ListBox

Postby daniel_halon » Thu May 01, 2014 7:58 pm

Voy a testar todo esto y retorno, gracias a todos, y parecia algo tan simple.....
Buenos Aires - Argentina - Viviendo en Porto Alegre - RS - Brasil
daniel_halon@portobakers.com.br
FW 2.7- xHarbour 0.99.71 - PellesC
daniel_halon
 
Posts: 41
Joined: Tue May 13, 2008 1:53 am
Location: Porto Alegre - Brazil

Re: Numero sequencial en ListBox

Postby joseluisysturiz » Fri May 02, 2014 2:24 am

daniel_halon wrote:Voy a testar todo esto y retorno, gracias a todos, y parecia algo tan simple.....


Colega, creo que mas facil que la que te puso Francisco y mi persona, dependiendo si es para DBF o MYSQL, ademas que la que te dio Quinata para array, imposible, pero nose porque lo ves dificil, pregunta y te ayudamos a aclarar las dudas, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Numero sequencial en ListBox

Postby Willi Quintana » Sat May 03, 2014 3:42 am

Otra solución que se me ocurre (al vuelo), es la siguiente:
1ro.- Indexar la DBF según como se quiera que se ordene,,,
2do.- Hacer un copy to a una DBF temporal
3ro.- Visualizar la DBF temporal de la siguiente forma:
Code: Select all  Expand view

USE tempo60
INDEX ON ......
COPY TO Tempoxx
USE Tempoxx
 REDEFINE LISTBOX oLbx VAR retorno ;
             FIELDS ALLTRIM (str(Recno(),10,0),;
                    str(Tempoxx->a_numped60),;
                    Tempoxx->a_cli___60,;
                    IIF(TEMPOxx->A_STATUS60 == 'C','CANCELADO',SubStr(Tempoxx->a_nome__60,1,20)),;
                    Dtoc(Tempoxx->a_dtped_60),;
                    Tempoxx->a_turno_60,;
                    Tempoxx->a_horae_60,;
                    Tempoxx->a_horas_60,;
                    IIF ( !empty( Tempoxx->a_progra60 ), 'PRO', strzero( ( time_secs( iIF (empty(Tempoxx->a_horas_60),time(),Tempoxx->a_horas_60) ) - time_secs(Tempoxx->a_horae_60) )/60  ,3,0 ) ),;
                    Tempoxx->a_entre_60;
             HEADERS "Seq",;
                     "Numero",;
                     "Telefone",;
                     "Nome",;
                     "Data",;
                     "T",;
                     "H.Ent",;
                     "H.Sai",;
                     "Dem",;
                     "Entre";
                     ID 120;
                     FONT oFont1;
          FIELDSIZES 30,65,85,250,80,20,50,50,50,80 UPDATE;
                     OF oDlgPdia;
          On DBLCLICK( Dados_Pedido(oDlgPdia),lFora := .t.) //SELECT a_dtped_60 FOR tele0050->a_dtmov_50;
     
       oLbx:nAt      := 01
      oLbx:bKeyDown      :={|nKey|IF (nkey=13, Dados_Pedido(oDlgPdia), ''),oLbx:Refresh(),lFora := .T.,IF(nKey=46,Cancela_Pedido_dia(oLbx),'')}
      oLbx:nClrPane     := { || IIF( TEMPOxx->A_STATUS60 == "C", CLR_ROSA, IIF( ( oLbx:cAlias)->( OrdKeyNo()) %2 == 1, CLR_LGREEN,CLR_HYEL ))}
      oLbx:nClrBackFocus := CLR_AZUL    // Cor do Cursor Em Cima do Ötem
    *  oLbx:nClrForeFocus := CLR_AMARELO // cor da letra da barra ativa
      oLbx:nLineStyle    := 3           // Estilo das linhas nos dados da Browse
      oLbx:aJustIFy      := { .T.,.T.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.}
      oLbx:SetFocus()                   // Refocus on The Browse
      oLbx:Refresh()                    // Estabiliza o Browse/Listbox
      oLbx:lCellStyle   := .F.
      *oLbx:bRClicked= { || oLbx:ShowSizes() }      // nao sei tem q pesquisar
             
     ACTIVATE DIALOG oDlgPdia CENTERED //VALID lFora
     setkey(VK_F7,{|| Ver_pedidos_do_dia() })
 Return
 
User avatar
Willi Quintana
 
Posts: 1002
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Numero sequencial en ListBox

Postby joseluisysturiz » Sat May 03, 2014 3:47 am

Willi, si mal no entendi lo que el colega quieres es colocar del lado izquierdo los numeros de filas estilo excel, ejemplo...

columnas


No. codigo nombre
01 001 jose
02 005 maria
03 006 juana
04 002 pedro

creo eso es lo que quiere el colega y con lo que le dijimos, si es eso, puede hacerlo asi de facil, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 102 guests