Clipper On Line • Ver Tópico - Erros

Erros

Discussão sobre a linguagem CA-Clipper.

Moderador: Moderadores

 

Erros

Mensagempor JuniorVaz » 18 Set 2004 11:50

Ola, primeiramente gostaria de agradecer, pois todas os meus problemas estou conseguindo ajuda aqui no toledo. Bem, o problema agora é o seguinte, em uma parte do programa, estou fazendo para fazer impressão de um dbf para *.txt. Bem, ja consegui fazer tudo ok, mas ficou com um bug, que é o seguinte:
Eu vou pelo menu do programa, e abro essa parte de gerar o arquivo. Tenho o campo lote, digito o lote e dou sim, ta funcionando ok, acontece que quando eu confirmo a impressão, o cursor volta para o campo do lote, para no caso eu fazer a impressão de outro lote, mas dai quando eu faço a impressão de outro lote, seguindo de um ja, ja um erro:
ERROR DBCMD/1011 ALIAS ALREADY IN USE: LANORD
ERROR DBCMD/2001 WORKAREA NOT IN USE: DBEVAL
Dai tem a opção QUIT e DEFAULT nesses dois erros que dão seguidos, se eu dou default, ele continua, mas quando eu confirmo a impressão, da outro erro:

ERROR BASE/1002 Alias does not exist ORD
e dai só tem a opção quit ou retry, eu acho que deve ser porque quando eu confirmo a impressão, eu deveria fechar o uso do dbf, por se eu imprimo uma vez, dai saio pro menu do programa e volto, ele imprime outra denovo sem dar erros, vou colar o codigo abaixo para ver se alguem sabe o que estou me esquecendo... VLW

...
clear
cbc()
setcolor(cor2)
Set date format to "dd/mm/yyyy"
cx(2,2,22,77," GERAR ETIQUETAS POR LOTE ")
setcolor(cor2)
SELE 0
USE lANORD ALIAS ORD
SET INDE TO LANPD,LANTL,LANORD
SELE 0
use cadgra inde cadgra alias gra
set inde to cadgra
SELE 0
use cadMAT inde cadMAT alias MAT
set inde to cadMAT
sele 0
use lanped inde lanped alias ped
set inde to lanped
//sele 0
LI=00
xx=savescreen(00,00,24,79)
xdata = date()
do while .t.
SETCOLOR(COR2)
RESTscreen(00,00,24,79,XX)
stor SPACE(03) to xlote
STOR 1 TO TLINI
stor 0 to XNUMPED
STOR 999 TO TLFIM
STOR 999999 TO xnumfim
//do while .t.
@ 10,4 say "Lote..: " get xlote pict "!!!"
read
if lastkey()=27 .or. empty(xlote)
exit
//close all
//return
//clear
endif
use lanord
sum totpar to total for lote=xlote
@ 12,04 SAY "Digite o Numero do Pedido ou Tecle <ENTER> para todos..: " get XNUMPED pict '999999'
read
if lastkey()=27
loop
endif
if empty(XNUMPED) .or. XNUMPED=0
@ 12,3 clea to 12,70
@ 12,4 SAY "Talao de Inicio..: " get tlini pict "999"
@ 13,4 say "Talao de Fim.....: " get tlfim pict "999" valid tlfim>=tlini
ENDIF
cc=' '
@ 15,4 say "Confirma Gera‡Æo de Etiquetas?" get cc pict "!" valid cc $ "SN"
read
if cc="S"
SET Printer To (xlote) + ".txt"
Set Device to printer
if empty(XNUMPED) .or. XNUMPED=0
sele lanord
SET INDE TO LANord
set filter to lote+str(numord,3)>=xlote+str(tlini,3) .and. lote+str(numord,3)<=xlote+str(tlfim,3)
else
SELE lanORD
SET INDE TO LANPD
SET FILTER TO LOTE+STR(NUMPED,6)=XLOTE+STR(XNUMPED,6)
endif
do imp_eti
SET DEVI TO SCREEN
else
exit
endif
enddo
close all
return
*******************

proc imp_eti
SELE lanORD

