Jump to content
Fivewin Brasil

>> TDOSPRN -> String Overflow <<


Anderson.OL

Recommended Posts

Bom dia a todos...

Como postei a pouco tempo atras, estou desenvolvendo um módulo de impressão de etiquetas, e pra isto, estou gerando a impressão no TDosPrn, sem o caracter ♀ (chr(12), caracter de Eject).

Até aki, todos os problemas foram superados, sendo que, (infelizmente sempre tem o sendo que), quando uma página no TDosPrn tem muitas linhas, é gerado o seguinte erro:

Error base/1209 String overflow: + from Errorsys, line 0

Alguem sabe como fazer com que este erro não ocorra mais?

Obs: Mas a solucao não pode incluir o chr(12).

Abraço a todos e desde já um muito obrigado.

Nesse mundo nada se cria, tudo se compila<<

//--Clipper 5.3b / FiveWin 2.6 / Blinker 7.0 --//

//--

_Dom Quixote_

RO Iris Server / Agility Kina / 7*/3*

Editado por - Anderson.OL on 02/09/2005 11:08:09

Editado por - Anderson.OL on 02/09/2005 16:04:10

Editado por - Anderson.OL on 05/09/2005 11:25:10

Editado por - Anderson.OL on 05/09/2005 16:08:13

Editado por - Anderson.OL on 05/09/2005 17:57:17

Link to comment
Share on other sites

Bom dia a todos...

Como postei a pouco tempo atras, estou desenvolvendo um módulo de impressão de etiquetas, e pra isto, estou gerando a impressão no TDosPrn, sem o caracter ♀ (chr(12), caracter de Eject).

Até aki, todos os problemas foram superados, sendo que, (infelizmente sempre tem o sendo que), quando uma página no TDosPrn tem muitas linhas, é gerado o seguinte erro:

Error base/1209 String overflow: + from Errorsys, line 0

Alguem sabe como fazer com que este erro não ocorra mais?

Obs: Mas a solucao não pode incluir o chr(12).

Abraço a todos e desde já um muito obrigado.

Nesse mundo nada se cria, tudo se compila<<

//--Clipper 5.3b / FiveWin 2.6 / Blinker 7.0 --//

//--

_Dom Quixote_

RO Iris Server / Agility Kina / 7*/3*

Editado por - Anderson.OL on 02/09/2005 11:08:09

Editado por - Anderson.OL on 02/09/2005 16:04:10

Editado por - Anderson.OL on 05/09/2005 11:25:10

Editado por - Anderson.OL on 05/09/2005 16:08:13

Editado por - Anderson.OL on 05/09/2005 17:57:17

Link to comment
Share on other sites

Bom dia a todos...

Como postei a pouco tempo atras, estou desenvolvendo um módulo de impressão de etiquetas, e pra isto, estou gerando a impressão no TDosPrn, sem o caracter ♀ (chr(12), caracter de Eject).

Até aki, todos os problemas foram superados, sendo que, (infelizmente sempre tem o sendo que), quando uma página no TDosPrn tem muitas linhas, é gerado o seguinte erro:

Error base/1209 String overflow: + from Errorsys, line 0

Alguem sabe como fazer com que este erro não ocorra mais?

Obs: Mas a solucao não pode incluir o chr(12).

Abraço a todos e desde já um muito obrigado.

Nesse mundo nada se cria, tudo se compila<<

//--Clipper 5.3b / FiveWin 2.6 / Blinker 7.0 --//

//--

_Dom Quixote_

RO Iris Server / Agility Kina / 7*/3*

Editado por - Anderson.OL on 02/09/2005 11:08:09

Editado por - Anderson.OL on 02/09/2005 16:04:10

Editado por - Anderson.OL on 05/09/2005 11:25:10

Editado por - Anderson.OL on 05/09/2005 16:08:13

Editado por - Anderson.OL on 05/09/2005 17:57:17

Link to comment
Share on other sites

citação:

Quantas linhas você reparou que está dando o erro? Já verificou qual o limite?

Kleyton

Clipper5.2E+Clipper5.3b+Blink7+FW2.0d

cleitonbala@bol.com.br


id=quote>id=quote>

Imprime no máximo, em média de 640 linhas...

Nesse mundo nada se cria, tudo se compila<<

