Ir para conteúdo
  • Cadastre-se

dev botao

E-Social - Criando Gerenciador de Dados e-social


Ver Solução Respondido por colmanetti,
  • Este tópico foi criado há 463 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Estou Fazendo um gerenciador dos dados para envio e-social.

por exemplo alterei um evento, os dados no formato para envio, guardo em BD para depois entrar e transmitir, receber resposta e gerenciar o que está pendente.

Se for criar uma estrutura de BD para cada Registro do E-social, vou ter que criar muitas tabelas e campos:

Pensei em algo mais simples sem ter os nomes dos campos no BD, exemplo Registro,Campo1,campo2 ... etc. assim fica a estrutura na sequencia de campos que eu definir.

Campo1:=  eSprocEmiToStr(ACBreSocial1.Eventos.Iniciais.S1000.Items[0].evtInfoEmpregador.ideEvento.ProcEmi);

e depois quando for enviar pelo gerenciador:

ACBreSocial1.Eventos.Iniciais.S1000.Items[0].evtInfoEmpregador.ideEvento.ProcEmi:=eSStrToprocEmi(campo1);

 Pergunta:

Tem alguma forma de enumerar as variáveis para usar um loop para fazer atribuição no banco de dados?

ou pegar por nome 'ProcEmi'  neste exemplo?

 

Obrigado,

 

  • Consultores
Postado

Bom dia!

18 horas atrás, colmanetti disse:

Se for criar uma estrutura de BD para cada Registro do E-social, vou ter que criar muitas tabelas e campos:

Acho que não entendi bem a sua lógica.

Realmente, pode ser que dê vários campos se você for colocar nome por nome.

Mas se observar os Leiautes do e-Social, da para ver que alguns campos se repetem nele em múltiplos registros.

Além disso, sem ter uma melhor ideia do contexto, apenas lendo isso aqui:

18 horas atrás, colmanetti disse:

Pensei em algo mais simples sem ter os nomes dos campos no BD, exemplo Registro,Campo1,campo2 ... etc. assim fica a estrutura na sequencia de campos que eu definir.

Campo1:=  eSprocEmiToStr(ACBreSocial1.Eventos.Iniciais.S1000.Items[0].evtInfoEmpregador.ideEvento.ProcEmi);

e depois quando for enviar pelo gerenciador:

ACBreSocial1.Eventos.Iniciais.S1000.Items[0].evtInfoEmpregador.ideEvento.ProcEmi:=eSStrToprocEmi(campo1);

A princípio, pode parecer algo mais simples, mas me passa a impressão de que futuramente seja penoso para dar manutenção, pois pode acabar se encaixando na famosa expressão:

"Quando eu fiz esse código lá atrás, só eu e Deus sabiam o que ele fazia, agora só Deus sabe".

18 horas atrás, colmanetti disse:

Pergunta:

Tem alguma forma de enumerar as variáveis para usar um loop para fazer atribuição no banco de dados?

ou pegar por nome 'ProcEmi'  neste exemplo?

Do que eu entendi para sua atual necessidade, acredito que seria o caso de usar Rtti.

Alguns links com explicação e demonstração:

  • Curtir 2
Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Membros Pro
  • Solution
Postado

Obrigado por sua resposta.

Criei uma tabela com o dicionário de dados, assim gravo e leio o valor pelo Registro e pelo nome campo no E-social:

E o Dicionário vai servir para vincular cada campo na base da Folha para validar alterações necessárias para reenvio do registro.

image.thumb.png.665a50bb4383dc2df2a1f31e5a350adf.png

  • Curtir 1
  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 463 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...