Sistema de avaliação

Esta questão já te respondi, usando a variável global nesta sua subconsulta… e sobre clicar e abrir, é uma ligação que poderá fazer em cima da matrícula.

1 Curtida

mas permitem null, pode usar if(campo <> 0 || campo is not null)

1 Curtida

Ok, vou pôr a mão na massa e darei o feedback, Joelton.
Abrigadão!!!

1 Curtida

Dá um like no coração das respostas pra fortalecer a parceria…rsrs

1 Curtida

Já o fiz, Joelton!
Mas, esse comando está a dar erro
if({meu_campo} <> 0 || {meu_campo} is not null)

Parse error: syntax error, unexpected ‘is’

Tente…

if(campo <> 0 || !is_null(campo))

Se ainda der errado coloque o seu código aqui…

1 Curtida

if({profissionais_um}<>0 || !is_null({profissionais_um})){
//sc_apl_conf(“Aplicação”, “Propriedade”, “Valor”)
sc_apl_conf(“form_avaliacao_competencias”, “field_display_off”, “profissionais_um”);
}
Não está a desabiliatar o campo profissionais_um, Joelton. Ou tenho de usar o sc_field_display({Meu_Campo}, on/off)

if({profissionais_um}<>0 || !is_null({profissionais_um})){
sc_field_display({profissionais_um}, ‘off’);
}

1 Curtida

Utilizei um ajax no campo da função, Joelton.
Dos 18 campos do form, há campos no meio, por exemplo caompo_nove, dez e onze que não deveriam ter valores, mas eles estão a receber.

Se calhar não estamos a falar a mesma língua, Joelton. Volto a explicar:
O form avaliação é para avaliar todos os funcionários. Mas, há funcionários com mais competencias do que os outros. No máximo, um avaliado pode ter 18 competencias e no mínimo 10.
Confesso que estou com o cérebro a arder para solucionar este problema.

Terá fazer um sc_lookup no banco para verificar se a função do avaliado possuir aqueles campos, ou seja se os mesmo devem ser respondidos, com esta informação percorrer com o if em cada campo, logo os campos que não são da relação serão inabilitados e receberam por padrão via banco o valor null, isto se colocou o default desta forma conforme o início da conversa.

1 Curtida

sc_lookup(rs,“SELECT competencia FROM competencias WHERE idfuncao_competencia=’{funcao_avaliado}’”);
if(!empty({rs})){
{corporativa_um} = {rs[0][0]};
{corporativa_dois} = {rs[1][0]};
{corporativa_tres} = {rs[2][0]};
{corporativa_quatro} = {rs[3][0]};
{corporativa_cinco} = {rs[4][0]};
{corporativa_seis} = {rs[5][0]};
{corporativa_sete} = {rs[6][0]};
{corporativa_oito} = {rs[7][0]};
{profissionais_um} = {rs[8][0]};
{profissionais_dois} = {rs[9][0]};
{profissionais_tres} = {rs[10][0]};
{funcionais_um} = {rs[11][0]};
{funcionais_dois} = {rs[12][0]};
{funcionais_tres} = {rs[13][0]};
{funcionais_quatro} = {rs[14][0]};
{funcionais_cinco} = {rs[15][0]};
{funcionais_seis} = {rs[16][0]};
{funcionais_sete} = {rs[17][0]};
}else{
{corporativa_um} = “”;
{corporativa_dois} = “”;
{corporativa_tres} = “”;
{corporativa_quatro} = “”;
{corporativa_cinco} = “”;
{corporativa_seis} = “”;
{corporativa_sete} = “”;
{corporativa_oito} = “”;
{profissionais_um} = “”;
{profissionais_dois} ="";
{profissionais_tres} ="";
{funcionais_um} = “”;
{funcionais_dois} = “”;
{funcionais_tres} ="";
{funcionais_quatro} ="";
{funcionais_cinco} ="";
{funcionais_seis} = “”;
{funcionais_sete} = “”;
}
Fiz desse jeito, Joelton. Ele traz os dados, mas para 12 competencias por exemplo, ele ao invés de mostrar as primeiras oito e as últimas 4, ele carregar para os primeiros 12 registo.
Esta não é a opção desejada.

