Como esconder uma aba?

(Rafael Dias) #1

Olá colegas,

Gostaria de saber se existe alguma macro do scriptcase que possibilite esconder abas assim como a macro sc_menu_disable ou sc_menu_delete esconde o menu, desde de já agradeço a atenção.

Aguardo respostas.

By Rafael Dias de Souza
Desenvolvedor de Sistema PHP
rafadias05@gmail.com

(Tiago Kirsten) #2

Use o:

sc_block_display(nome do bloco, on/off)

E esconda o bloco correspondente a aba.

(Rafael Dias) #3

Valeu Tiago pela dica, ajudou a resolver o meu problema com as abas.
Até mais… [:)]

(Cleyton Euler) #4

Só para deixar registrado para futuras pesquisas:

sc_block_display oculta blocos exibidos como ABAS.
ABAS configuradas como páginas não podem ser ocultadas, pelo menos até a release 12 da V5.1

(Diogo Toscano) #5

Sei que pode nao ser legal, mas pode abrir o fonte para ver o id da no codigo da pagina e dar um:

document.getElementById(‘id_da_pagina’).style.display = ‘none’;

isso ira esconder o objeto.

(Cleyton Euler) #6

Mas ai tem a incoveniência de se gerar a aplicação novamente, vai no código de novo…

Parece simples então a NM criar uma macro. Sugira ai para o pessoal do desenvolvimento.

(Diogo Toscano) #7

Eu sei … por isso que nao eh legal :-p
Falei pq temos usuarios experientes aqui que talvez queiram saber … alem do que, alteração direto assim corre o risco de em mudanças grande que futuramente os templates vão sofrer, pode ser que deixe de funcionar …

Por isso não gosto de colocar codigo manual … mas vai sempre uma dica do que na web tudo eh possivel :-p

(Cleyton Euler) #8

De boa…

Mas sobe a idéia de uma macro para esconder ABA como página. Vai quebrar um galho danado, pois em formulários com muitos campos, configurar ABAS com blocos dá trabalho demais.

(erick.major) #9

Alguma previsão para a criação desta macro?

(Arquimedes) #10

so para reforça as dicas dos golegas, vc pode esconder as abas tambem utilizando o nivel de acesso de usuarios, dependendo o nivel do usuario fica a seu criterio exibir ou nao a aba, no login vc chama o nivel do usuario, colocar ele como global e no formulario voce coloca em eventos o codico chamando essa variavel global de nivel e define o que sera exibido

(Cleyton Euler) #11

Coema, vc pode dar um exemplo de como vc faz isso?

(Arquimedes) #12

voce cria as tabelas nivel, unidade e usuario

– Estrutura da tabela nivel

