Skip to content

Tag-icone-mini.png Totali Sped

Este artigo descreve os passos e decisões necessárias para implementar uma nova fonte de dados (SELECT) no SPED.

Tutorial ​

Existem duas formas principais de se criar uma estrutura de dados do SPED.
Elas devem ser utilizadas conforme a finalidade.

a) TQueryDAO: Criar uma consulta a fonte de dados (Query e XML) e permite que o programador percorra todos os registro da query.
Em cada linha, programador deve criar o objeto e imediatamente utilizá-lo.
Desta forma, é possível gerar vários registros de SPED utilizando pouca memória.

b) TListDAO: Usando essa classe, é necessário passar de fora uma lista, e a classe criará todos os objetos nessa lista.
Assim, quando o DAO for liberado, os objetos ainda poderão ser utilizadas.
É usada quando os objetos serão necessários em outro DAO, isso gasta mais memória que o TQueryDAO.

Esse tutorial demonstra a utilização da maneira mais complexa, que é a TListDAO.

1. Criar classe para representar o objeto (registro(s) da QUERY) a ser criado.

Exemplo: TDocumentoArrecadacao.

2. Criar classe para representar uma lista da classe unitária.

TDocumentoArrecadacaoList = class(TTotaliList)

3. Criar a classe DAO e a classe QueryDAO.
A classe DAO ficará responsável por criar os objetos a partir de uma fonte de dados.
Ela será abstrata em relação a fonte dos dados.

TDocumentoArrecadacaoDAO = class(TListDAO)

É necessário implementar uma classe que estende a fonte de dados e que tenha uma Query.

TDocumentoArrecadacaoQueryDAO = class(TDocumentoArrecadacaoDAO)

4. Criar um atributo público para guardar a lista.

A lista passada para o DAO precisa ser criado fora do DAO.
Assim, quando o DAO for destruído, os objetos criados perdurarão.

5. É necessário prever e tratar a liberação de memória de todos os objetos criado no SPED.
As listas baseadas nos objetos TTotaliList possuem a característica de ser OwsObject=False.
Ou seja, além de eliminar as listas, precisamos eliminar cada um dos objetos criados.

Continua no artigo Como exportar um novo registro no SPED

Diagramação ​

Abaixo está um diagrama para melhor visualização do exemplo do documento de arrecadação.

Classes-sped-doc-arrecadacao.png
Diagrama de classes de parte do SPED

Categorias ​