Desmarcar todos os checkbox

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Pessoal tenho um Form no Forms 6i com uma grid e um dos campos é um checkbox, como é no formato tabular eu queri fazer um botão para marcar todos os checkbox do bloco de uma única vez, então eu fiz assim:

Selecionar tudo

:bloco.checkbox := 1;
Só que isso só marca o checkbox da linha em foco.

Tem como fazer isso que quero?
ederphil
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 52
Registrado em: Qua, 15 Out 2008 4:05 pm
Localização: taquara-RS

pyro,

não sei se era bem isso que você queria, mas faz o que você esta pedindo,
é só chamar no teu when-button-pressed, qualquer coisa posta ai..

Selecionar tudo

BEGIN
  --
  GO_BLOCK('nome_do_bloco');
  --
  first_record;
  --
  LOOP
    --
    :BLOCO.checkbox := 1;
    --
    IF :SYSTEM.last_record = TRUE THEN
      EXIT;
    ELSE
      next_record;
    END IF;
  --
  END LOOP;
--
END;


vlw!!
Avatar do usuário
gpilger
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 29
Registrado em: Qua, 21 Abr 2010 3:34 pm
Localização: Novo Hamburgo - RS
Gilson Pilger
"Por não saber que erra impossível, ele foi lá e fez" autor desconhecido

Eu ia postar a mesma sugestão acima.

Só a observação é que ele vai marcar apenas os record que tiverem registro.
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Pessoal, obrigado pela ajuda.
Funcionou de primeira.
Junior_Porcher
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Seg, 16 Mai 2011 3:17 pm
Localização: Sapiranga - RS

Uma duvida este só marca eu preciso que ele marque e desmarque
Avatar do usuário
gpilger
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 29
Registrado em: Qua, 21 Abr 2010 3:34 pm
Localização: Novo Hamburgo - RS
Gilson Pilger
"Por não saber que erra impossível, ele foi lá e fez" autor desconhecido

Boa tarde,

É fácil, é só testar se o check-box está marcado para todos ou não.

Selecionar tudo

BEGIN 

  -- 
  GO_BLOCK('nome_do_bloco'); 
  -- 
  first_record; 
  -- 
  LOOP 
    -- 
    IF :BLOCO.checkbox_TODOS = 'S' THEN
      :BLOCO.checkbox := 1; -- Marca 
    ElSE 
      :BLOCO.checkbox := 2; --Desmarca
    END IF;
    -- 
    IF :SYSTEM.last_record = TRUE THEN 
      EXIT; 
    ELSE 
      next_record; 
    END IF; 
  -- 
  END LOOP; 
-- 
END;
Junior_Porcher
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Seg, 16 Mai 2011 3:17 pm
Localização: Sapiranga - RS

Deu certo mais tem 1 erro. Este forms que estou fazendo é tabular e ele mostra 10 registros dos 100 que tenho na tabela. Então, ele desmarca apenas esses que estão em primeiro plano os outros que estao ocultos ele não mostra!
Avatar do usuário
gpilger
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 29
Registrado em: Qua, 21 Abr 2010 3:34 pm
Localização: Novo Hamburgo - RS
Gilson Pilger
"Por não saber que erra impossível, ele foi lá e fez" autor desconhecido

Amigo,

Tem uma propriedade no Data Block chamado Query All Record. Ela fica no grupo Record de propriedades. Seta ela para YES que vai dar certo.

Abs,
Junior_Porcher
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Seg, 16 Mai 2011 3:17 pm
Localização: Sapiranga - RS

Não tem esse atributo. Uma coisa agora esta dando certo, mas ele so esta desmarcando. segue o codigo.

Selecionar tudo

BEGIN
  Set_Application_property(cursor_style, 'Busy');
	--
  go_block('sft_despesa_importacao');
  -- 
  First_Record;
  --
  LOOP
    --
    if :parametros.cb_seleciona_todos = 'S' then
    	:sft_despesa_importacao.cb_seleciona := 1;   --MARCA
    else
    	:sft_despesa_importacao.cb_seleciona := 2; --DESMARCA
    end if;
    --
    IF :SYSTEM.last_record = 'TRUE' THEN
      EXIT;
    END IF;
      next_record; 
  end loop;
  --
  First_Record;
  --
  if :sft_despesa_importacao.cb_seleciona = 2 then
 	 	 :parametros.cb_seleciona_todos := 'N';
  end if;
  --
 Set_Application_property(cursor_style, 'default');
  --
 	
end;
Junior_Porcher
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Seg, 16 Mai 2011 3:17 pm
Localização: Sapiranga - RS

Deu certo. Tinha procurado no parametro do campo. Valeu aí!!
Avatar do usuário
gpilger
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 29
Registrado em: Qua, 21 Abr 2010 3:34 pm
Localização: Novo Hamburgo - RS
Gilson Pilger
"Por não saber que erra impossível, ele foi lá e fez" autor desconhecido

Ótimo.
Responder
  • Informação
  • Quem está online

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