ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Etiqueta balança(Parte II)

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Automação Comercial
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
fabio.avila
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 11 de Junho de 2007
Mensagens: 292

MensagemEnviada: Seg Fev 11, 2008 4:21 pm    Assunto: Etiqueta balança(Parte II) Responder com Citação

Obrigado a todos que colaboraram comigo no topico "Etiqueta balança".

Resolvi o problema de ler a etiqueta da balança e descobrir a quantidade, agora preciso fazer o processo inverso.
Acessar o cadastro de produtos, verificar os produtos pesados e gerar o arquivo texto para a balança.

vi um sistema fazendo isso, tenho alguma idéia mas ainda não sei como começar.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabio.avila
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 11 de Junho de 2007
Mensagens: 292

MensagemEnviada: Seg Fev 11, 2008 4:22 pm    Assunto: Responder com Citação

ainda, considerando a balança toledo.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
vitoraraujo
Novato
Novato


Registrado: Sexta-Feira, 8 de Fevereiro de 2008
Mensagens: 23

MensagemEnviada: Seg Fev 11, 2008 6:56 pm    Assunto: Responder com Citação

Amigo qual o programa de retaguarda que seu programa irá utilizar. É o MGV5?

Se for pegue o manual do MGV5 no site da Toledo e procure no help que tem o formato do arquivo de Txt que tem que ser gerado.

Mais segue aqui um exemplo que utilizo aqui no meu sistema.

Código:
Procedure TFormBalancas.CriaToledo;
var
  f:textFile;
  count:integer;
  str,EndTol:string;
Begin
  EndTol := DmDados.TbConfigBalEndToledo.Value;//Pega o endereço do diretório do programa MGV5 que está gravado na tabela de configuração do meu sistema.

  AssignFile(f,ExtractFilePath(Application.ExeName)+'Tmp\TmpToledo.txt');
  Rewrite(f);
  Try
    CurSql;
    With DmDados.QrFazTudo1 do
    Begin
      Close;
      Sql.Clear;
      Sql.Add('SELECT '+ DmDAdos.Campos.codigo +', ' +DmDados.Campos.Nome +', '+DmDados.Campos.PrecoVenda +', TipoSaida' );
      Sql.Add('FROM     Produto');
      Sql.Add('WHERE    TipoSaida <> 0' );
      Sql.Add('AND LEN('+DmDAdos.CAmpos.codigo +') = 4');
      Sql.Add('ORDER BY '+DmDados.Campos.Nome );
      Open;

      ProgressBar1.Max :=  RecordCount ;
      Count := 0;

      First;
      While not EOF do
      Begin
        Str := '';
        if FieldByName('TipoSaida').AsInteger =  1 then
        Str := '010'//Tipo de produto por peso
        else
        Str := '011';//Tipo de produto por Unidade

        //Código do produto
        Str := Str + FormatFloat('000000',FieldByName(DmDados.Campos.codigo).AsFloat);
        //Preço do produto
        Str := STr + FormatFloat('000000',StrToFloat(FloatToStrf(FieldByName(DmDAdos.Campos.PrecoVenda).AsFloat  * 100,ffFixed,10,2)));
        //Validade do produto
        Str := Str + '000';
        //Primeira linha da descrição do produto
        Str := Str + Format('%-25s',[Copy(FieldByname(DmDados.Campos.Nome).AsString,1,25)]);
        //Segunda linha com o descritivo do produto
        Str := Str + Format('%-25s',[Copy(FieldByName(DmDados.Campos.Nome).AsString,26,25)]);
        //Código da ifra do item
        Str := Str + '000000';
        //Código da imagem do item
        Str := Str + '000';
        //Código da informação nutricional do item
        Str := Str + '0000';
        //Imprimir data de Validade
        Str := Str + '0';
        //Imprimir data de embalagem
        Str := Str + '1';
        //Código do fornecedor
        Str := Str + '0000';
        //Lote do produto
        Str := STr + '000000000000';
        //Código especial
        Str := Str + '00000000000';
        //Versão do preço
        Str := Str +'0';
        Str := STr +'00';

        WriteLn(f,str);
        Next;

        Inc(Count);
        ProgressBar1.Position := Count;

      end;
    end;


  Finally
    CloseFile(f);

    CopyFile(Pchar(ExtractFilePath(Application.ExeName)+ 'tmp\TmpToledo.txt'),Pchar(EndTol+'\ITENSMGV.TXT'),False);
    DeleteFile(ExtractFilePath(Application.ExeName)+ 'tmp\TmpToledo.txt');

    normal;
  end;

end;


