Ir para conteúdo
  • Cadastre-se

dev botao

ACBrCargaBal


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

Recommended Posts

  • Membros Pro
Postado

Estou utilizando o componente ACBrCargaBal para gerar os arquivos par importar no software de balança, pra ser mais exato, estou utilizando o MGV6.

Recentemente, recebi a solicitação de que seria preciso enviar junto as informações do produto o campo lote.

Manul da toledo do layout de cadastro de itens: https://help.toledobrasil.com/mgv6/v1_6_/Html_Pages/arquivos_de_cadastro.html

image.thumb.jpeg.92d605e87bd3354def20b0a7bd135ca2.jpeg

Nessa imagem, observei que na procedure PreencherToledo existe o campo do lote, mas nao consigo passar a informação que vai ai...

Tentei então fazer a alteração no componente e adicionei no private o FLote: Smallint; e no public property Lote: Smallint read FLote write FLote; 

 

  TACBrCargaBalItem = class
  private
    FValorVenda: Currency;
    FModeloEtiqueta: Smallint;
    FDescricao: String;
    FCodigo: Integer;
    FTipo: TACBrCargaBalTipoVenda;
    FValidade: Smallint;
    FLote: Smallint;
    FTipoValidade: TACBrCargaBalTipoValidade;
    FSetor: TACBrCargaBalSetor;
    FNutricional: TACBrCargaBalNutricional;
    FTara: TACBrCargaBalTaras;
    FFornecedor: TACBrCargaBalFornecedor;
    FFracionador: TACBrCargaBalFracionador;
    FConservacao: TACBrCargaBalConservacao;
    FCodigoTexto1: Integer;
    FCodigoTexto2: Integer;
    FCodigoTexto3: Integer;
    FCodigoInfoNutr: Integer;
    FCodigoTara: Integer;
    FCodigoFornecedor: Smallint;
    FCodigoFracionador: Smallint;
    FCodigoConservacao: Smallint;
    FImpValidade: Smallint;
    FImpEmbalagem: Smallint;
    FEAN13Fornecedor: string;
    FInformacaoExtra: TACBrCargaBalInformacaoExtra;
    FTeclado: TAcbrCargaBalTeclado;
    function ObterCodigoInfoExtra(AModelo : TACBrCargaBalModelo) : Integer;
  Public
    constructor Create;
    destructor Destroy; override;
    property Setor: TACBrCargaBalSetor read FSetor write FSetor;
    property ModeloEtiqueta: Smallint read FModeloEtiqueta write FModeloEtiqueta;
    property Tipo: TACBrCargaBalTipoVenda read FTipo write FTipo;
    property TipoValidade: TACBrCargaBalTipoValidade read FTipoValidade write FTipoValidade;
    property Codigo: Integer read FCodigo write FCodigo;
    property ValorVenda: Currency read FValorVenda write FValorVenda;
    property Validade: Smallint read FValidade write FValidade;
    property Lote: Smallint read FLote write FLote;
    property Descricao: String read FDescricao write FDescricao;
    property InformacaoExtra: TACBrCargaBalInformacaoExtra read FInformacaoExtra write FInformacaoExtra;
    property Teclado: TAcbrCargaBalTeclado read FTeclado write FTeclado;
    property Nutricional: TACBrCargaBalNutricional Read FNutricional Write FNutricional;
    property Tara: TACBrCargaBalTaras Read FTara Write FTara;
    property Fornecedor: TACBrCargaBalFornecedor Read FFornecedor Write FFornecedor;
    property Fracionador: TACBrCargaBalFracionador Read FFracionador Write FFracionador;
    property Conservacao: TACBrCargaBalConservacao Read FConservacao Write FConservacao;
    property CodigoTexto1: Integer read FCodigoTexto1 write FCodigoTexto1;
    property CodigoTexto2: Integer read FCodigoTexto2 write FCodigoTexto2;
    property CodigoTexto3: Integer read FCodigoTexto3 write FCodigoTexto3;
    property CodigoInfoNutr: Integer read FCodigoInfoNutr write FCodigoInfoNutr;
    property CodigoTara: Integer Read FCodigoTara Write FCodigoTara Default 0;
    property CodigoFornecedor: Smallint Read FCodigoFornecedor Write FCodigoFornecedor Default 0;
    property ImpValidade: Smallint Read FImpvalidade Write FImpvalidade Default 1;
    property ImpEmbalagem: Smallint Read FImpEmbalagem Write FImpEmbalagem Default 1;
    property CodigoFracionador: Smallint Read FCodigoFracionador Write FCodigoFracionador Default 0;
    property CodigoConservacao: Smallint Read FCodigoConservacao Write FCodigoConservacao Default 0;
    property EAN13Fornecedor: string read FEAN13Fornecedor write FEAN13Fornecedor;
  end;

 

 

