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

Jean Matos

  • Expert
  • *****
  • Mensagens: 956
    • 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 »
Sc - 6.xxx , 7.xxx e V8
Windows Server 2008 Enterpriser 64 bits
SqlServer 2008 Express 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: 2232
    • Email
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: 956
    • 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..
Sc - 6.xxx , 7.xxx e V8
Windows Server 2008 Enterpriser 64 bits
SqlServer 2008 Express 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: 2232
    • Email
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: 956
    • 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
Sc - 6.xxx , 7.xxx e V8
Windows Server 2008 Enterpriser 64 bits
SqlServer 2008 Express 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: 956
    • 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 ?
Sc - 6.xxx , 7.xxx e V8
Windows Server 2008 Enterpriser 64 bits
SqlServer 2008 Express 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: 6264
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/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: 956
    • 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.
Sc - 6.xxx , 7.xxx e V8
Windows Server 2008 Enterpriser 64 bits
SqlServer 2008 Express 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: 956
    • 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 ?
Sc - 6.xxx , 7.xxx e V8
Windows Server 2008 Enterpriser 64 bits
SqlServer 2008 Express 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: 956
    • 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.
Sc - 6.xxx , 7.xxx e V8
Windows Server 2008 Enterpriser 64 bits
SqlServer 2008 Express 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: 956
    • 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
Sc - 6.xxx , 7.xxx e V8
Windows Server 2008 Enterpriser 64 bits
SqlServer 2008 Express 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: 941
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