Atualize hoje para o Scriptcase 9 e ganhe 35% de desconto! Atualize hoje para o Scriptcase 9 e ganhe 35% de desconto! COMPRAR AGORA!

Autor Tópico: (RESOLVIDO) - Copiar Registro com RUN  (Lida 2649 vezes)

Jean Matos

  • Expert
  • *****
  • Mensagens: 985
    • Gestão de Construtoras
    • Email
(RESOLVIDO) - Copiar Registro com RUN
« Online: Fevereiro 06, 2014, 03:05:29 pm »
Prezados, nem lembro se já perguntei.
Mas preciso em uma determinada lista pegar alguns registros e enviar para um formulário mestre/detalhe...
como armazeno essa Array ?
Na minha Grid tenho vários produtos de um determinado centro de custo.. logo já tenho a informação básica do form mestre (centro de custo) e os produtos que irão para o detalhe..
HELP.. nao estou enxergando como fazer isso.
« Última modificação: Fevereiro 09, 2014, 05:09:45 pm por Jean Matos »
V8.1, V9
Windows Server 2012 Enterpriser 64 bits
SqlServer 2012 datacenter 64 bits
Sistema Integrado de Gestão de Construtoras WaveTOR - Sistema Integrado de Gestão de Construtoras
Teófilo Otoni - MG
(33)8824-2775

Kleyber

  • Expert
  • *****
  • Mensagens: 2732
Re:Copiar Registro com RUN
« Responder #1 Online: Fevereiro 06, 2014, 04:14:59 pm »
Jean,

Acho que com o botão RUN na grid você vai escolher o que precisa pra enviar... Daí é só gravar nas tabelas (mestre/detalhe).
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

Jean Matos

  • Expert
  • *****
  • Mensagens: 985
    • Gestão de Construtoras
    • Email
Re:Copiar Registro com RUN
« Responder #2 Online: Fevereiro 06, 2014, 04:23:02 pm »
Jean,

Acho que com o botão RUN na grid você vai escolher o que precisa pra enviar... Daí é só gravar nas tabelas (mestre/detalhe).
Sim.. no entanto quero entender a lógica do funcionamento..

Cenário:

Listo 100 produtos do centro de custo "Obra 01"
Desses 100 produtos escolho 30 produtos com suas respectivas quantidades.

Ao acionar o RUN Envio o codido do centro de custo "Obra 01" para o formulário Compras.
Envio simultaneamente os produtos com suas respectivas quantidade para o form Detalhe_compras.

Nem faço ideia de como o RUN transporta isso do grid para tabela..
V8.1, V9
Windows Server 2012 Enterpriser 64 bits
SqlServer 2012 datacenter 64 bits
Sistema Integrado de Gestão de Construtoras WaveTOR - Sistema Integrado de Gestão de Construtoras
Teófilo Otoni - MG
(33)8824-2775

Kleyber

  • Expert
  • *****
  • Mensagens: 2732
Re:Copiar Registro com RUN
« Responder #3 Online: Fevereiro 06, 2014, 04:39:34 pm »
Dentro de um dos métodos do botão RUN (não me lembro agora, não estou na minha máquina), você vai usar o INSERT pra mandar para as tabelas.
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

Jean Matos

  • Expert
  • *****
  • Mensagens: 985
    • Gestão de Construtoras
    • Email
Re:Copiar Registro com RUN
« Responder #4 Online: Fevereiro 06, 2014, 06:14:37 pm »
Consegui fazer um POG aqui..
estou publicando no meu canal do youtube..
http://www.youtube.com/channel/UCW64zxaiHKt3E1P_nVdH1aA
V8.1, V9
Windows Server 2012 Enterpriser 64 bits
SqlServer 2012 datacenter 64 bits
Sistema Integrado de Gestão de Construtoras WaveTOR - Sistema Integrado de Gestão de Construtoras
Teófilo Otoni - MG
(33)8824-2775

Jean Matos

  • Expert
  • *****
  • Mensagens: 985
    • Gestão de Construtoras
    • Email
Re:Copiar Registro com RUN
« Responder #5 Online: Fevereiro 07, 2014, 03:14:29 pm »
Consegui fazer um POG aqui..
estou publicando no meu canal do youtube..
http://www.youtube.com/channel/UCW64zxaiHKt3E1P_nVdH1aA

alguem aí pra dar uma dica de como melhorar isso ?
V8.1, V9
Windows Server 2012 Enterpriser 64 bits
SqlServer 2012 datacenter 64 bits
Sistema Integrado de Gestão de Construtoras WaveTOR - Sistema Integrado de Gestão de Construtoras
Teófilo Otoni - MG
(33)8824-2775

