Autor Tópico: Colocar Consulta dentro de Controle  (Lida 3563 vezes)

Endrigo

  • Intermediário
  • ***
  • Mensagens: 242
    • Email
Colocar Consulta dentro de Controle
« Online: Agosto 28, 2013, 09:21:53 pm »
Gostaria de saber se tem como colocar uma aplicação consulta dentro de uma aplicação controle, como se fosse um mestre detalhe.
Endrigo Rodrigues
(31)3464-1020
CentOS 6 64bits + ScriptCase 8.00.0041 + PostgreSQL 9.3

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Re:Colocar Consulta dentro de Controle
« Responder #1 Online: Agosto 28, 2013, 10:02:41 pm »
Gostaria de saber se tem como colocar uma aplicação consulta dentro de uma aplicação controle, como se fosse um mestre detalhe.


No meu ver, nativamente do SC não.
Quando quero fazer isso, faço manual, não é muito complexo.

Sua consulta, vai querer apenas mostrar os dados de acordo com uma determinada ligação ou vai ter os botões de inserir, deletar alterar?

Att.
Eliezer Almeida
eliezeralmeidago@hotmail.com
www.infotecsoft.com.br - Modernidade e Eficiência

Endrigo

  • Intermediário
  • ***
  • Mensagens: 242
    • Email
Re:Colocar Consulta dentro de Controle
« Responder #2 Online: Agosto 28, 2013, 10:07:53 pm »
Somente apresentar, nada de edição. E gostaria de poder atualizar ou recarregar essa consulta através de algum evento meu.
Endrigo Rodrigues
(31)3464-1020
CentOS 6 64bits + ScriptCase 8.00.0041 + PostgreSQL 9.3

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Re:Colocar Consulta dentro de Controle
« Responder #3 Online: Agosto 28, 2013, 10:16:20 pm »
Somente apresentar, nada de edição. E gostaria de poder atualizar ou recarregar essa consulta através de algum evento meu.

Amigo,
Quando quero fazer esse tipo de controle, faço assim, segue alguns passos, vamos ver se ajuda:

paço 1: crio um bloco e um campo tipo label, coloco o campo label no bloco que criei, configuro o bloco para label acima.
paço 2: no onload do controle coloco um iframe no campo label e faço source do iframe buscando a grid, configuro o style do iframe de acordo com o desejado, como width, height e borda. No source do iframe já passo os valores que desejo usar como filtro via GET e trato os na grid.

Caso tenha alguma ou quiser mais detalhes, exemplos poste aqui.

Att.
Eliezer Almeida
eliezeralmeidago@hotmail.com
www.infotecsoft.com.br - Modernidade e Eficiência

Endrigo

  • Intermediário
  • ***
  • Mensagens: 242
    • Email
Re:Colocar Consulta dentro de Controle
« Responder #4 Online: Agosto 28, 2013, 10:25:06 pm »
Somente apresentar, nada de edição. E gostaria de poder atualizar ou recarregar essa consulta através de algum evento meu.

Amigo,
Quando quero fazer esse tipo de controle, faço assim, segue alguns passos, vamos ver se ajuda:

paço 1: crio um bloco e um campo tipo label, coloco o campo label no bloco que criei, configuro o bloco para label acima.
paço 2: no onload do controle coloco um iframe no campo label e faço source do iframe buscando a grid, configuro o style do iframe de acordo com o desejado, como width, height e borda. No source do iframe já passo os valores que desejo usar como filtro via GET e trato os na grid.

Caso tenha alguma ou quiser mais detalhes, exemplos poste aqui.

Almeida, ajuda sim, mas não faço a mínima ideia de como colocar esse iframe, fazer o source é só colocar o src do iframe (ok) apontando para o index da aplicação consulta que quero, e o style é somente CSS (ok também), e o filtro ?mov_caixa_coc_id={coc_id}.

Precisava de uma ajuda com a questão de colocar o iframe, e veja se o restante está ok.

Valeu.
Endrigo Rodrigues
(31)3464-1020
CentOS 6 64bits + ScriptCase 8.00.0041 + PostgreSQL 9.3

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Re:Colocar Consulta dentro de Controle
« Responder #5 Online: Agosto 28, 2013, 10:35:59 pm »
Somente apresentar, nada de edição. E gostaria de poder atualizar ou recarregar essa consulta através de algum evento meu.

Amigo,
Quando quero fazer esse tipo de controle, faço assim, segue alguns passos, vamos ver se ajuda:

paço 1: crio um bloco e um campo tipo label, coloco o campo label no bloco que criei, configuro o bloco para label acima.
paço 2: no onload do controle coloco um iframe no campo label e faço source do iframe buscando a grid, configuro o style do iframe de acordo com o desejado, como width, height e borda. No source do iframe já passo os valores que desejo usar como filtro via GET e trato os na grid.

Caso tenha alguma ou quiser mais detalhes, exemplos poste aqui.

Almeida, ajuda sim, mas não faço a mínima ideia de como colocar esse iframe, fazer o source é só colocar o src do iframe (ok) apontando para o index da aplicação consulta que quero, e o style é somente CSS (ok também), e o filtro ?mov_caixa_coc_id={coc_id}.

Precisava de uma ajuda com a questão de colocar o iframe, e veja se o restante está ok.

Valeu.

ex: codigo onload:
Código: [Selecionar]
$valor = "meu parametro 1";
$valor2 = "meu parametro 2";
$link_consulta = "../minhaconsulta/minhaconsulta.php?param1=$valor&&param2=$valor2... etc"; //exemplo passando os valores via get para a consulta
{campo_label} = "<iframe style=\"width:100%;height:300px;border:none\" src=\"$link_consulta\" ></iframe>";

Se preferir pode definir uma variàvel global no evento onload do controle e use ela na consulta, ai nem precisa passar por link os parâmetros, mais tudo depende da necessidade.

Att.
Eliezer Almeida
eliezeralmeidago@hotmail.com
www.infotecsoft.com.br - Modernidade e Eficiência

Endrigo

  • Intermediário
  • ***
  • Mensagens: 242
    • Email
Re:Colocar Consulta dentro de Controle
« Responder #6 Online: Agosto 28, 2013, 10:39:50 pm »
E para recarregar o iframe é só mandar executar o comando novamente?
Endrigo Rodrigues
(31)3464-1020
CentOS 6 64bits + ScriptCase 8.00.0041 + PostgreSQL 9.3

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Re:Colocar Consulta dentro de Controle
« Responder #7 Online: Agosto 28, 2013, 10:52:03 pm »
E para recarregar o iframe é só mandar executar o comando novamente?

Tem diferentes formas de fazer, eu gosto de usar o Javascript, tiro o src do iframe e coloco novamente, para isso é preciso colocar um id no iframe para facilitar, ai você cria o metodo javascript e chama apartir do evento que quiser usando a função, sc_ajax_javascript(). Vou dar o exemplo do metodo javascript usando o id do iframe como "id_iframe_endrigo".

Código do método JS:
Código: [Selecionar]
var srcAnt, elemento;
elemento = document.getElementById('id_iframe_endrigo');
srcAnt = elemento.src;  //salva sorce anterior
elemento.src = 'about:blank'.
elemento.src = srcAnt;

PS: Tem várias formas, eu uso essa.
PS2: Por o código do iframe estar no onload sempre que carregar seu controle o iframe e recarregado.
PS3: Se quizer usar um parametro para passar um source no metodo também é interessante.
« Última modificação: Agosto 28, 2013, 10:53:39 pm por Almeida »

Att.
Eliezer Almeida
eliezeralmeidago@hotmail.com
www.infotecsoft.com.br - Modernidade e Eficiência

Endrigo

  • Intermediário
  • ***
  • Mensagens: 242
    • Email
Re:Colocar Consulta dentro de Controle
« Responder #8 Online: Agosto 28, 2013, 11:13:32 pm »
Valeu Almeida. Já estou fazendo testes aqui.
Endrigo Rodrigues
(31)3464-1020
CentOS 6 64bits + ScriptCase 8.00.0041 + PostgreSQL 9.3

Endrigo

  • Intermediário
  • ***
  • Mensagens: 242
    • Email
Re:Colocar Consulta dentro de Controle
« Responder #9 Online: Agosto 28, 2013, 11:20:35 pm »
E para recarregar o iframe é só mandar executar o comando novamente?