Na procedure PreencherToledo da primeira imagem, substitui onde estava lFill('0',12)+ // lote por lFill(Produtos[i].Lote, 12)+ // lote
Mas, na hora de utilizar e passar o valor da  property Lote me retorna o seguinte erro: 

image.thumb.jpeg.fb2b1a01d67728844eb343c854da3b96.jpeg

 

Caso eu nao tente passar o valor, o projeto compila, mas caso passe, da erro.

 

ACBrCargaBal.pas

  • Moderadores
Postado

Provavelmente o seu projeto não está enxergando o .pas alterado, e compilando a partir do .dcu.

Pra recompilar o .dcu, reinstale o ACBr pelo ACBrInstall_Trunk2.

Duas sugestões para a sua alteração:

- Atualize os fontes do ACBr pelo SVN antes de fazer as modificações. Assim pode submeter aqui pra ser enviado ao repositório. O seu arquivo está desatualizado em relação a ele, e isso dificulta a análise então pode ser recusado.

- Como o lote pode ter até 12 bytes, o ideal é usar String para o tipo, o valor máximo para um Smallint é 32767.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Moderadores
  • Solution
Postado
Em 25/10/2022 at 12:56, janderson@atron disse:

Estou utilizando o componente ACBrCargaBal para gerar os arquivos par importar no software de balança, pra ser mais exato, estou utilizando o MGV6.

Recentemente, recebi a solicitação de que seria preciso enviar junto as informações do produto o campo lote.

Manul da toledo do layout de cadastro de itens: https://help.toledobrasil.com/mgv6/v1_6_/Html_Pages/arquivos_de_cadastro.html

image.thumb.jpeg.92d605e87bd3354def20b0a7bd135ca2.jpeg

Nessa imagem, observei que na procedure PreencherToledo existe o campo do lote, mas nao consigo passar a informação que vai ai...

