Problema em ler variável no react native.

26/05/2023

0

Estou tendo um problema em ler uma variável ao qual eu preciso fazer um cálculo. O está ocorrendo porque as variáveis precisam ser alimentadas a partir de um select da base SQLite. Neste caso, a variável é alimentada e recebe o valor dentro do select, mas ao sair, não funciona. Se mantém no valor zero, CONFORME CÓDIGO ABAIXO. Alguém pode me ajudar, pois não consigo admitir que o react native não tenha um tratamento simples de variáveis?

// SELECT para listar as ordens de serviços nas seguintes situações:
// 1 - Em Execução do dia Anterior;
// 2 - Pendentes do dia atual;
// 3 - Executadas do dia Atual.
db.transaction((tx) => {

tx.executeSql(''SELECT * FROM solicitacao WHERE idempregado_responsavel = '' + idEmpregado + '' ORDER BY data_registro_fechamento ASC, situacao ASC, bairro_descricao ASC, logradouro ASC'', [], (tx, results) => {
//tx.executeSql(''SELECT * FROM solicitacao ORDER BY data_registro_fechamento ASC, situacao ASC, bairro_descricao ASC, logradouro ASC'', [], (tx, results) => {
const len = results.rows.length;
const newCards = []; // Array temporário para armazenar os novos cards
let newCorCards = ''blue''; // Valor padrão
let idso = ''NA''; // Valor padrão
let psi = ''NA''; // Valor padrão

for (let i = 0; i < len; i++) {

const row = results.rows.item(i);

idso = row.idsolicitacao;
psi = row.protocolo;

const ProtocoloSSA = row.protocolo_ssa;

let qtd_linha_total = 0;
let qtd_linha_em_execucao = 0;
let qtd_registros = 0;
//PEGAR A QUANTIDADE DE OS DENTRO DO CARD
//console.log(''SELECT * FROM solicitacao WHERE protocolo_ssa = "''+ProtocoloSSA+''" AND idempregado_responsavel = '' + idEmpregado + '' ORDER BY data_registro_fechamento ASC, situacao ASC, bairro_descricao ASC, logradouro ASC'');
tx.executeSql(''SELECT * FROM solicitacao WHERE protocolo_ssa = "''+ProtocoloSSA+''" AND idempregado_responsavel = '' + idEmpregado + '' ORDER BY data_registro_fechamento ASC, situacao ASC, bairro_descricao ASC, logradouro ASC'', [], (tx, results) => {
//tx.executeSql(''SELECT * FROM solicitacao ORDER BY data_registro_fechamento ASC, situacao ASC, bairro_descricao ASC, logradouro ASC'', [], (tx, results) => {
qtd_linha_total = results.rows.length;
console.log("qtd_linha_total - DENTRO: " + qtd_linha_total); return false;
});
console.log("qtd_linha_total - FORA: " + qtd_linha_total); return false;

//PEGAR A QUANTIDADE DE OS DENTRO DO CARD
tx.executeSql(''SELECT * FROM solicitacao WHERE situacao = "EM EXECUCAO" AND protocolo_ssa = "''+ProtocoloSSA+''" AND idempregado_responsavel = '' + idEmpregado + '' ORDER BY data_registro_fechamento ASC, situacao ASC, bairro_descricao ASC, logradouro ASC'', [], (tx, results) => {
//tx.executeSql(''SELECT * FROM solicitacao ORDER BY data_registro_fechamento ASC, situacao ASC, bairro_descricao ASC, logradouro ASC'', [], (tx, results) => {
qtd_linha_em_execucao = results.rows.length;
//console.log("qtd_linha_em_execucao: " + qtd_linha_em_execucao);
});

qtd_registros = (qtd_linha_total - qtd_linha_em_execucao);
//console.log(qtd_linha_total);
//console.log(qtd_linha_em_execucao);
/*console.log(qtd_registros);*/

if (row.situacao === ''EM EXECUCAO''){
newCorCards = ''blue'';
}else{
newCorCards = ''green'';
}

const texto = (
<Text>
<Text style={{ fontWeight: ''bold'' }}>Data Registro: </Text>{row.data_registro_fechamento}
{''\n''}
<Text style={{ fontWeight: ''bold'' }}>Protocolo SSA: </Text>{row.protocolo_ssa}
{''\n''}
<Text style={{ fontWeight: ''bold'' }}>Logradouro: </Text>{row.logradouro_tipo_descricao + " " + row.logradouro}
{''\n''}
<Text style={{ fontWeight: ''bold'' }}>Bairro: </Text>{row.bairro_descricao}
{''\n''}
<Text style={{ fontWeight: ''bold'' }}>Referência: </Text>{row.referencia}
{''\n''}
<Text style={{ fontWeight: ''bold'' }}>Total de Ordens de Serviços: </Text>{qtd_linha_total.toString()}
</Text>
);

newCards.push({ id: i.toString(), ids: idso, ps: psi, conteudo: texto, cor: newCorCards });
}

setCards(newCards); // Atualize o estado com os novos cards
});
});
Marcelo Branco

Marcelo Branco

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar