| Últimas 20 atualizações de Luis Carlos Godinho |
|
|
Olá!
Depois de algum tempo sem postar artigos, estou de volta com este artigo falando sobre como utilizar o componente AcBr para trabalhar com emissão de boletos. No que sei, um dos meios mais utilizados para este controle de emissão de boletos é através do o uso de DLL de terceiros, porém depende de licença para uso, sendo assim criei este pequeno tutorial mostrando de forma simples como utilizar o componente AcBrBoleto.
Para exemplificar, criei um pequeno banco de dados no firebird 2.5, com apenas três tabelas básicas para o nosso controle. São elas “Contas”, “Banco” e “Config”, segue abaixo o script das mesmas:
Tabela usada para armazenar as contas dos clientes (contas a receber)
CREATE SEQUENCE CONTAS_ID;
CREATE TABLE CONTAS (
ID INTEGER NOT NULL,
NUMCONTA VARCHAR(10),
SERIE CHAR(3),
DATA_CONTA DATE,
DATA_VENC DATE,
VALOR_CONTA DOUBLE PRECISION,
VALOR_DESCONTO DOUBLE PRECISION,
VALOR_ACRESCIMO DOUBLE PRECISION,
JUROS DOUBLE PRECISION,
MULTA DOUBLE PRECISION,
DATA_QUIT DATE,
VALOR_QUITATO DOUBLE PRECISION,
CLIENTE VARCHAR(50),
ENDERECO VARCHAR(50),
NUMERO VARCHAR(10),
COMPLEMENTO VARCHAR(10),
BAIRRO VARCHAR(20),
CIDADE VARCHAR(20),
CEP VARCHAR(10),
UF CHAR(2),
CNPJ_CPF VARCHAR(14),
INSCRICAO_RG VARCHAR(14),
NOSSO_NUMERO VARCHAR(30),
BOLETO_IMPRESSO CHAR(3)
);
ALTER TABLE CONTAS ADD CONSTRAINT PK_CONTAS PRIMARY KEY (ID);
Tabela usada para armazenar os dados bancários da empresa
CREATE SEQUENCE BANCO_ID;
CREATE TABLE BANCO (
ID INTEGER NOT NULL,
NUMERO_BANCO VARCHAR(5),
DIGITO_NUMERO_BANCO CHAR(1),
NOME_BANCO VARCHAR(50),
NOME_AGENCIA VARCHAR(50),
NUMERO_AGENCIA VARCHAR(10),
DIGITO_AGENCIA CHAR(1),
NUMERO_CONTA VARCHAR(20),
DIGITO_CONTA CHAR(1),
CIADE_AGENCIA VARCHAR(20),
UF_AGENCIA CHAR(2),
NOSSO_NUMERO INTEGER,
CEDENTE VARCHAR(50),
COD_CEDENTE VARCHAR(20)
);
ALTER TABLE BANCO ADD CONSTRAINT PK_BANCO PRIMARY KEY (ID);
Tabela usada para armazenar as configurações referentes a boletas
CREATE SEQUENCE CONFIG_ID;
CREATE TABLE CONFIG (
ID INTEGER NOT NULL,
PATH_REMESSA VARCHAR(100),
PATH_RETORNO VARCHAR(100),
PATH_LOGOTIPO VARCHAR(100),
PATH_GERARPDF VARCHAR(100),
MENSAGEM VARCHAR(250),
DIAS_PROTESTO INTEGER,
ESPECIE VARCHAR(3),
MOEDA VARCHAR(3),
ACEITE CHAR(3),
CARTEIRA CHAR(3),
LOCAL_PAGTO VARCHAR(100),
INSTRUCAO_1 VARCHAR(100),
INSTRUCAO_2 VARCHAR(100),
CONT_REMESSA INTEGER
);
ALTER TABLE CONFIG ADD CONSTRAINT PK_CONFIG PRIMARY KEY (ID);
Com estas tabelas criadas no banco de dados, vamos ao projeto.
Partindo do ponto de vista que esteja com o componente AcBrBoleto devidamente instalado, abra um novo projeto no Delphi e adicione os componentes de conexão com o banco de dados e respectivos componentes para acessar as tabelas criadas anteriormente. No meu caso aqui prefiro trabalhar com os componentes da paleta dbExpress e Data Acess, mas use o que lhe parecer melhor.
Adicione também um componente “ACBrBoleto1” e um “ACBrBoletoFCQuick1”. Observe que o AcBr disponibiliza algumas opções para imprimir o boleto. Dentre elas estão os componentes para Rave Report, Fortes Report e Quick Report. No caso estou usando o Quick Report, mas para usar qualquer um dos outros, basta ter o componente do tipo instalado e efetivar a ligação com o componente ACBrBoleto1.
Veja como ficou a tela que montei aqui:

