crisvam Posted March 9, 2016 Report Share Posted March 9, 2016 Colegas, Alguem tem uma dica de como gerar carnet de pagamento e imprimir para um número qualquer de prestações. A impressão no modelo A4 (pode caber mais de uma via na mesma página) e se não couber em uma página, continuar a impressão em outra página. Se alguém tem uma rotina que faça isso e poder nos ajudar, agradeceria muito. Claro que se for necessário poderemos combinar um valor. Quote Link to comment Share on other sites More sharing options...
evandro Posted March 9, 2016 Report Share Posted March 9, 2016 Olá, Não tenho uma rotina para isto mas, se você usa o FastReport, é muito fácil fazer. Caso ainda não use, recomendo usar. Mesmo o Russo tendo morrido, ainda assim vale a pena. Quote Link to comment Share on other sites More sharing options...
Jorge Andrade Posted March 10, 2016 Report Share Posted March 10, 2016 Colegas, Alguem tem uma dica de como gerar carnet de pagamento e imprimir para um número qualquer de prestações. A impressão no modelo A4 (pode caber mais de uma via na mesma página) e se não couber em uma página, continuar a impressão em outra página. Se alguém tem uma rotina que faça isso e poder nos ajudar, agradeceria muito. Claro que se for necessário poderemos combinar um valor. Crisvam, Boa noite O seu sistema de boleto não imprime no modo carnê? Eu não uso o AcbrBoleto parece que tem essa opção e é muito fácil a geração do arquivo e por sua vez a impressão e mais é de grátis. ahuahuahua []s, Quote Link to comment Share on other sites More sharing options...
evertonlb Posted March 10, 2016 Report Share Posted March 10, 2016 Ola Crisvam. Mesmo que faça isso sem usar o FastReport, conforme a dica do Evandro, creio que não seja muito complicado... tenho uma rotina em Clipper que imprime em matricial se lhe ajudar posso enviar sem problema! Att. Everton Quote Link to comment Share on other sites More sharing options...
crisvam Posted March 10, 2016 Author Report Share Posted March 10, 2016 Ola Crisvam. Mesmo que faça isso sem usar o FastReport, conforme a dica do Evandro, creio que não seja muito complicado... tenho uma rotina em Clipper que imprime em matricial se lhe ajudar posso enviar sem problema! Att. Everton Muito grato Everton, em clipper puro eu também tenho uma. Eu estou apanhando é com a classe Tprinter. Meus clientes, a maioria de Eletro eletronico,possui um sistema de financiamento por carnet e eles já tem um modelo proprio que querem automatizar. O problema não é o lay out, mas sim, conseguir imprimir numa folha A4 e em mais de uma página. Por exemplo: Cabe três carnet numa folha, mas as vezes é preciso imprimir em até 12 prestações e conseguir imprimir em páginas diferentes. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 10, 2016 Report Share Posted March 10, 2016 Você consegue uma imagem desse Carnê para postar aqui? O Everton, tem alguma coisa, quem sabe... http://fivewin.com.br/index.php?/topic/21800-imprimindo-carnes-na-matricial/ evertonlb 1 Quote Link to comment Share on other sites More sharing options...
evertonlb Posted March 11, 2016 Report Share Posted March 11, 2016 Bom, acho que isso pode te ajudar, a lógica é muito simples. É um código que uso para impressão em térmica, mas lá tambem tem o lance de página. select (_cConArq ) // aqui é um arquivo que tem as parcelas go top V_cImpCod := CONT_PART select CliFor set order to 01 go top if dbseek(V_cImpCod ) /// Aqui pego os dados do cliente... cNomeCliCarne := alltrim(PES_RAZA ) cEndereco1 := alltrim(left(PES_RUAA,30 ) ) cEndereco2 := alltrim(substr(PES_RUAA,31,30 ) ) cNumeroCasa := PES_NUME cBairroCli := PES_BAIR cCidadeCli := PES_CIDA MesAni := month(PES_NASC) DDataAni := PES_NASC endif dbSelectArea((_cConArq ) ) // aqui seto o arquivo temporário que tem as parcelas da venda PRINT oPrinter FROM USER _xImpCarne; Name "impressão de carne" oFont := TFont():New("ARIAL",0,-9,,,,,,,,,,,,,oPrinter,) oFont1 := TFont():New("ARIAL",0,-10,,.T.,,,,,,,,,,,oPrinter,) oFont2 := TFont():New("ARIAL",0,-12,,,,,,,,,,,,,oPrinter,) oFont3 := TFont():New("ARIAL",0,-14,,.T.,,,,,,,,,,,oPrinter,) CursorWait() nRow := 5 nCol := 5 nContador := 1 cNomeRelatorio := "Carnê " + V_cImpCod *oPrinter:SetPage(6) oPrinter:StartPage() * nContador := 1 while !eof() // aqui faço até que tem coisa dentro do do arquivo.. mas se usar um vetor, ai.. bom acho // ai tu se vira!!! qqer coisa te ajudo na lógica. nRow += 50 oPrinter:Say(nRow,nCol,"Parcela nº....:",oFont1) oPrinter:Say(nRow,nCol + 230,left(CONT_SEQU,8) + "/" + right(alltrim(CONT_SEQU ),2 ),oFont) nRow += 45 oPrinter:Say(nRow,nCol,"Vencimento.:",oFont1) oPrinter:Say(nRow,nCol + 210,dtoc(CONT_VCTO),oFont) nRow += 45 oPrinter:Say(nRow,nCol,"Valor R$.......:",oFont1) oPrinter:Say(nRow,nCol + 220,transform(CONT_ORIG,"@E 99,999.99" ),oFont) nRow += 45 * if CONT_VCTO == date() oPrinter:Say(nRow,nCol,"** Recebida em...: " + DTOS( date() ), oFont) else oPrinter:Say(nRow,nCol,"Pago em.......: _____/_____/_____",oFont1) endif * nRow += 45 nRow += 15 oPrinter:Say(nRow,nCol,"----------------------------------------------------------",oFont2) nContador ++ * if nContador == 8 // Aqui vc controla o numero de linhas ou numero de parcelas (Carnet) impressas.. Quando // chegar no limite da folha, "fecha" ela e "abre' outra e continua a impressão. oPrinter:endPage() oPrinter:StartPage() nCcontador := 1 nRow := 1 nCol := 1 endif * dbSkip(1) enddo nRow += 300 oPrinter:Say(nRow,nCol,"",oFont) CursorArrow() oPrinter:EndPage() oPrinter:end() * Att. Everton Quote Link to comment Share on other sites More sharing options...
crisvam Posted March 11, 2016 Author Report Share Posted March 11, 2016 Bom, acho que isso pode te ajudar, a lógica é muito simples. É um código que uso para impressão em térmica, mas lá tambem tem o lance de página. select (_cConArq ) // aqui é um arquivo que tem as parcelas go top V_cImpCod := CONT_PART select CliFor set order to 01 go top if dbseek(V_cImpCod ) /// Aqui pego os dados do cliente... cNomeCliCarne := alltrim(PES_RAZA ) cEndereco1 := alltrim(left(PES_RUAA,30 ) ) cEndereco2 := alltrim(substr(PES_RUAA,31,30 ) ) cNumeroCasa := PES_NUME cBairroCli := PES_BAIR cCidadeCli := PES_CIDA MesAni := month(PES_NASC) DDataAni := PES_NASC endif dbSelectArea((_cConArq ) ) // aqui seto o arquivo temporário que tem as parcelas da venda PRINT oPrinter FROM USER _xImpCarne; Name "impressão de carne" oFont := TFont():New("ARIAL",0,-9,,,,,,,,,,,,,oPrinter,) oFont1 := TFont():New("ARIAL",0,-10,,.T.,,,,,,,,,,,oPrinter,) oFont2 := TFont():New("ARIAL",0,-12,,,,,,,,,,,,,oPrinter,) oFont3 := TFont():New("ARIAL",0,-14,,.T.,,,,,,,,,,,oPrinter,) CursorWait() nRow := 5 nCol := 5 nContador := 1 cNomeRelatorio := "Carnê " + V_cImpCod *oPrinter:SetPage(6) oPrinter:StartPage() * nContador := 1 while !eof() // aqui faço até que tem coisa dentro do do arquivo.. mas se usar um vetor, ai.. bom acho // ai tu se vira!!! qqer coisa te ajudo na lógica. nRow += 50 oPrinter:Say(nRow,nCol,"Parcela nº....:",oFont1) oPrinter:Say(nRow,nCol + 230,left(CONT_SEQU,8) + "/" + right(alltrim(CONT_SEQU ),2 ),oFont) nRow += 45 oPrinter:Say(nRow,nCol,"Vencimento.:",oFont1) oPrinter:Say(nRow,nCol + 210,dtoc(CONT_VCTO),oFont) nRow += 45 oPrinter:Say(nRow,nCol,"Valor R$.......:",oFont1) oPrinter:Say(nRow,nCol + 220,transform(CONT_ORIG,"@E 99,999.99" ),oFont) nRow += 45 * if CONT_VCTO == date() oPrinter:Say(nRow,nCol,"** Recebida em...: " + DTOS( date() ), oFont) else oPrinter:Say(nRow,nCol,"Pago em.......: _____/_____/_____",oFont1) endif * nRow += 45 nRow += 15 oPrinter:Say(nRow,nCol,"----------------------------------------------------------",oFont2) nContador ++ * if nContador == 8 // Aqui vc controla o numero de linhas ou numero de parcelas (Carnet) impressas.. Quando // chegar no limite da folha, "fecha" ela e "abre' outra e continua a impressão. oPrinter:endPage() oPrinter:StartPage() nCcontador := 1 nRow := 1 nCol := 1 endif * dbSkip(1) enddo nRow += 300 oPrinter:Say(nRow,nCol,"",oFont) CursorArrow() oPrinter:EndPage() oPrinter:end() * Att. Everton Grato Everton, vou fazer um teste Quote Link to comment Share on other sites More sharing options...
crisvam Posted March 11, 2016 Author Report Share Posted March 11, 2016 João Santos, Anexo o lay out do carnet O que falta é uma forma de imprimir 3/4 copia numa página e se não couber em uma página prosseguir na próxima. evertonlb 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 11, 2016 Report Share Posted March 11, 2016 João Santos, Anexo o lay out do carnet O que falta é uma forma de imprimir 3/4 copia numa página e se não couber em uma página prosseguir na próxima. Não vejo nenhuma dificuldade em fazer isso usando a PRINTER.PRG acho que cabe 3 folhas do carnê em folha formato A-4, basta controlar o numero de linhas e mandar pular a pagina quando o numero de linhas for >= nLinhas. evertonlb 1 Quote Link to comment Share on other sites More sharing options...
oliveiros Posted March 11, 2016 Report Share Posted March 11, 2016 Olá, Vou dar um sugestão que ajuda bastante se a impressão for em impressora: jato de tinta ou laser. A classe TImprime, disponível no forum internacional facilita muito a impressões. Att., Junior kapiaba 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.