| 
			
				|  | 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.
 
 |  |