Figura 1.
No botão direcionado para “Localizar” as contas adicione os seguintes códigos:
// fecha os componentes de acesso a tabela
CdsContas.Close;
CdsContas.Params.Clear;
SQLContas.Close;
SQLContas.SQL.Clear;
// passa a SQL para captura das contas em aberto e sem emissão do boleto
SQLContas.SQL.Add('select * from contas');
SQLContas.SQL.Add('where contas.data_conta >= :pDatai');
SQLContas.SQL.Add('and contas.data_conta <= :pDataf');
SQLContas.SQL.Add('and contas.boleto_impresso = '+QuotedStr('NAO'));
SQLContas.SQL.Add('and contas.data_quit is null');
// passa os paramentos de consulta para os componentes
CdsContas.FetchParams;
CdsContas.Par
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|

Nesta parte do artigo, vamos criar um pequeno projeto na plataforma de desenvolvimento lazarus, para realizar a execução das possíveis funções existentes em uma DLL criada no próprio lazarus ou em outra plataforma de desenvolvimento. Primeiramente vamos criar um novo projeto na IDE do lazarus selecionando através do menu principal a opção File->New, e na janela que se abre selecione a opção “Project” e “Aplication” conforme imagem abaixo: 
Agora monte o formulário principal conforme o mostrado na imagem abaixo: É importante lembrar que devemos adicionar a Unit “ShareMem” na uses de nosso projeto para evitar problemas com os campos do tipo String. Veja o exemplo na imagem abaixo: Agora vamos fazer a declaração da função da DLL em nosso projeto para logo após programar o código que utilizará esta rotina. Para realizar esta declaração use o código abaixo imediatamente antes da classe “var”:
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Neste tutorial vou esta demonstrando de forma prática como se criar DLL usando a plataforma de desenvolvimento Free Pascal chamada Lazarus em sua versão 0.9.28.2. Sem mais delongas, vamos por as mãos na obra. O primeiro passo, após abrir a IDE do lazarus, será fechar todos os arquivos que porventura estejam abertos, lembrando que o lazarus tem a característica de recuperar o último projeto alterado. Já com os arquivos fechados, selecione no menu principal a opção File->New e na janela que se abre, localize a opção “Project” e “Library”, conforme demonstrado na imagem abaixo: Na seqüência clique em “OK” para confirmar. Agora salve o projeto em uma pasta de sua preferência com o nome de DLLLazarus ou como preferir, e em seguida selecione no menu principal a opção Projetct->View Source para que possamos visualizar os códigos do mesmo. Deverá ser apresentada uma estrutura conforme a imagem abaixo:
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|

