Alterar Elements in list de um List Item dinamicamente

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
Avatar do usuário
Toad
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 253
Registrado em: Sex, 18 Nov 2005 2:14 pm
Localização: Seattle, WA
Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c

Existe algum meio de se alterar os ítens de um List Item e seus respectivos Values dinamicamente??
A minha idéia é a seguinte:

Tenho uma tela que é compartilhada por vários clientes.

Em todos eles, tenho uma tabela chamada status_prod que guarda dados dos produtos e seus status.

Mas os valores diferem em cada cliente:

Selecionar tudo

Cliente A

IdStatus      NM_Status
1             Liberado
2             Não Permitido
4             Parcial

-------------------------------------------

Cliente B

IdStatus      NM_Status
2             Liberado
3             Não Permitido
7             Parcial
9             Em lote.
Eu queria poder setar, de forma dinâmica, um list item com S e N.
Para o cliente A, no primeiro ítem, S teria value 1
Para o cliente A, no segundo ítem, S teria value 2

Para o cliente B, no primeiro ítem, S teria value 2
Para o cliente B, no segundo ítem, S teria value 3

E assim por diante.
Eu tenho a consulta feita em um cursor... gostaria de atribuir os valores.
Tem como?

:roll:

Obrigado desde já.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Veja se esse tópico te ajuda

http://glufke.net/oracle/viewtopic.php?t=473
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

Pessoal,

Coloquei um arquivo FMB AQUI para download.

Este FMB contém record groups dinâmicos e tal.
Talvez os ajudem.
Avatar do usuário
Toad
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 253
Registrado em: Sex, 18 Nov 2005 2:14 pm
Localização: Seattle, WA
Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c

Bom, com duas sumidades ajudando, não tem como não dar certo!! :D

Fiz da seguinte maneira:

Selecionar tudo


DECLARE

...

CURSOR SPR IS 
      SELECT (ID_SIT_PROD) ID_SPR , initcap(NM_SIT_PROD)nm_spr FROM SITUACAO_PRODUTO
        ORDER BY ID_SIT_PROD;

NOME_ITEM VARCHAR2(255);

CONTADOR NUMBER := 1;

...

BEGIN

...

 FOR V1 iN SPR LOOP

  NOME_ITEM := 'CTL.P_ID_SPR' || TO_CHAR(CONTADOR);
  
   Preenche_Lista(V1.ID_SPR,NOME_ITEM);
  
  set_item_property(NOME_ITEM ,VISIBLE,PROPERTY_TRUE);
  set_item_property(NOME_ITEM ,ENABLED,PROPERTY_TRUE);
  
   contador := contador + 1;

 END LOOP;
...

END;
  
E a procedure Preenche_Lista ficou assim:

Selecionar tudo

PROCEDURE Preenche_Lista(ID_VALUE IN NUMBER, CAMPO IN VARCHAR2) IS

  REC    RecordGroup;
  RG_NAME VARCHAR2(255) := 'RG_LISTA'; 
  N_ERRO NUMBER; 
  CONSULTA VARCHAR2(255);
  group_id number;
BEGIN

  clear_list(CAMPO); 
	CONSULTA := 'select ('||'''N'''||') des, '||'''0'''||' val  from dual union select ('||'''S'''||') des, '||''''||TO_CHAR(ID_VALUE)||''''||' val from dual';
  
  rec := Find_Group( RG_NAME );
  IF NOT Id_Null(rec) THEN
     delete_group(rec);
     rec := Create_Group_From_Query(RG_NAME,	CONSULTA);
  ELSE
     rec := Create_Group_From_Query(RG_NAME,	CONSULTA);
  END IF;
  
  N_ERRO := POPULATE_GROUP(REC);
  POPULATE_LIST(CAMPO, REC);
END;
Ficou um tanto estranho, mas era a proposta.

Combos S e N com N = 0 sempre e S com o valor retornado do cursor.

E, só exibe os combos de acordo com a consulta efetuada.

Para o cliente A, apenas 3 combos aparecerão, cada qual com seus respectivos valores gravados nas tabelas.

Para o cliente B, apenas 5 combos aparecerão, cada qual com seus respectivos valores gravados nas tabelas.

É isso.

MUITO OBRIGADO!!!!

:wink:
Responder
  • Informação
  • Quem está online

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