Haroldo

  • Expert
  • *****
  • Mensagens: 7074
  • Conhecimento diminui limitações.△TFA△
    • InfinitusWeb Software de Gestãol/Gestão ITIL/Consultoria Scriptcase
Re:Copiar Registro com RUN
« Responder #6 Online: Fevereiro 07, 2014, 05:18:26 pm »
Jean...

assisti seu video... quer melhorar o processo do botão run?


Conselho: Não faça inserts na onrecord,  faça tudo na onfinsh.

Como ?

OnScriptInit: //preparar variáveis

[iw]=Array(); //-> Variaveis global(Sessão: Não, Get: Não, Post:Não, Opcional: Sim, Saída).
[iw]["i"]=0;  // Iniciando meu contador de registros selecionados no select


Botão Run/OnRecord: // Executado para cada registro selecionado ao clicar no botão run.

$_i=[iw]["i"]=[iw]["i"]+1; //Mais um no contador
[iw][$_i]["valor"]={Valor}; //Guardando campos do registro selecionado
[iw][$_i]["desc"]={Descricao};
[iw][$_i]["fornec"]={id_fornecedor};
[iw][$_i]["empresa"]={empresaid};


Botão Run/OnFinish: // Executado por último:

$_values="";
IF (ISSET($_REQUEST['PHPSESSID']))   $_phpsessid=@$_REQUEST['PHPSESSID']; 
IF (!ISSET($_phpsessid)||EMPTY($_phpsessid))   $_phpsessid=session_id();  //pegando sessão do php

for ($_i = 1; $_i <= [iw]["i"]; $_i++) { // montando os values da instrução INSERT.
    $_values.="('".$_phpsessid."',".[iw][$_i]["empresa"].",".[iw][$_i]["fornec"].",".[iw][$_i]["valor"].",'".[iw][$_i]["desc"]."','P'),";
}
$_values=trim($_values,","); //removendo as virgulas externas

$_ins="INSERT INTO fin_recibo (sessao,empresa_id,clifor_id,valor,descricao,tipo) VALUES ".$_values; // inserindo todos os registros selecionados
sc_exec_sql($_ins);

sc_redir(recibo_all_pdf.php,"","_blank"); // desviando para aplicação pdf para imprimir os registros inseridos.


//aqui vc faz todo seu processo, grava o mestre, pego seu id, insere seus itens e pode até desviar direto para o form mestre detalhe.


Jean Matos

  • Expert
  • *****
  • Mensagens: 985
    • Gestão de Construtoras
    • Email
Re:Copiar Registro com RUN
« Responder #7 Online: Fevereiro 08, 2014, 09:36:14 am »
Jean...

assisti seu video... quer melhorar o processo do botão run?


Conselho: Não faça inserts na onrecord,  faça tudo na onfinsh.

Como ?

OnScriptInit: //preparar variáveis

[iw]=Array(); //-> Variaveis global(Sessão: Não, Get: Não, Post:Não, Opcional: Sim, Saída).
[iw]["i"]=0;  // Iniciando meu contador de registros selecionados no select


Botão Run/OnRecord: // Executado para cada registro selecionado ao clicar no botão run.

$_i=[iw]["i"]=[iw]["i"]+1; //Mais um no contador
[iw][$_i]["valor"]={Valor}; //Guardando campos do registro selecionado
[iw][$_i]["desc"]={Descricao};
[iw][$_i]["fornec"]={id_fornecedor};
[iw][$_i]["empresa"]={empresaid};


Botão Run/OnFinish: // Executado por último:

$_values="";
IF (ISSET($_REQUEST['PHPSESSID']))   $_phpsessid=@$_REQUEST['PHPSESSID']; 
IF (!ISSET($_phpsessid)||EMPTY($_phpsessid))   $_phpsessid=session_id();  //pegando sessão do php

for ($_i = 1; $_i <= [iw]["i"]; $_i++) { // montando os values da instrução INSERT.
    $_values.="('".$_phpsessid."',".[iw][$_i]["empresa"].",".[iw][$_i]["fornec"].",".[iw][$_i]["valor"].",'".[iw][$_i]["desc"]."','P'),";
}
$_values=trim($_values,","); //removendo as virgulas externas

$_ins="INSERT INTO fin_recibo (sessao,empresa_id,clifor_id,valor,descricao,tipo) VALUES ".$_values; // inserindo todos os registros selecionados
sc_exec_sql($_ins);

sc_redir(recibo_all_pdf.php,"","_blank"); // desviando para aplicação pdf para imprimir os registros inseridos.