Tempo: 00:15:36 Mini Resumo: Nesta vídeoaula, vamos conhecer como utilizar os componentes e recursos disponibilizados na paleta “STANDART” do lazarus. Vamos ver e entender mais especificamente como criar menus principais utilizando o componente TMainMenu e também como criar menus popup através do componente TPopupMenu, onde realizaremos as devidas comparações entre as diferentes formas de uso do editor de menu do Lazarus e do Delphi. Vamos também simular o uso desta para conhecermos na prática se uso. Metodologia de desenvolvimento do exemplo: A metodologia deste curso se dá no conhecimento dos recursos disponíveis nesta ferramenta free pascal chamada Lazarus. Neste curso vamos ver o funcionamento de componentes básicos desta IDE, como os da paleta de componentes Standart e Additional até os componentes específicos como os de conexão com o banco de dados TSQLConector e TOBDCConection da paleta SQLDb e TChart e TDBChartSource da paleta Chart. Tecnologias utilizadas: IDE Lazarus Exemplos construídos: Criação de Menus Palavras chaves: Lazarus, Firebird, SQLDb, DataAcess. -->">
|
|
|
|

Tempo: 00:14:29 Mini Resumo: Nesta vídeoaula, vamos conhecer e comentar os recursos do editor de códigos fontes da plataforma lazarus, onde selecione dentro os muitos disponíveis alguns que considero de grande valia no momento de estar codificando uma aplicação. Dentre estes selecionados destaco o recurso do “Syncron” que como o próprio nome sugere, realiza o sincronismo entre um bloco de códigos do sistema. Conheceremos também os recursos da complementação de códigos e o de templates. Metodologia de desenvolvimento do exemplo: A metodologia deste curso se dá no conhecimento dos recursos disponíveis nesta ferramenta free pascal chamada Lazarus. Neste curso vamos ver o funcionamento de componentes básicos desta IDE, como os da paleta de componentes Standart e Additional até os componentes específicos como os de conexão com o banco de dados TSQLConector e TOBDCConection da paleta SQLDb e TChart e TDBChartSource da paleta Chart. Tecnologias utilizadas: IDE Lazarus Exemplos construídos: Exemplo de recursos do editor Palavras chaves: Lazarus, Firebird, SQLDb, DataAcess. -->">
|
|
|
|

Tempo: 14:46 Mini Resumo: Nesta primeira vídeoaula deste curso, vamos conhecer um pouco a IDE do lazarus e fazer algumas comparações com a IDE do delphi 7, onde veremos que a mesma é bem parecida. Será apresentado as paletas de componentes, as opções de menu principal, Opções de configuração da IDE e para adicionar componentes e também opções de atalhos que são praticamente as mesmas do Delphi. Faremos uma compilação de um simples projeto apenas para analisarmos o funcionamento. Metodologia de desenvolvimento do exemplo: A metodologia deste curso se dá no conhecimento dos recursos disponíveis nesta ferramenta free pascal chamada Lazarus. Neste curso vamos ver o funcionamento de componentes básicos desta IDE, como os da paleta de componentes Standart e Additional até os componentes especícos como os de conexão com o banco de dados TSQLConector e TOBDCConection da paleta SQLDb e TChart e TDBChartSource da paleta Chart. Tecnologias utilizadas: IDE Lazarus Exemplos construídos: Exemplo de compilação de projetos Palavras chaves: Lazarus, Firebird, SQLDb, DataAcess. -->">
|
|
|
|
Olá! Neste tutorial vou mostrar passo a passo uma forma que encontrei para estar trabalhando com os bancos de dados Interbase 7.5 e Firebird 2.5 simultaneamente no mesmo micro. Após algumas pesquisas na internet, encontrei apenas informações de como o fazer utilizando versões anteriores destas ferramentas, e por este motivo resolvi compartilhar esta solução. Vamos lá: O primeiro passo e remover as ferramentas instaladas, mesmo que em única instalação (Firebird ou Interbase apenas) do micro no qual se deseja usar. Observação: È extremamente necessário a remoção de todos os arquivos GDS32.DLL e FBCLIENT.DLL do micro, em todas as pastas que possam intervir no uso dos aplicativos. Realizado esta remoção total, vamos realizar a instalação do Interbase 7.5, lembrando apenas que em caso de uso do sistema operacional Windows 7, será necessário conferir a compatibilidade do Interbase com este. Na Instalação do interbase, mantenha a porta padrão “3050”, usada pela ferramenta e também pelo Firebird. Veja imagem abaixo:
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|

