Campo Documento (banco de dados) / opção Deletar Arquivo - permitir selecionar o check apenas para algumas pessoas

No Campo tipo “Documento (banco de dados)” temos a opção “Deletar Arquivo” que é um check box que ao ser selecionado e depois clicado no botão SALVAR do formulário principal, o arquivo é excluído da tabela do banco de dados. Se retirarmos o acesso do usuário de “Alterar”, essa opção de excluir não afetaria o arquivo, ou seja, não iria excluir o arquivo da tabela porque não dá para salvar a alteração… mas ocorre que precisamos que os usuários tenham acesso ao botão salvar para conseguirem realizar alterações em diversos campos e salvar, entretanto, somente algumas pessoas poderiam excluir os arquivos salvos na tabela, não todos os usuários com acesso a aplicação. Não encontrei uma saída fácil para isso… se alguém puder ajudar… será de grande valia.

No OnLoad do formulário coloque este código exemplo:

if ([glo_Grupo_Senha]<>'Administração') {
    sc_field_readonly({Nome_Campo});
}

Para pegar o Nome do Grupo de Senhas caso tiver gerado a senha por Grupos pode usar
na aplicação de Login criada pelo SC, só adaptar no Evento OnValidate:

/* Macro sc_lookup */

$sql ="
SELECT 
	sec_groups.description
FROM
   sec_users
   INNER JOIN sec_users_groups ON sec_users.login=sec_users_groups.login
   INNER JOIN sec_groups ON sec_groups.group_id=sec_users_groups.group_id
WHERE
    sec_users.login = $slogin AND sec_users.pswd = $spswd
";

sc_lookup(chk_grupo, $sql);

/* Erro no lookup */
if (FALSE === {chk_grupo}) {
	sc_error_message("Ocorreu um erro no acesso ao banco de dados.<BR>");
}
elseif (empty({chk_grupo})) { /* EOF */

	// ...
	
}
else {

	/* Inclua aqui sua rotina de processamento */

    $glo_Grupo_Senha = {chk_grupo[0][0]};
	
	sc_set_global($glo_Grupo_Senha);	
	
}
  • Testado na 9.4.031