Ocultar botão editar de uma Grid

Caros colegas,

Tenho uma grid com ligação para um formulário;
Teria como ocultar o botão de ligação (editar) da grid dinâmicamente em
algum evento?
Tenho a necessidade de acordo com o usuário o mesmo não poder editar o formulário ai
eu esconderia o botão.

sc_link onRecord em um campo imagem html.

pode me passar um exemplo Harold…

pois o usuário não tem acesso editar registro/formulário e mesmo assim aparece o lápis pra edição

Desde já Agradeço!

desabilite o botão editar com sc_btn_display.

Atribua a tag html ao campo virtual quando o registro(linha) for liberado para edição.

No evento onrecord utilize a macro sc_link no campo virtual criado quando o registro (linha) for liberado para edição.

Removi a ligação e criei uma campo ImagemHtml com um link.

em outro tópico vi que vc aconselhou a trocar a imagem e desabilitar o link dinamicamente, como isto é feito?

//somente altera o link, gostaria de desabilitar

if ([usr_login] == "vendedor"){
		//sc_field_display({editar}, off);
	sc_link(editar, #, ,"hint do link");
	}

Não vai desabilitar o link dinamicamente. Simplesmente não vai criar o link conforme o registro.

sc_link(Coluna, Aplicação, Parâmetros, “Hint”, “Target”, Altura, Largura).

Você esta numa grid correto? Evento onrecord. A cada registro lido (ainda não exibido), você vai realizar a critica e se ela for satisfeita vc moverá uma string para para um campo virtual do tipo texto que sera a tag html e dentro dessa critica vai habilitar o link com o macro sc_link, apontando para uma aplicação de edição do registro(não um #).

supondo que o campo virtual do tipo text criado se chame : editar.

if ([usr_login] == "vendedor"){
       {editar}="<img src=../_lib/img/edit.png />";
	sc_link(editar, app_form_edita, ,"hint do link");
}else{ 
        {editar}="";
}
  • teste-a para ver se é isso que deseja.

OK, funcionou removendo a ligação.

if ([usr_login] != "vendedor"){
    {edit}="<img src=../_lib/img/scriptcase__NM__edit_form_saphir.png />";
	//_lib/img/scriptcase__NM__edit_form_saphir.png
		sc_link(edit,form_pedidos,fld_codigo={fld_codigo},"Editar o Pedido", "modal",300,600);
}else{ 
		{edit}="<img src=../_lib/img/grp__NM__ico__NM__lock_edit_16.png />";
}

mais vale notar que agora estou com outro problema que após clicar em salvar ele abre uma tela(select) de busca clientes sendo que isto não está programado.

na aplicação de edição mande fechar a app ao salvar.

Como faz, comando no afterupdate ou alguma opção nas configs??

Acho que é em APlicação/Navegação (Não me recordo ao certo).

sei disto, mas lá só tem “Retornar apos Incluir”

É porque esta abrindo em modal.

Você deve estar redirecionando para outra aplicação em um dos eventos.

neste formulário não tem nenhum redirecionamento.

tem alguma maneira de fechar? estou tentando com echo "<script>window.close();</script>"; e não funciona

Eu não tenho hábito de abrir em modal, uma para atualizar a grid que chamou o form e outra não gosto muito também dessa maneira que o o sc cria modal.

Para fechar um modal por código:

Aplicação inicial( a que tem o link para abrir o modal ):
Em grid: colocar no evento OnHeader ( ativar a exibição do cabeçalho)
Em formulário/controle: colocar no evento OnScriptInit ou OnLoad

?>
	<script>
		var closeIFrame = function() {	
			$('#TB_iframeContent').remove();
			$('#TB_window').remove();
			$('#TB_overlay').remove();
		}
	</script>
<?php

Na aplicação que abre modal:

?>
	<script>
		parent.closeIFrame();
	</script>
<?php

Ai você pode adaptar o código para executar em um botão JavaScript ( caso seja, retirar as tags script )
Ou executar após o clique de algum botão especifico, etc…

também não funcionou ao usar o sc_link abrindo o modal.

Mais dps de tantas voltas e pesquisas reativei a ligação por aplicação na consulta pois é a que melhor esta funcionando para as minhas necessidades.

Resolvi o problema inicial que era que um usuário sem acesso a editar registro ao clicar no icone abria a tela de “Usuário não autorizado” apenas inativando o evento no componente.

[code]if ([usr_login] == “vendedor”){
?>

/*bloqueia acesso a edicao do registro na consulta */ #bedit { pointer-events: none !important; } <?php }[/code] PS: se alguém puder me ajudar com o JavaScript pendente eu agradeço imensamente!!

Estou colocando os script

$('#id_img_bedit').attr('src','second.jpg');

no onRecord mais só altera no primeiro registro

O que é simples você complicou tudo.

Espero que resolva sua questão.

Seria simples se o form aberto pelo sc_link fecha-se após o update, ele só exibe a mensagem “Registro atualizado com sucesso” e fica no formulário não o encerrando.

Veja se funciona:
http://www.scriptcase.com.br/forum/index.php/topic,14702.msg87208.html#msg87208