Tentei então fazer a alteração no componente e adicionei no private o FLote: Smallint; e no public property Lote: Smallint read FLote write FLote; 

 

  TACBrCargaBalItem = class
  private
    FValorVenda: Currency;
    FModeloEtiqueta: Smallint;
    FDescricao: String;
    FCodigo: Integer;
    FTipo: TACBrCargaBalTipoVenda;
    FValidade: Smallint;
    FLote: Smallint;
    FTipoValidade: TACBrCargaBalTipoValidade;
    FSetor: TACBrCargaBalSetor;
    FNutricional: TACBrCargaBalNutricional;
    FTara: TACBrCargaBalTaras;
    FFornecedor: TACBrCargaBalFornecedor;
    FFracionador: TACBrCargaBalFracionador;
    FConservacao: TACBrCargaBalConservacao;
    FCodigoTexto1: Integer;
    FCodigoTexto2: Integer;
    FCodigoTexto3: Integer;
    FCodigoInfoNutr: Integer;
    FCodigoTara: Integer;
    FCodigoFornecedor: Smallint;
    FCodigoFracionador: Smallint;
    FCodigoConservacao: Smallint;
    FImpValidade: Smallint;
    FImpEmbalagem: Smallint;
    FEAN13Fornecedor: string;
    FInformacaoExtra: TACBrCargaBalInformacaoExtra;
    FTeclado: TAcbrCargaBalTeclado;
    function ObterCodigoInfoExtra(AModelo : TACBrCargaBalModelo) : Integer;
  Public
    constructor Create;
    destructor Destroy; override;
    property Setor: TACBrCargaBalSetor read FSetor write FSetor;
    property ModeloEtiqueta: Smallint read FModeloEtiqueta write FModeloEtiqueta;
    property Tipo: TACBrCargaBalTipoVenda read FTipo write FTipo;
    property TipoValidade: TACBrCargaBalTipoValidade read FTipoValidade write FTipoValidade;
    property Codigo: Integer read FCodigo write FCodigo;
    property ValorVenda: Currency read FValorVenda write FValorVenda;
    property Validade: Smallint read FValidade write FValidade;
    property Lote: Smallint read FLote write FLote;
    property Descricao: String read FDescricao write FDescricao;
    property InformacaoExtra: TACBrCargaBalInformacaoExtra read FInformacaoExtra write FInformacaoExtra;
    property Teclado: TAcbrCargaBalTeclado read FTeclado write FTeclado;
    property Nutricional: TACBrCargaBalNutricional Read FNutricional Write FNutricional;
    property Tara: TACBrCargaBalTaras Read FTara Write FTara;
    property Fornecedor: TACBrCargaBalFornecedor Read FFornecedor Write FFornecedor;
    property Fracionador: TACBrCargaBalFracionador Read FFracionador Write FFracionador;
    property Conservacao: TACBrCargaBalConservacao Read FConservacao Write FConservacao;
    property CodigoTexto1: Integer read FCodigoTexto1 write FCodigoTexto1;
    property CodigoTexto2: Integer read FCodigoTexto2 write FCodigoTexto2;
    property CodigoTexto3: Integer read FCodigoTexto3 write FCodigoTexto3;
    property CodigoInfoNutr: Integer read FCodigoInfoNutr write FCodigoInfoNutr;
    property CodigoTara: Integer Read FCodigoTara Write FCodigoTara Default 0;
    property CodigoFornecedor: Smallint Read FCodigoFornecedor Write FCodigoFornecedor Default 0;
    property ImpValidade: Smallint Read FImpvalidade Write FImpvalidade Default 1;
    property ImpEmbalagem: Smallint Read FImpEmbalagem Write FImpEmbalagem Default 1;
    property CodigoFracionador: Smallint Read FCodigoFracionador Write FCodigoFracionador Default 0;
    property CodigoConservacao: Smallint Read FCodigoConservacao Write FCodigoConservacao Default 0;
    property EAN13Fornecedor: string read FEAN13Fornecedor write FEAN13Fornecedor;
  end;

 

 

Na procedure PreencherToledo da primeira imagem, substitui onde estava lFill('0',12)+ // lote por lFill(Produtos[i].Lote, 12)+ // lote
Mas, na hora de utilizar e passar o valor da  property Lote me retorna o seguinte erro: 

image.thumb.jpeg.fb2b1a01d67728844eb343c854da3b96.jpeg

 

Caso eu nao tente passar o valor, o projeto compila, mas caso passe, da erro.

 

ACBrCargaBal.pas 67.11 kB · 1 download

atualize o svn e faça testes. não subi isso mas tem mudanças

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • 2 semanas depois ...
  • Membros Pro
Postado
Em 25/10/2022 at 17:05, BigWings disse:

Provavelmente o seu projeto não está enxergando o .pas alterado, e compilando a partir do .dcu.

Pra recompilar o .dcu, reinstale o ACBr pelo ACBrInstall_Trunk2.

Duas sugestões para a sua alteração:

- Atualize os fontes do ACBr pelo SVN antes de fazer as modificações. Assim pode submeter aqui pra ser enviado ao repositório. O seu arquivo está desatualizado em relação a ele, e isso dificulta a análise então pode ser recusado.

