RES: RES: RES: [delphi-br] Quebra String
João, deu certo cara ... valeu a todos que me ajudaram. Tiago de Assis Pimenta MSN: mailto:[EMAIL PROTECTED] [EMAIL PROTECTED] SKYPE: tiagopimenta_skype GTALK: tiagopimenta _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Joao Morais Enviada em: terça-feira, 27 de fevereiro de 2007 23:35 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: RES: [delphi-br] Quebra String Tiago de Assis Pimenta wrote: [snip] write(impressora,format('%-40s',[wraptext(qrhistserv.fieldbyname('servico'). asstring,39)])); write(impressora,format('%-10s',[qrhistserv.fieldbyname('qtde').value])); write(impressora,format('%-18s',[formatfloat('##0.00',qrhistserv.fieldbyname ('precoun').value)])); write(impressora,format('%-10s',[formatfloat('##0.00',qrhistserv.fieldbyname ('total').value)])); writeln(impressora); qrhistserv.next; end; Só que acho que esta acontecendo o seguinte. Como a string tem mais de 40 caracteres ele dá pau na formatação. Acho que é isso. Você precisa pegar uma linha por vez. Use o StringList para ajudar: VStringList := TStringList.Create; try VStringList.Text := WrapText('texto', VColunas); VStringList.Count == total de linhas VStringList[0] == primeira linha VStringList[1] == segunda linha //etc. finally VStringList.Free; end; Depois você monta o corpo do relatório, levando em conta que você precisará abrir linhas caso o .Count seja maior do que um. Ex.: Mensagem Qtd Unit Total == = = Mensagem que não cabe em uma 2 10,00 20,00 única linha Mensagem que cabe em uma linha 150 2,00 300,00 -- João Morais [As partes desta mensagem que não continham texto foram removidas]
RES: RES: [delphi-br] Quebra String
João, já tinha feito assim. Olha o código de como tava tentando fazer. write(impressora,format('%-40s',['DISCRIMANACAO'])); write(impressora,format('%-10s',['QTDE'])); write(impressora,format('%-18s',['PRECO UNITARIO'])); writeln(impressora,format('%-10s',['PRECO TOTAL'])); writeln(impressora,' ==='); qrhistserv.first; while not qrhistserv.eof do begin write(impressora,format('%-40s',[wraptext(qrhistserv.fieldbyname('servico'). asstring,39)])); write(impressora,format('%-10s',[qrhistserv.fieldbyname('qtde').value])); write(impressora,format('%-18s',[formatfloat('##0.00',qrhistserv.fieldbyname ('precoun').value)])); write(impressora,format('%-10s',[formatfloat('##0.00',qrhistserv.fieldbyname ('total').value)])); writeln(impressora); qrhistserv.next; end; Só que acho que esta acontecendo o seguinte. Como a string tem mais de 40 caracteres ele dá pau na formatação. Acho que é isso. Tiago de Assis Pimenta MSN: mailto:[EMAIL PROTECTED] [EMAIL PROTECTED] SKYPE: tiagopimenta_skype GTALK: tiagopimenta _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Joao Morais Enviada em: terça-feira, 27 de fevereiro de 2007 16:34 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: [delphi-br] Quebra String Tiago de Assis Pimenta wrote: João a função funcionou perfeitamente, só que esbarrei em outra duvida aqui. Ela quebra a string em quantas linhas forem necessária, só que o alinhamento da qtde , preço unitário e preço total depois fica diferente para quando não passa de 40 caracteres. Dai pensei em mandar imprimir a qtde em uma determinada coluna, independendo de qtos caracteres tem antes, tipo assim, a qtde começa na coluna 30 e termina na 35 por ex. e assim por diante eu faria com o preço unitário e total. Andei olhando tanto no help do delphi quanto em sites para ver se o format fazia isso, mas acho que não, ou se tem como fazer com ele não intendi como. Tem como fazer isso que estou pensando ? Format('%-30s', [VarSuaString]) faz com que VarSuaString ocupe pelo menos 30 caracteres, e alinha o texto à esquerda. Para alinhar à direita, retire o sinal de menos. -- João Morais [As partes desta mensagem que não continham texto foram removidas]
Re: RES: RES: [delphi-br] Quebra String
Tiago de Assis Pimenta wrote: [snip] write(impressora,format('%-40s',[wraptext(qrhistserv.fieldbyname('servico'). asstring,39)])); write(impressora,format('%-10s',[qrhistserv.fieldbyname('qtde').value])); write(impressora,format('%-18s',[formatfloat('##0.00',qrhistserv.fieldbyname ('precoun').value)])); write(impressora,format('%-10s',[formatfloat('##0.00',qrhistserv.fieldbyname ('total').value)])); writeln(impressora); qrhistserv.next; end; Só que acho que esta acontecendo o seguinte. Como a string tem mais de 40 caracteres ele dá pau na formatação. Acho que é isso. Você precisa pegar uma linha por vez. Use o StringList para ajudar: VStringList := TStringList.Create; try VStringList.Text := WrapText('texto', VColunas); VStringList.Count == total de linhas VStringList[0] == primeira linha VStringList[1] == segunda linha //etc. finally VStringList.Free; end; Depois você monta o corpo do relatório, levando em conta que você precisará abrir linhas caso o .Count seja maior do que um. Ex.: Mensagem Qtd Unit Total == = = Mensagem que não cabe em uma2 10,00 20,00 única linha Mensagem que cabe em uma linha150 2,00 300,00 -- João Morais
RES: RES: [delphi-br] Quebra String
Sem comentário ? qq vc quiz dizer com isso ? Tiago de Assis Pimenta MSN: mailto:[EMAIL PROTECTED] [EMAIL PROTECTED] SKYPE: tiagopimenta_skype GTALK: tiagopimenta _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Eduardo Enviada em: domingo, 25 de fevereiro de 2007 10:32 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: [delphi-br] Quebra String Abra o delphi. WrapText(Com o cursor aqui tecla ctrl+shsift+espaço) Depois leia o q vai aparecer. Sem comentário. Eduardo Tiago de Assis Pimenta escreveu: Não intendi João, tem como me explicar o que seria esse SysUtils.WrapText Tiago de Assis Pimenta MSN: mailto:tiagopimenta@ mailto:tiagopimenta%40hotmail.com hotmail.com mailto:tiagopimenta%40hotmail.com tiagopimenta@ mailto:tiagopimenta%40hotmail.com hotmail.com mailto:tiagopimenta%40hotmail.com SKYPE: tiagopimenta_skype GTALK: tiagopimenta _ De: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br [mailto:[EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br] Em nome de Joao Morais Enviada em: sexta-feira, 23 de fevereiro de 2007 18:02 Para: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br Assunto: Re: [delphi-br] Quebra String Tiago de Assis Pimenta wrote: Galera, boa tarde, estou com o seguinte problema. Preciso quebrar um string em varias linhas, as condições são as seguintes, cada linha não pode passar de 40 caracteres. Isso é para imprimir uma Ordem de Serviço, então por exemplo, chegou em 40 caracteres, ele pula para a proxima linha e assim sucessivamente. Agora a duvida, como faço isso por exemplo, se o limite de caracter der no meio de uma palavra ? Vai fica estranho !!! Então tava pensando em pular a linha só quando achar um espaço em branco. Sera que alguem tem outra ideia para me ajudar ??? SysUtils.WrapText -- João Morais [As partes desta mensagem que não continham texto foram removidas] ___ Yahoo! Mail - Sempre a melhor opção para você! Experimente já e veja as novidades. http://br.yahoo. http://br.yahoo.com/mailbeta/tudonovo/ com/mailbeta/tudonovo/ [As partes desta mensagem que não continham texto foram removidas]
Re: RES: RES: [delphi-br] Quebra String
Você nem se deu ao trabalho de testar a função no delphi. Se você tivesse feito isso você não teria mandado o email. A função é simples demais para qualquer pergunta. Foi isso que eu quis dizer com o sem comentário. Eduardo Tiago de Assis Pimenta escreveu: Sem comentário ? qq vc quiz dizer com isso ? Tiago de Assis Pimenta MSN: mailto:[EMAIL PROTECTED] mailto:tiagopimenta%40hotmail.com [EMAIL PROTECTED] mailto:tiagopimenta%40hotmail.com SKYPE: tiagopimenta_skype GTALK: tiagopimenta _ De: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br [mailto:delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br] Em nome de Eduardo Enviada em: domingo, 25 de fevereiro de 2007 10:32 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br Assunto: Re: RES: [delphi-br] Quebra String Abra o delphi. WrapText(Com o cursor aqui tecla ctrl+shsift+espaço) Depois leia o q vai aparecer. Sem comentário. Eduardo Tiago de Assis Pimenta escreveu: Não intendi João, tem como me explicar o que seria esse SysUtils.WrapText Tiago de Assis Pimenta MSN: mailto:tiagopimenta@ mailto:tiagopimenta%40hotmail.com hotmail.com mailto:tiagopimenta%40hotmail.com tiagopimenta@ mailto:tiagopimenta%40hotmail.com hotmail.com mailto:tiagopimenta%40hotmail.com SKYPE: tiagopimenta_skype GTALK: tiagopimenta _ De: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br [mailto:[EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br] Em nome de Joao Morais Enviada em: sexta-feira, 23 de fevereiro de 2007 18:02 Para: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br Assunto: Re: [delphi-br] Quebra String Tiago de Assis Pimenta wrote: Galera, boa tarde, estou com o seguinte problema. Preciso quebrar um string em varias linhas, as condições são as seguintes, cada linha não pode passar de 40 caracteres. Isso é para imprimir uma Ordem de Serviço, então por exemplo, chegou em 40 caracteres, ele pula para a proxima linha e assim sucessivamente. Agora a duvida, como faço isso por exemplo, se o limite de caracter der no meio de uma palavra ? Vai fica estranho !!! Então tava pensando em pular a linha só quando achar um espaço em branco. Sera que alguem tem outra ideia para me ajudar ??? SysUtils.WrapText -- João Morais [As partes desta mensagem que não continham texto foram removidas] ___ Yahoo! Mail - Sempre a melhor opção para você! Experimente já e veja as novidades. http://br.yahoo. http://br.yahoo.com/mailbeta/tudonovo/ http://br.yahoo.com/mailbeta/tudonovo/ com/mailbeta/tudonovo/ [As partes desta mensagem que não continham texto foram removidas] ___ Yahoo! Mail - Sempre a melhor opção para você! Experimente já e veja as novidades. http://br.yahoo.com/mailbeta/tudonovo/
RES: RES: RES: [delphi-br] Quebra String
Por acaso vc esta 24 do meu lado para saber o que eu fiz ou deixei de fazer ? Acho que essa lista aqui é para ajudar todos sem nenhum tipo de cobrança. Então cara, se quer ajudar ajude, agora se quer dar lição de moral, vc ta na lista errada. Vc não tem nada a ver com a minha vida, mas vou responder para vc, eu vi sim a função no help do delphi, só que não intendi a sintaxe. Por isso eu perguntei para o JOÃO como funcionava. Agora além de vc se intrometer na minha duvida vc quer me dar lição de moral ? Se encherga amigo. Tiago de Assis Pimenta MSN: mailto:[EMAIL PROTECTED] [EMAIL PROTECTED] SKYPE: tiagopimenta_skype GTALK: tiagopimenta _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Eduardo Enviada em: domingo, 25 de fevereiro de 2007 11:02 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: RES: [delphi-br] Quebra String Você nem se deu ao trabalho de testar a função no delphi. Se você tivesse feito isso você não teria mandado o email. A função é simples demais para qualquer pergunta. Foi isso que eu quis dizer com o sem comentário. Eduardo Tiago de Assis Pimenta escreveu: Sem comentário ? qq vc quiz dizer com isso ? Tiago de Assis Pimenta MSN: mailto:tiagopimenta@ mailto:tiagopimenta%40hotmail.com hotmail.com mailto:tiagopimenta%40hotmail.com tiagopimenta@ mailto:tiagopimenta%40hotmail.com hotmail.com mailto:tiagopimenta%40hotmail.com SKYPE: tiagopimenta_skype GTALK: tiagopimenta _ De: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br [mailto:[EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br] Em nome de Eduardo Enviada em: domingo, 25 de fevereiro de 2007 10:32 Para: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br Assunto: Re: RES: [delphi-br] Quebra String Abra o delphi. WrapText(Com o cursor aqui tecla ctrl+shsift+espaço) Depois leia o q vai aparecer. Sem comentário. Eduardo Tiago de Assis Pimenta escreveu: Não intendi João, tem como me explicar o que seria esse SysUtils.WrapText Tiago de Assis Pimenta MSN: mailto:tiagopimenta@ mailto:tiagopimenta%40hotmail.com hotmail.com mailto:tiagopimenta%40hotmail.com tiagopimenta@ mailto:tiagopimenta%40hotmail.com hotmail.com mailto:tiagopimenta%40hotmail.com SKYPE: tiagopimenta_skype GTALK: tiagopimenta _ De: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br [mailto:[EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br] Em nome de Joao Morais Enviada em: sexta-feira, 23 de fevereiro de 2007 18:02 Para: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br Assunto: Re: [delphi-br] Quebra String Tiago de Assis Pimenta wrote: Galera, boa tarde, estou com o seguinte problema. Preciso quebrar um string em varias linhas, as condições são as seguintes, cada linha não pode passar de 40 caracteres. Isso é para imprimir uma Ordem de Serviço, então por exemplo, chegou em 40 caracteres, ele pula para a proxima linha e assim sucessivamente. Agora a duvida, como faço isso por exemplo, se o limite de caracter der no meio de uma palavra ? Vai fica estranho !!! Então tava pensando em pular a linha só quando achar um espaço em branco. Sera que alguem tem outra ideia para me ajudar ??? SysUtils.WrapText -- João Morais [As partes desta mensagem que não continham texto foram removidas] ___ Yahoo! Mail - Sempre a melhor opção para você! Experimente já e veja as novidades. http://br.yahoo. http://br.yahoo. http://br.yahoo.com/mailbeta/tudonovo/ com/mailbeta/tudonovo/ http://br.yahoo. http://br.yahoo.com/mailbeta/tudonovo/ com/mailbeta/tudonovo/ com/mailbeta/tudonovo/ [As partes desta mensagem que não continham texto foram removidas] ___ Yahoo! Mail - Sempre a melhor opção para você! Experimente já e veja as novidades. http://br.yahoo. http://br.yahoo.com/mailbeta/tudonovo/ com/mailbeta/tudonovo/ [As partes desta mensagem que não continham texto foram removidas]
Re: RES: RES: RES: [delphi-br] Quebra String
Lamentável Acho que não sou eu quem estou na lista errada. Mas não responderei mais sobre este assunto. Eduardo Tiago de Assis Pimenta escreveu: Por acaso vc esta 24 do meu lado para saber o que eu fiz ou deixei de fazer ? Acho que essa lista aqui é para ajudar todos sem nenhum tipo de cobrança. Então cara, se quer ajudar ajude, agora se quer dar lição de moral, vc ta na lista errada. Vc não tem nada a ver com a minha vida, mas vou responder para vc, eu vi sim a função no help do delphi, só que não intendi a sintaxe. Por isso eu perguntei para o JOÃO como funcionava. Agora além de vc se intrometer na minha duvida vc quer me dar lição de moral ? Se encherga amigo. Tiago de Assis Pimenta MSN: mailto:[EMAIL PROTECTED] mailto:tiagopimenta%40hotmail.com [EMAIL PROTECTED] mailto:tiagopimenta%40hotmail.com SKYPE: tiagopimenta_skype GTALK: tiagopimenta _ De: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br [mailto:delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br] Em nome de Eduardo Enviada em: domingo, 25 de fevereiro de 2007 11:02 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br Assunto: Re: RES: RES: [delphi-br] Quebra String Você nem se deu ao trabalho de testar a função no delphi. Se você tivesse feito isso você não teria mandado o email. A função é simples demais para qualquer pergunta. Foi isso que eu quis dizer com o sem comentário. Eduardo Tiago de Assis Pimenta escreveu: Sem comentário ? qq vc quiz dizer com isso ? Tiago de Assis Pimenta MSN: mailto:tiagopimenta@ mailto:tiagopimenta%40hotmail.com hotmail.com mailto:tiagopimenta%40hotmail.com tiagopimenta@ mailto:tiagopimenta%40hotmail.com hotmail.com mailto:tiagopimenta%40hotmail.com SKYPE: tiagopimenta_skype GTALK: tiagopimenta _ De: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br [mailto:[EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br] Em nome de Eduardo Enviada em: domingo, 25 de fevereiro de 2007 10:32 Para: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br Assunto: Re: RES: [delphi-br] Quebra String Abra o delphi. WrapText(Com o cursor aqui tecla ctrl+shsift+espaço) Depois leia o q vai aparecer. Sem comentário. Eduardo Tiago de Assis Pimenta escreveu: Não intendi João, tem como me explicar o que seria esse SysUtils.WrapText Tiago de Assis Pimenta MSN: mailto:tiagopimenta@ mailto:tiagopimenta%40hotmail.com hotmail.com mailto:tiagopimenta%40hotmail.com tiagopimenta@ mailto:tiagopimenta%40hotmail.com hotmail.com mailto:tiagopimenta%40hotmail.com SKYPE: tiagopimenta_skype GTALK: tiagopimenta _ De: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br [mailto:[EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br] Em nome de Joao Morais Enviada em: sexta-feira, 23 de fevereiro de 2007 18:02 Para: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br mailto:delphi-br%40yahoogrupos.com.br Assunto: Re: [delphi-br] Quebra String Tiago de Assis Pimenta wrote: Galera, boa tarde, estou com o seguinte problema. Preciso quebrar um string em varias linhas, as condições são as seguintes, cada linha não pode passar de 40 caracteres. Isso é para imprimir uma Ordem de Serviço, então por exemplo, chegou em 40 caracteres, ele pula para a proxima linha e assim sucessivamente. Agora a duvida, como faço isso por exemplo, se o limite de caracter der no meio de uma palavra ? Vai fica estranho !!! Então tava pensando em pular a linha só quando achar um espaço em branco. Sera que alguem tem outra ideia para me ajudar ??? SysUtils.WrapText -- João Morais [As partes desta mensagem que não continham texto foram removidas] ___ Yahoo! Mail - Sempre a melhor opção para você! Experimente já e veja as novidades. http://br.yahoo. http://br.yahoo. http://br.yahoo.com/mailbeta/tudonovo/ http://br.yahoo.com/mailbeta/tudonovo/ com/mailbeta/tudonovo/ http://br.yahoo. http://br.yahoo.com/mailbeta/tudonovo/ http://br.yahoo.com/mailbeta/tudonovo/ com/mailbeta/tudonovo/ com/mailbeta/tudonovo/ [As partes desta mensagem que não continham texto foram removidas] ___ Yahoo! Mail - Sempre a melhor opção para você! Experimente já e veja as novidades. http://br.yahoo. http://br.yahoo.com/mailbeta/tudonovo/ http://br.yahoo.com/mailbeta/tudonovo/ com/mailbeta/tudonovo/ [As partes desta mensagem