//--Clipper 5.3b / FiveWin 2.6 / Blinker 7.0 --//

//--

_Dom Quixote_

RO Iris Server / Agility Kina / 7*/3*

Link to comment
Share on other sites

VEJA A QUANTIDADE DE CARACTERES QUE ESTA SENDO IMPRESSO EM CADA LINHA, UMA DELAS, 'ESTOUROU'. NÃO ESQUEÇA DE DAR O 'CARRIAGE RETURN' EM CADA UMA DELAS.

EX:

nLinha := nLinha + 1

TERCEIRO ENCONTRO DE FIVEWINNERS NOVEMBRO DE 2005 EU APOIO E VOU.

Bad Boy - São Paulo.

kmt_karinha@pop.com.br

FW 2.3C CLIPPER 5.3B BLINKER 7.0 WORKSHOP.EXE

Link to comment
Share on other sites

Kro kapi, se o "carriege return" for pular a linha, isto eu faço.

E qto a quantidade de caracteres por linha não chega a 120 caracteres....

E kreio que o problema seja a falta do eject, tipo, tem muitas linhas...

Continuo contando com a ajuda de todos para resolver este problema

Abraços.

Nesse mundo nada se cria, tudo se compila<<

//--Clipper 5.3b / FiveWin 2.6 / Blinker 7.0 --//

//--

_Dom Quixote_

RO Iris Server / Agility Kina / 7*/3*

Link to comment
Share on other sites

citação:

na ultima linha, tambem tem que ter o carriage return. verifique jogando para um arquivo.txt, e veja onde okorre.

TERCEIRO ENCONTRO DE FIVEWINNERS NOVEMBRO DE 2005 EU APOIO E VOU.

Bad Boy - São Paulo.

kmt_karinha@pop.com.br

FW 2.3C CLIPPER 5.3B BLINKER 7.0 WORKSHOP.EXE


id=quote>id=quote>

Kapiaba, este eh um processo repetitivo... eu seleciono um produto e peço para gera 100, 200 ou 300 etiquetas....

Tudo ocorre as mil maravilhas....

Mas qdo a qtde ultrapassa o numero 650, eh gerado o erro citado acima.....

Nesse mundo nada se cria, tudo se compila<<

//--Clipper 5.3b / FiveWin 2.6 / Blinker 7.0 --//

//--

_Dom Quixote_

RO Iris Server / Agility Kina / 7*/3*

Link to comment
Share on other sites

POSTE O CODIGO PRA MOÇADA BOA DAR UMA OLHADA.

VEJA TAMBEM, OS EXEMPLOS COM LABEL NO SAMPLES...

VOCE ESTÃ ZERANDO nLinha a cada pagina Gerada no LOOPING?

ex:

WHILE !EOF()

IF nLinha >= 56

nLinha := 0

ENDIF

...

ENDDO

TERCEIRO ENCONTRO DE FIVEWINNERS NOVEMBRO DE 2005 EU APOIO E VOU.

Bad Boy - São Paulo.

kmt_karinha@pop.com.br

FW 2.3C CLIPPER 5.3B BLINKER 7.0 WORKSHOP.EXE

Editado por - kapiaba on 02/09/2005 15:54:32

Editado por - kapiaba on 02/09/2005 15:55:49

Link to comment
Share on other sites

Segue como solicitado o meu codigo.

*******************************

static function ActPrnInd(QTDE)

*******************************

//--Declaracao de variaveis

oPrin := SetDevPrint("ETIQ.TXT",.f.)

LIN := 0

@ lin++,00 psay chr(27) + "A" + chr(8)

# define I_CON1 chr(27)+"M"+chr(15)

CONT := 1

do while CONT <= QTDE

//...

//Carrega variaveis a serem impressas

//Incrementa contador

//...

@ lin++,00 psay I_CON1 + EM1+S3+EM2+S4+EM3+S2+EM4+S3+EM5

@ lin++,00 psay RR1+S3+RR2+S4+RR3+S2+RR4+S3+RR5

@ lin++,00 psay RRX1+S3+RRX2+S4+RRX3+S2+RRX4+S3+RRX5

@ lin++,00 psay XM1+S3+XM2+S4+XM3+S2+XM4+S3+XM5

@ lin++,00 say " "

enddo

SetDevScreen(oPrin)

