Formatar o cupom não Fiscal
Olá a todos,
Estou desenvolvendo um Sistema de Restaurante sem controle de mesa em delphi 7 e usando o firebird 2.5, só que estou com dificuldades em formatar o tamanho do campo para sair certinho no cupom não fiscal, alguém sabe como fazer isso ?
Minha Situação:
[img]http://arquivo.devmedia.com.br/forum/imagem/194427-20140206-123424.png[/img]
Como Desejo:
[img]http://arquivo.devmedia.com.br/forum/imagem/194427-20140206-123603.png[/img]
Exemplo: se a descrição do produto for maior a configuração da linha não muda.
Estou desenvolvendo um Sistema de Restaurante sem controle de mesa em delphi 7 e usando o firebird 2.5, só que estou com dificuldades em formatar o tamanho do campo para sair certinho no cupom não fiscal, alguém sabe como fazer isso ?
Minha Situação:
[img]http://arquivo.devmedia.com.br/forum/imagem/194427-20140206-123424.png[/img]
Como Desejo:
[img]http://arquivo.devmedia.com.br/forum/imagem/194427-20140206-123603.png[/img]
Exemplo: se a descrição do produto for maior a configuração da linha não muda.
Josenildo Rosa
Curtidas 0
Respostas
Leonardo Rehder
06/02/2014
Boa tarde, Josenildo!
Você pode fazer alinhamento de carácter usando uma função do delphi chamada "StringOfChar".
Ex: Você tem que delimitar os tamanhos dos campos.
Usando o exemplo do cupom fiscal mesmo.
Codigo = String[3];
Descricao = String[30];
Unidade_Medida = String[2];
Quantidade = String[7];
Valor = String[7];
Caracter: string;
Quantidade_Alinhamento: Integer;
Alinhar a Direita;
Ex:
Caracter:= 0; //==> Nesta variável você define qual carácter que usar para fazer o alinhamento. Neste caso vamos usar o "0" (Zero).
Quantidade_Alinhamento:= 3; //==> Quantidade de carácter você precisa alinhar;
Codigo:= '1';
Codigo := StringOfChar(Caracter, (Quantidade_Alinhamento- Length(Codigo ))) + Codigo ;
Resultado da variável Codigo será = "001";
Alinhar a Esquerda;
Ex:
Caracter = ' '; //==> Nesta variável você define qual carácter que usar para fazer o alinhamento. Neste caso vamos usar o " " (Espaço).
Quantidade_Alinhamento:= 7; //==> Quantidade de carácter você precisa alinhar;
Valor:= FormatFloat('0.00', Valor_Item);
Valor + StringOfChar(Caracter, (Quantidade_Alinhamento- Length(Valor )));
Resultado da variável Valor será " 1.00";
Obs: Usa uma fonte que todos os carácter usa o mesmo tamanho. Ex: Lucida Console.
Na pratica você pode alinhar desta forma.
Codigo + ' ' + Descricao + ' ' + Unidade_Medida + ' ' + Quantidade + ' ' + Valor
Forte abraço, espero que te ajude!
Você pode fazer alinhamento de carácter usando uma função do delphi chamada "StringOfChar".
Ex: Você tem que delimitar os tamanhos dos campos.
Usando o exemplo do cupom fiscal mesmo.
Codigo = String[3];
Descricao = String[30];
Unidade_Medida = String[2];
Quantidade = String[7];
Valor = String[7];
Caracter: string;
Quantidade_Alinhamento: Integer;
Alinhar a Direita;
Ex:
Caracter:= 0; //==> Nesta variável você define qual carácter que usar para fazer o alinhamento. Neste caso vamos usar o "0" (Zero).
Quantidade_Alinhamento:= 3; //==> Quantidade de carácter você precisa alinhar;
Codigo:= '1';
Codigo := StringOfChar(Caracter, (Quantidade_Alinhamento- Length(Codigo ))) + Codigo ;
Resultado da variável Codigo será = "001";
Alinhar a Esquerda;
Ex:
Caracter = ' '; //==> Nesta variável você define qual carácter que usar para fazer o alinhamento. Neste caso vamos usar o " " (Espaço).
Quantidade_Alinhamento:= 7; //==> Quantidade de carácter você precisa alinhar;
Valor:= FormatFloat('0.00', Valor_Item);
Valor + StringOfChar(Caracter, (Quantidade_Alinhamento- Length(Valor )));
Resultado da variável Valor será " 1.00";
Obs: Usa uma fonte que todos os carácter usa o mesmo tamanho. Ex: Lucida Console.
Na pratica você pode alinhar desta forma.
Codigo + ' ' + Descricao + ' ' + Unidade_Medida + ' ' + Quantidade + ' ' + Valor
Forte abraço, espero que te ajude!
GOSTEI 0
Josenildo Rosa
06/02/2014
Oi Leonardo, desde já agradeço muito pela colaboração. Só uma duvida eu fazendo esses passos que você me indicou no cupom vai ficar igual a figura 2 que eu postei, ou seja, vai ficar conforme EXEMPLO abaixo, MESMO SE A DESCRIÇÃO DO PRODUTO FOR MAIOR OU MENOR.
CUPOM NÃO FISCAL
-----------------------------------------------------------------------
COD DESCRICAO QTD. VALOR
-----------------------------------------------------------------------
1 SELF SERVICE A KILO 2 R$ 5,50
1 MARMITEX PEQUENA 2 R$ 5,50
1 MARMITEX MEDIA 2 R$ 5,50
1 MARMITEX GRANDE 2 R$ 5,50
1 SUCO 2 R$ 5,50
-----------------------------------------------------------------------
TOTAL R$ 11,00
DESCONTO R$ 1,00
TOTAL R$ 10,00
------------------------------------------------
ABRAÇOS,
CUPOM NÃO FISCAL
-----------------------------------------------------------------------
COD DESCRICAO QTD. VALOR
-----------------------------------------------------------------------
1 SELF SERVICE A KILO 2 R$ 5,50
1 MARMITEX PEQUENA 2 R$ 5,50
1 MARMITEX MEDIA 2 R$ 5,50
1 MARMITEX GRANDE 2 R$ 5,50
1 SUCO 2 R$ 5,50
-----------------------------------------------------------------------
TOTAL R$ 11,00
DESCONTO R$ 1,00
TOTAL R$ 10,00
------------------------------------------------
ABRAÇOS,
Boa tarde, Josenildo!
Você pode fazer alinhamento de carácter usando uma função do delphi chamada "StringOfChar".
Ex: Você tem que delimitar os tamanhos dos campos.
Usando o exemplo do cupom fiscal mesmo.
Codigo = String[3];
Descricao = String[30];
Unidade_Medida = String[2];
Quantidade = String[7];
Valor = String[7];
Caracter: string;
Quantidade_Alinhamento: Integer;
Alinhar a Direita;
Ex:
Caracter:= 0; //==> Nesta variável você define qual carácter que usar para fazer o alinhamento. Neste caso vamos usar o "0" (Zero).
Quantidade_Alinhamento:= 3; //==> Quantidade de carácter você precisa alinhar;
Codigo:= '1';
Codigo := StringOfChar(Caracter, (Quantidade_Alinhamento- Length(Codigo ))) + Codigo ;
Resultado da variável Codigo será = "001";
Alinhar a Esquerda;
Ex:
Caracter = ' '; //==> Nesta variável você define qual carácter que usar para fazer o alinhamento. Neste caso vamos usar o " " (Espaço).
Quantidade_Alinhamento:= 7; //==> Quantidade de carácter você precisa alinhar;
Valor:= FormatFloat('0.00', Valor_Item);
Valor + StringOfChar(Caracter, (Quantidade_Alinhamento- Length(Valor )));
Resultado da variável Valor será " 1.00";
Obs: Usa uma fonte que todos os carácter usa o mesmo tamanho. Ex: Lucida Console.
Na pratica você pode alinhar desta forma.
Codigo + ' ' + Descricao + ' ' + Unidade_Medida + ' ' + Quantidade + ' ' + Valor
Forte abraço, espero que te ajude!
Você pode fazer alinhamento de carácter usando uma função do delphi chamada "StringOfChar".
Ex: Você tem que delimitar os tamanhos dos campos.
Usando o exemplo do cupom fiscal mesmo.
Codigo = String[3];
Descricao = String[30];
Unidade_Medida = String[2];
Quantidade = String[7];
Valor = String[7];
Caracter: string;
Quantidade_Alinhamento: Integer;
Alinhar a Direita;
Ex:
Caracter:= 0; //==> Nesta variável você define qual carácter que usar para fazer o alinhamento. Neste caso vamos usar o "0" (Zero).
Quantidade_Alinhamento:= 3; //==> Quantidade de carácter você precisa alinhar;
Codigo:= '1';
Codigo := StringOfChar(Caracter, (Quantidade_Alinhamento- Length(Codigo ))) + Codigo ;
Resultado da variável Codigo será = "001";
Alinhar a Esquerda;
Ex:
Caracter = ' '; //==> Nesta variável você define qual carácter que usar para fazer o alinhamento. Neste caso vamos usar o " " (Espaço).
Quantidade_Alinhamento:= 7; //==> Quantidade de carácter você precisa alinhar;
Valor:= FormatFloat('0.00', Valor_Item);
Valor + StringOfChar(Caracter, (Quantidade_Alinhamento- Length(Valor )));
Resultado da variável Valor será " 1.00";
Obs: Usa uma fonte que todos os carácter usa o mesmo tamanho. Ex: Lucida Console.
Na pratica você pode alinhar desta forma.
Codigo + ' ' + Descricao + ' ' + Unidade_Medida + ' ' + Quantidade + ' ' + Valor
Forte abraço, espero que te ajude!
GOSTEI 0
Leonardo Rehder
06/02/2014
Boa noite, Josenildo!
Se você seguir a regra que eu te passei ela ficará igual a sua figura dois!
Se a string que você pedir para alinhar automaticamente ela será contada na quantidade de carácter que você específico.
Segue dois exemplo:
//==> Corta a string no tamanho especificado na variável.
Procedure TForm1.FormShow(Sender: TObject);
Var
Str: String[30];
Begin
Str := 'AAAAAAAAAABBBBBBBBBBCCCCCCCCCCZZZZZZZZZZZZZZZZZ';
ShowMessage(Str);
End;
//==> Se não especificar o tamanho na variável. Use este exemplo.
Procedure TForm1.ATBitBtn1Click(Sender: TObject);
Var
Str: String;
Begin
Str := 'AAAAAAAAAABBBBBBBBBBCCCCCCCCCCZZZZZZZZZZZZZZZZZ';
Str := Copy(Str, 1, 30);
Str := StringOfChar(' ', (30 - Length(Str))) + Str;
ShowMessage(QuotedStr(Str));
Str := 'AAAAAAAAAA';
Str := Copy(Str, 1, 30);
Str := StringOfChar(' ', (30 - Length(Str))) + Str;
ShowMessage(QuotedStr(Str));
End;
Forte abraço, espero que te ajude!
Se você seguir a regra que eu te passei ela ficará igual a sua figura dois!
Se a string que você pedir para alinhar automaticamente ela será contada na quantidade de carácter que você específico.
Segue dois exemplo:
//==> Corta a string no tamanho especificado na variável.
Procedure TForm1.FormShow(Sender: TObject);
Var
Str: String[30];
Begin
Str := 'AAAAAAAAAABBBBBBBBBBCCCCCCCCCCZZZZZZZZZZZZZZZZZ';
ShowMessage(Str);
End;
//==> Se não especificar o tamanho na variável. Use este exemplo.
Procedure TForm1.ATBitBtn1Click(Sender: TObject);
Var
Str: String;
Begin
Str := 'AAAAAAAAAABBBBBBBBBBCCCCCCCCCCZZZZZZZZZZZZZZZZZ';
Str := Copy(Str, 1, 30);
Str := StringOfChar(' ', (30 - Length(Str))) + Str;
ShowMessage(QuotedStr(Str));
Str := 'AAAAAAAAAA';
Str := Copy(Str, 1, 30);
Str := StringOfChar(' ', (30 - Length(Str))) + Str;
ShowMessage(QuotedStr(Str));
End;
Forte abraço, espero que te ajude!
GOSTEI 0
Josenildo Rosa
06/02/2014
Leonardo bom dia!,
Desculpa a minha ignorancia, pois sei que tenho algumas dificuldades ainda no delphi, mas o codigo que voce me passou não está funcionando, pois está dando um erro na constante "caracter", mesmo definida o delphi não está reconhecendo.
Alinhar a Direita;
Ex:
Caracter:= 0; //==> Nesta variável você define qual carácter que usar para fazer o alinhamento. Neste caso vamos usar o "0" (Zero).
Quantidade_Alinhamento:= 3; //==> Quantidade de carácter você precisa alinhar;
Codigo:= '1';
Codigo := StringOfChar(Caracter, (Quantidade_Alinhamento- Length(Codigo ))) + Codigo ;
Resultado da variável Codigo será = "001";
Alinhar a Esquerda;
Ex:
Caracter = ' '; //==> Nesta variável você define qual carácter que usar para fazer o alinhamento. Neste caso vamos usar o " " (Espaço).
Quantidade_Alinhamento:= 7; //==> Quantidade de carácter você precisa alinhar;
Valor:= FormatFloat('0.00', Valor_Item);
Valor + StringOfChar(Caracter, (Quantidade_Alinhamento- Length(Valor )));
Resultado da variável Valor será " 1.00";
Desculpa a minha ignorancia, pois sei que tenho algumas dificuldades ainda no delphi, mas o codigo que voce me passou não está funcionando, pois está dando um erro na constante "caracter", mesmo definida o delphi não está reconhecendo.
Alinhar a Direita;
Ex:
Caracter:= 0; //==> Nesta variável você define qual carácter que usar para fazer o alinhamento. Neste caso vamos usar o "0" (Zero).
Quantidade_Alinhamento:= 3; //==> Quantidade de carácter você precisa alinhar;
Codigo:= '1';
Codigo := StringOfChar(Caracter, (Quantidade_Alinhamento- Length(Codigo ))) + Codigo ;
Resultado da variável Codigo será = "001";
Alinhar a Esquerda;
Ex:
Caracter = ' '; //==> Nesta variável você define qual carácter que usar para fazer o alinhamento. Neste caso vamos usar o " " (Espaço).
Quantidade_Alinhamento:= 7; //==> Quantidade de carácter você precisa alinhar;
Valor:= FormatFloat('0.00', Valor_Item);
Valor + StringOfChar(Caracter, (Quantidade_Alinhamento- Length(Valor )));
Resultado da variável Valor será " 1.00";
Boa tarde, Josenildo!
Você pode fazer alinhamento de carácter usando uma função do delphi chamada "StringOfChar".
Ex: Você tem que delimitar os tamanhos dos campos.
Usando o exemplo do cupom fiscal mesmo.
Codigo = String[3];
Descricao = String[30];
Unidade_Medida = String[2];
Quantidade = String[7];
Valor = String[7];
Caracter: string;
Quantidade_Alinhamento: Integer;
Alinhar a Direita;
Ex:
Caracter:= 0; //==> Nesta variável você define qual carácter que usar para fazer o alinhamento. Neste caso vamos usar o "0" (Zero).
Quantidade_Alinhamento:= 3; //==> Quantidade de carácter você precisa alinhar;
Codigo:= '1';
Codigo := StringOfChar(Caracter, (Quantidade_Alinhamento- Length(Codigo ))) + Codigo ;
Resultado da variável Codigo será = "001";
Alinhar a Esquerda;
Ex:
Caracter = ' '; //==> Nesta variável você define qual carácter que usar para fazer o alinhamento. Neste caso vamos usar o " " (Espaço).
Quantidade_Alinhamento:= 7; //==> Quantidade de carácter você precisa alinhar;
Valor:= FormatFloat('0.00', Valor_Item);
Valor + StringOfChar(Caracter, (Quantidade_Alinhamento- Length(Valor )));
Resultado da variável Valor será " 1.00";
Obs: Usa uma fonte que todos os carácter usa o mesmo tamanho. Ex: Lucida Console.
Na pratica você pode alinhar desta forma.
Codigo + ' ' + Descricao + ' ' + Unidade_Medida + ' ' + Quantidade + ' ' + Valor
Forte abraço, espero que te ajude!
Você pode fazer alinhamento de carácter usando uma função do delphi chamada "StringOfChar".
Ex: Você tem que delimitar os tamanhos dos campos.
Usando o exemplo do cupom fiscal mesmo.
Codigo = String[3];
Descricao = String[30];
Unidade_Medida = String[2];
Quantidade = String[7];
Valor = String[7];
Caracter: string;
Quantidade_Alinhamento: Integer;
Alinhar a Direita;
Ex:
Caracter:= 0; //==> Nesta variável você define qual carácter que usar para fazer o alinhamento. Neste caso vamos usar o "0" (Zero).
Quantidade_Alinhamento:= 3; //==> Quantidade de carácter você precisa alinhar;
Codigo:= '1';
Codigo := StringOfChar(Caracter, (Quantidade_Alinhamento- Length(Codigo ))) + Codigo ;
Resultado da variável Codigo será = "001";
Alinhar a Esquerda;
Ex:
Caracter = ' '; //==> Nesta variável você define qual carácter que usar para fazer o alinhamento. Neste caso vamos usar o " " (Espaço).
Quantidade_Alinhamento:= 7; //==> Quantidade de carácter você precisa alinhar;
Valor:= FormatFloat('0.00', Valor_Item);
Valor + StringOfChar(Caracter, (Quantidade_Alinhamento- Length(Valor )));
Resultado da variável Valor será " 1.00";
Obs: Usa uma fonte que todos os carácter usa o mesmo tamanho. Ex: Lucida Console.
Na pratica você pode alinhar desta forma.
Codigo + ' ' + Descricao + ' ' + Unidade_Medida + ' ' + Quantidade + ' ' + Valor
Forte abraço, espero que te ajude!
GOSTEI 0