@ li,00 say "Ref#Material#Cor#Numeracao#CodBarra#Figura#Quat#Obs"
SEEK XLOTE+STR(XNUMPED,6)
IF XNUMPED=0 .OR. EMPTY(XNUMPED)
SEEK XLOTE+STR(TLINI,3)
ENDIF
do while .t.
xgrade = ord->grade
xcodmat = codmat
sele mat
seek xcodmat
xdescmat=descmat
if !empty(gra->t01) .AND. ORD->T01>=1
for i = 1 to ord->t01
li=li+1
@ li,00 say ord->codref+"#"+alltrim(subs(xdescmat,1,15))+"#"+ord->cor+"#"+gra->t01+"##"+ord->codref+"#"+"1"+"#"+ALLTRIM(SUBS(ord->lote,1,3))+"-"+alltrim(str(ORD->numord,3))
next
ELSE
endif
if !empty(gra->t02) .AND. ORD->T02>=1
for i = 1 to ord->t02
li=li+1
@ li,00 say ord->codref+"#"+alltrim(subs(xdescmat,1,15))+"#"+ord->cor+"#"+gra->t02+"##"+ord->codref+"#"+"1"+"#"+ALLTRIM(SUBS(ord->lote,1,3))+"-"+alltrim(str(ORD->numord,3))
next
ELSE
endif
if !empty(gra->t03) .AND. ORD->T03>=1
for i = 1 to ord->t03
li=li+1
@ li,00 say ord->codref+"#"+alltrim(subs(xdescmat,1,15))+"#"+ord->cor+"#"+gra->t03+"##"+ord->codref+"#"+"1"+"#"+ALLTRIM(SUBS(ord->lote,1,3))+"-"+alltrim(str(ORD->numord,3))
next
ELSE
endif
if !empty(gra->t04) .AND. ORD->T04>=1
for i = 1 to ord->t04
li=li+1
@ li,00 say ord->codref+"#"+alltrim(subs(xdescmat,1,15))+"#"+ord->cor+"#"+gra->t04+"##"+ord->codref+"#"+"1"+"#"+ALLTRIM(SUBS(ord->lote,1,3))+"-"+alltrim(str(ORD->numord,3))
next
ELSE
endif
if !empty(gra->t05) .AND. ORD->T05>=1
for i = 1 to ord->t05
li=li+1
@ li,00 say ord->codref+"#"+alltrim(subs(xdescmat,1,15))+"#"+ord->cor+"#"+gra->t05+"##"+ord->codref+"#"+"1"+"#"+ALLTRIM(SUBS(ord->lote,1,3))+"-"+alltrim(str(ORD->numord,3))
next
ELSE
endif
if !empty(gra->t06) .AND. ORD->T06>=1
for i = 1 to ord->t06
li=li+1
@ li,00 say ord->codref+"#"+alltrim(subs(xdescmat,1,15))+"#"+ord->cor+"#"+gra->t06+"##"+ord->codref+"#"+"1"+"#"+ALLTRIM(SUBS(ord->lote,1,3))+"-"+alltrim(str(ORD->numord,3))
next
ELSE
endif
if !empty(gra->t07) .AND. ORD->T07>=1
for i = 1 to ord->t07
li=li+1