Nesta terceira e última etapa deste tutorial, vamos ver como realizar a chamada do formulário de cadastro de clientes que esta situado dentro do arquivo “PkgModular.Bpl”. É importante ressaltar que trabalhando desta forma, poderemos realizar diversos tipos de alteração no formulário e distribuir estas alterações apenas substituindo o arquivo bpl do usuário final, não havendo assim a necessidade de alteração do arquivo executável, o que poderá garantir a estabilidade da versão em caso de necessidade de pequenas correções de telas e funções. Então vamos lá: Primeiramente abra o aplicativo criado inicialmente e vamos criar uma pequena procedure padrão para realização da chamada dos diversos formulários criados em arquivos Bpl. Segue abaixo o código deste proecedure:
procedure TFrmPrincipal.AbreFormularioBpl(NomeClasse: String);
var Classe: TPersistentClass;
begin
Classe := GetClass(NomeClasse);
if Classe <> nil then
begin
with TComponentClass(Classe).Create(Application) as TC
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Na seqüência do artigo, vamos iniciar o procedimento de modularização do aplicativo. O primeiro passo será ativar a aplicação para que a mesma consiga acessar os packages em tempo de execução. Para isso, com a aplicação aberta no Delphi, vá ao menu principal na opção Project->Options, e na janela que se abre selecione a aba Packages. Com a aba selecionada, marque a opção “Build with runtime packages”. Veja exemplo na figura abaixo:
Imagem 04 – Project->Options. Agora precisaremos também remover os formulários que serão separados em módulos, no caso do exemplo, o formulários de cadastro de clientes. Para fazer isso vá ao menu principal na opção Project->Remove from Project..., selecione o formulário desejado e clique em OK. Pronto o formulário já foi removido do projeto. Agora vamos criar a package. Para isso vamos salvar o projeto atual aberto no Delphi e vamos inserir um novo package. Para isso vá ao menu principal na opção File->New->Other. Agora na aba New selecione o ícone Package e clique em OK. Este procedimento irá criar o novo package.
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Olá pessoal! Recentemente fui questionado sobre o funcionamento da modularização de aplicações desenvolvidas em Delphi, através de Bpl’s e confesso que ainda não havia trabalhado com este recurso. Após realizar uma pesquisa sobre o funcionamento, descobri que é realmente um excelente recurso. Principalmente para grandes aplicações, onde poderá ser reduzido significativamente o tamanho do executável, ou para aplicações onde o executável não pode ser alterado. De qualquer forma, não me prenderei em grandes explicações sobre as vantagens de desvantagens, pois já podemos encontra ma internet, diversos artigos falando sobre o assunto. O grande ponto deste tutorial será a demonstração da modularização de uma aplicação pronta, usando de recursos simples e práticos. Então vamos lá: Primeiramente vamos criar uma pequena aplicação de cadastro de clientes, que será usada como exemplo. Para isso criemos um pequeno banco de dados utilizando o firebird. Segue o script:
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|

