|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
fabio.avila Aprendiz
Registrado: Segunda-Feira, 11 de Junho de 2007 Mensagens: 292
|
Enviada: Seg Fev 11, 2008 4:21 pm Assunto: Etiqueta balança(Parte II) |
|
|
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 |
|
|
fabio.avila Aprendiz
Registrado: Segunda-Feira, 11 de Junho de 2007 Mensagens: 292
|
Enviada: Seg Fev 11, 2008 4:22 pm Assunto: |
|
|
ainda, considerando a balança toledo. |
|
Voltar ao Topo |
|
|
vitoraraujo Novato
Registrado: Sexta-Feira, 8 de Fevereiro de 2008 Mensagens: 23
|
Enviada: Seg Fev 11, 2008 6:56 pm Assunto: |
|
|
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 |
|
|
vitoraraujo Novato
Registrado: Sexta-Feira, 8 de Fevereiro de 2008 Mensagens: 23
|
Enviada: Seg Fev 11, 2008 7:03 pm Assunto: |
|
|
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 |
|
|
fabio.avila Aprendiz
Registrado: Segunda-Feira, 11 de Junho de 2007 Mensagens: 292
|
Enviada: Ter Fev 12, 2008 4:28 pm Assunto: |
|
|
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 |
|
|
fabio.avila Aprendiz
Registrado: Segunda-Feira, 11 de Junho de 2007 Mensagens: 292
|
Enviada: Ter Fev 12, 2008 4:56 pm Assunto: |
|
|
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 |
|
|
fabio.avila Aprendiz
Registrado: Segunda-Feira, 11 de Junho de 2007 Mensagens: 292
|
Enviada: Ter Fev 12, 2008 4:58 pm Assunto: |
|
|
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 |
|
|
vitoraraujo Novato
Registrado: Sexta-Feira, 8 de Fevereiro de 2008 Mensagens: 23
|
Enviada: Ter Fev 12, 2008 9:00 pm Assunto: |
|
|
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 |
|
|
fabio.avila Aprendiz
Registrado: Segunda-Feira, 11 de Junho de 2007 Mensagens: 292
|
Enviada: Qua Fev 13, 2008 10:35 am Assunto: |
|
|
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 |
|
|
fabio.avila Aprendiz
Registrado: Segunda-Feira, 11 de Junho de 2007 Mensagens: 292
|
Enviada: Qui Fev 14, 2008 9:58 am Assunto: |
|
|
ok deu certo. obrigado pela ajuda. |
|
Voltar ao Topo |
|
|
utlrasen.tato Aprendiz
Registrado: Quarta-Feira, 11 de Janeiro de 2012 Mensagens: 112 Localização: jundiai-sp
|
Enviada: Sex Jul 24, 2015 6:29 am Assunto: carga para balanca |
|
|
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 |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|