Mais insisto pegue o manual, do programa de retaguarda da balança, e de uma lida, que deverá de ter la o formato do arquivo (no caso do MGV5 tem).
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
vitoraraujo
Novato
Novato


Registrado: Sexta-Feira, 8 de Fevereiro de 2008
Mensagens: 23

MensagemEnviada: Seg Fev 11, 2008 7:03 pm    Assunto: Responder com Citação

O seu programa irá criar o txt com o formato correto e irá enviar para alguma pasta (geralmente a do programa de retaguarda da balança).

Explicando o código anterior.

Eu peguei criei um arquivo na pasta temporária do meu sistema com o formato correto.
Copiei o mesmo para a pasta que está instalado o mgv5, após copiar o arquivo apago ele da pasta temporária.

Após feito isso basta abrir o programa MGV5 (Programa de retaguarda da balança) e mandar ele importar o arquivo (ItensMgv.txt) e envialo pra balança, ou caso ele esteja configurado corretamente você pode executar uma Macro que está pré-configurada no MGV5 que importa o txt e envia pra balança de uma vez só.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabio.avila
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 11 de Junho de 2007
Mensagens: 292

MensagemEnviada: Ter Fev 12, 2008 4:28 pm    Assunto: Responder com Citação

vitoraraujo escreveu:
Amigo qual o programa de retaguarda que seu programa irá utilizar. É o MGV5?

Se for pegue o manual do MGV5 no site da Toledo e procure no help que tem o formato do arquivo de Txt que tem que ser gerado.



já instalei o MGV5. esse recurso ainda está muito nebuloso para mim, dei uma lida no help, parece que é bem complicado... mas vou tentar algo.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabio.avila
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 11 de Junho de 2007
Mensagens: 292

MensagemEnviada: Ter Fev 12, 2008 4:56 pm    Assunto: Responder com Citação

acredito que é esse o formato do arquivo

TXITENS.TXT

TT(2)EE(2)O(1)CCCCCC(6)PPPPPP(6)VVV(3)D1(25)D2(25)R1(50)R2(50)R3(50)R4(50)R5(50)(+CR+LF)

Onde:



DD Código do departamento (2 bytes)
EE Etiqueta configurada no departamento (2 bytes)
T Tipo de produto: (1 byte)
[0] => Venda por peso[1] => Venda por unidade[2] => EAN-13
CCCCCC Código do item (6 bytes)
PPPPPP Preço/kg ou Preço/Unid. do item (6 bytes)
VVV Dias de validade do produto (3 bytes)
[000 à 990] - Prix4-N ou superior
[000 à 360] - Prix4 / Prix4-R
[000 à 099] - Rede MGVIII
D1 Linha 1 do descritivo do produto (25 bytes)
D2 Linha 2 do descritivo do produto (25 bytes)
R1 Linha 1 da informação extra / receita (50 bytes)
R2 Linha 2 da informação extra / receita (50 bytes)
R3 Linha 3 da informação extra / receita (50 bytes)
R4 Linha 4 da informação extra / receita (50 bytes)
R5 Linha 5 da informação extra / receita (50 bytes)
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabio.avila
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 11 de Junho de 2007
Mensagens: 292

MensagemEnviada: Ter Fev 12, 2008 4:58 pm    Assunto: Responder com Citação

não consegui relacionar total o seu código com o TXItens.txt.

por exemplo, no seu código não tem departamento.
o tipo de produto possui apenas 1 byte...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
vitoraraujo
Novato
Novato


Registrado: Sexta-Feira, 8 de Fevereiro de 2008
Mensagens: 23

MensagemEnviada: Ter Fev 12, 2008 9:00 pm    Assunto: Responder com Citação

Amigo me parece que existe três configurações de códigos, essa que eu postei no meu código é referente a configuração do arquivo "TENSMGV.TXT".
Da uma procurada no help do MGV5 que tem la.

Isso é configuravel no próprio mgv5.

Mais você pode aproveitar a idéia, e adaptar para o seu caso "Itens.txt".
Optei por essa configuração pelo fato de ele (para mim) ser menos complexo.

Mais qualquer coisas estamos ai.

PS: Esse código está funcionando perfeitamente em meu cliente (Apenas um trabalha com o MGV), desde que configurado a opção (na configuração do mgv para ler o arquivo "ITENSMGV.TXT").

Qualquer coisa estamos ai.

Atenciosamente Vitor Araújo Alcântara.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabio.avila
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 11 de Junho de 2007
Mensagens: 292

MensagemEnviada: Qua Fev 13, 2008 10:35 am    Assunto: Responder com Citação

