Mostrando postagens com marcador Delphi. Mostrar todas as postagens
Mostrando postagens com marcador Delphi. Mostrar todas as postagens

ZeosLib 7 para Delphi 2010

1 - Faça o download do arquivo (link para download)

2 - Crie uma pasta chamada Zeos7 dentro da pasta Lib do RAD Studio. Por exemplo, meu RAD Studio esta em C:\Program Files\CodeGear\RAD Studio\6.0\lib, então meu diretório base será: C:\Program Files\CodeGear\RAD Studio\7.0\lib\zeos7

3 - Descompacte os arquivos dentro do diretório recem criado no ítem 2.

4 - Com o Delphi 2010 aberto, vá em File -Open Project (Ctrl+F11) e abra o arquivo ZeosDbo, dentro de C:\Program Files\CodeGear\RAD Studio\7.0\lib\zeos7\packages\delphi14

5 - Vá ao menu Project - Build All Projects

6 - Antes de continuar, se você estiver usando o Windows Vista ou Windows 7 com o UAC habilitado, você terá que dar permissão TOTAL para a pasta Zeos7 criada, caso contrário não irá funcionar. Se o Delphi 2010 foi instalado em diretório criado por você, por exemplo C:\MeusProgramas, então não terá problemas com permissão.

7 - Agora, antes da instalação vá ao menu Tools - Options - Evironment Options - Delphi Options - Library - Win 32 e adicione o caminho a seguir no Library Path: $(BDS)\lib\Zeos7\packages\delphi14\build

8 - Feito isto, minimize o Delphi, abra o diretório C:\Program Files\CodeGear\RAD Studio\7.0\lib\zeos7\packages\delphi14\build, selecione todos os arquivos ".bpl" copie-os e cole-o dentro da pasta Bpl do RAD Studio: C:\Program Files\CodeGear\RAD Studio\7.0\bin

9 - Volte ao Delphi vá ao menu View - Project Manager (Ctrl + Atl + F11). Selecione e compile as bpls abaixo, uma a uma. Para compilar, clique com o botão direto sobre o bpl. É a primeira opção.

- ZCore140.Bpl
- ZPlain140.Bpl
- ZParseSql140.Bpl
- ZDbc140.Blq
- ZComponent140.Bpl
- ZComponentDesign140.Bpl

10 - Depois de compiladas, clique com o botão direito sobre o pacote ZComponentDesign140.Bpl (o único em negrito) e clique em Install.

11 - Pronto, feche tudo (File - Close All). Crie um novo projeto e veja que os componentes já podem ser utilizados.

Fonte: www.gedeveloper.blogspot.com

Turbo Delphi Explorer - Instalar Componentes de Terceiros

A IDE do Turbo Delphi Explorer é uma versão free, com a limitação de não permitir a instalação de componentes de terceiros, além de não possuir um componente para gerar relatórios.

Então como gerar relatórios com a ferramenta Turbo Delphi Explorer na versão free se esta não permite instalação de componentes de terceiros ? Como acessar uma Base de Dados através do ZeosDBO ?
Respondo, vamos fazer em tempo de execução. Irei partir do pressuposto que se tenho um componente com os códigos fontes e fazendo uso dos mesmos em tempo de execução , não haverá problemas com a licença do Turbo Delphi Explorer. Será ???

Vou utilizar dois componentes de terceiros COM código fonte:
ZeosDBO versão 6.6.2 (compatível com Delphi 7) – para acessar dados no Firebird
FreeReport versão 2.32 (compatível com Delphi 7) – para gerar nosso relatório

Vou partir do presuposto que você já tem instalado o Turbo Delphi Explorer. Então vamos lá.
Com o Turbo Delphi Explorer aberto vá em Tools >> Options
A janela “Options” vai aparecer, faça o seguinte:
No lado esquerdo da janela de um duplo click na propriedade Environment Options, depois um duplo click em Delphi Options, selecione a propriedade Library – Win32, agora do lado direito em Library path click no botão ... para adicionar os paths dos nossos componentes, veja figura abaixo:



Muito bem, com os paths adicionados agora podemos referenciar nossos componentes em tempo de execução.

Vamos trabalhar com 02 Forms e 01 DataModule:

Name = Form1
–> Formulário Principal
Deverá ter uma chamada para o Form2, conforme abaixo:


procedure TForm1.mRelCidadeClick(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
Form2.ShowModal;
end;


Name = DM
–> Data Module para acessar nossos dados
A clausula uses deverá ter o seguinte;


uses
SysUtils, Classes, Variants, ZConnection, ZDataset, ZStoredProcedure,
ZAbstractRODataset, ZAbstractDataset, ZDBCIntfs, DB;

Coloque um componente TDataSource e renomeie para DSCidade.
Nas declarações Private e Public faça o seguinte:


private
{ Private declarations }
FConexao: TZConnection;
FZQuery: TZQuery;
public
{ Public declarations }
property Conexao: TZConnection read FConexao write FConexao;
property ZQuery: TZQuery read FZQuery write FZQuery;
end;

No evento OnCreate do Data Modulo, faça o seguine:

procedure TDM.DataModuleCreate(Sender: TObject);
begin
// Criamos a conexão com o Banco de Dados
Conexao:=TZConnection.Create(Self);
Conexao.Database:='C:\Arquivos de programas\Prog\Dados\DB.FDB';
Conexao.Password:='password';
Conexao.Port:=3050;
Conexao.Protocol:='firebird-1.5';
Conexao.TransactIsolationLevel:=tiReadCommitted;
Conexao.User:='SYSDBA';
Conexao.Connected:=True;
// Criamos um objeto TQuery para consultarmos nossa Tabela
ZQuery:=TZQuery.Create(Self);
ZQuery.Connection:=FConexao;
end;


Name = Form2
–> Formulário para impressão do nosso Relatório
A clausula uses deverá ter o seguinte;


uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ZConnection, ZDataset, ZStoredProcedure, ZAbstractRODataset,
ZAbstractDataset, StdCtrls, ComCtrls, FR_DSet, FR_DBSet, FR_Class, FR_Desgn,
Grids, DBGrids, ExtCtrls;

Procedimento para Impressão, conforme abaixo:

procedure FrPrint(Title:string;FrmGrid:TForm);
var
fr: TfrReport;
ReportTitle,ColumnHeader: Tfrbandview;
MemoVT: Array of TfrMemoview;
TitleV ,dateV,pageV: TfrMemoview;
page: Tfrpage;
col: Integer;
Cont: Integer;
Left,Top,Width,Heigth: Integer;
TempLeft,TempWidth: Integer;

procedure PrintCabecalho(NrPag: Integer);
begin
left :=20;
top :=20;
width :=710;
heigth :=25;
fr.Pages.Add;
page := fr.Pages[NrPag];
ReportTitle := Tfrbandview.Create;
ReportTitle.BandType := btReportTitle;
ReportTitle.SetBounds(left,top,width,75);
page.Objects.Add(ReportTitle);
TitleV := TfrMemoview.Create;
Titlev.SetBounds(Left,top,width,30);
Titlev.Font.Name := 'Tahoma';
TitleV.Font.Size := 16;
TitleV.Memo.Add(title);
page.Objects.Add(TitleV);
dateV := TfrMemoview.Create;
dateV.SetBounds(Left,top + 40,width,30);
dateV.Font.Name := 'Tahoma';
dateV.Font.Size := 8;
dateV.Memo.Add('DATA:'+FormatDateTime('dd/mm/yyyy',Now));
page.Objects.Add(dateV);
Top:=115;
end;

procedure PrintRodape;
begin
pageV:=TfrMemoview.Create;
pageV.Font.Name:='Tahoma';
pagev.Font.Size:=10;
pagev.FrameWidth:=2;
pagev.FrameTyp:=24 ;
pageV.Memo.Add(' :: PÁGINA '+'[PAGE#]');
pagev.SetBounds(0,1025,750,20);
page.Objects.Add(pageV);
end;

begin
fr:=TfrReport.Create(FrmGrid);
fr.StoreInDFM := True;
DM.ZQuery.Open;
Cont:=0;
PrintCabecalho(Cont);
ColumnHeader:=Tfrbandview.Create;
ColumnHeader.BandType:=btColumnHeader;
ColumnHeader.SetBounds(left,top,width,900);
page.Objects.Add(ColumnHeader);
SetLength(MemoVT,5);
while not DM.ZQuery.Eof do
begin
col:=0;
// Campo Nome Cidade
TempLeft:=20;
MemoVt[col]:=TfrMemoview.Create;
MemoVt[col].Font.Name:='Tahoma';
MemoVt[col].Font.Size:=8;
MemoVt[col].Memo.Add(DM.ZQuery.FieldByName('CID_DESCRICAO').AsString);
MemoVt[col].FrameTyp:=0;
TempWidth:=300;
MemoVt[col].SetBounds(TempLeft,top,tempWidth,15);
Templeft:=TempLeft+tempwidth+10;
page.Objects.Add(MemoVt[col]);
// Campo UF
col:=1;
MemoVt[col]:=TfrMemoview.Create;
MemoVt[col].Font.Name:='Tahoma';
MemoVt[col].Font.Size:=8;
MemoVt[col].Memo.Add(DM.ZQuery.FieldByName('CID_UF').AsString);
MemoVt[col].FrameTyp:=0;
TempWidth:=50;
MemoVt[col].SetBounds(TempLeft,top,tempWidth,15);
Templeft:=TempLeft+tempwidth;
page.Objects.Add(MemoVt[col]);
//
Top:=Top+15;
DM.ZQuery.Next;
if (not DM.ZQuery.Eof) and (Top >= 1000) then
begin
Inc(Cont);
PrintRodape;
PrintCabecalho(Cont);
ColumnHeader:=Tfrbandview.Create;
ColumnHeader.BandType:=btColumnHeader;
ColumnHeader.SetBounds(left,top,width,900);
page.Objects.Add(ColumnHeader);
SetLength(MemoVT,5);
end;
end;
PrintRodape;
fr.ShowReport;
//fr.DesignReport;
fr.Free;
DM.ZQuery.Close;
end;


Coloque um Botão no formulário, chamando o procedimento de Impressão, conforme abaixo:

procedure TForm2.btImprimirClick(Sender: TObject);
begin
DM.ZQuery.Close;
DM.ZQuery.SQL.Clear;
DM.ZQuery.SQL.Add('SELECT * ');
DM.ZQuery.SQL.Add('FROM CIDADE');
DM.ZQuery.Open;
FrPrint('RELATÓRIO ::: TURBO DELPHI EXPLORER',Form2);
DM.ZQuery.Close;
end;

Rave modo programado

Gerando um relatório Rave em modo programado:


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, RPRender, RpDefine, RpBase, RpSystem, RPDevice;

type
TForm1 = class(TForm)
BtImprimir: TButton;
procedure BtImprimirClick(Sender: TObject);
procedure RvSystemMPPrintHeader(Sender: TObject);
procedure RvSystemMPPrint(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
Procedure PrintReport(TamPapel: String);
procedure CabecalhoRelatorio(Titulo1,Titulo2,Titulo3: String);
procedure Relatorio;
public
{ Public declarations }
RvSystemMP: TRvSystem; // Modo Programado
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.PrintReport(TamPapel: String);
begin
RvSystemMP.SystemPrinter.MarginTop:=1;
RvSystemMP.SystemPrinter.MarginLeft:=1;
RvSystemMP.SystemPrinter.MarginRight:=1;
RvSystemMP.SystemPrinter.MarginBottom:=1;
RvSystemMP.SystemPrinter.MarginBottom:=1;
RvSystemMP.SystemPrinter.Units:=unCM;
RvSystemMP.SystemPrinter.UnitsFactor:=2.54;
RvSystemMP.SystemFiler.AccuracyMethod:=amAppearance;
rpDev.SelectPaper(TamPapel,False);
rpDev.Copies:=1;
RvSystemMP.SystemPrinter.Copies:=rpDev.Copies;
rpDev.Orientation:=poPortrait;
RvSystemMP.SystemPrinter.Orientation:=rpDev.Orientation;
RvSystemMP.SystemPreview.RulerType:=rtBothCm;
RvSystemMP.SystemSetups:=RvSystemMP.SystemSetups-[ssAllowSetup];
RvSystemMP.SystemPreview.FormState:=wsMaximized;
RvSystemMP.OnPrintHeader:=RvSystemMPPrintHeader;
RvSystemMP.OnPrint:=RvSystemMPPrint;
RvSystemMP.Execute;
end;

procedure NextLine(RVSystem:TRVSystem);
begin
RVSystem.BaseReport.NewLine;
if RVSystem.BaseReport.LinesLeft = 0 then
RVSystem.BaseReport.NewPage;
end;

procedure TForm1.CabecalhoRelatorio(Titulo1,Titulo2,Titulo3: String);
begin
with RvSystemMP.BaseReport do
begin
SetFont('Tahoma',14);
MarginTop:=0.5;
Home;
PrintHeader(Titulo1,pjLeft);
MarginTop:=MarginTop+LineHeight;
Home;
SetFont('Tahoma',8);
PrintHeader(Titulo2,pjLeft);
PrintHeader('Página '+Macro(midCurrentPage)+'/'+Macro(midTotalPages),pjRight);
MarginTop:=MarginTop+LineHeight;
Home;
PrintHeader(Titulo3,pjLeft);
PrintHeader('Data '+FormatDateTime('dd/mm/yyyy',now()),pjRight);
Canvas.Pen.Width:=2;
Canvas.Pen.Color:=clBlack;
MoveTo(MarginLeft,YPos+0.3);
LineTo(PageWidth-MarginRight,YPos+0.3);
Bold:=True;
MarginTop:=MarginTop+LineHeight+0.5;
Home;
PrintLeft('Categoria',1);
PrintLeft('Produto',6);
PrintLeft('Cidade',12);
PrintRight('Vendas',20.5);
Canvas.Pen.Width:=2;
Canvas.Pen.Color:=clBlack;
MoveTo(MarginLeft,YPos+0.1);
LineTo(PageWidth-MarginRight,YPos+0.1);
Bold:=False;
MarginTop:=MarginTop+LineHeight+0.2;
Home;
AdjustLine;
end;
end;

procedure TForm1.Relatorio;
var
i: Word;
begin
for i:=1 to 300 do
begin
RvSystemMP.BaseReport.PrintLeft('PRESTADOR DE SERVIÇOS',1);
RvSystemMP.BaseReport.PrintLeft('DESENVOLVIMENTO DE SOFTWARES',6);
RvSystemMP.BaseReport.PrintLeft('IBIPORÃ - PR',12);
RvSystemMP.BaseReport.PrintRight('1.200,00',20.5);
NextLine(RvSystemMP);
end;
end;

procedure TForm1.RvSystemMPPrintHeader(Sender: TObject);
begin
CabecalhoRelatorio('EMPRESA: AMDsoFtwares','RELATÓRIO DE VENDAS','ANO: 2008');
end;

procedure TForm1.RvSystemMPPrint(Sender: TObject);
begin
Relatorio;
end;

procedure TForm1.BtImprimirClick(Sender: TObject);
begin
RvSystemMP:=TRvSystem.Create(Self);
PrintReport('Carta');
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
RvSystemMP.Free;
end;

end.

Nova versão do ZEOS



Acaba de ser lançada a versão 6.6.2 RC do ZeosDBO, trazendo diversas correções de bugs, incluindo vários exemplos de uso do Zeos com o Firebird.

download

Gerar arquivo XML para ANVISA (SNGPC)

O SNGPC é constituído por um ambiente de recebimento de dados (XML) da ANVISA.
Estes dados deverão ser enviados com estrutura e extensão XML.
Estes conterão as movimentações diárias de medicamentos e substâncias sujeitas a controle especial que deverão ser enviadas eletronicamente pela internet para a ANVISA via SNGPC.

SNGPC :: Sistema Nacional de Gerenciamento de Produtos Controlados

Segue abaixo um exemplo de exportação de dados para XML, em Delphi7
Ainda não foi testado, serve apenas como ponto de partida para quem estiver com dificuldades.


implementation

{$R *.dfm}

uses XMLIntf, XMLDoc;

procedure TForm1.Button1Click(Sender: TObject);
var
i,x: Word;
NCorpo,NMedicamento,NData: IXMLNode;
XMLDoc: TXMLDocument;
begin
x:=1;
//x:=10;
// Cria o documento
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:='99999999000199';
ChildNodes.Last.AddChild ('cpfTransmissor').NodeValue:='00000000000';
ChildNodes.Last.AddChild('dataInicio').NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes.Last.AddChild('dataFim').NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
end;
NCorpo:=DocumentElement.AddChild('corpo');
// *************************** MEDICAMENTO *********************************
NMedicamento:=NCorpo.AddChild('medicamentos');
// Loop das [Entradas] :: MEDICAMENTO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('entradaMedicamentos');
with NData do
begin
ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['numeroNotaFiscal'].NodeValue:=IntToStr(i);
// [tipoOperacaoNotaFiscal]
// 1 Compra
// 2 Transferência
// 3 Venda
ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:='1';
ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['dataNotaFiscal'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['cnpjOrigem'].NodeValue:='99999999000199';
ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['cnpjDestino'].NodeValue:='99999999000199';
ChildNodes['medicamentoEntrada'].ChildNodes['registroMSMedicamento'].NodeValue:='1010000750061';
ChildNodes['medicamentoEntrada'].ChildNodes['numeroLoteMedicamento'].NodeValue:='RV365';
ChildNodes['medicamentoEntrada'].ChildNodes['quantidadeMedicamento'].NodeValue:='12';
ChildNodes['dataRecebimentoMedicamento'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// Loop das [Saidas] :: MEDICAMENTO
for i:=1 to x 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)
ChildNodes['tipoReceituarioMedicamento'].NodeValue:='1';
ChildNodes['numeroNotificacaoMedicamento'].NodeValue:='213213';
ChildNodes['dataPrescricaoMedicamento'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['prescritorMedicamento'].ChildNodes['nomePrescritor'].NodeValue:='XFULANO';
ChildNodes['prescritorMedicamento'].ChildNodes['numeroRegistroProfissional'].NodeValue:='99999';
// [conselhoProfissional]
// CRM Conselho Regional de Medicina
// CRMV Conselho Regional de Medicina Veterinária
// CRO Conselho Regional de Odontologia
ChildNodes['prescritorMedicamento'].ChildNodes['conselhoProfissional'].NodeValue:='CRM';
ChildNodes['prescritorMedicamento'].ChildNodes['UFConselho'].NodeValue:='PR';
// [usoMedicamento]
// 1 Humano
// 2 Veterinario
ChildNodes['usoMedicamento'].NodeValue:='1';
ChildNodes['compradorMedicamento'].ChildNodes['nomeComprador'].NodeValue:='XCICLANO';
// [tipoDocumento]
// 1 CARTEIRA DE REGISTRO PROFISSIONAL
// 2 CARTEIRA DE IDENTIDADE . . . existem mais
ChildNodes['compradorMedicamento'].ChildNodes['tipoDocumento'].NodeValue:='1';
ChildNodes['compradorMedicamento'].ChildNodes['numeroDocumento'].NodeValue:='123';
ChildNodes['compradorMedicamento'].ChildNodes['orgaoExpedidor'].NodeValue:='SSP';
ChildNodes['compradorMedicamento'].ChildNodes['UFEmissaoDocumento'].NodeValue:='PR';
ChildNodes['medicamentoVenda'].ChildNodes['registroMSMedicamento'].NodeValue:='1010000430215';
ChildNodes['medicamentoVenda'].ChildNodes['numeroLoteMedicamento'].NodeValue:='RGJ0400';
ChildNodes['medicamentoVenda'].ChildNodes['quantidadeMedicamento'].NodeValue:='3';
ChildNodes['dataVendaMedicamento'].NodeValue := FormatDateTime('yyyy-mm-dd',Date);
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);
// [tipoOperacaoNotaFiscal]
// 1 Compra
// 2 Transferência
// 3 Venda
ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:='2';
ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['dataNotaFiscal'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['cnpjOrigem'].NodeValue:='99999999000199';
ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['cnpjDestino'].NodeValue:='99999999000199';
ChildNodes['medicamentoTransferencia'].ChildNodes['registroMSMedicamento'].NodeValue:='1058302590029';
ChildNodes['medicamentoTransferencia'].ChildNodes['numeroLoteMedicamento'].NodeValue:='153353';
ChildNodes['medicamentoTransferencia'].ChildNodes['quantidadeMedicamento'].NodeValue:='2';
ChildNodes['dataTransferenciaMedicamento'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// 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:='1010000750061';
ChildNodes['medicamentoPerda'].ChildNodes['numeroLoteMedicamento'].NodeValue:='RV365';
ChildNodes['medicamentoPerda'].ChildNodes['quantidadeMedicamento'].NodeValue:='2';
ChildNodes['dataPerdaMedicamento'].NodeValue := FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// *************************************************************************
// ********************************* INSUMO ********************************
NMedicamento:=NCorpo.AddChild('insumos');
// Loop das [Entradas] :: INSUMO
for i:=1 to x 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:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['cnpjOrigem'].NodeValue:='99999999000199';
ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['cnpjDestino'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoEntrada'].ChildNodes['insumoEntrada'].ChildNodes['codigoInsumo'].NodeValue:='0075';
ChildNodes['substanciaInsumoEntrada'].ChildNodes['insumoEntrada'].ChildNodes['numeroLoteInsumo'].NodeValue:='788cpf';
ChildNodes['substanciaInsumoEntrada'].ChildNodes['insumoEntrada'].ChildNodes['insumoCNPJFornecedor'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoEntrada'].ChildNodes['quantidadeInsumoEntrada'].NodeValue:='40000.0';
ChildNodes['substanciaInsumoEntrada'].ChildNodes['tipoUnidadeEntrada'].NodeValue:='1';
ChildNodes['dataRecebimentoInsumo'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// Loop das [Saidas] :: INSUMO
for i:=1 to x 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:='9897651';
ChildNodes['dataPrescricaoInsumo'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['prescritorInsumo'].ChildNodes['nomePrescritor'].NodeValue:='Dr. Antenor';
ChildNodes['prescritorInsumo'].ChildNodes['numeroRegistroProfissional'].NodeValue:='8888';
// [conselhoProfissional]
// CRM Conselho Regional de Medicina
// CRMV Conselho Regional de Medicina Veterinária
// CRO Conselho Regional de Odontologia
ChildNodes['prescritorInsumo'].ChildNodes['conselhoProfissional'].NodeValue:='CRM';
ChildNodes['prescritorInsumo'].ChildNodes['UFConselho'].NodeValue:='PR';
ChildNodes['usoInsumo'].NodeValue:='1';
ChildNodes['compradorInsumo'].ChildNodes['nomeComprador'].NodeValue:='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:='89786453';
ChildNodes['compradorInsumo'].ChildNodes['orgaoExpedidor'].NodeValue:='SSP';
ChildNodes['compradorInsumo'].ChildNodes['UFEmissaoDocumento'].NodeValue:='PR';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].NodeValue:='';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].ChildNodes['codigoInsumo'].NodeValue:='02904';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].ChildNodes['numeroLoteInsumo'].NodeValue:='123dzp';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].ChildNodes['insumoCNPJFornecedor'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['quantidadeDeInsumoPorUnidadeFarmacotecnica'].NodeValue:='5.0';
// [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:=FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// Loop das [Transferencias] :: INSUMO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('saidaInsumoTransferencia');
with NData do
begin
ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['numeroNotaFiscal'].NodeValue:=IntToStr(i);
// [tipoOperacaoNotaFiscal]
// 1 Compra
// 2 Transferência
// 3 Venda
ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:='2';
ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['dataNotaFiscal'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['cnpjOrigem'].NodeValue:='99999999000199';
ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['cnpjDestino'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoTransferencia'].ChildNodes['insumoTransferencia'].ChildNodes['codigoInsumo'].NodeValue:='02904';
ChildNodes['substanciaInsumoTransferencia'].ChildNodes['insumoTransferencia'].ChildNodes['numeroLoteInsumo'].NodeValue:='15353';
ChildNodes['substanciaInsumoTransferencia'].ChildNodes['insumoTransferencia'].ChildNodes['insumoCNPJFornecedor'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoTransferencia'].ChildNodes['quantidadeInsumoTransferencia'].NodeValue:='20000.0';
ChildNodes['substanciaInsumoTransferencia'].ChildNodes['tipoUnidadeTransferencia'].NodeValue:='1';
ChildNodes['dataTransferenciaInsumo'].NodeValue :=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';
ChildNodes['substanciaInsumoPerda'].ChildNodes['quantidadeInsumoPerda'].NodeValue:='12345.0';
ChildNodes['substanciaInsumoPerda'].ChildNodes['tipoUnidadePerda'].NodeValue:='1';
ChildNodes['dataPerdaInsumo'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['cnpjFornecedorInsumo'].NodeValue:='99999999000199';
end;
end;
// *************************************************************************
SaveToFile(ExtractFileDir(Application.ExeName)+'\Sngpc_'+FormatDateTime('dd_mm_yyyy',Date)+'.xml');
end;
XMLDoc.Active:=False;
XMLDoc.Free;
end;

Procurar neste site . . .