Galera, boa tarde.
Já tentei de tudo quanto é jeito. Preciso parssar um array(que obviamente possui mais de um valor armazenado) criado com a função sc_lookup, como variável global para usala em outras aplicações.
Se algué tiver uma idéia ou souber como fazer, agradeço muito.
SC_LOOKUP(DS,"SELECT…
[VARIAVEL]=$DS;
Harold, tentei da seguinte forma e não funcionou…
SC_LOOKUP(DS,"SELECT…
[VARIAVEL]={DS};
Vou tentar do jeito que você postou e informo a galera. Valeu!!!
Era pra funcionar das duas formas.
Da um print_r() na variavel antes de adiciona … e da um print_r na variavel da aplicação onde voce informou que não funcionou.
Eu tentei fazer conforme orientação passada nesse tópico, porém não consigo entender como listar.
No evento OnLoad eu tenho este select:
$sqlparcelas=“SELECT
recparcela,
recvalorprincipal
FROM
tbl_recebimento_x_parcelas
WHERE
fatcod = [var_fatcod]
AND
fatserie = [var_fatserie]
AND
empcod = [var_empcod]”;
sc_lookup(rsparcelas,$sqlparcelas);
Agora preciso jogar em um array cada parcela com seu respectivo valor. Já tentei assim, mas não funcionou:
[var_parcelas] = {rsparcelas};
Porém na hora de escrever ou fazer tratamentos como vou escrever ?
Já tentei, mas não funcionou:
[var_parcelas][parcela]
Alguma dica ?
alimentando a variável global:
$arr = array(‘a’ => 1, ‘b’ => 2, ‘c’ => 3, ‘d’ => 4, ‘e’ => 5);
[glo_array]=json_encode($arr);
extraindo o array da global?
$_arr=json_decode([glo_array]);
Então Haroldo, sou iniciante ainda no PHP e SC.
Eu fiz um teste e realmente na hora de extrair trouxe os dados:
json_decode([[[“1”,“400”],[“2”,“500”]]])
Mas eu precisava, se puder, me dar um exemplo de como pegar determinada parcela e atualizar o valor da parcela.
Veja que meu select vai trazer o numero da parcela e o valor. Dai o usuário vai alterar o valor da parcela e eu preciso atualizar essa variavel global com esse novo valor que o usuário digitou. Pra depois la na frente eu fazer um FOR para somar os valores de todas essas parcelas e validar com o cabeçalho do pedido.
Resumindo, o que preciso é o seguinte: eu criei um formulário multiplos registros onde o usuário vai alterar os valores e vencimento das parcelas de um pedido. Quando o usuário Salvar Selecionados e preciso somar os valores digitados e validar com o cabeçalho do pedido, para não deixar o usuário informar valor a menor ou maior que o valor do pedido. Por isso comecei a lógica de usar array global que vi nesse tópico.
Se puder dar uma ajuda na lógica ai pra resolver essa questão agradeço.
$sqlparcelas="SELECT
recparcela,
recvalorprincipal
FROM
tbl_recebimento_x_parcelas
WHERE
fatcod = [var_fatcod]
AND
fatserie = [var_fatserie]
AND
empcod = [var_empcod]";
sc_lookup(rsparcelas,$sqlparcelas);
[var_glo]=json_encode({rsparcelas});
-----------------------------------------------------
Outra app:
$_parcelas=json_decode([var_glo]);
//supondo que alterou a parcela 3 para 380,00 e a parcela 3 é o segundo registro do result set
$_parcelas[2][1]=380.00; // aqui alterou no array o valor da parcela 3.
// aqui pode usar foreach para tratar, somar, etc...
// result set
//reg 1 $_parcelas[0][0] --> 1, $_parcelas[0][1]= 300.00
//reg 2 $_parcelas[1][0] --> 1, $_parcelas[1][1]= 300.00
//reg 3 $_parcelas[2][0] --> 1, $_parcelas[2][1]= 300.00 --> aqui foi alterado para 380.00
//reg 4 $_parcelas[3][0] --> 1, $_parcelas[3][1]= 300.00
Veja como ficou um teste que montei pra entender melhor:
// BUSCA VALOR DA PARCELA ATUAL
$sqlparcelas=“SELECT
recparcela,
recvalorprincipal
FROM
tbl_recebimento_x_parcelas
WHERE
fatcod = [var_fatcod]
AND
fatserie = [var_fatserie]
AND
empcod = [var_empcod]”;
sc_lookup(rsparcelas,$sqlparcelas);
[var_parcelas] = json_encode({rsparcelas});
$teste = json_decode([var_parcelas]);
echo “$teste[0][0] - $teste[0][1]”;
Porém da o erro “Array to string conversion”, já verifiquei que o erro ocorre no “echo”. Seria questão da versão do SC, pois utilizo a versão 8.
Eu faço assim:
sc_lookup(dataset,"SELECT * FROM tabela");
foreach({dataset} as $key => $data1){
foreach($data1 as $key2 => $data2){
[arr_global][$key][$key2] = $data2;
}
}
Daí, o [arr_global] vai ter a mesma estrutura do dataset
[arr_global][0][0] e assim por diante.
isso não funciona: echo “$teste[0][0] - $teste[0][1]”;
use :
echo ‘
’.print_r($teste, true).’’;
ou echo “{$teste[0][0]} - {$teste[0][1]}”;
ou echo $teste[0][0].’ - '.$teste[0][1];
Haroldo, depois do que me passou estudei um pouco mais de array e php e json.
Ate está funcionando, porém gostaria de opinião mais expert pra saber se estou no caminho certo ou estou dando muitas voltas.
Estou tentando assim no Evento Ajax OnChange (quando alterar o valor já atualizar o valor da parcela na variável global), veja como ficou:
$parcelas = json_decode([var_parcelas]);
$parc = {recparcela}-1;
$parcelas[$parc][1] = {recvalorprincipal};
[var_parcelas] = json_encode($parcelas);
Isso seria o mais viável ou teria alguma forma mais correta ?
Se esta funcionando assim, melhor prosseguir no seu projeto.
Para avaliar se está no caminho certo, temos olhar modelagem do banco de dados, requisitos do sistema
e outros fatores que no momento podem em vez de ajudar atrapalhar você.
Siga seu projeto, e numa segunda versão dele você faz melhorias conforme for evoluindo no seu conhecimento de programação.
Blz… Valeu Haroldo e demais… Acredito que irá ajudar próximos esse tópico…