@ li,00 say ord->codref+"#"+alltrim(subs(xdescmat,1,15))+"#"+ord->cor+"#"+gra->t07+"##"+ord->codref+"#"+"1"+"#"+ALLTRIM(SUBS(ord->lote,1,3))+"-"+alltrim(str(ORD->numord,3))
next
ELSE
endif
if !empty(gra->t08) .AND. ORD->T08>=1
for i = 1 to ord->t08
li=li+1
@ li,00 say ord->codref+"#"+alltrim(subs(xdescmat,1,15))+"#"+ord->cor+"#"+gra->t08+"##"+ord->codref+"#"+"1"+"#"+ALLTRIM(SUBS(ord->lote,1,3))+"-"+alltrim(str(ORD->numord,3))
next
ELSE
endif
if !empty(gra->t09) .AND. ORD->T09>=1
for i = 1 to ord->t09
li=li+1
@ li,00 say ord->codref+"#"+alltrim(subs(xdescmat,1,15))+"#"+ord->cor+"#"+gra->t09+"##"+ord->codref+"#"+"1"+"#"+ALLTRIM(SUBS(ord->lote,1,3))+"-"+alltrim(str(ORD->numord,3))
next
ELSE
endif
if !empty(gra->t10) .AND. ORD->T10>=1
for i = 1 to ord->t10
li=li+1
@ li,00 say ord->codref+"#"+alltrim(subs(xdescmat,1,15))+"#"+ord->cor+"#"+gra->t10+"##"+ord->codref+"#"+"1"+"#"+ALLTRIM(SUBS(ord->lote,1,3))+"-"+alltrim(str(ORD->numord,3))
next
ELSE
endif
if !empty(gra->t11) .AND. ORD->T11>=1
for i = 1 to ord->t12
li=li+1
@ li,00 say ord->codref+"#"+alltrim(subs(xdescmat,1,15))+"#"+ord->cor+"#"+gra->t11+"##"+ord->codref+"#"+"1"+"#"+ALLTRIM(SUBS(ord->lote,1,3))+"-"+alltrim(str(ORD->numord,3))
next
ELSE
endif
if !empty(gra->t12) .AND. ORD->T12>=1
for i = 1 to ord->t12
li=li+1
@ li,00 say ord->codref+"#"+alltrim(subs(xdescmat,1,15))+"#"+ord->cor+"#"+gra->t12+"##"+ord->codref+"#"+"1"+"#"+ALLTRIM(SUBS(ord->lote,1,3))+"-"+alltrim(str(ORD->numord,3))
next
ELSE
endif
if !empty(gra->t13) .AND. ORD->T13>=1
for i = 1 to ord->t13
li=li+1
@ li,00 say ord->codref+"#"+alltrim(subs(xdescmat,1,15))+"#"+ord->cor+"#"+gra->t13+"##"+ord->codref+"#"+"1"+"#"+ALLTRIM(SUBS(ord->lote,1,3))+"-"+alltrim(str(ORD->numord,3))
next
ELSE
endif
if !empty(gra->t14) .AND. ORD->T14>=1
for i = 1 to ord->t14
li=li+1
@ li,00 say ord->codref+"#"+alltrim(subs(xdescmat,1,15))+"#"+ord->cor+"#"+gra->t14+"##"+ord->codref+"#"+"1"+"#"+ALLTRIM(SUBS(ord->lote,1,3))+"-"+alltrim(str(ORD->numord,3))
next
ELSE

endif
sele ord
SKIP
if lote+str(numord,3)>xlote+str(tlfim,3) .or. eof()
li=li+1
@ li,00 say total
@ li,00 say " Registros"
li=li+1
@ li,00 say "Tutor 32"
li=li+1
@ li,00 say "MW Etiquetas, fone (48)265-1251 - "
@ li,00 say xdata

exit
endif
enddo
retu
JuniorVaz
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 99
Data de registro: 16 Jul 2004 15:49
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Mensagempor Dudu_XBase » 18 Set 2004 12:49

Erro Alias Already in Use ocorre qdo vc tentar abrir um banco q já esta aberto...pressionando default ele continua...provavelmente os demais erros que se proseguem ocorrem devido o banco utilizado para o processamento não estar posicionado...
Localizei o trecho no seu programa q identifiquei o erro altere para a solução q postei tb, teste e nos informe o ocorrido...

.. Trecho do seu código q esta incorreto...
@ 10,4 say "Lote..: " get xlote pict "!!!" 
read
if lastkey()=27 .or. empty(xlote)
exit
//close all
//return
//clear
endif
use lanord
sum totpar to total for lote=xlote


.. Ajuste para isso...
@ 10,4 say "Lote..: " get xlote pict "!!!" 
read
if lastkey()=27 .or. empty(xlote)
exit
//close all
//return
//clear
endif
// Verifica se o banco esta aberto para evitar o erro alias already....
if select("ord") = 0
      USE lanord ALIAS ORD NEW
else
      SELE ord
endif
dbgotop()
sum totpar to total for lote=xlote


________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle




Dudu_XBase
Membro Master

Membro Master
 
Mensagens: 1036
Data de registro: 25 Ago 2003 16:55
Curtiu: 24 vezes
Mens.Curtidas: 9 vezes

Deu certo

Mensagempor JuniorVaz » 18 Set 2004 13:39

Bah, deu certo agora, o programa funcionou ok... Vlw ae dudu
JuniorVaz
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 99
Data de registro: 16 Jul 2004 15:49
Curtiu: 0 vez
Mens.Curtidas: 0 vez




Retornar para CA-Clipper

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro