Autor Tópico: [RESOLVIDO] app tipo aba - 2a.aba ou posterior - uso de variável global p/where  (Lida 514 vezes)

Jocimar

  • Expert
  • *****
  • Mensagens: 619
SC: 8.1.028  com PHP 5.6
SC: 8.1.029 com PHP 5.6 -> testado em 19/fev/2016 - 14:00 hrs (permanece o bug)
SC: 8.1.031 com PHP 5.6 -> testado em 22/mar/2016 - 16:25 hrs (release corrigiu o bug relatado)

Sobre ligação em abas com app do tipo Formulário Único registro (não é para o primeira pasta, é para segunda pasta ou superior na aba)
Sexta pasta da aba: app do tipo formulário Único Registro.

Ao clicar no menu na opção do cadastro de clientes, o SC abre a app aba já na primeira pasta contendo formulário único registro,
Código da empresa = 1
Código do cliente = 1

Ao clicar na 6a.pasta da aba que contém app do formulário Único Registro, segue conteúdo pelo modo debug
SELECT count(*) from web_gerencia.tbl_cgcon where loccod = 1 AND clicod = 1
SELECT loccod, clicod, conabv, connom,  from web_gerencia.tbl_cgcon WHERE (loccod = 1 AND clicod = 1) order by connom LIMIT 1 OFFSET 0 
Obs.: A ligação está para Recarregar iframe

Agora, clico na primeira pasta da aba, e movo para o próximo registro,
Código da empresa = 1
Código do cliente = 2

Ao clicar na 6a.pasta da aba que contém app do formulário Único Registro,, segue conteúdo pelo modo debug
O select com o count não aparece, somente o select a seguir:
SELECT loccod, clicod, conabv, connom from web_gerencia.tbl_cgcon WHERE (loccod = 1 AND clicod = 2) AND (loccod = 1 and clicod = 1 and conabv = 'BRUNA ') order by connom

É fácil perceber que o SC adicionou a parte que está sublinhado, um novo AND, este é um dos erros, e o primeiro erro é a falta do select com o count para navegar nos registros nesta 6a pasta da aba.

Na Claúsula WHERE do SQL da app do formulário Único Registro, da 6a.pasta da aba o conteúdo é:
loccod = [nEMPCOD] AND clicod = [nCLICOD_F_CGCLI]

A variável global é de entrada por sessão. Esta variável é iniciada no onLoad da app do tipo Formulário 1 registro que está na 1a. pasta da aba.

« Última modificação: Março 22, 2016, 05:09:56 pm por Yuri Esteves »
Jocimar de Oliveira

Jocimar

  • Expert
  • *****
  • Mensagens: 619
[RESOLVIDO] app tipo aba - 2a.aba ou posterior - uso de variável global p/where
« Responder #1 Online: Fevereiro 17, 2016, 12:56:19 pm »
Sobre ligação em abas com app do tipo grid (consulta).

SC: 8.1.028  com PHP 5.6
SC: 8.1.029 com PHP 5.6 -> testado em 19/fev/2016 - 14:00 hrs (permanece o bug)
SC: 8.1.031 com PHP 5.6 -> testado em 22/mar/2016 - 16:25 hrs (release corrigiu o bug relatado)

Primeira pasta da aba: app do tipo formulário Único Registro.
Ao clicar no menu na opção do cadastro de fornecedores, o SC abre a aba já na primeira pasta na app do tipo formulário único registro,
Código da empresa = 1
Código do fornecedor = 1

Ao clicar na 3a.pasta da aba que contém app do tipo grid (consulta), segue conteúdo pelo modo debug
select count(*) from web_gerencia.tbl_cglxf cglxf INNER JOIN web_gerencia.tbl_cglnh cglnh ON cglxf.loccod = cglnh.loccod AND cglxf.lnhcod = cglnh.lnhcod where cglxf.loccod = 1 AND cglxf.forcod = 1

Agora, clico na primeira pasta da aba, e movo para o próximo registro,
Código da empresa = 1
Código do fornecedor = 2

Ao clicar na 3a.pasta da aba que contém app do tipo grid (consulta), segue conteúdo pelo modo debug
select count(*) from web_gerencia.tbl_cglxf cglxf INNER JOIN web_gerencia.tbl_cglnh cglnh ON cglxf.loccod = cglnh.loccod AND cglxf.lnhcod = cglnh.lnhcod where cglxf.loccod = 1 AND cglxf.forcod = 1

Na ligação na minha 3a.pasta da aba, percebam que o count(*) está sendo executado, porém, vejam que o conteúdo da variável global, que deveria ser alterado para o conteúdo 2, não mudou. E mais, nesta mesma app da 3a.pasta da aba, que é do tipo grid (consulta), o conteúdo da variável é alterado no cabeçalho da app, onde mostro o código e o nome do fornecedor.

No comando SQL da 3a.pasta da aba, app do tipo grid (consulta), o conteúdo é:
SELECT
    cglxf.lnhcod,
    cglnh.lnhdes
FROM
    web_gerencia.tbl_cglxf cglxf INNER JOIN web_gerencia.tbl_cglnh cglnh
    ON cglxf.loccod = cglnh.loccod AND cglxf.lnhcod = cglnh.lnhcod
WHERE
    cglxf.loccod = [nEMPCOD] AND cglxf.forcod = [nFORCOD_F_CGFOR]
ORDER BY
    cglnh.lnhdes

A variável global é de entrada por sessão. Esta variável é iniciada no onLoad da app do tipo Formulário 1 registro que está na primeira pasta da aba. O que é necessário para que o SC filtre corretamente é atualizar o comando SELECT com o novo conteúdo da variável global.

Foram gerados todos os códigos fontes, do sistema inteiro, depois foram realizados com o cache limpo e a pasta tmp/ do scriptcase zerada (limpa).

Nota: Estas ligações estavam todas funcionando, mas como estou fazendo uma revisão em todas as app's que tenho, acabei pegando este bug.
 
« Última modificação: Março 22, 2016, 04:42:28 pm por Jocimar »
Jocimar de Oliveira

Yuri Esteves

  • Administrator
  • Expert
  • *****
  • Mensagens: 818
    • Email
Re:app tipo aba - 2a.aba ou posterior - uso de variável global para where
« Responder #2 Online: Março 01, 2016, 01:34:10 pm »
Prezados,

O problema foi corrigido e será liberado na próxima release.

Jocimar

  • Expert
  • *****
  • Mensagens: 619
Re:[RESOLVIDO] app tipo aba - 2a.aba ou posterior - uso de variável global p/where
« Responder #3 Online: Março 22, 2016, 04:43:24 pm »
A equipe NetMake fica aqui meus agradecimentos!
Jocimar de Oliveira