Funcionou… porém no meu caso é um pouco diferente, o cliente vai escolher o número de registros que ele vai fazer do mesmo item.
Ex.:
Eu tenho uma tabela de cadastro de servidores, na parte de cadastro da placa mãe, eu tenho o campo Nº de slots de memória, ai o cliente coloca 4, feito isso vai mostrar os blocos de 1 à 4, se forem 6 vai mostrar de 1 à 6, eu tenho de 1 até 10 no banco, ai no onChage do select eu fiz isto:
if ({EQP003_PMAE_MSLOT} == "1") {
sc_block_display(bl_memo1, on);
sc_block_display(bl_memo2, off);
sc_block_display(bl_memo3, off);
sc_block_display(bl_memo4, off);
sc_block_display(bl_memo5, off);
sc_block_display(bl_memo6, off);
sc_block_display(bl_memo7, off);
sc_block_display(bl_memo8, off);
}
Mas é pouco funcional fazer isso em tudo então eu tentei criar o método:
// Parametros
$cValor = {EQP003_PMAE_MSLOT};
$blocksNeed = array( // Blocos para parâmetro
1=>'bl_memo1',
2=>'bl_memo2',
3=>'bl_memo3',
4=>'bl_memo4',
5=>'bl_memo5',
6=>'bl_memo6',
7=>'bl_memo7',
8=>'bl_memo8'
);
$range = count($blocksNeed);
// Método
for($i = 1; $i<=$range; $i++) {
if ($i == $cValor) {
sc_block_display($blocksNeed, on);
if ($i > 1) {
for ($j = $i - 1;$j > 0; $j--) {
sc_block_display($blocksNeed[$j], on);
}
}
}
Que basicamente criava um array fazia um if increase para verificar os valores, e quando fosse maior que 1 eu fazia um if decrease para ativas os blocos menores que X também.
Porém a macro não aceita variáveis, mas agora com esse código que você postou se funcionar no onChange eu creio que da pra fazer o que eu pensei.
Vlw Haroldo.