Numero sequencial en ListBox

Post Reply
daniel_halon
Posts: 41
Joined: Tue May 13, 2008 1:53 am
Location: Porto Alegre - Brazil

Numero sequencial en ListBox

Post by daniel_halon »

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


           
     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]
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: Numero sequencial en ListBox

Post by joseluisysturiz »

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
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Numero sequencial en ListBox

Post by FranciscoA »

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

Fwxh1204-MySql-TMySql
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: Numero sequencial en ListBox

Post by Willi Quintana »

Mas fácil que pellizcar un vidrio.. pero solo para arrays.... para dbfs,,, ave ,, veo

Code: Select all

       REDEFINE LISTBOX oLbx;
                FIELDS  STR(oLbx:nAt,2) + ".", ;  //    numero secuencial ....
                        aDetVen[oLbx:nAt,3], ;
                        aDetVen[oLbx:nAt,1], ;
                        aDetVen[oLbx:nAt,2], ;
 
 
ACC69
Posts: 619
Joined: Tue Dec 12, 2006 7:34 pm
Contact:

Re: Numero sequencial en ListBox

Post by ACC69 »

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

Code: Select all

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  "[b]Num Mov[/b]",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())

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

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

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

 IF !OCUPADO(S13) // Bloquea S13:=MOVTxMxA.DBF
   [b](S13)->MV_NUMV := nNumMov // Incrementa registros[/b]
   (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.
daniel_halon
Posts: 41
Joined: Tue May 13, 2008 1:53 am
Location: Porto Alegre - Brazil

Re: Numero sequencial en ListBox

Post by daniel_halon »

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
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: Numero sequencial en ListBox

Post by joseluisysturiz »

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
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: Numero sequencial en ListBox

Post by Willi Quintana »

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

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
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: Numero sequencial en ListBox

Post by joseluisysturiz »

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!
Post Reply