Ir ao conteúdo
  • Cadastre-se

remazela

Membro Pleno
  • Posts

    22
  • Cadastrado em

  • Última visita

Reputação

1
  1. Caros amigos saudações... Estou com um pequeno problema com o Notebook novo que comprei. Os novos note não vem como fazendo parte o LEITOR DE DVD e CD nos note, ou seja, são os chamados SLIM. Bom, adquiri um Leitor de DVD e CD externo, após conectar no NOTEBOOK, não apareceu nada sobre instalação/reconhecimento do aparelho. Como faço para que o Windows possa reconhecer e mostrar no Meu Computador a unidade de Leitor DVD / CD externo ? Grato, Cesar
  2. Caros amigos saudações... gostaria de tirar uma dúvida com os amigos refente a nova versão do MySQL Workbench 8.0.16. após instalar o Workbench acaba interferindo no funcionamento do XAMPP (principalmente no Mysql) e para desisntalá-lo somente formatando a máquina. alguém poderia me ajudar como faço para após instalar a versão atual do Workbench, não interferir no funcionamento do XAMPP. Grato, Cesar
  3. Amigos, Adquiri um novo notebook da marca Positivo, na verdade comprei hoje. Após iniciar o note, apareceu esses link ao lado. Gostaria de saber se tem como tirar isso.
  4. Caros amigos Saudações... Por favor, alguém sabe me ajudar como faço para tirar as propaganda que aparece na área de trabalho do windows. Aparece na lateral direita da área de trabalho. Anexei a imagem para os amigos entender. Grato, Renato
  5. Caro amigo Lucas Cria um arquivo apenas de conexão desta forma: <?php //Arquivo config.php //DB configuração Constants define('_HOST_NAME_', 'localhost'); define('_USER_NAME_', 'root'); define('_DB_PASSWORD', ''); define('_DATABASE_NAME_', 'nomeBancoDados'); //PDO Conexão com o Banco de Dados try { $conexao = new PDO('mysql:host='._HOST_NAME_.';dbname='._DATABASE_NAME_, _USER_NAME_, _DB_PASSWORD); $conexao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $error_conecta) { echo 'ERROR: ' . $error_conecta->getMessage(); } ?> Depois no seu arquivo que for usar para INSERIR, faz desta forma: <?php //Chama a pasta de Conexão include"Conectar/config.php"; if(isset($_POST['executar']) && $_POST['executar'] == 'Gravar'){ $cotaQtde = strip_tags(trim($_POST['respQtde'])); $cotaVlr = strip_tags(trim($_POST['respValor'])); $sql_pr = 'INSERT INTO cotaResp (cotaQtde, cotaVlr) '; $sql_pr .= 'VALUES (:cotaQtde, :cotaVlr)'; try{ $query_pr = $conecta->prepare($sql_pr); $query_pr->bindValue(':cotaQtde',$cotaQtde,PDO::PARAM_STR); $query_pr->bindValue(':cotaVlr',$cotaVlr,PDO::PARAM_STR); $query_pr->execute(); echo '<div class="comunicado">Produto Cadastrado com Sucesso!</div><!--aviso-->'; //Redirecionando para Caixa de Enrada do Cliente echo '<meta http-equiv="refresh" content="2, URL=painel.php?exe=cadastro/cot_itens&cotaNum='.$cotaNum.'&clieId='.$clieId.'" />'; } catch(PDOexception $error_novoPr) { echo 'Erro ao Cadastrar o Produto '.$error_novoPr->getMessage(); } } //Fim do IF ?> Espero ter ajudado e esclarecido. Renato
  6. Caros amigos Recorro ajuda dos amigos referente a um erro que não consigo entender. Tenho 6 Tabelas distintas que preciso buscar informações, são elas: Cliente, Produto, Fornecedores , Cotação, CotaçãoItens e CotaçãoRespostas. O problema ocorre qdo coloco GROUP BY, trás a resposta do fornecedor, mas repete para os fornecedores diferente sempre a mesma: quantidade, valor unitário e total. Abaixo a imagem da tela como exemplo para entender. Quando mostra na tela, mostra conforme abaixo: 3 – Digity Ltda CÓDIGO NOME 3.3 MATERIAL DE ESCRITÓRIO 101 - CADERNO UNIVERSITÁRIO 1-MAT 2 - Airin Medical Qtde..: 5 Valor.: 5,50 Total.: 27,50 3 - QuantMed Medicamentos e Mat. Hosp. Ltda Qtde..: 5 Valor.: 6.00 Total.: 30.00 1 - ABC Med Qtde..: 5 Valor.: 7.00 Total.: 35.00 131 - RÉGUA 30CM - ACRÍLICA 2 - Airin Medical Qtde..: 5 Valor.: 5,50 Total.: 27,50 3 - QuantMed Medicamentos e Mat. Hosp. Ltda Qtde..: 5 Valor.: 6.00 Total.: 30.00 1 - ABC Med Qtde..: 5 Valor.: 7.00 Total.: 35.00 140 - CANETA BIC - AZUL 2 - Airin Medical Qtde..: 5 Valor.: 5,50 Total.: 27,50 3 - QuantMed Medicamentos e Mat. Hosp. Ltda Qtde..: 5 Valor.: 6.00 Total.: 30.00 1 - ABC Med Qtde..: 5 Valor.: 7.00 Total.: 35.00 150 - ESTILETE MÉDIO 2 - Airin Medical Qtde..: 5 Valor.: 5,50 Total.: 27,50 3 - QuantMed Medicamentos e Mat. Hosp. Ltda Qtde..: 5 Valor.: 6.00 Total.: 30.00 1 - ABC Med Qtde..: 5 Valor.: 7.00 Total.: 35.00 Como podem observar, repetiu as mesmas quantidades, valor unitários e Totais para os fornecedores diferente. Abaixo o código fonte que estou usando: <?php function mostraResposta(){ include"Connections/config.php"; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT cotacao.cotaNumero, cotacao.cotaTitulo, clientes.clienteId, clientes.nome FROM clientes INNER JOIN cotacao ON cotacao.cotaNumero = '$cotaNum' Where clientes.clienteId = '$cliente' "; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $clie = null; if($num > 0) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); if($clie != $clienteId) { if(!is_null($clie)) { echo "</table>"; } // Fechando a tabela da ultima categoria impressa antes // de abrir a nova echo " <br/><br/>"; echo "<h1>{$clienteId} - {$nome}</h1>"; echo "<table>"; echo " <tr>"; echo " <th>CÓDIGO</th>"; echo " <th>NOME</th>"; echo " </tr>"; $clie = $clienteId; } //Fecha IF echo " <tr>"; echo " <td><div class='cod-produto'>{$cotaNumero}</div></td>"; echo " <td><div class='nome-produto'>{$cotaTitulo}</div></td>"; echo " </tr>"; } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço } //Fecha If $num } ?> <?php function mostraRespostaItens(){ include"Connections/config.php"; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT cotacaoItens.cotaNumero, cotacaoItens.codProdClie, cotacaoItens.clienteId, produto.clienteId, produto.codProdClie, produto.produtoDescr FROM produto INNER JOIN cotacaoItens ON cotacaoItens.codProdClie = produto.codProdClie Where cotacaoItens.clienteId = '$cliente' AND cotacaoItens.clienteId = produto.clienteId "; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $prod = null; if($num > 0) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); if($prod != $codProdClie) { if(!is_null($prod)) { echo "</table>"; } // Fechando a tabela do último Produto impresso antes de abrir a nova echo " <br/>"; echo "<h2>{$codProdClie} - {$produtoDescr}</h2>"; echo "<table border='0' cellpadding='3' cellspacing='2' >"; mostraRespFornec(); } } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço } } ?> <?php function mostraRespFornec(){ include"Connections/config.php"; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT cotacaoResposta.cotaRespId, cotacaoResposta.cotaNumero, cotacaoResposta.codProdClie, cotacaoResposta.cotaOferta, cotacaoResposta.fornecedorId, cotacaoResposta.cotaRespQtde, cotacaoResposta.cotaRespVlr, cotacaoResposta.cotaRespTotal, fornecedores.fornecedorId, fornecedores.nome, produto.produtoId, produto.codProdClie, produto.produtoDescr, produto.clienteId FROM produto INNER JOIN (cotacaoResposta INNER JOIN fornecedores ON cotacaoResposta.fornecedorId = fornecedores.fornecedorId) ON cotacaoResposta.codProdClie = produto.codProdClie WHERE cotacaoResposta.cotaNumero = '$cotaNum' AND cotacaoResposta.cotaOferta = '2' GROUP BY fornecedores.fornecedorId ORDER BY cotacaoResposta.cotaRespVlr ASC"; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $prod = null; if($num > 0) { while($row = $stmt->fetch($prod)){ extract($row); if($prod != $fornecedorId) { if(!is_null($prod)) { echo "</table>"; } echo " <tr style='color:#1C1C71; font-variant:small-caps; font:16px Arial, Helvetica, sans-serif; font-weight: bold;'>"; echo " <td><div class='fornec'>{$fornecedorId} - {$nome}</div></td>"; echo " </tr>"; echo " <tr>"; echo " <td><div class='no'>Qtde..: {$cotaRespQtde}</div></td>"; echo " </tr>"; echo " <tr>"; echo " <td><div class='nme-produto'>Valor.: {$cotaRespVlr}</div></td>"; echo " </tr>"; echo " <tr>"; echo " <td><div class='nme-produto'>Total.: {$cotaRespTotal}</div></td>"; echo " </tr>"; echo " <td>&nbsp;</td>"; } } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço } } ?> Como faço para corrigir o suposto erro ? Grato, Renato
  7. Caros amigos Por favor, me perdoa por recorrer ao auxílio dos amigos, mas infelizmente estou montando uma Lista(Resposta) na Tela que está me deixando LOUCO. Preciso mostrar o seguinte: PRODUTO X resposta 3 - vlr: R$ 0,01 resposta 2 - vlr: R$ 0,02 resposta 1 - vlr: R$ 0,03 PRODUTO Y resposta 1 - vlr: R$ 0,10 resposta 3 - vlr: R$ 0,30 resposta 2 - vlr: R$ 0,50 PRODUTO Z resposta 2 - vlr: R$ 0,15 resposta 1 - vlr: R$ 0,30 resposta 3 - vlr: R$ 0,40 Fiz várias tentativas e cheguei a um suposto resultado +/- favorável. Usei a opção de GROUP BY, agrupou todos os fornecedores, mas infelizmente trás na tela os mesmo valores e quantidade. O GROUP BY, trás assim: PRODUTO X resposta 1 - vlr: R$ 0,01 resposta 2 - vlr: R$ 0,02 resposta 3 - vlr: R$ 0,03 PRODUTO Y resposta 1 - vlr: R$ 0,01 resposta 2 - vlr: R$ 0,02 resposta 3 - vlr: R$ 0,03 PRODUTO Z resposta 1 - vlr: R$ 0,01 resposta 2 - vlr: R$ 0,02 resposta 3 - vlr: R$ 0,03 Obs.: cada resposta tem quantidade e valores distintos. Abaixo o código que estou utilizando: //Aqui faço o cabeçalho do Titulo //códigoEmpresa - descriçãoEmpresa <?php function mostraResposta(){ include"Connections/config.php"; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT t.cotaId, t.cotaNumero, t.cotaTitulo, t.cotaStatus, t.clienteId, c.clienteId, c.nome FROM cotacao t, clientes c WHERE c.clienteId = '$cliente' AND t.clienteId = '$cliente' AND t.cotaNumero = '$cotaNum' ORDER BY t.clienteId, t.cotaTitulo ASC"; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $clie = null; if($num > 0) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); if($clie != $clienteId) { if(!is_null($clie)) { echo "</table>"; } // Fechando a tabela da ultima categoria impressa antes // de abrir a nova echo " <br/><br/>"; echo "<h1>{$clienteId} - {$nome}</h1>"; echo "<table>"; echo " <tr>"; echo " <th>CÓDIGO</th>"; echo " <th>NOME</th>"; echo " </tr>"; $clie = $clienteId; } //Fecha IF echo " <tr>"; echo " <td><div class='cod-produto'>{$cotaNumero}</div></td>"; echo " <td><div class='nome-produto'>{$cotaTitulo}</div></td>"; echo " </tr>"; } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço } //Fecha If $num } ?> //Aqui trago todos os produtos que a empresa quiz cotar //códigoProduto - descriçãoProduto <?php function mostraRespostaItens(){ include"Connections/config.php"; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT i.cotaItensId, i.cotaNumImport, i.codProdClie, i.cotaQtde, i.cotaComenta, i.cotaVerTxt, i.cotaId, i.clienteId, i.cotaNumero, p.produtoId, p.codProdClie, p.produtoDescr, p.clienteId FROM cotacaoItens i, produto p WHERE i.codProdClie = p.codProdClie AND i.cotaNumero = '$cotaNum' AND i.clienteId = p.clienteId ORDER BY i.cotaNumero ASC"; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $prod = null; if($num > 0) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); if($prod != $codProdClie) { if(!is_null($prod)) { echo "</table>"; } // Fechando a tabela do último Produto impresso antes de abrir a nova echo " <br/>"; echo "<h2>{$codProdClie} - {$produtoDescr}</h2>"; echo "<table border='0' cellpadding='3' cellspacing='2' >"; //Chamo as respostas dos fornecedores mostraRespFornec(); } } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço } } ?> //Aqui trago todos os fornecedores que responderam, com seus valores e quantidade //qdo agrupo os fornecedores, traz sempre os mesmo valores e quantidade <?php function mostraRespFornec(){ include"Connections/config.php"; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT r.cotaRespId, r.cotaItensId, r.cotaNumero, r.codProdClie, r.cotaOferta, r.fornecedorId, r.cotaRespQtde, r.cotaRespVlr, r.cotaRespTotal, f.fornecedorId, f.nome, i.cotaItensId, i.cotaNumero, i.codProdClie FROM cotacaoResposta r, fornecedores f, cotacaoItens i WHERE i.codProdClie = r.codProdClie AND r.cotaOferta = '2' AND r.fornecedorId = f.fornecedorId GROUP BY f.fornecedorId ORDER BY r.cotaRespVlr ASC"; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $prod = null; if($num > 0) { while($row = $stmt->fetch($prod)){ //while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); if($prod != $fornecedorId) { if(!is_null($prod)) { echo "</table>"; } echo " <tr style='color:#1C1C71; font-variant:small-caps; font:16px Arial, Helvetica, sans-serif; font-weight: bold;'>"; echo " <td><div class='fornec'>{$fornecedorId} - {$nome}</div></td>"; echo " </tr>"; echo " <tr>"; echo " <td><div class='no'>Qtde..: {$cotaRespQtde}</div></td>"; echo " </tr>"; echo " <tr>"; echo " <td><div class='nme-produto'>Valor.: {$cotaRespVlr}</div></td>"; echo " </tr>"; echo " <tr>"; echo " <td><div class='nme-produto'>Total.: {$cotaRespTotal}</div></td>"; echo " </tr>"; echo " <td>.</td>"; } } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço } } ?> Por favor, me ajuda. Grato, Renato
  8. Caro amigo Grato por sua ajuda, apenas uma dúvida: Como preciso de informar DATA e HORA, o input ficaria assim no caso do datetime: <input type="datetime" id="dtHrs" name="dtHrs" /> seria isso ? Grato, Renato
  9. Caro amigo Por favor, me perdoa por perturbar com minha dúvida, mas infelizmente não deu certo. a minha tabela está assim: CREATE TABLE IF NOT EXISTS `cotacao` ( `cotaId` int(11) NOT NULL AUTO_INCREMENT, `cotaNumero` varchar(255) DEFAULT NULL, `cotaDtInicio` date NULL DEFAULT NULL, `cotaHrsInicio` time NULL DEFAULT NULL, `cotaDtFim` date NULL DEFAULT NULL, `cotaHrsFim` time NULL DEFAULT NULL, `cotaTitulo` varchar(255) DEFAULT NULL, `cotaObserva` varchar(255) DEFAULT NULL, `cotaStatus` int(1) NOT NULL, `clienteId` varchar(11) DEFAULT NULL, `desc_categ` varchar(255) DEFAULT NULL, `desc_pgto` varchar(255) DEFAULT NULL, PRIMARY KEY (`cotaId`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; Escrevi esse código, mas consigo alterar se digitar o código num input text, o que não quero. //Alterar o Status da Cotação para Analisar cotaId = $_POST['cotaId']; $cotaStatus = '2'; $sql_produto = 'UPDATE cotacao SET cotaStatus = :cotaStatus WHERE cotaId = :cotaId'; try{ $query_produto = $conecta->prepare($sql_produto); $query_produto->bindValue(':cotaStatus',$cotaStatus,PDO::PARAM_STR); $query_produto->bindValue(':cotaId',$cotaId,PDO::PARAM_STR); $query_produto->execute(); echo '<br/>'; echo '<div class="comunicado">Cotação está em Processo de Análise!</div><!--aviso-->'; } catch(PDOexception $error_novoProduto) { echo 'Erro ao Editar o Produto '.$error_novoProduto->getMessage(); } Preciso ler linha a linha da tabela e o que tiver com a DATA e HORA vencida, o sistema muda o STATUS para 2(análise). Estou usando PDO para minha SELECT, INSERT, UPDATE e DELETE. Infelizmente, não consigo escrever esse comando que lê a tabela e altera. Por favor, se puder me ajudar ficarei muito grato. Atenciosamente, Renato
  10. Caros amigos Por favor, me perdoa por minha dúvida. Preciso criar uma função que após logar no sistema, o PHP faz uma busca no Banco de Dados. Seria o seguinte: => tudo que for maior que a DATA e HORA atual o STATUS fica em espera. Como faço essa busca e alteração no Banco, sem ter que informar o ID ? Grato, Renato
  11. Caro amigo DiF Conforme sua orientação LI o manual, entendi a lógica, mas infelizmente não tive sucesso em adaptar ao meu código acima. Por favor, poderia me ajudar ? Grato,
  12. Caros amigos Desculpa recorrer a ajuda dos amigos, mas estou com uma dúvida. Gostaria de Impedir a Importação de Arquivo .TXT em duplicidade. Por exemplo, tenho o seguinte arquivo .TXT: 1005;2015;1000 1005;3017;1000 1005;4019;1000 O campos seriam: 1005 o número do arquivo gerado pelo sistema 2015 o número do produto 1000 a quantidade requerida Tenho o seguinte código que uso para realizar a Importação do .TXT (funciona corretamente). <?php //Variável Passada da Página Anterior $cotaIdGet = isset($_GET['cotaId']) ? $_GET['cotaId'] : false; $cotaId = isset($_POST['cotaId']) ? $_POST['cotaId'] : $cotaIdGet; $cotaNumeroGet = isset($_GET['cotaNumero']) ? $_GET['cotaNumero'] : false; $cotaNumero = isset($_POST['cotaNumero']) ? $_POST['cotaNumero'] : $cotaNumeroGet; //Função para importar Arquivo function Inserir($itens, Pdo $pdo){ $sts = $pdo->prepare("INSERT INTO cotacaoItens(cotaNumImport, codProdClie, cotaQtde, cotaId, clienteId, cotaNumero) VALUES(?,?,?,?,?,?);"); $sts->bindValue(1, $itens[0], PDO::PARAM_STR); $sts->bindValue(2, $itens[1], PDO::PARAM_STR); $sts->bindValue(3, $itens[2], PDO::PARAM_STR); $sts->bindValue(4, $itens[3], PDO::PARAM_STR); $sts->bindValue(5, $itens[4], PDO::PARAM_STR); $sts->bindValue(6, $itens[5], PDO::PARAM_STR); $sts->execute(); $sts->closeCursor(); $sts = NULL; } if (!empty($_FILES['arquivo'])) { $Pdo = new PDO("mysql:host=localhost; dbname=siscota", "root", ""); $file = fopen($_FILES['arquivo']['tmp_name'], 'r'); while (!feof($file)){ $linha = fgets($file); $itens = explode(';', $linha); $itens[] = $cotaId; $itens[] = $clienteId; $itens[] = $cotaNumero; Inserir($itens, $Pdo); } } ?> <form id="cotaItens" name="cotaItens" action="" method="post" enctype="multipart/form-data"> <span>Adicionar os Itens da Cotação:</span> <p class="p_esp"> <label> <h2>&nbsp;&nbsp;&bull; importar somente arquivo .TXT &nbsp;&nbsp;&raquo; <input type="file" name="arquivo" id="arquivo" /> <input type="submit" name="confirmar" value="Confirmar" /> </h2> </label> </p> <input type="hidden" name="cotaId" value="<?php echo $cotaId;?>" /> <input type="hidden" name="cotaNumero" value="<?php echo $cotaNumero;?>" /> </form> COMO FAÇO PARA NÃO DEIXAR IMPORTAR NOVAMENTE O ARQUIVO .TXT ? Grato, Renato
  13. Caros amigos Peço ajuda dos amigos em algo que para muito é simples. Como faço para quando passar o mouse em cima da linha de uma DataTable, a linha fica em evidência. Tenho uma lista de produto, quando passar o mouse ou selecionar uma linha, gostaria que ficasse destacada. Grato a todos. Atenciosamente, Renato
  14. Prezados Amigos Por favor, me perdoa por recorrer ao seu auxílio. Estou montando Relatório usando o JasperReports que está atualmente na Versão 6.3.0, está me dando o seguinte erro abaixo, que não consigo solucionar, mesmo após várias tentativas para solucionar o problema Quando chamo o relatório através do Sistema (Imprimir), causa um erro que não consigo entender. Erro após gerar Relatório: Hibernate: select this_.codigo as codigo1_7_1_, this_.descricao as descrica2_7_1_, this_.fabricante_codigo as fabrican5_7_1_, this_.preco as preco3_7_1_, this_.quantidade as quantida4_7_1_, fabricante2_.codigo as codigo1_3_0_, fabricante2_.descricao as descrica2_3_0_ from Produto this_ inner join Fabricante fabricante2_ on this_.fabricante_codigo=fabricante2_.codigo jul 07, 2016 12:40:49 PM com.sun.faces.application.view.ViewScopeManager <init> INFORMAÇÕES: CDI @ViewScoped bean functionality unavailable net.sf.jasperreports.engine.JRException: Invalid page index range: 0 - -1 of 0. at net.sf.jasperreports.engine.print.JRPrinterAWT.printPages(JRPrinterAWT.java:141) at net.sf.jasperreports.engine.JasperPrintManager.print(JasperPrintManager.java:242) at net.sf.jasperreports.engine.JasperPrintManager.print(JasperPrintManager.java:129) at net.sf.jasperreports.engine.JasperPrintManager.printReport(JasperPrintManager.java:326) at br.com.renato.farmaciaweb.bean.ProdutoBean.imprimir(ProdutoBean.java:203) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.el.parser.AstValue.invoke(AstValue.java:247) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267) at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:149) at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88) at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:814) at javax.faces.component.UICommand.broadcast(UICommand.java:300) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) Código fonte do HibernateUtil.java package br.com.renato.farmaciaweb.util; import java.sql.Connection; import java.sql.SQLException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; import org.hibernate.jdbc.ReturningWork; import org.hibernate.service.ServiceRegistry; public class HibernateUtil { private static SessionFactory fabricaDeSessoes = criarFabricaDeSessoes(); public static SessionFactory getFabricaDeSessoes() { return fabricaDeSessoes; } //Converter Sessão em Conexão public static Connection getConexao(){ Session sessao = fabricaDeSessoes.openSession(); Connection conexao = sessao.doReturningWork(new ReturningWork<Connection>() { @Override public Connection execute(Connection conn) throws SQLException { return conn; } }); return conexao; } private static SessionFactory criarFabricaDeSessoes() { try { Configuration configuração = new Configuration().configure(); ServiceRegistry registro = new StandardServiceRegistryBuilder() .applySettings(configuração.getProperties()) .build(); SessionFactory fabrica = configuração.buildSessionFactory(registro); return fabrica; } catch (Throwable ex) { System.err.println("A fábrica de sessões não pode ser criada." + ex); throw new ExceptionInInitializerError(ex); } } } Código fonte do ProdutoBean.java package br.com.renato.farmaciaweb.bean; import java.io.IOException; import java.io.Serializable; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; import java.sql.Connection; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; import javax.faces.event.ActionEvent; import org.omnifaces.util.Faces; import org.omnifaces.util.Messages; import org.primefaces.event.FileUploadEvent; import org.primefaces.model.UploadedFile; import br.com.renato.farmaciaweb.dao.FabricanteDAO; import br.com.renato.farmaciaweb.dao.ProdutoDAO; import br.com.renato.farmaciaweb.domain.Fabricante; import br.com.renato.farmaciaweb.domain.Produto; import br.com.renato.farmaciaweb.util.HibernateUtil; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperPrintManager; @SuppressWarnings("serial") @ManagedBean @ViewScoped public class ProdutoBean implements Serializable { private Produto produto; private List<Produto> produtos; private List<Fabricante> fabricantes; public Produto getProduto() { return produto; } public void setProduto(Produto produto) { this.produto = produto; } public List<Produto> getProdutos() { return produtos; } public void setProdutos(List<Produto> produtos) { this.produtos = produtos; } public List<Fabricante> getFabricantes() { return fabricantes; } public void setFabricantes(List<Fabricante> fabricantes) { this.fabricantes = fabricantes; } @PostConstruct public void listar() { try { ProdutoDAO produtoDAO = new ProdutoDAO(); produtos = produtoDAO.listar(); } catch (RuntimeException erro) { Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); erro.printStackTrace(); } } public void novo() { try { produto = new Produto(); FabricanteDAO fabricanteDAO = new FabricanteDAO(); fabricantes = fabricanteDAO.listar("descricao"); } catch (RuntimeException erro) { Messages.addFlashGlobalError("Ocorreu um erro ao tentar gerar um novo produto"); erro.printStackTrace(); } } public void editar(ActionEvent evento) { try { produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); FabricanteDAO fabricanteDAO = new FabricanteDAO(); fabricantes = fabricanteDAO.listar("descricao"); if(produto.getCaminho() == null || produto.getCaminho().isEmpty() ){ produto.setCaminho("C:/Desenvolvimento/FarmaciaWeb/Uploads/branco.png"); return; } else { //Caminho das imagens p/ editar produto.setCaminho("C:/Desenvolvimento/FarmaciaWeb/Uploads/" + produto.getCodigo() + ".png"); } } catch (RuntimeException erro) { Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar um produto"); erro.printStackTrace(); } } public void salvar() { try { if (produto.getCaminho() == null) { Messages.addGlobalError("O campo foto é obrigatório"); return; } ProdutoDAO produtoDAO = new ProdutoDAO(); Produto produtoRetorno = produtoDAO.merge(produto); // Criando referência Path origem = Paths.get(produto.getCaminho()); // Criando destino Path destino = Paths.get("C:/Desenvolvimento/FarmaciaWeb/Uploads/" + produtoRetorno.getCodigo() + ".png"); //Fazendo a cópia para pasta de destino Files.copy(origem, destino, StandardCopyOption.REPLACE_EXISTING); produto = new Produto(); FabricanteDAO fabricanteDAO = new FabricanteDAO(); fabricantes = fabricanteDAO.listar("descricao"); produtos = produtoDAO.listar(); Messages.addGlobalInfo("Produto salvo com sucesso"); } catch (RuntimeException | IOException erro) { Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar o produto"); erro.printStackTrace(); } } public void excluir(ActionEvent evento) { try { produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); ProdutoDAO produtoDAO = new ProdutoDAO(); produtoDAO.excluir(produto); //Excluir Imagem Upload Path arquivo = Paths.get("C:/Desenvolvimento/FarmaciaWeb/Uploads/" + produto.getCodigo() + ".png"); Files.deleteIfExists(arquivo); produtos = produtoDAO.listar(); Messages.addGlobalInfo("Produto removido com sucesso"); } catch (RuntimeException | IOException erro) { Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o produto"); erro.printStackTrace(); } } public void upload(FileUploadEvent evento) { try { UploadedFile arquivoUpload = evento.getFile(); // Arquivo temporário dentro sistema operacional Path arquivoTemp = Files.createTempFile(null, null); Files.copy(arquivoUpload.getInputstream(), arquivoTemp, StandardCopyOption.REPLACE_EXISTING); // Origem do caminho temporário produto.setCaminho(arquivoTemp.toString()); Messages.addGlobalInfo("Upload Efetuado com Sucesso"); } catch (IOException erro) { Messages.addFlashGlobalError("Ocorreu um erro ao tentar fazer Upload."); erro.printStackTrace(); } } public void imprimir() { try { String caminho = Faces.getRealPath("/reports/produtos.jasper"); Map<String, Object> parametros = new HashMap<>(); Connection conexao = HibernateUtil.getConexao(); JasperPrint relatorio = JasperFillManager.fillReport(caminho, parametros, conexao); JasperPrintManager.printReport(relatorio, true); //Linha n.203 que apresenta o erro } catch (JRException erro) { Messages.addGlobalError("Ocorreu um erro ao tentar gerar o relatório"); erro.printStackTrace(); } } } Agradeço humildemente a todos. Atenciosamente, Renato
  15. Caros amigos. Por favor uma ajudinha.Estou escrevendo um sistema simples e estou usando o RESTful. Infelizmente não estou conseguindo fazer a Edição, peço humildemente ajuda aos amigos. Abaixo os Código Fonte. FabricanteService.java package br.com.renato.farmaciaweb.service; import java.util.List; import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import com.google.gson.Gson; import br.com.renato.farmaciaweb.dao.FabricanteDAO; import br.com.renato.farmaciaweb.domain.Fabricante; @Path("fabricante") public class FabricanteService { // http://localhost:8080/FarmaciaWeb/rest/fabricante //@GET = serve para pesquisa de dados @GET public String listar(){ FabricanteDAO fabricanteDAO = new FabricanteDAO(); List<Fabricante> fabricantes = fabricanteDAO.listar("descricao"); Gson gson = new Gson(); String json = gson.toJson(fabricantes); return json; } // http://localhost:8080/FarmaciaWeb/rest/fabricante/{codigo} // http://localhost:8080/FarmaciaWeb/rest/fabricante/10 @GET @Path("{codigo}") public String buscar(@PathParam("codigo") Long codigo){ FabricanteDAO fabricanteDAO = new FabricanteDAO(); Fabricante fabricante = fabricanteDAO.buscar(codigo); Gson gson = new Gson(); String json = gson.toJson(fabricante); return json; } // http://localhost:8080/FarmaciaWeb/fabricante //@POST = serve para incluir dados @POST public String salvar(String json) { Gson gson = new Gson(); Fabricante fabricante = gson.fromJson(json, Fabricante.class); FabricanteDAO fabricanteDAO = new FabricanteDAO(); fabricanteDAO.salvar(fabricante); String jsonSaida = gson.toJson(fabricante); return jsonSaida; } // http://localhost:8080/FarmaciaWeb/fabricante //@PUT = edita/altera dados @PUT public String editar(String json) { Gson gson = new Gson(); Fabricante fabricante = gson.fromJson(json, Fabricante.class); FabricanteDAO fabricanteDAO = new FabricanteDAO(); fabricanteDAO.editar(fabricante); String jsonSaida = gson.toJson(fabricante); return jsonSaida; } // http://localhost:8080/FarmaciaWeb/fabricante/5 @DELETE @Path("{codigo}") public String excluir(@PathParam("codigo") Long codigo){ //Cria o DAO FabricanteDAO fabricanteDAO = new FabricanteDAO(); //Busca o Fabricante passado Fabricante fabricante = fabricanteDAO.buscar(codigo); //Exclui o Fabricante fabricanteDAO.excluir(fabricante); //Retorna o Fabricante removido Gson gson = new Gson(); String saida = gson.toJson(fabricante); return saida; } } FabricanteBean.java package br.com.renato.farmaciaweb.bean; import java.io.Serializable; import java.util.Arrays; import java.util.List; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; import javax.faces.event.ActionEvent; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.Entity; import javax.ws.rs.client.WebTarget; import org.omnifaces.util.Messages; import com.google.gson.Gson; import br.com.renato.farmaciaweb.domain.Fabricante; @SuppressWarnings("serial") @ManagedBean @ViewScoped public class FabricanteBean implements Serializable { private Fabricante fabricante; private List<Fabricante> listaFabricante; public Fabricante getFabricante() { return fabricante; } public void setFabricante(Fabricante fabricante) { this.fabricante = fabricante; } public List<Fabricante> getListaFabricante() { return listaFabricante; } public void setListaFabricante(List<Fabricante> listaFabricante) { this.listaFabricante = listaFabricante; } // Parte de comandos e ações do sistema public void novo() { fabricante = new Fabricante(); } public void salvar() { try { //Cria um cliente Client cliente = ClientBuilder.newClient(); //Definir a String de Conxão com o Servidor WebTarget caminho = cliente.target("http://localhost:8080/FarmaciaWeb/rest/fabricante"); Gson gson = new Gson(); //Cria o método salvar String json = gson.toJson(fabricante); caminho.request().post(Entity.json(json)); //Estanciar cadastro fabricante = new Fabricante(); //estância o Listar json = caminho.request().get(String.class); Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); listaFabricante = Arrays.asList(vetor); Messages.addGlobalInfo("Fabricante Salvo com Sucesso."); } catch (RuntimeException ex) { Messages.addGlobalError("Ocorreu um erro ao tentar Salvar um Fabricante."); ex.printStackTrace(); } } //Método PostConstruct é um construtor @PostConstruct public void listar(){ try{ //Cria um cliente Client cliente = ClientBuilder.newClient(); //Definir a String de Conxão com o Servidor WebTarget caminho = cliente.target("http://localhost:8080/FarmaciaWeb/rest/fabricante"); //estância o Listar String json = caminho.request().get(String.class); Gson gson = new Gson(); Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); //Converte num ArrayList listaFabricante = Arrays.asList(vetor); } catch (RuntimeException ex) { Messages.addGlobalError("Ocorreu um erro ao tentar Salvar um Fabricante."); ex.printStackTrace(); } } public void excluir(ActionEvent evento){ try{ fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); //Cria um cliente Client cliente = ClientBuilder.newClient(); //Definir a String de Conxão com o Servidor WebTarget caminho = cliente.target("http://localhost:8080/FarmaciaWeb/rest/fabricante"); WebTarget caminhoExcluir = caminho.path("{codigo}").resolveTemplate("codigo", fabricante.getCodigo()); //Cria o método excluir caminhoExcluir.request().delete(); String json = caminho.request().get(String.class); //estância o Listar Gson gson = new Gson(); Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); //Converte num ArrayList listaFabricante = Arrays.asList(vetor); Messages.addGlobalInfo("Fabricante Excluído com Sucesso."); } catch (RuntimeException ex) { Messages.addGlobalError("Ocorreu um erro ao tentar Excluir um Fabricante."); ex.printStackTrace(); } } public void editar(ActionEvent evento){ try{ fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); Messages.addGlobalInfo("Fabricante Editado com Sucesso."); } catch (RuntimeException ex) { Messages.addGlobalError("Ocorreu um erro ao tentar Editar um Fabricante."); ex.printStackTrace(); } } } Humildemente agradeço a todos. Atenciosamente, Renato

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...