Tempo: 18:57 min
Mini resumo: Neste vídeo aula, vamos concluir a programação da rotina que realizará
a copia dos dados da tabela de origem para a tabela de destino, seguindo a
configuração gravada no arquivo de esquema de repasse. Serão apresentados os
processos finais da rotina onde entenderemos a estrutura básica da função.
Vamos ao final de tudo, realizar um repasse de teste, onde teremos por base um
esquema simples de apenas uma tabela que foi previamente criado para a
finalidade, e veremos o resultado através do aplicativo IBExpert.
Metodologia de desenvolvimento do exemplo: A
metodologia do curso é baseada na criação de um projeto para repasse de dados entre
bancos de mesma estrutura ou diferentes, podendo ser DBF/Paradox,
Firebird/Interbase, Acess, SQLServer ou MySQL. Utilizaremos para isso o delphi
7 com seus componentes de conexão com banco de dados BDe e ADO. Serão montados dois projetos. O primeiro para gravar as
configurações de conexão através da classe TIniFile, e o segundo para realizará
o processamento.
Tecnologias utilizadas: Delphi, BDe, Ado, ClientDataSet.
Exemplos construídos: Aplicação para repassar dados entre banco de
dados.
Palavras-chave: Delphi, DBF, SQL Server,
MySQL, MS Acess.
-->">
|
|
|
|
Neste curso veremos a criação das rotinas usadas para gerar a Nota Fiscal Eletrônica utilizando o AcBr. Para isso vamos criar um formulário onde o cliente usuário do sistema, poderá efetuar uma consulta dinâmica dos dados previamente cadastrados em nossa base, através da nossa tela de lançamento de pedidos, onde serão oferecidas algumas opções de pesquisa, como por exemplo, por período de data, mesclando com nome do cliente, ou código do cliente, ou numero do pedido. Os dados selecionados serão exibidos numa grid, e a partir daí o usuário poderá gerar a NFe.
-->">
|
|
|
|

Tempo: 18:51 min
Mini resumo: Neste vídeo aula, vamos entender o processo básico do funcionamento da
rotina que realizara a copia das informações do banco de dados de origem para o
banco de dados de destino. Através de uma estrutura onde faremos uma seleção
das opções do tipo de banco de origem e uma sub-opção do tipo de banco de dados
de destino para em conformidade com a configuração realizar a transição das
informações. Veremos também a aplicação dos recursos de campo fixo e
auto-incremental, pré-selecionados na montagem do esquema de repasse.
Metodologia de desenvolvimento do exemplo: A
metodologia do curso é baseada na criação de um projeto para repasse de dados entre
bancos de mesma estrutura ou diferentes, podendo ser DBF/Paradox,
Firebird/Interbase, Acess, SQLServer ou MySQL. Utilizaremos para isso o delphi
7 com seus componentes de conexão com banco de dados BDe e ADO. Serão montados dois projetos. O primeiro para gravar as
configurações de conexão através da classe TIniFile, e o segundo para realizará
o processamento.
Tecnologias utilizadas: Delphi, BDe, Ado, ClientDataSet.
Exemplos construídos: Aplicação para repassar dados entre banco de
dados.
Palavras-chave: Delphi, DBF, SQL Server,
MySQL, MS Acess.
-->">
|
|
|
|

Tempo: 23:05 min
Mini resumo: Neste vídeo aula, vamos iniciar o desenvolvimento da principal função
do sistema de repasse de dados dinâmico. Esta função será responsável pela
captura dos dados no banco de origem e envio para o banco de destino.
Conheceremos os processos iniciais desta rotina que é de grande complexidade.
Vamos ver como efetuar a ligação das tabelas de origem e destino e a captura de
dados básicos que irão nos auxiliar no desenvolvimento geral deste passo.
Metodologia de desenvolvimento do exemplo: A
metodologia do curso é baseada na criação de um projeto para repasse de dados entre
bancos de mesma estrutura ou diferentes, podendo ser DBF/Paradox,
Firebird/Interbase, Acess, SQLServer ou MySQL. Utilizaremos para isso o delphi
7 com seus componentes de conexão com banco de dados BDe e ADO. Serão montados dois projetos. O primeiro para gravar as
configurações de conexão através da classe TIniFile, e o segundo para realizará
o processamento.
Tecnologias utilizadas: Delphi, BDe, Ado, ClientDataSet.
Exemplos construídos: Aplicação para repassar dados entre banco de
dados.
Palavras-chave: Delphi, DBF, SQL Server,
MySQL, MS Acess.
-->">
|
|
|
|