mostratxt("ETIQ.TXT")

return .t.

****************************

function MostraTxt(TextFile)

****************************

local oPrn, cPorta, cTitulo

local cTmp, nItens

SetMTxtPreview( .t., 5, 1, .f., .t. )

cTitulo:= "**** Visualizacao de relatorio ****"

cPorta := "LPT1"

nItens := nTotal := 0

TxtPreview( TextFile, cTitulo, .t. , .f. )

return nil

**********************************

function SetDevPrint(Porta,lEject)

**********************************

local oPrin

//--Instancia o objeto

oPrin:= TDosPrn():New(Porta)

//--Inicializa a pagina

oPrin:StartPage()

oPrin:lZeraBuffer := .f.

return oPrin

*****************************

procedure SetDevScreen(oPrin)

*****************************

//--Finaliza a emissao do relatorio

oPrin:EndPage()

//--Destroi a instancia do objeto

oPrin:End()

return NIL

Nesse mundo nada se cria, tudo se compila<<

//--Clipper 5.3b / FiveWin 2.6 / Blinker 7.0 --//

//--

_Dom Quixote_

RO Iris Server / Agility Kina / 7*/3*

Link to comment
Share on other sites

Anderson,

O problema não está na TDOSPRN e sim nesse TXTPREVIEW() que deve ter limite de 64k no deverá ser mostrado.

Faça um teste imprimindo direto que você vai ver imprimir corretamente.

Paulo/CONTATO SISTEMAS

Clipper53b / FW26 / Blinker70

Ajudar é um prazer, agradecer é uma obrigação

PRESTIGIEM O III ENCONTRO DE USUÃRIOS DE FIVEWIN - 2005

Editado por - pauloaraujo on 02/09/2005 19:10:16

Link to comment
Share on other sites

citação:

Anderson,

O problema não está na TDOSPRN e sim nesse TXTPREVIEW() que deve ter limite de 64k no deverá ser mostrado.

Faça um teste imprimindo direto que você vai ver imprimir corretamente.

Paulo/CONTATO SISTEMAS

Clipper53b / FW26 / Blinker70

Ajudar é um prazer, agradecer é uma obrigação

PRESTIGIEM O III ENCONTRO DE USUÃRIOS DE FIVEWIN - 2005

Editado por - pauloaraujo on 02/09/2005 19:10:16


id=quote>id=quote>

DUVIDAS QUANTO A TXTPREVIEW, ENTRAR EM CONTATO COM O SR. EDNALDO ROLIM.

ednaldorolim@uol.com.br

TERCEIRO ENCONTRO DE FIVEWINNERS NOVEMBRO DE 2005 EU APOIO E VOU.

Bad Boy - São Paulo.

kmt_karinha@pop.com.br

FW 2.3C CLIPPER 5.3B BLINKER 7.0 WORKSHOP.EXE

Link to comment
Share on other sites

citação:

Anderson, estou enviando para seu e-mail, a classe TDOSPRN que utilizo para gerar arquivo magnético para banco...

Kleyton

Clipper5.2E+Clipper5.3b+Blink7+FW2.0d

cleitonbala@bol.com.br


id=quote>id=quote>

Kleyton, naum recebi seu e-mail.... seria possivel envia-lo para sac@rcasistemas.com.br

Obrigado

Nesse mundo nada se cria, tudo se compila<<

//--Clipper 5.3b / FiveWin 2.6 / Blinker 7.0 --//

//--

_Dom Quixote_

RO Iris Server / Agility Kina / 7*/3*

Link to comment
Share on other sites

citação:

Anderson,

O problema não está na TDOSPRN e sim nesse TXTPREVIEW() que deve ter limite de 64k no deverá ser mostrado.

Faça um teste imprimindo direto que você vai ver imprimir corretamente.

Paulo/CONTATO SISTEMAS

Clipper53b / FW26 / Blinker70

Ajudar é um prazer, agradecer é uma obrigação

PRESTIGIEM O III ENCONTRO DE USUÃRIOS DE FIVEWIN - 2005

Editado por - pauloaraujo on 02/09/2005 19:10:16


id=quote>id=quote>

Paulo... aparentemente o erro é realmente no TDosPrn, pois pelo o q eu analisei, a classe executa um MemoWrite para kda pagina, e por naum haver a impressão do chr(12) (pulo de pagina), este MemoWrite naum consegue ser executado (isto é uma dedução minha, posso estar errado).