vitoraraujo escreveu:
Amigo me parece que existe três configurações de códigos, essa que eu postei no meu código é referente a configuração do arquivo "TENSMGV.TXT".
Da uma procurada no help do MGV5 que tem la.


ainda assim continua minha dúvida...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabio.avila
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 11 de Junho de 2007
Mensagens: 292

MensagemEnviada: Qui Fev 14, 2008 9:58 am    Assunto: Responder com Citação

ok deu certo. obrigado pela ajuda.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
utlrasen.tato
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 11 de Janeiro de 2012
Mensagens: 112
Localização: jundiai-sp

MensagemEnviada: Sex Jul 24, 2015 6:29 am    Assunto: carga para balanca Responder com Citação

vitoraraujo escreveu:
Amigo qual o programa de retaguarda que seu programa irá utilizar. É o MGV5?

Se for pegue o manual do MGV5 no site da Toledo e procure no help que tem o formato do arquivo de Txt que tem que ser gerado.

Mais segue aqui um exemplo que utilizo aqui no meu sistema.

Código:
Procedure TFormBalancas.CriaToledo;
var
  f:textFile;
  count:integer;
  str,EndTol:string;
Begin
  EndTol := DmDados.TbConfigBalEndToledo.Value;//Pega o endereço do diretório do programa MGV5 que está gravado na tabela de configuração do meu sistema.

  AssignFile(f,ExtractFilePath(Application.ExeName)+'Tmp\TmpToledo.txt');
  Rewrite(f);
  Try
    CurSql;
    With DmDados.QrFazTudo1 do
    Begin
      Close;
      Sql.Clear;
      Sql.Add('SELECT '+ DmDAdos.Campos.codigo +', ' +DmDados.Campos.Nome +', '+DmDados.Campos.PrecoVenda +', TipoSaida' );
      Sql.Add('FROM     Produto');
      Sql.Add('WHERE    TipoSaida <> 0' );
      Sql.Add('AND LEN('+DmDAdos.CAmpos.codigo +') = 4');
      Sql.Add('ORDER BY '+DmDados.Campos.Nome );
      Open;

      ProgressBar1.Max :=  RecordCount ;
      Count := 0;

      First;
      While not EOF do
      Begin
        Str := '';
        if FieldByName('TipoSaida').AsInteger =  1 then
        Str := '010'//Tipo de produto por peso
        else
        Str := '011';//Tipo de produto por Unidade

        //Código do produto
        Str := Str + FormatFloat('000000',FieldByName(DmDados.Campos.codigo).AsFloat);
        //Preço do produto
        Str := STr + FormatFloat('000000',StrToFloat(FloatToStrf(FieldByName(DmDAdos.Campos.PrecoVenda).AsFloat  * 100,ffFixed,10,2)));
        //Validade do produto
        Str := Str + '000';
        //Primeira linha da descrição do produto
        Str := Str + Format('%-25s',[Copy(FieldByname(DmDados.Campos.Nome).AsString,1,25)]);
        //Segunda linha com o descritivo do produto
        Str := Str + Format('%-25s',[Copy(FieldByName(DmDados.Campos.Nome).AsString,26,25)]);
        //Código da ifra do item
        Str := Str + '000000';
        //Código da imagem do item
        Str := Str + '000';
        //Código da informação nutricional do item
        Str := Str + '0000';
        //Imprimir data de Validade
        Str := Str + '0';
        //Imprimir data de embalagem
        Str := Str + '1';
        //Código do fornecedor
        Str := Str + '0000';
        //Lote do produto
        Str := STr + '000000000000';
        //Código especial
        Str := Str + '00000000000';
        //Versão do preço
        Str := Str +'0';
        Str := STr +'00';

        WriteLn(f,str);
        Next;

        Inc(Count);
        ProgressBar1.Position := Count;

      end;
    end;


  Finally
    CloseFile(f);

    CopyFile(Pchar(ExtractFilePath(Application.ExeName)+ 'tmp\TmpToledo.txt'),Pchar(EndTol+'\ITENSMGV.TXT'),False);
    DeleteFile(ExtractFilePath(Application.ExeName)+ 'tmp\TmpToledo.txt');

    normal;
  end;

end;


Mais insisto pegue o manual, do programa de retaguarda da balança, e de uma lida, que deverá de ter la o formato do arquivo (no caso do MGV5 tem).




bom dia amigo

a rotina que voce postou deu certo, porem estou precisando enviar os campos de ingredientes ou seja campos extras para balanca voce sabe como fazer isso
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Automação Comercial Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB