numerando linhas em um listbox

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

gilbrodrigues
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 05 Jan 2011 10:44
Localização: RIO DE JANEIRO / RJ

numerando linhas em um listbox

Mensagem 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
Editado pela última vez por Toledo em 06 Abr 2011 07:42, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: numerando linhas em um listbox

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Euclides
Usuário Nível 3
Usuário Nível 3
Mensagens: 154
Registrado em: 12 Mai 2007 14:07
Localização: São Paulo, Capital

Re: numerando linhas em um listbox

Mensagem 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
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

numerando linhas em um listbox

Mensagem 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()
Inacio de Carvalho Neto
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

numerando linhas em um listbox

Mensagem 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.
Responder