Problemas com list ordenando em ordem decrescente

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

galera, o que eu estou fazendo de errado, estou importanto um arquivo texto (ordenado) para um list mas no list, ele vem ao contrário, dá impressão que a leitura é feita de traz pra frente!

Primeiro eu atribuo uma linha cabeçalho ao list, antes de entrar no loop:

Selecionar tudo

ArqTxt := Text_IO.Fopen(:b01.caminho_arq_user , 'R'); --Read		
CLEAR_LIST('lc_1');
ADD_LIST_ELEMENT('b01.lc_1', 1, 'CPF     Cartão    Nome     Dt. Nasc.  Situação', '%');


e depois parto pro crime:

Selecionar tudo

LOOP
  TEXT_IO.GET_LINE(ArqTxt, você_Reg); --Atribui a linha do arquivo, a variável
  ...
  ADD_LIST_ELEMENT('b01.lc_1', 2, SUBSTR(você_Reg,01,14)|| ' ' || --CPF		
		              				  SUBSTR(você_Reg,15,10)|| ' ' || --Cartão
				             		   SUBSTR(você_Reg,25,60)|| ' ' || --Nome
						                SUBSTR(você_Reg,85,10)|| ' ' || --Dt Nasc.
         						       você_situacao                   --Status
		                 		     ,vn_cont);                    --Value para o list														

END LOOP;	


o que eu percebi se mudo o segundo parâmetro do ADD_LIST_ELEMENT, se eu deixar os dois (o da linha de cabeçalho que está fora do loop) e o das linhas dos registros (interno) igual a 1, ele continua trazendo na ordem decrescente e ainda traz a linha de cabeçalho por último, na última linha!

o que pode estar errado???
valeu
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

consegui arrumar, não sei se o que fiz foi o mais correto, mas funcionou aqui!


na linha de cabeçalho (fora do loop), ficou assim:

Selecionar tudo

ADD_LIST_ELEMENT('b01.lc_1', 1, 'CPF  Cartão  Nome    Dt. Nasc.  Situação', '%');


e nas demais:

Selecionar tudo

vn_cont := 0;

LOOP
  vn_cont := vn_cont + 1; --contador de registros			  	  
  ... 
  ADD_LIST_ELEMENT('b01.lc_1', vn_cont + 1, SUBSTR(você_Reg,01,14)|| ' ' ||--CPF...
  ...
END LOOP
fiz 'vn_cont + 1' novamente no ADD_LIST_ELEMENT pois essa variável será utilizada para exibir o total de registros, porém, eu precisarei começar a imprimir no list a partir da segunda linha, pois isso 'vn_cont + 1', já que a primeira é o cabeçalho.
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother, beleza?

Pelo que percebi, você corrigiu, pois, todas as linhas do teu loop anterior estavam como índice = 2.
Com o contador, ficou beleza....
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

isso aí Paulão, na verdade eu não tinha entendido bem pra que servia esse índice (dãrrr), tão óbvio mas nem me passou pela cabeça que seria o índice de linha, no help está bem superficial, não falava nada a respeito


list_index: Specifies the list index value. The list index is 1 based.


só falava isso, pensei que esse índice teria que ser fixo por algum motivo desconhecido.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes