-
Total de ítens
70 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por Renata Albergoni
-
-
Olá, bom dia!
Os registros 0140 do Bloco 0 Se referem as empresas as quais serão realizadas as apurações, numa analogia comum, imagine como sendo o Emissor do documento em questão. Já os registros 0150 se referem as empresas as quais o "Emissor" realizou algum tipo de operação, seja Venda/Aquisição de algum produto/serviço.
No caso, os dados serão vindos de seu próprio banco de dados, pois nele acredito que você possua as tabelas de clientes, fornecedores, empresas, produtos, notas fiscais, entre outras das quais as informações serão "puxadas".
[]s
Então seria todos os cliente que houveram vendas? e tb os fornecedores que dei entrada de nota?
Muito Obrigado
Para os registros do Bloco 0150 sim.
[]s
Entendi. Acabei de terminar de criar os campos no cadastro do emissor. Agora vou carregar o Bloco 0150 com os clientes e fornecedores com movimentação sem repetir... É isso neh? A hora que acabar eu tenho mais duvidas =\
-
Olá, bom dia!
Os registros 0140 do Bloco 0 Se referem as empresas as quais serão realizadas as apurações, numa analogia comum, imagine como sendo o Emissor do documento em questão. Já os registros 0150 se referem as empresas as quais o "Emissor" realizou algum tipo de operação, seja Venda/Aquisição de algum produto/serviço.
No caso, os dados serão vindos de seu próprio banco de dados, pois nele acredito que você possua as tabelas de clientes, fornecedores, empresas, produtos, notas fiscais, entre outras das quais as informações serão "puxadas".
[]s
Então seria todos os cliente que houveram vendas? e tb os fornecedores que dei entrada de nota?
Muito Obrigado
-
Olá pessoal, comecei a desenvolver o SPED faz 30 min.
Eu sou meio leigo na parte de contabilidade.
Estou tendo dificuldade pra saber o que significa alguns campos.
Alguem poderia me ajudar?
No Registro0140New ele pede o cadastro do estabelecimento.
Seria as franquias? Tudo que o cara tem registrado no nome dele?
//0140 - Tabela de Cadastro de Estabelecimento
for int0140 := 1 to 2 do
begin
// FILHO
with Registro0140New do
begin
COD_EST := IntToStr(int0140);
NOME := 'NOME DO ESTABELECIMENTO '+IntToStr(int0140);
CNPJ := '33333333333328';
UF := 'ES';
IE := '';
COD_MUN := 3200607;
IM := '';
SUFRAMA := '';
Mais em baixo ele puxa 10 clientes de cada estabelecimento...
Como assim 10 cliente? Da onde eu vou puxar esses clientes?
// 10 Clientes por estabelecimento
for int0150 := 1 to 10 do
begin
//0150 - Tabela de Cadastro do Participante
with Registro0150New do
begin
COD_PART := IntToStr(int0150);
NOME := 'NOME DO CLIENTE '+ IntToStr(int0150);
COD_PAIS := '1058';
Ainda tenho mais duvidas, estou bem confuso. Alguem pode me ajudar por favor?
Obrigado a todos
-
Olá pessoal, estou precisando apavoradamente de uma força de vocês.
Não não, não é essa por trás!
Estou tentando colocar a impressora de etiqueta zebra tlp 2844
no meu sistema, estou utilizando o componente ACBRETQ...
A primeira dúvida é que não estou conseguindo manipular o avanco da impressão, ta pulando 2 etiquetas... e não está imprimindo corretamente em cima da etiqueta, está saindo fora a impressão
Eu instalei a impressora conforme o cd, coloquei tudo padrão as configuracoes
abri o exemplo do acbr, coloquei modelo pplb, conexao lpt1, o comando a seguir é o que esta no acbr
ImprimirTexto(orNormal, 2, 1, 3, 15, 55, 'BISCOITO REC 335G');
ImprimirTexto(orNormal, 2, 1, 1, 80, 55, 'CHOC BRANCO');
ImprimirBarras(orNormal, 'E30', '2', '2', 120, 55, '7896003701685', 080, becSIM);
ImprimirTexto(orNormal, 2, 1, 3, 15, 365, 'BISCOITO RECH 335G');
ImprimirTexto(orNormal, 2, 1, 1, 80, 365, 'CHOC BRANCO');
ImprimirBarras(orNormal, 'E30', '2', '2', 120, 365, '7896003701685', 080, becSIM);
ImprimirTexto(orNormal, 2, 1, 3, 15, 670, 'BISCOITO RECH 335G');
ImprimirTexto(orNormal, 2, 1, 1, 80, 670, 'CHOC BRANCO');
ImprimirBarras(orNormal, 'E30', '2', '2', 120, 670, '7896003701685', 080, becSIM);
Outra coisa, preciso que ainda o codigo de barra aceita codigo de referencia por exemplo 4518/G ...
Alguem pode me ajudar, dar um toque, qlq coisa?
Muito Obrigado a todos
-
Usar o comando:
ACBrECF1.Device.ProcessMessages := False;
pode resolver o seu problema...
O mecanismo da Fila, é recomendado para caixas com vendas muito rápidas
Parceiro, esse comando deixa mais rápido o ECF?, o que ele faz mais o menos...
Eu fiz um esquema aqui, de antes de executar qualquer ação no ecf, abrir, fechar, subtotalizar, cancelar...
Para ele aguardar 2 segundos.. e depois fazer a operação, fiz os testes aqui e parece que resolveu...
Eu acho que vou deixar esses 2 segundos, pq eu peguei trauma do problema, e so com isso resolveu, ehsaOheaSOUhesaUOo
vou desativar o que vc falou... Muito Obrigado... =DDDDDDDDDDDD
-
Não analisei o código por ser muito extenso... mas não há como o ACBrECF fazer algo sem o mesmo ter sido comandado...
Ative o LOG do ACBrECF e veja os comandos enviados para a impressora...
Uma diferença básica do ACBrECF e as DLLs é que o ACBrECF não irá "travar" a sua interface quando a impressora estiver efetuando algo... isso ocorre poque o ACBrECF roda na mesma Thread que o seu aplicativo, e as DLLs rodam em um processo separado do EXE...
Experimente desativar as chamadas de ProcessMessages do ACBrECF
ACBrECF1.Device.ProcessMessages := False;
O ideal é implementar um mecanismo de fila... Vc pode ler mais sobre isso nesse post (do forum antigo)
Realmente é isso, fiz os testes com o emulador da bematech e constatei o erro. Quando se insere muito rapido os itens. Ele come alguns produtos, ai o total acaba ficando maior que os produtos, ai aparece o desconto do nada...
Vou pegar a dica do link que você me passou... Vamos ver se consigo resolver...
Muito obrigado mesmo
-
Não analisei o código por ser muito extenso... mas não há como o ACBrECF fazer algo sem o mesmo ter sido comandado...
Ative o LOG do ACBrECF e veja os comandos enviados para a impressora...
Uma diferença básica do ACBrECF e as DLLs é que o ACBrECF não irá "travar" a sua interface quando a impressora estiver efetuando algo... isso ocorre poque o ACBrECF roda na mesma Thread que o seu aplicativo, e as DLLs rodam em um processo separado do EXE...
Experimente desativar as chamadas de ProcessMessages do ACBrECF
ACBrECF1.Device.ProcessMessages := False;
O ideal é implementar um mecanismo de fila... Vc pode ler mais sobre isso nesse post (do forum antigo)
Isso que você falou, foi o que eu fiquei pensando hoje a tarde, eu fiz algumas rotinas para esperar um item processar de cada vez...
É bem possivel que seja isso, ainda não instalei no meu cliente... mais eu vou instalar pra ver...
Muito Obrigado pela resposta, e pelo link do forum, vou dar uma estudada...
=DDDDDDDDDDD
-
No seu caso e a venda frenética que ocorre igual supermercados?
Não, pior que não, a menina tira uns 10 cupom fiscal por dia eu acho
De 5 cupom, 1 da erro, vamos por assim...
-
Olá pessoal, recentemente coloquei o AcbrECF no meu sistema. Tenho instalado em um cliente e estou tendo dores de cabeça.
Não sei se é por erro meu, do usuário, da maquina que é um processador onboard meio lenta.
O que sei é que não estou conseguindo resolver... Implementei o ecf no meu sistema a partir da base do exemplo do acbr...
Gostaria de postar a rotina pra vocês me dar uma força...
O Cliente diz que está lançando os itens, e de repente "1" item não sai no cupom, ou no termino cancela o cupom sozinho...
Ou O primeiro intem lançado sai por ultimo, ai o subtotal não bate e cancela o cupom sozinho, ou as vezes dá desconto sozinho, ele disse que a ultima vez ele vez uma venda de 1.000 e deu desconto de 200,00...
Ressaltando, que isso acontece apenas no cupom fiscal, o registro da venda no sistema, no banco de dados, no relatório, sai perfeitamente.. Tanto é que o cliente moustrou pra mim o cupom com erro, e no computador estava certo.
Eu tenho um form de Venda chamado FmVendPrinc, no evento OnShow do Form, eu coloquei a seguinte rotina
procedure TFmVendPrinc.FormShow(Sender: TObject); begin Try FmVendPrinc.Enabled := False; // Tratar Erro de Cupom Fiscal Pendente if FmConfig.ModECF.Checked then Begin try FmFiscMenu.ACBrECF1.TestaPodeAbrirCupom; except Try FmFiscMenu.ACBrECF1.CancelaCupom; FmFiscMenu.ACBrECF1.TestaPodeAbrirCupom; Except ShowMessage('Erro ao Abrir Cupom Fiscal.'); ModalResult := MrCancel; EXIT; end; end; end; finally FmVendPrinc.Enabled := True; end; end; // Obs: Primeiramente, ele testa se pode abrir o cupom, se der erro, ele cancela o cupom, e testa denovo... No Botão de Adicionar Produto, eu carrego o produto escolhido em uma tabela temporaria TClientDataSet chamada DataTemp.TbVenda, depois de carregado o produto eu executo a seguinte rotina // Abrir o Cupom e Imprimir os Itens da Venda antes do Fechamento Qdo for // selecionado Cupom Fiscal no meio da Operaçao da Venda try // Checar se Cupom está livre, se der erro, abre cupom e inseri todos os itens FmFiscMenu.ACBrECF1.TestaPodeAbrirCupom; Try FmFiscMenu.AbreCupomFiscal; // Faz a Impressão de Todos os Itens no Cupom Fiscal DataTemp.TbVenda.First; While not DataTemp.TbVenda.Eof do begin if (DataTemp.TbVenda.FieldByName('Total').Value > 0) then if not ImprimirItemCupomParc then Break; DataTemp.TbVenda.Next; end; Except ShowMessage('Erro ao Abrir Cupom Fiscal.'); Application.ProcessMessages; end; except // Impressora estava ligada desde o primeiro item // Intao imprimi item por item Try ImprimirItemCupomParc; Except ShowMessage('Erro ao Abrir Cupom Parcial'); end; End; // Rotina do ImprimirItemCupomParc function TFmVendPrinc.ImprimirItemCupomParc: Boolean; var Desc, AliqICMS, Str1, Str2: String; I: Integer; begin Result := False; Desc := '%' ; AliqICMS := ''; // Evita erro de Aliquota de ICMS AliqICMS := DataTemp.TbVenda.FieldByName('AliqICMS').AsString; if AliqICMS = 'ST' then AliqICMS := 'FF'; // Substituição Tributária // Checar se Produto não consta o caractere "\" Str1 := DataTemp.TbVenda.FieldByName('Produto').AsString; Str2 := ''; For I := 1 to Length(Str1) do if Str1[I] = '\' then Str2 := Str2 + '/' else Str2 := Str2 + Str1[I]; //----------------------------------------------- Try FmFiscMenu.ACBrECF1.VendeItem( StrZero(DataTemp.TbVenda.FieldByName('CodBar').AsString,13), // Codbar Str2, // Produto AliqICMS, // Aliquota de ICMS StrToFloatDef(DataTemp.TbVenda.FieldByName('Qde').Value, 0), // Qde StrToFloatDef(DataTemp.TbVenda.FieldByName('Preco').Value,0 ), // Preço StrToFloatDef(DataTemp.TbVenda.FieldByName('Desconto').AsString,0 ), // Desconto DataTemp.TbVenda.FieldByName('Unid').AsString, // Unidade Desc ); Result := True; Except Result := False; end; end; Na hora de Fechar a venda, o cupom fiscal eu utilizo essa rotina //-------------------------------------------------------- //######## CUPOM FISCAL - ECF-IF ######################### //-------------------------------------------------------- // Checar se Impressora Fiscal está desativada if FmConfig.ModECF.Checked and (GetKeyState(vk_scroll) = 0) then Begin if not (UpperCase(FmFiscMenu.bAtivar.Caption) = 'ATIVAR') then Begin // Abrir o Cupom e Imprimir os Itens da Venda antes do Fechamento Qdo for // selecionado Cupom Fiscal no meio da Operaçao da Venda try FmFiscMenu.ACBrECF1.TestaPodeAbrirCupom; Try FmFiscMenu.IdentificaConsumidor1Click(self); FmFiscMenu.AbreCupomFiscal; // Faz a Impressão de Todos os Itens no Cupom Fiscal DataTemp.TbVenda.First; While not DataTemp.TbVenda.Eof do begin if (DataTemp.TbVenda.FieldByName('Total').Value > 0) then if not FmVendPrinc.ImprimirItemCupomParc then Break; DataTemp.TbVenda.Next; end; Except ShowMessage('Erro ao Abrir Cupom Fiscal.'); Application.ProcessMessages; end; except End; // ----------------------------------------------------- // SubTotaliza Cupom Fiscal // ----------------------------------------------------- Try FmAviso.Mensagem(0,1,'>>>>> IMPRESSORA FISCAL <<<<<'); FmAviso.Mensagem(1,1,'AGUARDE... SUBTOTALIZANDO CUPOM FISCAL.'); FmAviso.Show; Application.ProcessMessages; Try FiscDesc := (EdSubTotal.Value * (EdDesconto.Value/100)) * -1; FiscDesc := FiscDesc - EdBonus.Value; FmFiscMenu.ACBrECF1.SubtotalizaCupom(FiscDesc, FiscObs); Except ShowMessage('Erro ao SubTotalizar Cupom Fiscal.'); EXIT; end; finally FmAviso.Close; end; // ----------------------------------------------------- // Forma Pagto: 01 -> Dinheiro Permite Vinculado: N // Forma Pagto: 02 -> A VISTA Permite Vinculado: S // Forma Pagto: 03 -> CHEQUE Permite Vinculado: S // Forma Pagto: 04 -> CARTAO CREDITO Permite Vinculado: S // Forma Pagto: 05 -> CARTAO DEBITO Permite Vinculado: S // Forma Pagto: 06 -> CHEQUE PRE Permite Vinculado: S // Forma Pagto: 07 -> BOLETO Permite Vinculado: S // Forma Pagto: 08 -> Cheque-Pre Permite Vinculado: S // Forma Pagto: 09 -> Cartao Permite Vinculado: S // Forma Pagto: 10 -> A-Prazo Permite Vinculado: S // Forma Pagto: 11 -> Crediario Permite Vinculado: S // Forma Pagto: 12 -> Ticket Permite Vinculado: S // Forma Pagto: 13 -> Vale Permite Vinculado: S // Forma Pagto: 14 -> Convenio Permite Vinculado: S if not ( FmFiscMenu.ACBrECF1.Modelo in [ecfDataRegis, ecfFiscNET]) then Begin Try FmAviso.Mensagem(0,1,'>>>>> IMPRESSORA FISCAL <<<<<'); FmAviso.Mensagem(1,1,'AGUARDE... EFETUANDO PAGAMENTO FISCAL.'); FmAviso.Show; Application.ProcessMessages; Try FiscPgto := UpperCase(DataTemp.TbFormaPgto.FieldByName('Operacao').AsString); if (FiscPgto <> 'DINHEIRO') and (FiscPgto <> 'CHEQUE') and (FiscPgto <> 'CARTAODEB') and (FiscPgto <> 'CARTAOCRED') then FiscPgto := '10'; if FiscPgto = 'DINHEIRO' then FiscPgto := '01'; if FiscPgto = 'CHEQUE' then FiscPgto := '03'; if FiscPgto = 'CARTAOCRED' then FiscPgto := '04'; if FiscPgto = 'CARTAODEB' then FiscPgto := '05'; FmFiscMenu.ACBrECF1.EfetuaPagamento( FiscPgto, EdValorPago.Value, // Cod Pgto, Total '' ,False ); // Obs, Cupom Vinculado Except ShowMessage('Erro ao Efetuar Pagamento.'); EXIT; end; finally FmAviso.Close; end; end; // ----------------------------------------------------- // Fecha Cupom Fiscal ################################## // ----------------------------------------------------- Try FmAviso.Mensagem(0,1,'>>>>> IMPRESSORA FISCAL <<<<<'); FmAviso.Mensagem(1,1,'AGUARDE... EFETUANDO PAGAMENTO FISCAL.'); FmAviso.Show; Application.ProcessMessages; Try FmFiscMenu.ACBrECF1.FechaCupom( '', 0 ); //Obs, Indice de BMP Except ShowMessage('Erro ao Fechar Cupom Fiscal.'); EXIT; end; Finally FmAviso.Close; end; end; end; //--------------------------------------------------------
Espero o retorno de vocês, muito Obrigado!
-
Descubri qual era o problema.
Era o modelo... que eu deveria informar 55, e o ano dever ser informado com 4 digitos...
Muito Obrigado a todos.
-
O ano deve ser informado apenas com 2 dígitos.
Amigo eu tentei com apenas 2 digitos no ano e deu o mesmo erro
Falha no schema xml
Eu estou fazendo assim
ACBrNFe1.WebServices.Inutiliza(07788453000173 , 'Quebra de Numeracao'',
11, 1, 1, 5, 5);
Estou tentando inutilizar a nota numero 5 em modo de homologacao.
Esta enviando, cancelando, fazendo td perfeitamente, menos a inutilização.
Obs: O que eu coloco em modelo?
-
O ano deve ser informado apenas com 2 dígitos.
Vou tentar, e ja posto o resultado.
-
Olá Pessoal, eu tb estou precisando Inutilizar uma nota e não consigo tb, nunca consegui.
no acbr ta o seguinte comando...
procedure TFmNotaFiscalE.N5InutilizarNumerao1Click(Sender: TObject);
var
EmitCNPJ, Modelo, Serie, Ano, NumeroInicial, NumeroFinal, Justificativa : String;
begin
if not(InputQuery('CNPJ/CPF do Emitente ', 'CNPJ/CPF', EmitCNPJ)) then
exit;
if not(InputQuery('WebServices Inutilização ', 'Ano', Ano)) then
exit;
if not(InputQuery('WebServices Inutilização ', 'Modelo', Modelo)) then
exit;
if not(InputQuery('WebServices Inutilização ', 'Serie', Serie)) then
exit;
if not(InputQuery('WebServices Inutilização ', 'Número Inicial', NumeroInicial)) then
exit;
if not(InputQuery('WebServices Inutilização ', 'Número Inicial', NumeroFinal)) then
exit;
if not(InputQuery('WebServices Inutilização ', 'Justificativa', Justificativa)) then
exit;
ACBrNFe1.WebServices.Inutiliza(EmitCNPJ, Justificativa, StrToInt(Ano), StrToInt(Modelo), StrToInt(Serie), StrToInt(NumeroInicial), StrToInt(NumeroFinal));
end;
Minhas dúvidas são, o que é esse "Modelo", "Numero Inicial", "NumeroFinal".
A nota que eu estava tentando cancelar era a 502
ai eu estava colocando...
364.205.018-22, 2011, 1, 1, 502, 502, Pulo de Numeração
Mas esta apresentado erro no schema.
ALguem pode me dar um help?
-
Muito Obrigado Pessoal.
Estava com medo de colocar em produção e depois ter problema
com a nota fiscal paulista
thxxx
-
Olá amigos, estou desenvolvendo um software utilizando o ACBRECF e estou com uma duvida.
Ao abrir o cupom fiscal é solicitado o CPF/CNPJ...
Eu gostaria de saber qual a formatação do CPF/CNPJ eu devo fornecer...
exemplo: 364.205.018-22 ou 36420501822
mesma coisa com o cnpj..
Muito Obrigado a todos
Parabens ACBR
-
Utilizo Windows 7 32 bits...
Tive o mesmo problema que nosso amigo acima ao instalar o D7 e D2010 na msm maquina..
Segui o passo a passo, das variaveis de ambientes, os bats, etc...
Formatei a maquina instalei td dinovo e neca de pitibiriba nao consegui nao...
Mais não da nada..
Qnd for usar um ou outro eu instalo o acbr na hora, é rapido pra instalar...
Fazer o q...
Ahhh...
no XP fiz, deu certinho
Obrigadao
=DD
-
sto
Tentei o que você me disse mas acontece o mesmo...
A Mensagem vem em branco..
Estou comecando a achar que
Provavelmente existe no seu sistema alguma rotina de tratamento de erros que está suprimindo as excessões disparadas pelo componente.Vou montar outra janela de nf-e desde o comeco e ver no que dá...
Muito Obrigado pela atenção
=D
-
Olá pessoal.. Estou utilizando o Acbr a algum tempo e estou tendo um problema...
Que ja está me deixando sem os cabelos, acredito que seja algo simples..
Porém o simples eu não sei...
No Exemplo que vem junto com o AcbrNfe2,
ao emitir uma nota, Cancelar, Inutilizar, Consultar, qualquer coisa semelhante...
Se existir algum campo incorreto, ou houver alguma falha na validação é exibida
uma mensagem de erro ao usuário (isso executando normalmente, sem estar em DEBUG no Delphi).
No meu projeto quando ocorre um erro ao enviar, cancelar, inutilizar, consultar, etc...
Não é exibida nenhuma mensagem ao usuário para que ele possa compreender o erro e repará-lo...
Simplesmente clica no botão e não acontece nada aos olhos do usuarioo...
Se eu pego o banco de dados do meu cliente, coloco na minha aplicacção em modo debug aparece o erro
Porém apenas aparece só pq está em modo de debugação...
Se eu pego essa mesma informação, dados da nota igualzinho a qual eu joguei na minha aplicação e coloco no exemplo do
acbrnfe2 aparece o erro certinho não estando em debug...
A maneira na qual estou fazendo até o momento é tratando msg por msg para exibir ao usuário, só que isso está se tornando
algo muito complexo, trabalhoso e grande...
Alguem sabe me dizer qual a configuração que estou pecando para não aparecer as msgs para o usuárioo?
Se no Demo aparece, pq na minha aplicação não?
Segue um exemplo que ocorre em minha aplicação
Este exemplo é para Consultar uma nota pelo XML...
FmPrincipal.OpenDialog.Title := 'Selecione a NFE';
FmPrincipal.OpenDialog.DefaultExt := '*-nfe.XML';
FmPrincipal.OpenDialog.Filter := 'Arquivos NFE (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*';
FmPrincipal.OpenDialog.InitialDir := ACBrNFe1.Configuracoes.Geral.PathSalvar;
if FmPrincipal.OpenDialog.Execute then
begin
ACBrNFe1.NotasFiscais.Clear;
ACBrNFe1.NotasFiscais.LoadFromFile(FmPrincipal.OpenDialog.FileName);
ACBrNFe1.Consultar;
ShowMessage(ACBrNFe1.WebServices.Consulta.Protocolo);
end;
Obs: Ao consultar ocorre o erro e nada é exibido para usuario, no demo aparece certinho..
Obrigado a todos...
-
Pessoal, esse bug do status do serviço deu comigo hoje em 7 empresas que eu tenho o sistema.
Eu fiquei looooko, não consegui resolver..
Sou do estado de SP, Webservice SP...
E o engraçado que no meu notebook q eh Windows 7 manda a nfe perfeitamente, nos meus clientes que era XP não ia por nada...
Tentarei esses macetes de atrasar o relogio e configurar o explorer, retorno o resultado.
Muito obrigado pelas informações...
Vamos continuar a trocar ideias para um ajudar o outro.
=D
Duvidas no preenchimento do Bloco 0
em ACBrSPEDPisCofins
Postado
Tipo, dúvida minha agora de programação...
Eu estou carregando o campo do bloco 0 dessa forma
If (TbEmpresa.FieldByName('Tipo_Escrit').AsString = '0 - ORIGINAL') Then
TIPO_ESCRIT := tpEscrOriginal;
If (TbEmpresa.FieldByName('Tipo_Escrit').AsString = '1 - RETIFICADORA') Then
TIPO_ESCRIT := tpEscrRetificadora;
Não tem como eu fazer de uma forma mais simplificada? Por exemplo
TIPO_ESCRIT := StrToInt(Copy(TbEmpresa.FieldByName('Tipo_Escrit').AsString,1,1));
Pq eu não queria ficar comendo linha pra cada opção que tiver o campo!
Obrigado a todos