Tem diferentes formas de fazer, eu gosto de usar o Javascript, tiro o src do iframe e coloco novamente, para isso é preciso colocar um id no iframe para facilitar, ai você cria o metodo javascript e chama apartir do evento que quiser usando a função, sc_ajax_javascript(). Vou dar o exemplo do metodo javascript usando o id do iframe como "id_iframe_endrigo".

Código do método JS:
Código: [Selecionar]
var srcAnt, elemento;
elemento = document.getElementById('id_iframe_endrigo');
srcAnt = elemento.src;  //salva sorce anterior
elemento.src = 'about:blank'.
elemento.src = srcAnt;

PS: Tem várias formas, eu uso essa.
PS2: Por o código do iframe estar no onload sempre que carregar seu controle o iframe e recarregado.
PS3: Se quizer usar um parametro para passar um source no metodo também é interessante.

Não posso utilizar somente dessa forma pois irei mudar os parâmetros da consulta em alguns momentos.
Endrigo Rodrigues
(31)3464-1020
CentOS 6 64bits + ScriptCase 8.00.0041 + PostgreSQL 9.3

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Re:Colocar Consulta dentro de Controle
« Responder #10 Online: Agosto 28, 2013, 11:29:42 pm »
E para recarregar o iframe é só mandar executar o comando novamente?

Tem diferentes formas de fazer, eu gosto de usar o Javascript, tiro o src do iframe e coloco novamente, para isso é preciso colocar um id no iframe para facilitar, ai você cria o metodo javascript e chama apartir do evento que quiser usando a função, sc_ajax_javascript(). Vou dar o exemplo do metodo javascript usando o id do iframe como "id_iframe_endrigo".

Código do método JS:
Código: [Selecionar]
var srcAnt, elemento;
elemento = document.getElementById('id_iframe_endrigo');
srcAnt = elemento.src;  //salva sorce anterior
elemento.src = 'about:blank'.
elemento.src = srcAnt;

PS: Tem várias formas, eu uso essa.
PS2: Por o código do iframe estar no onload sempre que carregar seu controle o iframe e recarregado.
PS3: Se quizer usar um parametro para passar um source no metodo também é interessante.

Não posso utilizar somente dessa forma pois irei mudar os parâmetros da consulta em alguns momentos.

Crie 1 parametro no metodo javascript que vai servir para passar os novos parametros.
Exemplo Método:
Código: [Selecionar]
//parametro do metodo
@p1; //parametro_metodo vai ser passado a string dos novo link e  parâmetros do src.
@p1; //extrutura do parametro = link.php?param=valor&&param=valor... etc.

//codigo metodo
var elemento;
elemento = document.getElementById('id_iframe_endrigo');
elemento.src = p1;


Chamada do método js:
Código: [Selecionar]
sc_ajax_javascript(
     'nome_do_metodo',
     array(
       '../link/link.php?parametros_get' //1o parametro do metodo.
     )
);

Pelos seus post vi que conhece o metodo sc_ajax_javascript, então creio que não terá problemas.

Att.
Eliezer Almeida
eliezeralmeidago@hotmail.com
www.infotecsoft.com.br - Modernidade e Eficiência

Endrigo

  • Intermediário
  • ***
  • Mensagens: 242
    • Email
Re:Colocar Consulta dentro de Controle
« Responder #11 Online: Agosto 29, 2013, 12:02:50 am »
Estou montando o src em tempo de execução passando os parâmetros que preciso para o método do javascript.

Ficou muito bom o meu movimento de caixa. Fantástico.
Endrigo Rodrigues
(31)3464-1020
CentOS 6 64bits + ScriptCase 8.00.0041 + PostgreSQL 9.3

Endrigo

  • Intermediário
  • ***
  • Mensagens: 242
    • Email
Re:Colocar Consulta dentro de Controle
« Responder #12 Online: Agosto 29, 2013, 12:05:02 am »
Meu método PHP:
Código: [Selecionar]
/**
 * Calcula a data inicial e final de acordo com o tipo de controle utilizado, dia ou mês
 */
