-
Total de ítens
150 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Élviro Cavalcanti postou
-
Felipe, notei uma melhora sim, nada absurda, mas melhorou sim.
-
Eu migrei do firebird 2.0 para o 4.0, tive que fazer algumas coisas. Segue abaixo como fiz pra rodar tranquilo. Instruções para migrar para o firebird 4.0 1 - Criar o backup em FBK ainda usando o Firebird 2.5 2 - Zipar o backup 3 - Desistalar o Firebird 2.5 4 - Reiniciar o computador 5 - Instalar o Firebird 4.0 6 - Parar o serviço firebird 4.0 e substituir o arquivo firebird.conf que está dentro da pasta de instalação do firebird 7 - Excluir dentro da pasta gds32.dll (849 kb) do windows system ou substituir ele pelo novo com tamanho 1.604kb 8 - Ativar o serviço Firebird 4.0 9 - Restaurar o backup, pode usar o Restaurar Backup.bat
-
Boa tarde, fui postar uma dúvida sobre SQL aqui no site e mostrou como usuário bloqueado, será alguma instabilidade no site ?
-
Bom dia Carlos, quando você informa que é produtor Rural, você informa a série 920 ?
-
Pelo que entendi, você está querendo pegar algo dentro de um html ou xml por exemplo, você poderia usar o seguinte: function TfrmExemplo.obterNroResultado(const aXML: XMLString; aTag, aEndTag: string): string; var _Posini, _Posfim : integer; Begin Result := ''; _Posini:= Pos(aTag,aXML); _Posfim:= Pos(aEndTag,aXML); if ( _Posini > 0 ) then begin inc(_PosIni, Length(aTag)); Result:=Copy(aXML,_Posini+1,(_PosFim-_PosIni)-1); end; end; E no botão seria esse comando pra chamar o campo desejado, seria isso ? EditResultado.Text := obterNroResultado(mmXML.Text, '<nRec','</nRec');
-
Banco de dados em nuvem para um ou mais clientes
Élviro Cavalcanti replied to Luciano Ramos Palandi's tópico in Banco de Dados
Mas explica qual a necessidade desse last, assim posso te ajudar melhor -
Banco de dados em nuvem para um ou mais clientes
Élviro Cavalcanti replied to Luciano Ramos Palandi's tópico in Banco de Dados
Bom dia Luciano, você poderia me explicar melhor essa questão do last por exemplo, pra inserir os dados seria melhor insert na tabela, ou entendi errado alguma coisa, me explica melhor então. Eu uso uma rotina que fica monitorando no caso o tempo que leva pra cada processo, vou deixar aqui pra você, segue ela abaixo: var FrmPrincipal: TFrmPrincipal; t:Cardinal; //Declaro essa variável que vai pegar o tempo. t := GetTickCount(); Aqui coloco minha rotina t := GetTickCount() - t; Label25.Caption := 'Tempo de resposta : ' + FormatFloat(',0 milisegundos', t); -
Erro com tabela sem dados
Élviro Cavalcanti replied to Élviro Cavalcanti's tópico in Object Pascal - Delphi & Lazarus
Boa tarde, tive que apagar a tabela "transportador" e criando outra com o nome "transportadora" só assim consegui que tudo voltasse ao normal, até agora fiquei sem entender, mas segue .... -
Erro com tabela sem dados
um tópico no fórum postou Élviro Cavalcanti Object Pascal - Delphi & Lazarus
Bom dia, tenho um sistema usando o Firebird 4.0 com uma tabela de TRANSPORTADOR. Quando abro o sistema e nessa tabela tem dados não existe erro, mas quando a tabela de TRANSPORTADOR não tem dados, sempre apresenta um erro "Access violation at address 0070678D in module 'Controller.exe'. Read of address 000000EC" e simplesmente não conegue fazer mais nada. Alguém já passou por esse problema e conseguiu resolver? Uso o IBX. -
Banco de dados em nuvem para um ou mais clientes
Élviro Cavalcanti replied to Luciano Ramos Palandi's tópico in Banco de Dados
No meu servidor, tenho o caminho de cada banco separado, nesse caso todos os meus clientes que usam esse serviço, ficam com o banco na internet, todos separados. -
Banco de dados em nuvem para um ou mais clientes
Élviro Cavalcanti replied to Luciano Ramos Palandi's tópico in Banco de Dados
Assim como Juliomar colocou, da mesma forma que uma conexão numa rede local -
Banco de dados em nuvem para um ou mais clientes
Élviro Cavalcanti replied to Luciano Ramos Palandi's tópico in Banco de Dados
Bom dia, eu trabalho com o servidor e um banco para cada cliente. -
Você pode usar essa rotina e tentar verificar se existe algum erro no banco, espero que lhe ajude! RecuperarFirebird.bat
-
Roteiro E Fontes Para Sngpc V2 E Farmacia Popular Do Brasil
Élviro Cavalcanti replied to j2c9m7's tópico in Classificados
Opa, peço desculpas, vou anexar a partir de agora! USNGPC.pas -
Roteiro E Fontes Para Sngpc V2 E Farmacia Popular Do Brasil
Élviro Cavalcanti replied to j2c9m7's tópico in Classificados
Segue abaixo a rotina que usava e enviava para o site, pode ser que ajude procedure TFrmSNGPC.BitBtn1Click(Sender: TObject); var i,x: Word; NCorpo,NMedicamento,NData: IXMLNode; XMLDoc: TXMLDocument; var dti,dtf:string; begin dti := formatdatetime('mm/dd/yyyy',DateEdit1.DATE); dtf := formatdatetime('mm/dd/yyyy',DateEdit2.DATE); dm.IBUsuario.close; dm.IBUsuario.SelectSQL.Clear; dm.IBUsuario.SelectSQL.Add('SELECT * FROM USUARIO'); dm.IBUsuario.open; x:=1; // x:=10; // Cria o documento //Transformando a data eddataemissao.Text := copy(DateEdit1.Text, 7, 4) + '-' + copy(DateEdit1.Text, 4, 2) + '-' + copy(DateEdit1.Text, 1, 2); eddatasaida.Text := copy(DateEdit2.Text, 7, 4) + '-' + copy(DateEdit2.Text, 4, 2) + '-' + copy(DateEdit2.Text, 1, 2); eddataemissaoSalvar.Text := copy(DateEdit1.Text, 7, 4) + '_' + copy(DateEdit1.Text, 4, 2) + '_' + copy(DateEdit1.Text, 1, 2); eddatasaidaSalvar.Text := copy(DateEdit2.Text, 7, 4) + '_' + copy(DateEdit2.Text, 4, 2) + '_' + copy(DateEdit2.Text, 1, 2); //Busca todas as entradas no período dm.IBDetVenda.close; dm.IBDetVenda.SelectSQL.Clear; dm.IBDetVenda.SelectSQL.Add('SELECT * FROM DETVENDA'); dm.IBDetVenda.SelectSQL.ADD('WHERE DATA BETWEEN ' + QuotedStr(dti) + ' and ' + QuotedStr(dtf) + ' AND REGISTROMSMANVISA IS NOT NULL'); dm.IBDetVenda.open; XMLDoc:=TXMLDocument.Create(Application); with XMLDoc do begin Active:=True; Version:='1.0'; Encoding:='ISO-8859-1'; AddChild('mensagemSNGPC','urn:sngpc-schema'); with DocumentElement do begin AddChild('cabecalho'); ChildNodes.Last.AddChild('cnpjEmissor').NodeValue:=dm.IBUsuarioCPFCNPJ.text; ChildNodes.Last.AddChild('cpfTransmissor').NodeValue:=DM.IBUsuarioCPFRESPOSANVEL.Text; //Abrir no cadastro da empresa o CPF e nome do resposável ChildNodes.Last.AddChild('dataInicio').NodeValue:= eddataemissao.text; // FormatDateTime('yyyy-mm-dd',Date); ChildNodes.Last.AddChild('dataFim').NodeValue:= eddatasaida.Text; // FormatDateTime('yyyy-mm-dd',Date); end; NCorpo:=DocumentElement.AddChild('corpo'); // *************************** MEDICAMENTO ********************************* NMedicamento:=NCorpo.AddChild('medicamentos'); // Loop das [Entradas] :: MEDICAMENTO //Busca todas as entradas no período dm.IBDetEntrada.close; dm.IBDetEntrada.SelectSQL.Clear; dm.IBDetEntrada.SelectSQL.Add('SELECT * FROM DETENTRADA'); dm.IBDetEntrada.SelectSQL.ADD('WHERE DATA BETWEEN ' + QuotedStr(dti) + ' and ' + QuotedStr(dtf) + ' AND TIPOMATERIALFARMACIA = ' + QuotedStr('MEDICAMENTO') + ' AND REGISTROMSMANVISA IS NOT NULL'); dm.IBDetEntrada.open; if dm.IBDetEntrada.IsEmpty then begin ShowMessage('Nada de entrada!'); end else begin //for i:=1 to x do dm.ibdetentrada.First; While not dm.IBDetEntrada.eof do begin NData:=NMedicamento.AddChild('entradaMedicamentos'); with NData do begin ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['numeroNotaFiscal'].NodeValue:='1'; // [tipoOperacaoNotaFiscal] // 1 Compra // 2 Transferência // 3 Venda ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:='1'; ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['dataNotaFiscal'].NodeValue:= copy(dm.IBDetEntradaDATA.Text, 7, 4) + '-' + copy(dm.IBDetEntradaDATA.Text, 4, 2) + '-' + copy(dm.IBDetEntradaDATA.Text, 1, 2);//'2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da nota fiscal (2010-03-03) não pode ser maior que a data do final do periodo informado ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['cnpjOrigem'].NodeValue:= dm.IBDetEntradaCNPJFORNECEDOR.text; //'09616205000170'; //**** O CNPJ do fornecedor (09.616.205/0001-70) não existe na base de dados da ANVISA. ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['cnpjDestino'].NodeValue:= dm.IBUsuarioCPFCNPJ.text; //'02326764000105'; // O CNPJ do fornecedor (99.999.999/0001-99) não existe na base de dados da ANVISA. ChildNodes['medicamentoEntrada'].ChildNodes['registroMSMedicamento'].NodeValue:= dm.IBDetEntradaREGISTROMSMANVISA.Text; //'1071402340048'; ChildNodes['medicamentoEntrada'].ChildNodes['numeroLoteMedicamento'].NodeValue:= dm.IBDetEntradaNLOTE.Text; //'A0540'; ChildNodes['medicamentoEntrada'].ChildNodes['quantidadeMedicamento'].NodeValue:= dm.IBDetEntradaQUANTIDADE.Text; //'10'; // A data de recebimento do medicamento (2010-03-03 00:00:00) da nota fiscal (1) não pode ser maior que a data do final do período informado (2010-02-1Cool ChildNodes['dataRecebimentoMedicamento'].NodeValue:= copy(frmlogin.EdDataDia.Text, 7, 4) + '-' + copy(frmlogin.EdDataDia.Text, 4, 2) + '-' + copy(frmlogin.EdDataDia.Text, 1, 2); //'2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); end; dm.IBDetEntrada.Next; end; end; //Busca todas as entradas no período dm.IBDetVenda.close; dm.IBDetVenda.SelectSQL.Clear; dm.IBDetVenda.SelectSQL.Add('SELECT * FROM DETVENDA'); dm.IBDetVenda.SelectSQL.ADD('WHERE DATA BETWEEN ' + QuotedStr(dti) + ' and ' + QuotedStr(dtf) + ' AND TIPOMATERIALFARMACIA = ' + QuotedStr('MEDICAMENTO') + ' AND REGISTROMSMANVISA IS NOT NULL'); dm.IBDetVenda.open; if dm.IBDetVenda.IsEmpty then begin ShowMessage('Nada de venda!'); end else begin // Loop das [Saidas] :: MEDICAMENTO //for i:=1 to x do dm.ibdetvenda.First; while not dm.IBDetVenda.eof do begin NData:=NMedicamento.AddChild('saidaMedicamentoVendaAoConsumidor'); with NData do begin // [tipoReceituarioMedicamento] // 1 Receita de Controle Especial em 2 vias (Receita Branca) // 2 Notificação de Receita B (Notificação Azul) // 3 Notificação de Receita Especial (Notificação Branca) // 4 Notificação de Receita A (Notificação Amarela) //Consulta a venda para pegar os dados do médico dm.IBVenda.close; dm.IBVenda.SelectSQL.Clear; dm.IBVenda.SelectSQL.Add('SELECT * FROM VENDAS'); dm.IBVenda.SelectSQL.ADD('WHERE CODIGO = ' + QuotedStr(DM.IBDetVendaCODVENDA.Text) + ''); dm.IBVenda.open; //Consulta cliente da venda para pegar os dados do cliente dm.IBClientes.close; dm.IBClientes.SelectSQL.Clear; dm.IBClientes.SelectSQL.Add('SELECT * FROM CLIENTES'); dm.IBClientes.SelectSQL.ADD('WHERE CODIGO = ' + QuotedStr(DM.IBDetVendaCODCLI.Text) + ''); dm.IBClientes.open; ChildNodes['tipoReceituarioMedicamento'].NodeValue:='1'; ChildNodes['numeroNotificacaoMedicamento'].NodeValue:= dm.IBDetVendaREGISTROMSMANVISA.text; //'213213'; ChildNodes['dataPrescricaoMedicamento'].NodeValue:= copy(dm.IBDetVendaDATA.Text, 7, 4) + '-' + copy(dm.IBDetVendaDATA.Text, 4, 2) + '-' + copy(dm.IBDetVendaDATA.Text, 1, 2);//'2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data de prescricão (2010-03-03) não pode ser maior que a data do final do período informado ChildNodes['prescritorMedicamento'].ChildNodes['nomePrescritor'].NodeValue:= dm.IBVendaMEDICO.Text; //'XFULANO'; ChildNodes['prescritorMedicamento'].ChildNodes['numeroRegistroProfissional'].NodeValue:= dm.IBVendaREGISTROMEDICO.Text; //'99999'; // [conselhoProfissional] // CRM Conselho Regional de Medicina // CRMV Conselho Regional de Medicina Veterinária // CRO Conselho Regional de Odontologia ChildNodes['prescritorMedicamento'].ChildNodes['conselhoProfissional'].NodeValue:= dm.IBVendaCONSELHOMEDICO.Text; //'CRM'; ChildNodes['prescritorMedicamento'].ChildNodes['UFConselho'].NodeValue:= dm.IBVendaUFCONSELHOMEDICO.Text; //'SP'; // [usoMedicamento] // 1 Humano // 2 Veterinario ChildNodes['usoMedicamento'].NodeValue:='1'; ChildNodes['compradorMedicamento'].ChildNodes['nomeComprador'].NodeValue:= DM.IBVendaCLIENTE.Text; //'XCICLANO'; // [tipoDocumento] // 1 CARTEIRA DE REGISTRO PROFISSIONAL // 2 CARTEIRA DE IDENTIDADE . . . existem mais ChildNodes['compradorMedicamento'].ChildNodes['tipoDocumento'].NodeValue:='2'; ChildNodes['compradorMedicamento'].ChildNodes['numeroDocumento'].NodeValue:= DM.IBClientesRGINSC.Text; //'431053984'; ChildNodes['compradorMedicamento'].ChildNodes['orgaoExpedidor'].NodeValue:= dm.IBClientesEMISSOR.text; //'SSP'; ChildNodes['compradorMedicamento'].ChildNodes['UFEmissaoDocumento'].NodeValue:= dm.IBClientesUFEMISSOR.Text; //'SP'; ChildNodes['medicamentoVenda'].ChildNodes['registroMSMedicamento'].NodeValue:= dm.IBDetVendaREGISTROMSMANVISA.Text; //'1071402340048'; ChildNodes['medicamentoVenda'].ChildNodes['numeroLoteMedicamento'].NodeValue:= dm.IBDetVendaNLOTE.Text; //'A0540'; // O lote (RGJ0400) do produto de número de registro (1.0100.0043.021-5 - LEXOTAN) não foi encontrado nem no inventário inicial nem nas transações de compras informadas ChildNodes['medicamentoVenda'].ChildNodes['quantidadeMedicamento'].NodeValue:= dm.IBDetVendaQUANTIDADE.Text; //'1'; // A quantidade vendida (3) do produto de número de registro (1.0100.0043.021-5 - LEXOTAN) do lote (RGJ0400) é maior que a quantidade em estoque. Para obter informações sobre essa mensagem de erro visite o endereço http://www.anvisa.gov.br/hotsite/sngpc/mensagens_de_validacao.htm. ChildNodes['dataVendaMedicamento'].NodeValue := copy(dm.IBDetVendaDATA.Text, 7, 4) + '-' + copy(dm.IBDetVendaDATA.Text, 4, 2) + '-' + copy(dm.IBDetVendaDATA.Text, 1, 2); //'2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da venda (2010-03-03 00:00:00) não pode ser maior que a data do final do periodo informado. end; dm.IBDetVenda.Next; end; end; // Loop das [Transferencias] :: MEDICAMENTO for i:=1 to x do begin NData:=NMedicamento.AddChild('saidaMedicamentoTransferencia'); with NData do begin ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['numeroNotaFiscal'].NodeValue:= IntToStr(i); ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:= '2'; ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['dataNotaFiscal'].NodeValue:= '2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da nota fiscal (2010-03-03 00:00:00) não pode ser maior que a data do final do período informado ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['cnpjOrigem'].NodeValue:= '09616205000170'; //**** não pode haver a transferência entre estas duas empresas.**** O CNPJ da empresa de origem (99.999.999/0001-99) não existe na base de dados da ANVISA. ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['cnpjDestino'].NodeValue:= '02326764000105'; // O CNPJ da empresa de origem (02.326.764/0001-05) não existe na base de dados da ANVISA. ChildNodes['medicamentoTransferencia'].ChildNodes['registroMSMedicamento'].NodeValue:= '1029802250061'; // AMYTRIL ChildNodes['medicamentoTransferencia'].ChildNodes['numeroLoteMedicamento'].NodeValue:= '09021207'; // O lote (153353) do produto de número de registro (1.0583.0259.002-9 - HIPOFAGIN S) não foi encontrado nem no inventário inicial nem nas transações de compras informadas. ChildNodes['medicamentoTransferencia'].ChildNodes['quantidadeMedicamento'].NodeValue:= '1'; // A quantidade transferida (2) do medicamento de número de registro (1.0583.0259.002-9 - HIPOFAGIN S) é maior que a quantidade em estoque. Para obter informações sobre essa mensagem de erro visite o endereço http://www.anvisa.gov.br/hotsite/sngpc/mensagens_de_validacao.htm. ChildNodes['dataTransferenciaMedicamento'].NodeValue:='';// '2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); end; end; // [tipoOperacaoNotaFiscal] // 1 Compra // 2 Transferência // 3 Venda // Loop das [Perdas] :: MEDICAMENTO for i:=1 to x do begin NData:=NMedicamento.AddChild('saidaMedicamentoPerda'); with NData do begin // [motivoPerdaMedicamento] // 1 Furto / Roubo // 2 Avaria // 3 Vencimento // 4 Apreensão / Recolhimento pela Visa ChildNodes['motivoPerdaMedicamento'].NodeValue:='3'; ChildNodes['medicamentoPerda'].ChildNodes['registroMSMedicamento'].NodeValue:='1071402340048'; ChildNodes['medicamentoPerda'].ChildNodes['numeroLoteMedicamento'].NodeValue:='A0540'; ChildNodes['medicamentoPerda'].ChildNodes['quantidadeMedicamento'].NodeValue:='1'; // A quantidade perdida (2) do produto de número de registro (1.0100.0075.006-1 - ROHYPNOL) é maior que a quantidade em estoque. Para obter informações sobre essa mensagem de erro visite o endereço http://www.anvisa.gov.br/hotsite/sngpc/mensagens_de_validacao.htm. ChildNodes['dataPerdaMedicamento'].NodeValue := '2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da perda (2010-03-03 00:00:00) não pode ser maior que a data do final do período informado. end; end; // ************************************************************************* // ********************************* INSUMO ******************************** NMedicamento:=NCorpo.AddChild('insumos'); // Loop das [Entradas] :: INSUMO //Busca todas as entradas no período dm.IBDetEntrada.close; dm.IBDetEntrada.SelectSQL.Clear; dm.IBDetEntrada.SelectSQL.Add('SELECT * FROM DETENTRADA'); dm.IBDetEntrada.SelectSQL.ADD('WHERE DATA BETWEEN ' + QuotedStr(dti) + ' and ' + QuotedStr(dtf) + ' AND TIPOMATERIALFARMACIA = ' + QuotedStr('INSUMO') + ' AND REGISTROMSMANVISA IS NOT NULL'); dm.IBDetEntrada.open; dm.IBDetEntrada.First; While not dm.IBDetEntrada.eof do begin NData:=NMedicamento.AddChild('entradaInsumos'); with NData do begin ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['numeroNotaFiscal'].NodeValue:= IntToStr(i); // [tipoOperacaoNotaFiscal] // 1 Compra // 2 Transferência // 3 Venda ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:= '1'; ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['dataNotaFiscal'].NodeValue:= copy(dm.IBDetEntradaDATA.Text, 7, 4) + '-' + copy(dm.IBDetEntradaDATA.Text, 4, 2) + '-' + copy(dm.IBDetEntradaDATA.Text, 1, 2); //'2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da nota fiscal (2010-03-03 00:00:00) não pode ser maior que a data do final do período informado. ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['cnpjOrigem'].NodeValue:= dm.IBUsuarioCPFCNPJ.text; //'09616205000170'; // O CNPJ do fornecedor (99.999.999/0001-99) não pode ser igual ao CNPJ de destino. ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['cnpjDestino'].NodeValue:= dm.IBFornecedorCPFCNPJ.Text; //'02326764000105'; // O CNPJ DO fornecedor (99.999.999/0001-99) não existe na base de dados da ANVISA. ChildNodes['substanciaInsumoEntrada'].ChildNodes['insumoEntrada'].ChildNodes['codigoInsumo'].NodeValue:= dm.IBDetEntradaCODPRODUTO.text; //'00075'; ChildNodes['substanciaInsumoEntrada'].ChildNodes['insumoEntrada'].ChildNodes['numeroLoteInsumo'].NodeValue:= dm.IBDetEntradaNLOTE.text; //'788cpf'; ChildNodes['substanciaInsumoEntrada'].ChildNodes['insumoEntrada'].ChildNodes['insumoCNPJFornecedor'].NodeValue:= dm.IBFornecedorCPFCNPJ.Text; //'02326764000105'; ChildNodes['substanciaInsumoEntrada'].ChildNodes['quantidadeInsumoEntrada'].NodeValue:= dm.IBDetEntradaQUANTIDADE.text; //'40000.0'; ChildNodes['substanciaInsumoEntrada'].ChildNodes['tipoUnidadeEntrada'].NodeValue:= '1'; ChildNodes['dataRecebimentoInsumo'].NodeValue:= copy(dm.IBDetEntradaDATA.Text, 7, 4) + '-' + copy(dm.IBDetEntradaDATA.Text, 4, 2) + '-' + copy(dm.IBDetEntradaDATA.Text, 1, 2); //'2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data de recebimento do insumo (2010-03-03 00:00:00) não pode ser maior que a data do final do período informado (2010-02-18 00:00:00) end; dm.IBDetEntrada.Next; end; // Loop das [Saidas] :: INSUMO //Busca todas as entradas no período dm.IBDetVenda.close; dm.IBDetVenda.SelectSQL.Clear; dm.IBDetVenda.SelectSQL.Add('SELECT * FROM DETVENDA'); dm.IBDetVenda.SelectSQL.ADD('WHERE DATA BETWEEN ' + QuotedStr(dti) + ' and ' + QuotedStr(dtf) + ' AND TIPOMATERIALFARMACIA = ' + QuotedStr('INSUMO') + ' AND REGISTROMSMANVISA IS NOT NULL'); dm.IBDetVenda.open; DM.IBDETVENDA.First; While not dm.ibdetvenda.Eof do begin NData:=NMedicamento.AddChild('saidaInsumoVendaAoConsumidor'); with NData do begin // [tipoReceituarioInsumo] // 1 Receita de Controle Especial em 2 vias (Receita Branca) // 2 Notificação de Receita B (Notificação Azul) // 3 Notificação de Receita Especial (Notificação Branca) // 4 Notificação de Receita A (Notificação Amarela) ChildNodes['tipoReceituarioInsumo'].NodeValue:= '2'; ChildNodes['numeroNotificacaoInsumo'].NodeValue:= dm.IBDetVendaCODPRODUTO.text; //'9897651'; ChildNodes['dataPrescricaoInsumo'].NodeValue:= copy(dm.IBDetVendaDATA.Text, 7, 4) + '-' + copy(dm.IBDetVendaDATA.Text, 4, 2) + '-' + copy(dm.IBDetVendaDATA.Text, 1, 2); //'2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da prescricão (2010-03-03) não pode ser maior que a data do final do período informado. ChildNodes['prescritorInsumo'].ChildNodes['nomePrescritor'].NodeValue:= dm.IBVendaMEDICO.text; //'Dr. Antenor'; ChildNodes['prescritorInsumo'].ChildNodes['numeroRegistroProfissional'].NodeValue:= dm.IBVendaREGISTROMEDICO.text; //'8888'; // [conselhoProfissional] // CRM Conselho Regional de Medicina // CRMV Conselho Regional de Medicina Veterinária // CRO Conselho Regional de Odontologia ChildNodes['prescritorInsumo'].ChildNodes['conselhoProfissional'].NodeValue:= dm.IBVendaCONSELHOMEDICO.text; //'CRM'; ChildNodes['prescritorInsumo'].ChildNodes['UFConselho'].NodeValue:= dm.IBVendaUFCONSELHOMEDICO.text; //'PR'; // A sigla da UF da notificação de receita azul não coincide com a sigla da UF do profissional prescritor. ChildNodes['usoInsumo'].NodeValue:= '1'; ChildNodes['compradorInsumo'].ChildNodes['nomeComprador'].NodeValue:= dm.IBVendaCLIENTE.text; //'Manuela Danta'; // [tipoDocumento] // 1 CARTEIRA DE REGISTRO PROFISSIONAL // 2 CARTEIRA DE IDENTIDADE . . . existem mais ChildNodes['compradorInsumo'].ChildNodes['tipoDocumento'].NodeValue:= '2'; ChildNodes['compradorInsumo'].ChildNodes['numeroDocumento'].NodeValue:= dm.IBClientesRGINSC.Text; //'89786453'; ChildNodes['compradorInsumo'].ChildNodes['orgaoExpedidor'].NodeValue:= dm.IBClientesEMISSOR.Text; //'SSP'; ChildNodes['compradorInsumo'].ChildNodes['UFEmissaoDocumento'].NodeValue:= dm.IBClientesUFEMISSOR.Text; //'PR'; ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].NodeValue:= ''; ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].ChildNodes['codigoInsumo'].NodeValue:= dm.IBDetVendaCODPRODUTO.text; //'02904'; ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].ChildNodes['numeroLoteInsumo'].NodeValue:= dm.IBDetVendaNLOTE.text; //'123dzp'; ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].ChildNodes['insumoCNPJFornecedor'].NodeValue:= dm.IBFornecedorCPFCNPJ.text; //'02326764000105'; // O CNPJ do fornecedor (99.999.999/0001-99) não existe na base de dados da ANVISA. ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['quantidadeDeInsumoPorUnidadeFarmacotecnica'].NodeValue:= dm.IBDetVendaQUANTIDADE.text; //'5.0'; // A quantidade vendida (300) do insumo de número DCB (02904 - diazepam) do lote (123dzp) é maior que a quantidade em estoque. Para obter informações sobre essa mensagem de erro visite o endereço http://www.anvisa.gov.br/hotsite/sngpc/mensagens_de_validacao.htm. // [unidadeDeMedidaDoInsumo] // 1 Miligrama // 2 Mililitro // 3 Unidade (U) ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['unidadeDeMedidaDoInsumo'].NodeValue:= '1'; // [unidadeFarmacotecnica] // 1 Miligrama // 2 Cápsula // 3 Comprimido // 4 Mililitro ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['unidadeFarmacotecnica'].NodeValue:= '2'; ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['quantidadeDeUnidadesFarmacotecnicas'].NodeValue:= '60.0'; ChildNodes['dataVendaInsumo'].NodeValue:= '2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da venda (2010-03-03 00:00:00) não pode ser maior que a data do final do período informado. end; dm.ibdetvenda.Next; end; // Loop das [Transferencias] :: INSUMO for i:=1 to x do begin NData:=NMedicamento.AddChild('saidaInsumoTransferenci'); with NData do begin ChildNodes['notaFiscalTransferenciaInsum'].ChildNodes['numeroNotaFiscal'].NodeValue:= IntToStr(i); // [tipoOperacaoNotaFiscal] // 1 Compra // 2 Transferência // 3 Venda ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:= '2'; ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['dataNotaFiscal'].NodeValue:= '2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da nota fiscal (2010-03-03 00:00:00) não pode ser maior que a data do final do período informado. ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['cnpjOrigem'].NodeValue:= '09616205000170'; // O CNPJ do estabelecimento de origem (99.999.999/0001-99) não existe na base DO Corporativo da ANVISA. ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['cnpjDestino'].NodeValue:= '02326764000105'; // O CNPJ do estabelecimento de destino (99.999.999/0001-99) não existe na base de dados da ANVISA. ChildNodes['substanciaInsumoTransferencia'].ChildNodes['insumoTransferencia'].ChildNodes['codigoInsumo'].NodeValue:= '02904'; ChildNodes['substanciaInsumoTransferencia'].ChildNodes['insumoTransferencia'].ChildNodes['numeroLoteInsumo'].NodeValue:= '15353'; ChildNodes['substanciaInsumoTransferencia'].ChildNodes['insumoTransferencia'].ChildNodes['insumoCNPJFornecedor'].NodeValue:= '02326764000105'; ChildNodes['substanciaInsumoTransferencia'].ChildNodes['quantidadeInsumoTransferencia'].NodeValue:= '20000.0'; // A quantidade transferida (20000) do insumo de número DCB (02904 - diazepam) é maior que a quantidade em estoque. Para obter informações sobre essa mensagem de erro visite o endereço http://www.anvisa.gov.br/hotsite/sngpc/mensagens_de_validacao.htm. ChildNodes['substanciaInsumoTransferencia'].ChildNodes['tipoUnidadeTransferencia'].NodeValue:= '1'; ChildNodes['dataTransferenciaInsumo'].NodeValue := '2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); end; end; // Loop das [Perdas] :: INSUMO for i:=1 to x do begin NData:=NMedicamento.AddChild('saidaInsumoPerda'); with NData do begin // [motivoPerdaInsumo] // 1 Furto / Roubo // 2 Avaria // 3 Vencimento // 4 Apreensão / Recolhimento pela Visa ChildNodes['motivoPerdaInsumo'].NodeValue:= '2'; ChildNodes['substanciaInsumoPerda'].ChildNodes['insumoPerda'].ChildNodes['codigoInsumo'].NodeValue:= '02904'; ChildNodes['substanciaInsumoPerda'].ChildNodes['insumoPerda'].ChildNodes['numeroLoteInsumo'].NodeValue:= '786dpz'; ChildNodes['substanciaInsumoPerda'].ChildNodes['insumoPerda'].ChildNodes['insumoCNPJFornecedor'].NodeValue:= '99999999000199'; // O CNPJ do fornecedor (99.999.999/0001-99) não foi encontrado na base de dados da ANVISA. ChildNodes['substanciaInsumoPerda'].ChildNodes['quantidadeInsumoPerda'].NodeValue:= '12345.0'; // A quantidade perdida (12345) do insumo de número DCB (02904 - diazepam) é maior que a quantidade em estoque. Para obter informações sobre essa mensagem de erro visite o endereço http://www.anvisa.gov.br/hotsite/sngpc/mensagens_de_validacao.htm. ChildNodes['substanciaInsumoPerda'].ChildNodes['tipoUnidadePerda'].NodeValue:= '1'; ChildNodes['dataPerdaInsumo'].NodeValue:= '2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da perda (2010-03-03) não pode ser maior que a data do final do período informado. ChildNodes['cnpjFornecedorInsumo'].NodeValue:='02326764000105'; // O CNPJ do fornecedor (99.999.999/0001-99) não foi encontrado na base de dados da ANVISA. end; end; // ************************************************************************* //SaveToFile(ExtractFileDir(Application.ExeName)+'\SNGPC\Sngpc_'+FormatDateTime('dd_mm_yyyy',Date)+'.xml'); SaveToFile(ExtractFileDir(Application.ExeName)+'\SNGPC\Sngpc_' + eddataemissaoSalvar.text + '_a_' + eddatasaidaSalvar.text + '.xml'); end; XMLDoc.Active:=False; XMLDoc.Free; end; -
Roteiro E Fontes Para Sngpc V2 E Farmacia Popular Do Brasil
Élviro Cavalcanti replied to j2c9m7's tópico in Classificados
Eu possuo uma rotina de SNGPC que faz assa comunicação, posso disponibilizar ela pra vocês -
Possivelmente você está deixando alguma transação aberta e por isso não consegue efetuar o update.
-
Aqui em PE cupons acima de 1.000,00 era preciso colocar o CPF ou CNPJ do comprador, na Paraíba esse valor é de 500,00 se não me engano, mas agora PE mudou esse valor, só coloquei o post pois minha aplicação tem como parâmetro esse valor, assim já avisa ao usuário que precisa informar os dados do cliente acima de X valor, caso alguém não tenha pego essa informação, deixei aqui registrado
-
NFCe em PE sem identificação passando até 5.000,00
um tópico no fórum postou Élviro Cavalcanti NFC-e - Nota Fiscal do Consumidor Eletrônica
Bom dia pessoal, aqui em PE a NFCe que antes era até 1.000,00 sem identificação, agora está passando com valor até 5.000,00, caso alguém tenha essa trava no sistema, pode alterar essa quantidade. -
Quando clico em novo, aciono os comandos DM.UFornecedor.close; DM.UFornecedor.SQL.Clear; DM.UFornecedor.SQL.Add('SELECT codigo, dtcadastro, nomerazao, fantasia, tipo, cpfcnpj, rginsc, '); DM.UFornecedor.SQL.Add('endereco, numero, complemento, bairro, cidade, uf, cep, codmunicipio, email, '); DM.UFornecedor.SQL.Add('site, fone, fone2, contato, fonecontato, celularcontato, emailcontato, '); DM.UFornecedor.SQL.Add('ramoatividade, bloqueado, dtalteracao, usuario, dtcontato, motivocontato,'); DM.UFornecedor.SQL.Add('usuariocontato, tempocadastro, codusuario, obs FROM fornecedor'); DM.UFornecedor.SQL.ADD('WHERE codigo = -1'); DM.UFornecedor.open; DM.UFornecedor.Append; e direciono o foco para o DBEdit, mas ele não deixa nada ser digitado, e quando salvo na tabela ele salva com um registro vazio, como se estivesse funcionando normal o comando de novo e de salvar.
-
DBEdit não permite digitar no delphi 2010 e MySQL
um tópico no fórum postou Élviro Cavalcanti Object Pascal - Delphi & Lazarus
Boa tarde pessoal, estou tendo uma situação curiosa no delphi 2010 usando o componente Unidac e Mysql, apenas uma tabela do meu banco (fornecedor) eu vejo os dados usando o MySQL Workbench, mas quando tento incluir um novo registro nessa tabela o dbedit não permite digitar nada, mesmo o DBGrid não consigo exibir os dados. Alguém já passou por esse problema? Lembrando que é apenas nessa tabela, mas demais estão normais! -
App com conexão UniConnection com Firebird no servidor Linux
um tópico no fórum postou Élviro Cavalcanti Object Pascal - Delphi & Lazarus
Bom dia pessoal, tenho um banco de dados Firebird hospedado no servidor em Linux na web, pela máquina usando o windows eu tenho acesso e trabalho normal com ele, mas quando tento acessar o banco via app, aparece uma mensagem de erro : 'failed to locate host machine. Undefined services gds_db/ tcp', estou usando o componente UniConnection. Alguém já passou ou tem algo que possa ajudar?