Tempo: 20:18 min
Mini resumo: Neste vídeo aula, vamos iniciar a programação das rotinas para realizar
o processamento dos dados do esquema em nosso projeto de repasse de dados
dinâmico. Para isso vamos adicionar no OnClick do botão destinado ao
processamento, algumas verificações e na seqüência vamos adicionar algumas
procedures e funções que serão necessárias para a realização deste
processamento. Vamos também inserir mais uma opção, que será para o usuário
determinar se deverá ou não apagar os dados existentes nas tabelas de destino.
Metodologia de desenvolvimento do exemplo: A
metodologia do curso é baseada na criação de um projeto para repasse de dados entre
bancos de mesma estrutura ou diferentes, podendo ser DBF/Paradox,
Firebird/Interbase, Acess, SQLServer ou MySQL. Utilizaremos para isso o delphi
7 com seus componentes de conexão com banco de dados BDe e ADO. Serão montados dois projetos. O primeiro para gravar as
configurações de conexão através da classe TIniFile, e o segundo para realizará
o processamento.
Tecnologias utilizadas: Delphi, BDe, Ado, ClientDataSet.
Exemplos construídos: Aplicação para repassar dados entre banco de
dados.
Palavras-chave: Delphi, DBF, SQL Server,
MySQL, MS Acess.
-->">
|
|
|
|

Tempo: 16:04 min
Mini resumo: Neste vídeo aula, vamos programar em nosso projeto
de repasse de dados dinâmico, os comando responsáveis por inserir no
ClientDataset do esquema de repasse, os dados referente às ligações das tabelas
e campos de origem e destino. Vamos neste procedimento realizar algumas
verificações de segurança para impedir o mal funcionamento do repasse, e na
seqüência realizar a tarefa. Vamos também verificar as opções de campo de
preenchimento automático ou de preenchimento com um valor fixo.
Metodologia de
desenvolvimento do exemplo: A
metodologia do curso é baseada na criação de um projeto para repasse de dados entre
bancos de mesma estrutura ou diferentes, podendo ser DBF/Paradox,
Firebird/Interbase, Acess, SQLServer ou MySQL. Utilizaremos para isso o delphi
7 com seus componentes de conexão com banco de dados BDE e ADO. Serão montados dois projetos. O primeiro para gravar as
configurações de conexão através da classe TIniFile, e o segundo para realizará
o processamento.
Tecnologias
utilizadas: Delphi, BDE, Ado,
ClientDataSet.
Exemplos
construídos: Aplicação para repassar dados entre banco de dados.
Palavras-chave: Delphi,
DBF, SQL Server, MySQL, MS Acess.
-->">
|
|
|
|
Neste Curso vamos ver de uma forma
simples e bem detalhada, uma forma de se criar uma aplicação para realizar
repasse de dados de um banco de dados para outro, sendo estes de diferentes
estruturas, por exemplo: Firebird, SQL Server, MySQL ou MsAcess. Ou até mesmo
repassar dados de uma tabela para outra dentro do mesmo banco de
dados.
Vamos utilizar recursos do Delphi 7,
como os da paleta ADO e DbExpress, que também poderá aplicado no Delphi 2010,
para conectar com estes diferentes tipos de banco de
dados.
A base do sistema se resume na
criação de esquemas de repasses, que serão gravados em arquivos XML, e
posteriormente, utilizaremos estes esquemas para capturar os dados nas tabelas
de origem para enviar para as tabelas de destino.
Serão também adicionadas rotinas para
realizar a leitura dos detalhes de cada tabela do banco, e de cada campo da
tabela, facilitando assim a criação dos esquemas de
repasses.
Em resumo, este curso é uma boa
oportunidade de conhecer algumas formas de conexão com os bancos de dados, além
de facilitar para pessoas que precisam constantemente de criar aplicações de
repasse para alimentar bancos de dados, ou seja, em uma única aplicação poderá
ser realizado esta tarefa.
-->">
|
|
|
|

Tempo: 19:01 min
Mini resumo: Neste vídeo aula, vamos programar em nosso projeto de repasse de dados
dinâmico, as rotinas que serão responsáveis por criar um novo esquema de
repasse. Abrir um esquema criado anteriormente e salvas os dados do esquema
atual. Para realizar estas operações, iremos utilizar os componentes opendialog
e savedialog da paleta Dialog do Delphi. Com os mencionados componentes
adicionados ao formulário e devidamente configurado para filtrar apenas
arquivos com extensão (.XML), vamos executa-los e processar os comandos necessários.
Metodologia de desenvolvimento do exemplo: A
metodologia do curso é baseada na criação de um projeto para repasse de dados entre
bancos de mesma estrutura ou diferentes, podendo ser DBF/Paradox,
Firebird/Interbase, Acess, SQLServer ou MySQL. Utilizaremos para isso o delphi
7 com seus componentes de conexão com banco de dados BDe e ADO. Serão montados dois projetos. O primeiro para gravar as
configurações de conexão através da classe TIniFile, e o segundo para realizará
o processamento.
Tecnologias utilizadas: Delphi, BDe, Ado, ClientDataSet.
Exemplos construídos: Aplicação para repassar dados entre banco de
dados.
Palavras-chave: Delphi, DBF, SQLServer,
MySQL, Acessl.
-->">
|
|
|
|

Concluindo este pequeno tutorial, sobre a geração dos processos para atender o bloco VII do roteiro de homologações PAF-ECF, em sua versão 1.5 de abril de 2011, aplicável à versão 01.07, onde regulamenta os “Dados Técnicos para Geração da Assinatura Digital EAD”. Anexo VIII do Ato Cotepe 06/08, vou comentar sobre os processos de verificação e comparação do código MD5 gerado para o registro. Na parte anterior do artigo, vimos a função que será responsável pela geração do código MD5 do registro. Para quem não sabe, o código MD5 é um algorítimo Hash de 128 bits, usado para garantir a integridade de dados de arquivos. Veja maiores informações no link abaixo: http://pt.wikipedia.org/wiki/MD5 Sabendo disso, entende-se o porque da criação do MD5 do registro, pois uma vez criado, qualquer alteração realizada nos dados deste registro, acarretaria em divergência neste código.
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Conforme comentado na parte anterior do artigo, vamos criar um procedimento para atender ao bloco VII do roteiro de homologações PAF-ECF, em sua versão 1.5 de abril de 2011, aplicável à versão 01.07, onde regulamenta os “Dados Técnicos para Geração da Assinatura Digital EAD”. Anexo VIII do Ato Cotepe 06/08. Sem mais delongas vamos primeiramente ver a função que será responsável pela geração do código MD5, do registro da tabela do banco de dados. Segue abaixo: function Gerar_MD5_Registro_Tabela_Dados(Tabela:TDataSet):String; var i : Integer; AuxSTR, NomeCampo, TipoCampo : String; begin // efetua um loop nos registros da tabela somando uma variávei string // para gerar o MF5 AuxSTR := ''; for i:=0 to DataSet.Fields.Count - 1 do begin NomeCampo := UpperCase(DataSet.Fields.Fields[i].FieldName); TipoCampo := FieldTypeNames[DataSet.Fields.Fields[i].DataType]; if NomeCampo <> 'CAMPO_MD5_REGISTRO' then begin if TipoCampo = 'String' then AuxSTR := AuxSTR + DataSet.FieldByName(NomeCampo).AsString; if TipoCampo = 'WideString' then AuxSTR := AuxSTR + DataSet.FieldByName(NomeCampo).AsString; if TipoCampo = 'ftMemo' then AuxSTR := AuxSTR + DataSet.FieldByName(NomeCampo).AsString; if TipoCampo = 'Integer' then
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
| |
|