- Como o lote pode ter até 12 bytes, o ideal é usar String para o tipo, o valor máximo para um Smallint é 32767.

Bom dia,
Desculpe pela demora xD

Vou testar fazer como vc disse e ver se da certo... obrigado

 

 

Em 27/10/2022 at 16:11, Juliomar Marchetti disse:

atualize o svn e faça testes. não subi isso mas tem mudanças

Juliomar, atualizei mas o campo de lote não esta disponivel. Olhei nos fontes e foi adicionado a procedure PreencherToledoMGV7 e nela também nao tem como passar o lote. Esta assim

        stlArquivo.Add(LFIll(Produtos[i].Setor.Codigo, 2) +
                       GetTipoProdutoToledo(Produtos[i].Tipo) +
                       LFIll(Produtos[i].Codigo, 6) +
                       LFIll(Produtos[i].ValorVenda, 6, 2) +
                       LFIll(Produtos[i].Validade, 3) +
                       RFIll(Produtos[i].Descricao, 50) +
                       LFIll(Produtos[i].ObterCodigoInfoExtra(modToledoMGV6), 6)+ // codigo inf extra
                       LFIll('0', 4)+ // codigo imagem
                       LFIll(Produtos[i].Nutricional.Codigo,6)+ // codigo inf nutricional
                       RFill(IntToStr(Produtos[i].ImpValidade), 1)+ // imprime data de validade
                       RFill(IntToStr(Produtos[i].ImpEmbalagem), 1)+ // imprime data embalagem
                       LFIll(Produtos[i].CodigoFornecedor, 4)+ // codigo fornecedor
                       //LFIll('0', 4)+ // codigo fornecedor
                       lFill('0', 12)+ // lote
                       lFill('0', 11)+ // codigo especial
                       LFIll('0', 1)+ // versao do preco
                       LFIll('0', 4)+ // codigo do som
                       LFIll(IntToStr(Produtos[i].CodigoTara),4)+ // codigo da tara
                       //LFIll('0', 4)+ // codigo da tara
                       LFIll(Produtos[i].CodigoFracionador, 4)+ // codigo da fracionador
                       LFIll(Produtos[i].CodigoExtra1, 4)+ // Código do Campo Extra 1
                       LFIll(Produtos[i].CodigoExtra2, 4)+ // Código do Campo Extra 2
                       LFIll(Produtos[i].CodigoConservacao, 4)+ // Código da Conservação
                       LFIll(Produtos[i].EAN13Fornecedor, 12) // EAN-13, quando utilizado Tipo de Produto EAN-13
                       );

a linha do campo lote lFill('0', 12)+ // lote igual na outra procedure PreencherToledo

  • Membros Pro
Postado

BigWings e Juliomar Marchetti

Com os fontes atualizados fiz as alterações e seguindo as intruções o BigWings executei o ACBrInstall_Trunk2.

Passei a informação do lote e importei no MGV e funcionou, agora é possivel informar o lote.

O lote é informado no txt quando selecionado o modToledoMGV5, modToledoMGV6 e modToledoMGV7 no arquivo ITENSMGV.TXT

Para mim funcionou, vou anexar o .pas com a alteração

ACBrCargaBal.pas

  • Curtir 1
  • Moderadores
Postado
2 horas atrás, janderson@atron disse:

BigWings e Juliomar Marchetti

Com os fontes atualizados fiz as alterações e seguindo as intruções o BigWings executei o ACBrInstall_Trunk2.

Passei a informação do lote e importei no MGV e funcionou, agora é possivel informar o lote.

O lote é informado no txt quando selecionado o modToledoMGV5, modToledoMGV6 e modToledoMGV7 no arquivo ITENSMGV.TXT

Para mim funcionou, vou anexar o .pas com a alteração

ACBrCargaBal.pas 94.24 kB · 0 downloads

no svn

At revision: 27309

  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Este tópico foi criado há 752 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.