Naum eh gerado um arquivo Error.log, por isto naum tenho a segurança de afirmar o motivo do erro.

Desde já agradeço a ajuda de todos.

Nesse mundo nada se cria, tudo se compila<<

//--Clipper 5.3b / FiveWin 2.6 / Blinker 7.0 --//

//--

_Dom Quixote_

RO Iris Server / Agility Kina / 7*/3*

Link to comment
Share on other sites

citação:

citação:

Anderson,

O problema não está na TDOSPRN e sim nesse TXTPREVIEW() que deve ter limite de 64k no deverá ser mostrado.

Faça um teste imprimindo direto que você vai ver imprimir corretamente.

Paulo/CONTATO SISTEMAS

Clipper53b / FW26 / Blinker70

Ajudar é um prazer, agradecer é uma obrigação

PRESTIGIEM O III ENCONTRO DE USUÃRIOS DE FIVEWIN - 2005

Editado por - pauloaraujo on 02/09/2005 19:10:16


id=quote>id=quote>

DUVIDAS QUANTO A TXTPREVIEW, ENTRAR EM CONTATO COM O SR. EDNALDO ROLIM.

ednaldorolim@uol.com.br

TERCEIRO ENCONTRO DE FIVEWINNERS NOVEMBRO DE 2005 EU APOIO E VOU.

Bad Boy - São Paulo.

kmt_karinha@pop.com.br

FW 2.3C CLIPPER 5.3B BLINKER 7.0 WORKSHOP.EXE


id=quote>id=quote>

Kapiaba... para fazer mais testes, desabilitei o uso do TXTPREVIEW, o erro continuava a acontecer.

Daí, eu passai a limitar o numero de linhas por página, e descobri que o erro só acontece qdo o numero de linhas por pagina excede o numero 685.

Sei q vc eh o kra q mais colabora neste fórum...

Dê-me uma forcinha aki kra.

Abraços.

Nesse mundo nada se cria, tudo se compila<<

//--Clipper 5.3b / FiveWin 2.6 / Blinker 7.0 --//

//--

_Dom Quixote_

RO Iris Server / Agility Kina / 7*/3*

Link to comment
Share on other sites

citação:

Anderson, tentou utilizando a classe TDOSPRN que lhe envie?

Kleyton

Clipper5.2E+Clipper5.3b+Blink7+FW2.0d

cleitonbala@bol.com.br


id=quote>id=quote>

Como respondi anteriormente, tive problema para baixa-lo...

Por favor, se possivel, reenvie para sac@rcasistemas.com.br

Abraços.

Nesse mundo nada se cria, tudo se compila<<

//--Clipper 5.3b / FiveWin 2.6 / Blinker 7.0 --//

//--

_Dom Quixote_

RO Iris Server / Agility Kina / 7*/3*

Link to comment
Share on other sites

Vc já verificou quantos caracteres são impressos nesse arquivo que é criado com a classe tdosprn.

Verifique se não esta passando dos 64 Kbytes.

Verifique a classe que faz o seu preview. Não lembro ao certo, mas parece que ela abre um DBF temporário e abre o arquivo texto com algo como o memoread.

Tente inverter o funcionamento. Crie um arquivo temporário. grave uma linha por registro. Abra um browse para o usuário ter o preview e faça a impressão.

Teste isso para verificar se vc consegue contornar o problema de linhas.

Link to comment
Share on other sites

citação:

Olá,

Se você der o ENDPAGE mais vezes não terá problemas de String Overflow, você tem que liberar o buffer


id=quote>id=quote>

Gilmer, estou utilizando uma TDOSPRN modificada por vc, e seguindo esta sua dica, parece que o EndPage() força a ejetar a pagina, e eu não posso fazer isto, por ser impressão de etiquetas.

O EndPage zera as propriedades ::nRow, ::nCol, se minha lógica está certa, isto pra mim não serve.

Alguma outra ideia (ou correção na minha analise)?

Abracos

Nesse mundo nada se cria, tudo se compila<<

//--Clipper 5.3b / FiveWin 2.6 / Blinker 7.0 --//

//--

_Dom Quixote_

RO Iris Server / Agility Kina / 7*/3*

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...