//aqui vc faz todo seu processo, grava o mestre, pego seu id, insere seus itens e pode até desviar direto para o form mestre detalhe.
Ok.. farei essa implementação... desculpa a POG, mas em quase 2 anos de SC é a primeira APP que crio usando o RUN..logo não sei nada sobre ele... preciso entender a lógica do mesmo...
na implementação que propus vou ter o risco da concorrencia de usuario visto que gero primeiro a tabela filho...por isso pedi dicas de como fazer o uso correto do RUN.

Obrigado por enquanto.
V8.1, V9
Windows Server 2012 Enterpriser 64 bits
SqlServer 2012 datacenter 64 bits
Sistema Integrado de Gestão de Construtoras WaveTOR - Sistema Integrado de Gestão de Construtoras
Teófilo Otoni - MG
(33)8824-2775

Jean Matos

  • Expert
  • *****
  • Mensagens: 985
    • Gestão de Construtoras
    • Email
Re:Copiar Registro com RUN
« Responder #8 Online: Fevereiro 09, 2014, 04:07:26 pm »
está ocorrendo um erro que nao estou sabendo corrigir.

$_values="";

for ($_i = 1; $_i <= [iw]["i"]; $_i++) { // montando os values da instrução INSERT.
$_values.="('".[iw][$_i]["produto"].",".[iw][$_i]["especificacao"].",".[iw][$_i]["quantidade"].",".[iw][$_i]["quantidade"].",".$_rm.",".[iw][$_i]["unidade"]."'),";
}
$_values=trim($_values,","); //removendo as virgulas externas

$_ins="INSERT INTO tblDetalheRM (cod_compos_compon,id_descricao_componente,quantidade,dtqcomprar,idrm,codunidade) VALUES ".$_values; // inserindo todos os registros selecionados
sc_exec_sql($_ins);

Observe que os valores em Azul parecem duplicados mas nao... tenho que mandar o valor de um campo para dois campos.

está gerando o seguinte erro;

ERRO
Erro ao acessar o banco de dados
SQLState: 21S01 Error Code: 109 Message: [Microsoft][SQL Server Native Client 10.0][SQL Server]Existem mais colunas na instru‡Æo INSERT do que valores especificados na cl usula VALUES. O n£mero de valores da cl usula VALUES deve corresponder ao n£mero de colunas especificado na instru‡Æo INSERT.
INSERT INTO tblDetalheRM (cod_compos_compon,id_descricao_componente,quantidade,dtqcomprar,idrm,codunidade) VALUES ('19,TESTE,10.00,10.00,129,12')...esta retornando os valores que preciso mas ainda assim dá o erro.


OBS: a tabela de destino no banco tem varios outros campos...tenho que me referir a eles tb ?
V8.1, V9
Windows Server 2012 Enterpriser 64 bits
SqlServer 2012 datacenter 64 bits
Sistema Integrado de Gestão de Construtoras WaveTOR - Sistema Integrado de Gestão de Construtoras
Teófilo Otoni - MG
(33)8824-2775

Jean Matos

  • Expert
  • *****
  • Mensagens: 985
    • Gestão de Construtoras
    • Email
Copiar Registro com RUN
« Responder #9 Online: Fevereiro 09, 2014, 05:09:20 pm »
Corrigido.

Não observei o tipo de dado... estava esquecendo das aspas simples em tipo de dado texto.
V8.1, V9
Windows Server 2012 Enterpriser 64 bits
SqlServer 2012 datacenter 64 bits
Sistema Integrado de Gestão de Construtoras WaveTOR - Sistema Integrado de Gestão de Construtoras
Teófilo Otoni - MG
(33)8824-2775

Jean Matos

  • Expert
  • *****
  • Mensagens: 985
    • Gestão de Construtoras
    • Email
Re:(RESOLVIDO) - Copiar Registro com RUN
« Responder #10 Online: Fevereiro 12, 2014, 02:28:55 pm »
Em alguns minutos estará postado o vídeo com a melhoria .

http://www.youtube.com/channel/UCW64zxaiHKt3E1P_nVdH1aA
V8.1, V9
Windows Server 2012 Enterpriser 64 bits
SqlServer 2012 datacenter 64 bits
Sistema Integrado de Gestão de Construtoras WaveTOR - Sistema Integrado de Gestão de Construtoras
Teófilo Otoni - MG
(33)8824-2775

Celso R.

  • Expert
  • *****
  • Mensagens: 1017
Re:(RESOLVIDO) - Copiar Registro com RUN
« Responder #11 Online: Dezembro 25, 2014, 07:43:32 pm »
Nossa muito boa dia.... Parabéns a todos.
Celso R.
________________________________
SC - V 8