$coc_id = {caixa_conta};
$dt_ini = "";
$dt_fin = "";
if ( {tipo_mov} == "D" ) {
$dt_ini = {data_mov};
$dt_fin = $dt_ini;
} else {
$dt_ini = {mes_mov};
$dia = sc_date_conv($dt_ini, "aaaa-mm-dd", "dd");
$dia -= 1;
$dt_ini = sc_date($dt_ini, "aaaa-mm-dd", "-", $dia, 0, 0);
$dt_fin = sc_date($dt_ini, "aaaa-mm-dd", "+", 0, 1, 0);
$dt_fin = sc_date($dt_fin, "aaaa-mm-dd", "-", 1, 0, 0);
}

/**
 * Chama a função JavaScript para atualizar o iframe da consulta após a função AJAX
 */
$js_func   = 'jsCarregaConsulta';
$js_pars = array($coc_id, $dt_ini, $dt_fin);

sc_ajax_javascript($js_func, $js_pars);

Meu método JavaScript:
Código: [Selecionar]
var srcAnt, elemento;
elemento = document.getElementById('iframe_mov_caixa');
elemento.src = "../cad_movimento_caixa_lancamentos/cad_movimento_caixa_lancamentos.php?coc_id=" + coc_id + "&&lan_data_ini='" + dt_ini + "'&&lan_data_fin='" + dt_fin + "'";
Endrigo Rodrigues
(31)3464-1020
CentOS 6 64bits + ScriptCase 8.00.0041 + PostgreSQL 9.3

Endrigo

  • Intermediário
  • ***
  • Mensagens: 242
    • Email
Re:Colocar Consulta dentro de Controle
« Responder #13 Online: Agosto 29, 2013, 12:11:04 am »
E para recarregar o iframe é só mandar executar o comando novamente?

Tem diferentes formas de fazer, eu gosto de usar o Javascript, tiro o src do iframe e coloco novamente, para isso é preciso colocar um id no iframe para facilitar, ai você cria o metodo javascript e chama apartir do evento que quiser usando a função, sc_ajax_javascript(). Vou dar o exemplo do metodo javascript usando o id do iframe como "id_iframe_endrigo".

Código do método JS:
Código: [Selecionar]
var srcAnt, elemento;
elemento = document.getElementById('id_iframe_endrigo');
srcAnt = elemento.src;  //salva sorce anterior
elemento.src = 'about:blank'.
elemento.src = srcAnt;

PS: Tem várias formas, eu uso essa.
PS2: Por o código do iframe estar no onload sempre que carregar seu controle o iframe e recarregado.
PS3: Se quizer usar um parametro para passar um source no metodo também é interessante.

Não posso utilizar somente dessa forma pois irei mudar os parâmetros da consulta em alguns momentos.

Crie 1 parametro no metodo javascript que vai servir para passar os novos parametros.
Exemplo Método:
Código: [Selecionar]
//parametro do metodo
@p1; //parametro_metodo vai ser passado a string dos novo link e  parâmetros do src.
@p1; //extrutura do parametro = link.php?param=valor&&param=valor... etc.

//codigo metodo
var elemento;
elemento = document.getElementById('id_iframe_endrigo');
elemento.src = p1;


Chamada do método js:
Código: [Selecionar]
sc_ajax_javascript(
     'nome_do_metodo',
     array(
       '../link/link.php?parametros_get' //1o parametro do metodo.
     )
);

Pelos seus post vi que conhece o metodo sc_ajax_javascript, então creio que não terá problemas.

Fiz praticamente da maneira que você explicou Almeida. Valeu mesmo, ficou muito bom, graças a sua ajuda.
Endrigo Rodrigues
(31)3464-1020
CentOS 6 64bits + ScriptCase 8.00.0041 + PostgreSQL 9.3

Endrigo

  • Intermediário
  • ***
  • Mensagens: 242
    • Email
Re:Colocar Consulta dentro de Controle
« Responder #14 Online: Agosto 29, 2013, 12:12:16 am »
Agora estou vendo que realmente não tem limites para o que eu posso fazer com o ScriptCase e PHP + JavaScript. (Quero ver na hora que eu chegar na NFS-e para certificado A3. rsrs)
Endrigo Rodrigues
(31)3464-1020
CentOS 6 64bits + ScriptCase 8.00.0041 + PostgreSQL 9.3