CREATE TABLE nivel (
codigo int(11) NOT NULL auto_increment,
descricao varchar(40) NOT NULL,
sigla varchar(6) NOT NULL,
PRIMARY KEY (codigo)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;


– Extraindo dados da tabela nivel

INSERT INTO nivel (codigo, descricao, sigla) VALUES (1, ‘Administrador’, ‘admin’),
(2, ‘Cecom’, ‘0’);



– Estrutura da tabela sec_users

CREATE TABLE sec_users (
codigo int(11) NOT NULL auto_increment,
Login varchar(10) NOT NULL,
Pswd varchar(10) NOT NULL,
Name varchar(10) NOT NULL,
unidade varchar(2) NOT NULL,
nivel varchar(2) NOT NULL,
funcao varchar(2) NOT NULL,
PRIMARY KEY (codigo)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;


– Extraindo dados da tabela sec_users

INSERT INTO sec_users (codigo, Login, Pswd, Name, unidade, nivel, funcao) VALUES (2, ‘arquimedes’, ‘12’, ‘arquimedes’, ‘1’, ‘1’, ‘1’);



– Estrutura da tabela unidade

CREATE TABLE unidade (
codigo int(11) NOT NULL auto_increment,
descricao varchar(50) NOT NULL,
sigla varchar(20) NOT NULL,
PRIMARY KEY (codigo)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;


– Extraindo dados da tabela unidade

INSERT INTO unidade (codigo, descricao, sigla) VALUES

(1, ‘Depatamento de RH’, ‘RH’);

(Arquimedes) #13

dentro do control_login coloque o seguinte codigos declarando as variaveis globais
$var_login = sc_sql_injection({login});
$var_password = sc_sql_injection({password});

sc_lookup(ds, "select Login, Pswd, nivel, unidade, codigo, funcao from sec_users where Login = $var_login and Pswd = $var_password ");

if ({ds} != false)
{

$sm_global_login = {login};	
sc_set_global($sm_global_login);

$nivel = {ds[0][2]};
    sc_set_global($nivel);
    
    $unidade = {ds[0][3]};
    sc_set_global($unidade);
    
    $codigo_usuario= {ds[0][4]};
    sc_set_global($codigo_usuario);
    
    $funcao= {ds[0][5]};
    sc_set_global($funcao);
    


$dir = opendir($this->Ini->path_aplicacao . "..");

while ($file = readdir($dir))
{
	if ($file != '.' && $file != '..' && $file != '_lib')
	{
	      sc_apl_status($file, 'on');
	}		
}

closedir($dir);

sc_redir('menu');

}
else
{
sc_error_message(“Acesso negado !”);
}

(Arquimedes) #14

e por ultimo dentro do evento onScriptinit coloque o seguinte codigo dentro do formulario com as abas, lembrando que voce pode bloqueiar as abas e os campos conforme o nivel do usuario logado

coloque o sequinte codigo dentro do envento onscriptinit do formulari
/**

  • Hide/show a block
    */
    $nivel = [nivel];
    if ($nivel == 1) // Display block
    {
    // liberar blocos
    sc_block_display(Destino, ‘on’);
    sc_block_display(coordenadas, ‘on’);
    // liberar edicao campos
    sc_field_readonly({cod_tipo}, ‘off’);
    sc_field_readonly({cod_municipio}, ‘off’);
    sc_field_readonly({cod_logra}, ‘off’);
    sc_field_readonly({alcunha}, ‘off’);
    sc_field_readonly({semana}, ‘off’);
    sc_field_readonly({descricao_suspeito}, ‘off’);
    sc_field_readonly({referencia}, ‘off’);
    sc_field_readonly({fato}, ‘off’);
    sc_field_readonly({obs}, ‘off’);
    sc_field_readonly({mes}, ‘off’);
    sc_field_readonly({data}, ‘off’);
    sc_field_readonly({hora}, ‘off’);
    //liberar visualizacao botoes
    sc_btn_display(‘new’, ‘on’);
    sc_btn_display(‘delete’, ‘on’);
    sc_btn_display(‘update’, ‘on’);

}
else
{
// bloqueia blocos
sc_block_display(Destino, ‘off’);
sc_block_display(coordenadas, ‘off’);
// bloqueia edicao campos
sc_field_readonly({cod_tipo}, ‘on’);
sc_field_readonly({cod_municipio}, ‘on’);
sc_field_readonly({cod_logra}, ‘on’);
sc_field_readonly({semana}, ‘on’);
sc_field_readonly({referencia}, ‘on’);
sc_field_readonly({alcunha}, ‘on’);
sc_field_readonly({descricao_suspeito}, ‘on’);
sc_field_readonly({fato}, ‘on’);
sc_field_readonly({obs}, ‘on’);
sc_field_readonly({mes}, ‘on’);
sc_field_readonly({data}, ‘on’);
sc_field_readonly({hora}, ‘on’);
// bloqueia botes
sc_btn_display(‘new’, ‘off’);
sc_btn_display(‘delete’, ‘off’);
sc_btn_display(‘update’, ‘off’);
}

(Arquimedes) #15

amanha vou colocar esse exemplo na area de download da comunidade scriptcaseajax

(Cleyton Euler) #16

Vc está ocultando BLOCOS e não ABA. Acho que vc não entendeu o tópico. Estamos querendo ocultar ABA e não BLOCO TIPO ABA.

(Arquimedes) #17

realmente eu me atendei a pergunta do do forum e nao dos questionamento dos usuarios, segundo a questao minha responta estar certa, porem como aba separada ate o presente momento o sc nao estar disponibiliza

(Cleyton Euler) #18

Vc está confundindo ABA no formulário com BLOCO TIPO ABA. São conceitos diferentes. O bloco tipo aba a macro sc_block_display resolve. Mas, a ABA criada não tem como, ainda.

(Cleyton Euler) #19

Nada não, vc apenas se confundiu.