daniel_halon Posted April 28, 2014 Report Share Posted April 28, 2014 Olá amigos, estou quebrando a cuca para algo que deve ser muito simples porem não sei como. Tenho uma listBox e desejo que cada linha tenha um numero sequencial, quase consegui mas na tela aparecem todos números 1 e só depois que percorro a mesma os números vão aparecendo sequencialmente.Assim REDEFINE LISTBOX oLbx VAR retorno ; FIELDS Str(oLbx:nRowPos),; 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; OF oDlgPdia; On DBLCLICK( Dados_Pedido(oDlgPdia),lFora := .t.) //SELECT a_dtped_60 FOR tele0050->a_dtmov_50; Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 28, 2014 Report Share Posted April 28, 2014 Olá, veja \samples TESTBRWA.PRG abs, Quote Link to comment Share on other sites More sharing options...
daniel_halon Posted April 28, 2014 Author Report Share Posted April 28, 2014 Olá Jõao, pelo que entendi nesse exemplo e só para trabalhar com setarray() eu to trabalhando direto na dbf e não consegui com oLbx:nAt,2, sera que tem algum outro jeito já que com oLbx:nRowPos) funciona mas só quando percorres a listbox. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 28, 2014 Report Share Posted April 28, 2014 Olá Daniel esse numero seq, está no BD ou não? Quote Link to comment Share on other sites More sharing options...
daniel_halon Posted April 28, 2014 Author Report Share Posted April 28, 2014 Não, não esta , e o sequencial da linha do browse o que eu quero que apareça, com Str(oLbx:nRowPos) aparece só o número 1 e quando percorro a lbx vai aparecendo o sequencial como na foto que estou inserindo Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 28, 2014 Report Share Posted April 28, 2014 http://www.pctoledo.com.br/forum/viewtopic.php?f=2&t=11857 Não está faltando um oLbx:Refresh() no seu código? E oLbx:nAt := 1 Acho que eu vou ficar devendo esta. abs, Quote Link to comment Share on other sites More sharing options...
evertonlb Posted April 28, 2014 Report Share Posted April 28, 2014 Cara, será que depois de montado os dados da ListBox, dando um refresh() não aparece os dados corretos? Att. Everton Quote Link to comment Share on other sites More sharing options...
daniel_halon Posted April 28, 2014 Author Report Share Posted April 28, 2014 Já fiz isto, oLbx:nRowPos, oLbx:Refresh e faz uma coisa muito engraçada troca os numero por todos iguais segundo a linha em que estou na medida que vou descendo pela lbx ?, vou continuar. Agora ficou assim, e mostra somente o numero 1 sem mudar depois de navegar na lbx. Parece uma coisa tão simples e que não estou conseguindo fazer. 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 Quote Link to comment Share on other sites More sharing options...
Theotokos Posted April 29, 2014 Report Share Posted April 29, 2014 Creio que caminho é este mesmo, mas retira a linha oLbx:nAt := 1 e mantem o resto e faz o teste... Quote Link to comment Share on other sites More sharing options...
Theotokos Posted April 29, 2014 Report Share Posted April 29, 2014 @ 5, 01 LISTBOX oLbx ; Fields StrZero(oLbx:nAt,3),; aDados[oLbx:nAt,1] ,; aDados[oLbx:nAt,2] ,; aDados[oLbx:nAt,3] ,; aDados[oLbx:nAt,4] ; UPDATE SIZE 252, 120 ; Headers "Item","Nº Pedido","Prestação","Vr.Prestação","Dt.Vencimento" ; OF oDlg oLbx:acolsizes := {100,100,100,100} oLbx:SetArray(aDados) oLbx:aJustify := {.f.,.f.,.f.,.f.,.f.} oLbx:refresh() Quote Link to comment Share on other sites More sharing options...
aferra Posted April 29, 2014 Report Share Posted April 29, 2014 Bom dia...não sou expert em listbox porem tente desta maneira StrZero(oLbx:GetPos(),3),; Quote Link to comment Share on other sites More sharing options...
emotta Posted April 29, 2014 Report Share Posted April 29, 2014 Já que está mexendo na rotina mude para xBrowse... Este é meu conselho.... Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 29, 2014 Report Share Posted April 29, 2014 #include "FiveWin.ch" //----------------------------------------------------------------------------// function Main() local oDlg, oLbx, cAlias USE CUSTOMER cAlias := ALIAS() GO TOP DEFINE DIALOG oDlg TITLE "Numeros sequenciais" ; FROM 5, 5 TO 20, 45 @ 0.5, 0.5 LISTBOX oLbx VAR FIELDS ; SEQUENCIAL( cAlias ) , ; ( cAlias )->FIRST , ; ( cAlias )->LAST ; HEADERS "Seq" , ; "Primeiro" , ; "Proximo " ; FIELDSIZES 050, 050, 100 ; SIZE 100, 100 OF oDlg @ 0.5, 18 BUTTON "&Ok" ACTION oDlg:End() ACTIVATE DIALOG oDlg CENTERED return nil //----------------------------------------------------------------------------// FUNCTION SEQUENCIAL( cAlias ) LOCAL nRecno nRecno := ( cAlias )->( RecNo() ) RETURN( STR( nRecNo ) ) 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.