[RESOLVIDO] Botão Run - Formulário de Unico Registro

Pessoal,

Eu tenho um formulário do tipo único resgistro, porém alguns campos coloquei como multiplos reistros pois os mesmos recebem dados de variaveis globais vinda de outra aplicação por meio do botão run, e nesse formulário eu acesso essas variaveis e de acordo os os valores das mesmas é exibido alguns campos e alguns botões.

O que tem acontecido é só entra nas condições quando vem apenas um elemento em cada variavel, ou seja, quando é um array de varios elementos a tela fica em branco e não executa as condições.

O código base para eibição está assim:
{Id_Agenda} = [Id_Agenda];
{Id_PA_Todos} = [Id_PA_Todos];
{Id_PA_Todos_Agenda} = [Id_PA_Todos_Agenda];
{Id_Status_PA_Todos} = [Id_Status_PA_Todos];
{Id_PA} = [Id_PA];
{Nome_Area} = [Nome_Area];

$nomeArea = is_array({Nome_Area}) ? {Nome_Area} : [{Nome_Area}];
$statusPA = is_array({Id_Status_PA_Todos}) ? {Id_Status_PA_Todos} : [{Id_Status_PA_Todos}];

foreach ($nomeArea as $index => $area) {
$areas = explode(’, ‘, $area);
$statusArray = isset($statusPA[$index]) ? explode(’, ', $statusPA[$index]) : [];

foreach ($areas as $key => $singleArea) {
    $currentStatus = isset($statusArray[$key]) ? $statusArray[$key] : 'Status não definido';

    if (($currentStatus == 0 || $currentStatus == 2) && strpos($singleArea, 'Segurança Empresarial') !== false) {
		
		echo "Estou na primeira condição!";
        sc_btn_display("Reabrir", "off");
        sc_btn_display("Baixa", "off");
        sc_btn_display("Resolver", "on");
        sc_field_display("Observacao_Resolvido_new", "off");
        sc_field_display("Observacao_Resolvido", "off");
        sc_field_display("Observacao_Resolvido_Log", "on");
        sc_field_display("Observacao_Resolvido_new_Log", "off");
        sc_field_display("Observacao_Baixa", "off");
    }

    echo "Área: $singleArea, Status: $currentStatus<br>";
}

}
e isso é o que aparece na tela como depuração porém não exibe os campos e os botões da condição:
Estou na primeira condição!Área: Segurança Empresarial, Status: 0
Estou na primeira condição!Área: Segurança Empresarial, Status: 0
Estou na primeira condição!Área: Segurança Empresarial, Status: 0

Abriu um novo tópico?

1 Curtida

Haroldo, sou nova aqui no fórum e pensei que, à medida que o tópico fosse ficando mais para baixo na lista, as pessoas não respondessem mais. Por isso, acabei criando um novo. Assim que você ver esta mensagem, eu apagarei para evitar qualquer confusão.

Obrigado @manjos.

Seu caso tem que ser investigado melhor

E tem legumes ditos seu que não entendo:

Formulário único registros com campos múltiplos registros? Por exemplo.

Ainda achei estranho seu sc_redir funcionar da forma que o escreveu.

Estou buscando uma maneira eficiente de atualizar múltiplos registros simultaneamente. A ideia é evitar a atualização manual campo por campo. Para isso, seria ideal ter um formulário que pudesse coletar os valores de todos os campos necessários de uma vez e, após verificar se atendem a certas condições, realizar a atualização em massa nos registros selecionados.

Para tentar resolver isso, criei um formulário para um único registro, incluindo nele campos que representam múltiplos registros, permitindo que funcionem como tal. No entanto, isso só é eficaz quando um único plano de ação é selecionado. Se mais de um plano é escolhido, o formulário falha em processar a informação e resulta em uma tela em branco.

Quanto ao comando sc_redir, ele parece estar funcionando corretamente, já que a operação ocorre sem problemas quando apenas um plano de ação é selecionado. Para fins de teste, se você puder fornecer a maneira adequada, ficarei grata.

Atualente está assim:
$Id_Agenda = implode(", “, [Id_Agenda]);
$ids_PA_Todos = implode(”, “, [Id_PA_Todos]);
$id_Agenda_Todos = implode(”, “, [Id_PA_Todos_Agenda]);
$idStatus = implode(”, “, [Id_Status_PA_Todos]);
$idsPA = implode(”, “, [Id_PA]);
$Nome_Area = implode(”, “, [Nome_Area]);
$id_PA_LOG = implode(”, ", [Id_PA_Log]);

$variaveis_globais = array(
‘Id_Agenda’ => $Id_Agenda,
‘Id_PA_Todos’ => $ids_PA_Todos,
‘Id_PA_Todos_Agenda’ => $id_Agenda_Todos,
‘Id_Status_PA_Todos’ => $idStatus,
‘Id_PA’ => $idsPA,
‘Nome_Area’ => $Nome_Area,
‘Id_PA_Log’ => $id_PA_LOG
);

echo '<pre>';
print_r($variaveis_globais);
echo '</pre>';

sc_redir(“Aplicacao_Baixa_PA_form”, $variaveis_globais);

@InfinitusWeb bom dia,

eu mudei o formato do formlário para multiplos registros e queria mostrar para você como é o fluxo da aplicação até realizar a baixa.

Primeiro seleciona os PA que se deseja baixar, podendo baixar um por vez ou em lote

após isso é hora de fazer a baixar e eu queria que acontecesse isso, aceitar multiplos ids no campo e dar baixa em todos de uma unica vez

porém quando seleciona mais de uma PA a tela que faz a baixa fica em branco, pq ela não entende que são multiplos valores, espero que tenha ficado mais claro. isso é possível?

Como é a chave primária da tabela principal?

são duas tabelas diferetes que tem o id cada uma, no sql juntamos esses dois ids e formou um unico que é o Id_PA_Todos


Pessoal alg sabe como fazer para funcionar isso de um campo aceitar multiplos valores e dar baixar em lote?

Funcionou, pessoal! O problema era na cláusula WHERE , onde eu estava utilizando o operador = . Como se tratava de múltiplos registros, isso gerava um erro. Inclusive, um erro era exibido no console, mas eu não estava dando a devida atenção. Após corrigir essa parte, o erro desapareceu e a aplicação passou a funcionar corretamente, realizando a baixa em lote. É claro que fiz outras alterações também, rsrs. Muito obrigado pela ajuda, especialmente ao @InfinitusWeb.

2 Curtidas