Depois deste lookup inicie a tratativa com if…

if({corporativa_um} <> ‘’){
sc_field_display({corporativa_um}, ‘off’);
}

E vai percorrendo conforme sua necessidade…

1 Curtida

Saudações, Joelton!
Não percebi sua ideia. Faço a trataiva a sequir ao if(!empty({rs})){
{corporativa_um} = {rs[0][0]}; dentro do if geral ou ignoro o if geral e faço if({corporativa_um} <> ‘’){
sc_field_display({corporativa_um}, ‘off’);
} campo a campo?

Lembrar-lhe que essa consulta estou a fazer no evento ajax para preencher as competências e serem gravadas a partir do form da avaliação, Grande Joelton.

O if e else que postou inicialmente, tire o else, não vejo necessidade, deixe apenas o if, e dentro dele coloque suas tratativas…

1 Curtida

Está difícil, Grande Joelton.
Fiz do jeito que abaixo mostrado, mas só preenche os campos se for do para a primeira condição. Eu tentei fazer com o $n_competencias=10,$n_competencias=11,$n_competencias=12,$n_competencias=13… até $n_competencias=18, mas só exibe da primeira opçãção, caso seja uma outra condição no elseif ele salta para o ELSE DO FIM…

sc_lookup(ds,“SELECT competencia,nivel_requerido_competencia FROM competencias WHERE idfuncao_competencia=’{funcao_avaliado}’”);

sc_lookup(rs,“SELECT COUNT(idcompetencias) FROM competencias WHERE idfuncao_competencia=’{funcao_avaliado}’”);
$n_competencias={rs[0][0]};
if($n_competencias==14){
{corporativa_um} = {ds[0][0]};
{corporativa_dois} = {ds[1][0]};
{corporativa_tres} = {ds[2][0]};
{corporativa_quatro} = {ds[3][0]};
{corporativa_cinco} = {ds[4][0]};
{corporativa_seis} = {ds[5][0]};
{corporativa_sete} = {ds[6][0]};
{corporativa_oito} = {ds[7][0]};

{funcionais_um} = {ds[8][0]};
{funcionais_dois} = {ds[9][0]};
{funcionais_tres} = {ds[10][0]};
{funcionais_quatro} = {ds[11][0]};
{funcionais_cinco} = {ds[12][0]};
{funcionais_seis} = {ds[13][0]};

{nr_corporativa_um} = {ds[0][1]};
{nr_corporativa_dois} = {ds[1][1]};
{nr_corporativa_tres} = {ds[2][1]};
{nr_corporativa_quatro} = {ds[3][1]};
{nr_corporativa_cinco} = {ds[4][1]};
{nr_corporativa_seis} = {ds[5][1]};
{nr_corporativa_sete} = {ds[6][1]};
{nr_corporativa_oito} = {ds[7][1]};

{nr_funcionais_um} = {ds[8][1]};
{nr_funcionais_dois} = {ds[9][1]};
{nr_funcionais_tres} = {ds[10][1]};
{nr_funcionais_quatro} = {ds[11][1]};
{nr_funcionais_cinco} = {ds[12][1]};
{nr_funcionais_seis} = {ds[13][1]};

//TORNAR CAMPO NÃO EDITÁVEL
sc_field_disabled(“corporativa_um”);
sc_field_disabled(“corporativa_dois”);
sc_field_disabled(“corporativa_tres”);
sc_field_disabled(“corporativa_quatro”);
sc_field_disabled(“corporativa_cinco”);
sc_field_disabled(“corporativa_seis”);
sc_field_disabled(“corporativa_sete”);
sc_field_disabled(“corporativa_oito”);
sc_field_disabled(“funcionais_um”);
sc_field_disabled(“funcionais_dois”);
sc_field_disabled(“funcionais_tres”);
sc_field_disabled(“funcionais_quatro”);
sc_field_disabled(“funcionais_cinco”);
sc_field_disabled(“funcionais_seis”);

sc_field_disabled(“nr_corporativa_um”);
sc_field_disabled(“nr_corporativa_dois”);
sc_field_disabled(“nr_corporativa_tres”);
sc_field_disabled(“nr_corporativa_quatro”);
sc_field_disabled(“nr_corporativa_cinco”);
sc_field_disabled(“nr_corporativa_seis”);
sc_field_disabled(“nr_corporativa_sete”);
sc_field_disabled(“nr_corporativa_oito”);

sc_field_disabled(“nr_funcionais_um”);
sc_field_disabled(“nr_funcionais_dois”);
sc_field_disabled(“nr_funcionais_tres”);
sc_field_disabled(“nr_funcionais_quatro”);
sc_field_disabled(“nr_funcionais_cinco”);
sc_field_disabled(“nr_funcionais_seis”);

sc_field_display({profissionais_um}, ‘off’);
sc_field_display({profissionais_dois}, ‘off’);
sc_field_display({profissionais_tres}, ‘off’);
sc_field_display({nr_profissionais_um}, ‘off’);
sc_field_display({nr_profissionais_dois}, ‘off’);
sc_field_display({nr_profissionais_tres}, ‘off’);
sc_field_display({na_profissionais_um}, ‘off’);
sc_field_display({na_profissionais_dois}, ‘off’);
sc_field_display({na_profissionais_tres}, ‘off’);

sc_field_display({funcionais_sete}, ‘off’);
sc_field_display({nr_funcionais_sete}, ‘off’);
sc_field_display({na_funcionais_sete}, ‘off’);

}elseif($n_competencias==15){
//POPULAR AS COMPETÊNCIAS CORP.
{corporativa_um} = {ds[0][0]};
{corporativa_dois} = {ds[1][0]};
{corporativa_tres} = {ds[2][0]};
{corporativa_quatro} = {ds[3][0]};
{corporativa_cinco} = {ds[4][0]};
{corporativa_seis} = {ds[5][0]};
{corporativa_sete} = {ds[6][0]};
{corporativa_oito} = {ds[7][0]};
//POPULAR AS COMPETÊNCIAS FUNC.
{funcionais_um} = {ds[8][0]};
{funcionais_dois} = {ds[9][0]};
{funcionais_tres} = {ds[10][0]};
{funcionais_quatro} = {ds[11][0]};
{funcionais_cinco} = {ds[12][0]};
{funcionais_seis} = {ds[13][0]};
{funcionais_sete} = {ds[14][0]};
//POPULAR OS NÍVEIS REQUERIDOS COMP. CORP.
{nr_corporativa_um} = {ds[0][1]};
{nr_corporativa_dois} = {ds[1][1]};
{nr_corporativa_tres} = {ds[2][1]};
{nr_corporativa_quatro} = {ds[3][1]};
{nr_corporativa_cinco} = {ds[4][1]};
{nr_corporativa_seis} = {ds[5][1]};
{nr_corporativa_sete} = {ds[6][1]};
{nr_corporativa_oito} = {ds[7][1]};
//POPULAR OS NÍVEIS REQUERIDOS COMP. FUNC.
{nr_funcionais_um} = {ds[8][1]};
{nr_funcionais_dois} = {ds[9][1]};
{nr_funcionais_tres} = {ds[10][1]};
{nr_funcionais_quatro} = {ds[11][1]};
{nr_funcionais_cinco} = {ds[12][1]};
{nr_funcionais_seis} = {ds[13][1]};
{nr_funcionais_sete} = {ds[14][1]};
//TORNAR CAMPO NÃO EDITÁVEL
sc_field_disabled(“corporativa_um”);
sc_field_disabled(“corporativa_dois”);
sc_field_disabled(“corporativa_tres”);
sc_field_disabled(“corporativa_quatro”);
sc_field_disabled(“corporativa_cinco”);
sc_field_disabled(“corporativa_seis”);
sc_field_disabled(“corporativa_sete”);
sc_field_disabled(“corporativa_oito”);
sc_field_disabled(“funcionais_um”);
sc_field_disabled(“funcionais_dois”);
sc_field_disabled(“funcionais_tres”);
sc_field_disabled(“funcionais_quatro”);
sc_field_disabled(“funcionais_cinco”);
sc_field_disabled(“funcionais_seis”);
sc_field_disabled(“funcionais_sete”);

sc_field_disabled(“nr_corporativa_um”);
sc_field_disabled(“nr_corporativa_dois”);
sc_field_disabled(“nr_corporativa_tres”);
sc_field_disabled(“nr_corporativa_quatro”);
sc_field_disabled(“nr_corporativa_cinco”);
sc_field_disabled(“nr_corporativa_seis”);
sc_field_disabled(“nr_corporativa_sete”);
sc_field_disabled(“nr_corporativa_oito”);

sc_field_disabled(“nr_funcionais_um”);
sc_field_disabled(“nr_funcionais_dois”);
sc_field_disabled(“nr_funcionais_tres”);
sc_field_disabled(“nr_funcionais_quatro”);
sc_field_disabled(“nr_funcionais_cinco”);
sc_field_disabled(“nr_funcionais_seis”);
sc_field_disabled(“nr_funcionais_sete”);

sc_field_display({profissionais_um}, ‘off’);
sc_field_display({profissionais_dois}, ‘off’);
sc_field_display({profissionais_tres}, ‘off’);
sc_field_display({nr_profissionais_um}, ‘off’);
sc_field_display({nr_profissionais_dois}, ‘off’);
sc_field_display({nr_profissionais_tres}, ‘off’);
sc_field_display({na_profissionais_um}, ‘off’);
sc_field_display({na_profissionais_dois}, ‘off’);
sc_field_display({na_profissionais_tres}, ‘off’);
}else{

echo “Dados não carregados!!!”;
}

Primeiro…
A macro é assim…

sc_field_display({corporativa_um}, ‘off’);

Segundo…
Não apenas jogue a macro… coloque ela dentro de outro if…

Terceiro
Quando estiver ainda criando o código, não faça com tudo, trate apenas usando um ou dois campos, é mais fácil para você interpretar e achar o erro e a gente de ajudar…:+1:

1 Curtida

Esse caso, já está solucionado, Grande Joelton!!!
Tive de criar mais campos na tabela de competências para puxar o equivalente à tabela de avaliação e funcionou.
Por hora, falta o problema 2.

Boa Tarde Belmiro,
Eu estava desenvolvendo um sistema nesse sentido, mas parei devido ter sido mudado de setor no trabalho. Entretanto, devo retornar ao sistema em breve. gostaria se possível trocar umas ideias contigo a respeito, talvez seja proveitoso pra nós dois.

Grato pela atenção.

1 Curtida

Saudações, Grande Heraclito!
Sim, podemos trocar algumas ideias. Se fosse um sistema desenvolvido por e simplesmente com as minhas ideias, seria muito fácil de implementar. O que acontece é que há várias funções na empresa e que cada uma delas tem competências diferentes. Mas, pode mandar vir e o que estiver ao meu alcance será partilhado com quem precisar.

Saudações, Grande @joeltonsilva!
Fiz o link pela matrícula e abre o form correcto para a avalição. O que está difícil é criar mecanismos que ao abrir o form clicando na matrícula, preencha já os campos do avaliado. Como é que eu faria esse procedimento?
Grato!!!