Página 1 de 1

numerando linhas em um listbox

Enviado: 05 Abr 2011 15:34
por gilbrodrigues
Ola a todos, estou tendo um problema ao tentar numerar as linhas de um listbox. Nao posso utilizar a funcao RECNO() porque existe uma função que classifica este arquivo que esta sendo exibido, ao utilizar recno(), a primeira linha ORD. nao fica corretamente. A variavel nAt ao ser utilizada, é mostrado nesta coluna ORD. o numero 1 em todas as linhas. Meu problema é:

Como incrementar esta variável nAt no skip

Código: Selecionar todos

REDEFINE LISTBOX oLbxFilt ;
                 FIELDS ALLTRIM (str(oLbxFilt:nAt)),;  // 01
			        TEMPFILTRO->IMPRIME,; // 02 
			        TEMPFILTRO->CODLAUDO,; // 03 
			        TEMPFILTRO->ENDERECO,; // 04 
				TEMPFILTRO->PONTOREF,; // 05 
			        ALLTRIM (STR(TEMPFILTRO->AREA) ),; // 06 
			        TRANSFORM(TEMPFILTRO->VALOR, maskval ),; // 07 
			        TRANSFORM(TEMPFILTRO->AREAM2, maskval ),; // 08
			        TRANSFORM(TEMPFILTRO->VALORM2, maskval ),; // 09 
			        IIF(TEMPFILTRO->FOTOS, "Sim", "Não"),; // 10 
			        TEMPFILTRO->VAZIOCUPA,; // 11 
				TEMPFILTRO->CAPTADOR,; // 12 
			        TEMPFILTRO->DATALAUDO; // 13
      ALIAS  "TEMPFILTRO";
      ID 4031 OF oResult;
      HEADERS "Quant","Impr", "Cod.Laudo","Endereço","PRef","Área", "Valor (R$)", "Valor/m2","Vlr+Enc/m2",;
               "Fotos", "Vaz_Ocup","Captador", "Dt Laudo";
      ON DBLCLICK MARCAPRN();
      FIELDSIZES 30,30,100,180,180,50,100,100,100,50,50,60,100 UPDATE

    oLbxFilt:nAt       = 01

Re: numerando linhas em um listbox

Enviado: 06 Abr 2011 07:41
por Toledo
Amigo, pelo que sei a variável nAt tem incrementação automática dentro do LISTBOX.

Será que o problema não está na última linha (oLbxFilt:nAt = 01) deste seu código? Você já tentou retirar esta linha e fazer um teste?

Abraços,

Re: numerando linhas em um listbox

Enviado: 07 Abr 2011 09:49
por Euclides
Olá pessoal.
oLbx:nAt com tabelas DBF não retorna coisa que preste. Funciona bem com ARRAYS.
Existe o variável oLbx:nRowPos que retorna o número da linha (não o número de linhas) do WBrowse, mas só funciona em modo dinâmico (quando há um deslocamento do cursor de linhas).
Havendo índice no arquivo, poderia utilizar a função OrdKeyNo(), função do CDX, mas que funciona também com NTX na versão 5.3 (o problema seria com os registros deletados).
Qualquercoisa, avise.
T+
Euclides

numerando linhas em um listbox

Enviado: 20 Nov 2014 02:12
por cjp
Estou tentando usar a orkeyno() com uma tabela no MySQL indexada, mas ele está retornando sempre 0. Alguém saberia me explicar porque? Ou como faço para fazer isso sem ela?

Estou fazendo assim:

Código: Selecionar todos

DBUSEAREA( .T.,, "SELECT prioridade,nrtarefa,assunto,tarefa FROM tarefas WHERE usuario='"+usus+"' AND prioridade>0 AND soluc='N'  AND exibe='E' GROUP BY nrtarefa", "consusu")
INDEX ON descend(prioridade) TAG prioridade TO consedit
dbedit(1,1,maxrow()-5,maxcol(),v1,,,v3)
nrcusu=ordkeyno()

numerando linhas em um listbox

Enviado: 24 Nov 2014 10:12
por Kapiaba
Veja se ajuda: Eu faria ssim usando ListBox, mas o ideal e que voce use o xBrowse()

Código: Selecionar todos

#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 ) )
Abs.