Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 17-06-2023 em todas as áreas

  1. Bom dia a todos, ao tentar criar uma Cobrança Imediata, percebi que tinha colocado os links no PSP de forma errada, fiz a correção e ja efetuei os testes, e agora sim está OK. Tbm tive que colocar a função "QuandoReceberRespostaEndPoint", pois o retorno do banco é 200 e não 201. Segue abaixo a Unit para avaliação. ACBrPIXPSPAilos.pas
    1 ponto
  2. Que legal que funcionou, quiser anexar os fontes, podemos disponibilizar em nosso svn, para que outros colegas possam usar como referencia e estudos..
    1 ponto
  3. Pode ser ref.refType('string') também. faltava declarar como tipo para declarar na lib.
    1 ponto
  4. Se você criar uma aplicação que não seja MDI, pode abrir dos forms sem ser modal, e ambos podem ser manipulados, com o stayontop, seu form ficará acima dos demais desta aplicação. https://docwiki.embarcadero.com/Libraries/Alexandria/en/Vcl.Forms.TApplication.ProcessMessages Se você executa um processo ( clicar num botão por exemplo ) sem ser via thread, enquanto não terminar de processar, a aplicação não responde ( fica a tela branca no Windows se você ficar clicando nela ) e ao final a aplicação volta a responder. Se você utiliza este método, as mensagens são processadas durante o processo. Se tiver um loop, você pode utilizá-lo para atualizar uma barra de progresso por exemplo. No FormShow e durante o processamento com o ProcessMessages, assim você irá "atualizar" a aplicação. Não conhecia este. https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Forms.TApplication.RestoreTopMosts Por fim, pesquisando sobre suas dúvidas encontrei este tópico que parece ser a mesma necessidade que você tem e foi dito que resolveu. https://www.devmedia.com.br/forum/stayontop-funciona-mais-nao-me-respeita/336596
    1 ponto
  5. Pessoal, consegui. Segue abaixo a solução funcionando. Obrigado a todos pela atenção. const path = require('path'); const ffi = require('ffi-napi'); const ref = require('ref-napi'); const pathDllACBrLibCEP = path.join(__dirname, 'ACBrCEP64.dll') var eArqConfig = path.join(__dirname, 'ACBrLib.ini'); var eChaveCrypt = ''; var tint = ref.refType('int'); var tchar = ref.refType('char *'); var lib = ffi.Library(pathDllACBrLibCEP, { CEP_Inicializar: ['int', ['string', 'string']], CEP_Finalizar: ['int', []], CEP_BuscarPorCEP: ['int', ['string', tchar, tint]], }) try { var inicio = 2; const buflength = 256; let aloc_sResposta = Buffer.alloc(buflength); let aloc_esTamanho = ref.alloc('int', buflength); inicio = lib.CEP_Inicializar(eArqConfig, eChaveCrypt); console.log(`iniciou >>>>>>> ${inicio}`); inicio = lib.CEP_BuscarPorCEP('55612-450', aloc_sResposta, aloc_esTamanho); console.log(`ultmio retorno >>>>>>>> ${inicio}`); console.log(`Retorno: `, aloc_sResposta.toString()); inicio = lib.CEP_Finalizar(); console.log(`finalizar >>>>>>>> ${inicio}`); } catch (error) { console.error('An error occurred:', error) }
    1 ponto
  6. @Dércio Luis Zanatta, apliquei no SVN, uma possível implementação... Commit [r29787]
    1 ponto
  7. Boa tarde, Utilize tls1.2 em SSLType. Se estiver utilizando OpenSSL, copie as dlls equivalentes à arquitetura da sua aplicação para a pasta da aplicação. Veja o tópico a seguir que deve resolver.
    1 ponto
  8. Você pode usar através do ACBrLib. Os topicos abaixo vão te ajudar a entender o produto e como ele funciona.
    1 ponto
  9. https://stackoverflow.com/questions/23949373/stretching-a-bitmap-in-delphi-using-stretchdraw-method Veja o código no post original deste tópico, eu tive esse problema (enviar o QrCode por WhatsApp) e resolvi dessa forma.
    1 ponto
  10. 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;
    1 ponto
  11. Eu estava tendo o mesmo problema de foco. Tive que criar uma procedure à parte para resolver o problema, chamando essa procedure no evento OnRestauraFoco do componente ACBrTEFD. Segue o código da procedure: procedure RestauraFoco; var Form: TForm; Habilitado: Boolean; begin try Form := nil; //Verifica se já existe um form ativo na tela. if Assigned(Screen.ActiveForm) then Form := Screen.ActiveForm //Do contrário, pega o último form criado else if Assigned(Screen.Forms[Screen.FormCOunt - 1]) then Form := Screen.Forms[Screen.FormCOunt - 1]; if Assigned(Form) then begin //Verifica o estado da propriedade 'Enabled' do form Habilitado := Form.Enabled; //Habilita o form para permitir que o foco seja setado para o mesmo Form.Enabled := TRUE; //Envia o Form em questão para a frente da tela SetForeGroundWindow(Form.Handle); //Seta o foco da aplicação para o form if Form.CanFocus then Form.SetFocus; Form.Refresh; //Retorna a propriedade 'Enabled' para o estado anterior Form.Enabled := Habilitado; end; except end; end; Obs.: Eu uso a procedure no início do evento OnExibeMsg também, pra garantir que a aplicação terá foco no momento em que a mensagem for exibida.
    1 ponto
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.