Clipper On Line • Ver Tópico - Erro esquisito DISPLAY

Erro esquisito DISPLAY

Discussão sobre a linguagem CA-Clipper.

Moderador: Moderadores

 

Erro esquisito DISPLAY

Mensagempor marbio » 08 Abr 2005 16:22

Ola galera!!!!!!!!!!!!

Estou com esse problema num sistema vira e meche da essa mensagem

ERROR BASE/1004 NO EXPORTED METHOD: DISPLAY

eu queria saber qual e o motivo, se e algum comando ou funcao etc..

t+
Sempre há uma solucao para os nossos problema clipper.....
Avatar de usuário

marbio
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 200
Data de registro: 29 Jul 2004 16:26
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Mensagempor vagucs » 09 Abr 2005 12:53

Bom, este erro é do tipo que acontece quando chamamos uma propriedade de um objeto como uma função tipo GET:DISPLAY(), no seu caso o que pode estar causando é uma lib externa que está trocando as propriedades de alguns objetos e está causando o erro, poste parte do seu código onde o erro está ocorrendo e os nomes das libs que vc usa.
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar de usuário

vagucs
Membro Master

Membro Master
 
Mensagens: 1466
Data de registro: 10 Jul 2004 10:45
Cidade/Estado: Ipanema - MG
Curtiu: 1 vez
Mens.Curtidas: 20 vezes

Display

Mensagempor marbio » 09 Abr 2005 13:46

Ola.....

O fonte segue abaixo: isso aconte quando eu uso F9 FECHAR ORCAMENTO


*********** Tela de Venda *********
close all
*********************************
maquina=netname()
if netuse("&maquina",.t.,10)
*set index to pro002,pro001
zap
else
   msgab()
   return
endif

box3dr1(00,24,01,78);box3dr2(02,04,01,78)
box3dr2(18,24,01,78)
box3dr2(22,24,01,78)

L=7
do while .t.
select 1
if netuse("produto",.f.,10)
set index to pro002, pro001, pro003
***********  nome    codigo  barra
else
   msgab()
   return
endif

select 2
if netuse("&maquina",.t.,10)
*set index to pro002,pro001
else
   msgab()
   return
endif

select 3
if netuse("credito",.f.,10)
set index to cre002,cre001
else
   msgab()
   return
endif

select 4
if netuse("comissao",.f.,10)
set index to com001
else
   msgab()
   return
endif

select 5
if netuse("banco",.f.,10)
set index to ban002, ban001
else
   msgab()
   return
endif

select 6
if netuse("cliente",.f.,10)
set index to cli002,cli001
else
   msgab()
   return
endif

select 7
if netuse("orden",.f.,10)
*set index to cli002,cli001
else
   msgab()
   return
endif

select 1
setcolor(cor3)
@23,15 say 'F2 e F3 - Pesquisa | F5-Alteracao | F9-Fecha Orcamento'
setcolor(cor2)

xtotalv=0
xtotalp=0
xtotalpv=0
xporc=0
xdin=0

*****************************************************
do while .t.
set key -1 to letraorca
set key -4 to alterorca
set key -8 to fechaorca

select 1
nbarra='!!!!!        '
nVar=0
xlab=space(30)
xprod=space(30)
xest=0
xqtd=1
xvalor=0
xdes=0
ximp=' '
passou_pes=.f.
fim=.f.
setcolor(cor4)
@01,05 say 'Usuario.: ' +user
@03,06 say 'A vista R$:'
@03,50 say 'A prazo R$:'
@05,03 say 'Descricao Produto           Quantidade      Vr. Unit.         Total R$'

@19,03 say 'Barra.....:' get nbarra pict '@!' valid nbarra <> space(13)
@19,30 say 'Laborat...:' +xlab pict '@!'
@20,03 say 'Descricao.:' +xprod
@20,60 say 'Estoque...:' +trans(xest,"9999")
@21,03 say 'Quantidade:' +trans(xqtd,'999999')
@21,30 say 'Valor R$..:' +trans(xvalor,'@E 9,999.99')
@21,60 say 'Desconto..:' +trans(xdes,'999999')
read

if fim=.t.             
   fim=.f.         
   exit
*   do principa
endif

if lastkey()=27
      if passou_pes=.t.
   loop
      else
      fim=.t.
*    exit
    do principa
   endif
endif

********** CODIGO ************************
if nbarra='NAO TEM'
   select 1
     set order to 2
     seek nVar
   if found()
      nvar=codigo
      xlab=labora
      xprod=nome
      xest=estoque
      xvalor=venda
      xdes=desconto
      xpor=bonificado
      *xcusto=custo
  else
      *alert("Atencao!!!;Produto nao Cadastro!!!")
  loop
endif
*****************************************
else
********* BARRA **************************
select 1
set order to 3
seek nbarra
if found()
   nvar=codigo
   xlab=labora
   xprod=nome
   xest=estoque
   xvalor=venda
   xdes=desconto
   xpor=bonificado
   xcusto=custo
else
*   alert("Atencao!!!;Produto nao Cadastro!!!")
loop
endif
endif
**********************************************

@19,03 say 'Codigo....:'
@19,30 say 'Laborat...:' + xlab pict '@!'
@20,03 say 'Descricao.:' + xprod
@20,60 say 'Estoque...:'+ trans(xest,"9999")
@21,03 say 'Quantidade:' get xqtd pict '99999' valid xqtd <> 0
@21,30 say 'Valor R$..:'+ trans(xvalor,'@E 9,999.99')
@21,60 say 'Desconto..:' get xdes pict '99999'
read
if lastkey()=27
*    do principa
*    restore screen
    exit
endif

xsoma=xqtd*xvalor

select 2
append blank
replace codigo     with nvar
replace labora     with xlab
replace nome       with xprod
replace unit       with xvalor
replace venda      with xsoma 
*replace custo      with xcusto
replace desconto   with xdes
replace qtd        with xqtd
replace bonificado with xpor
commit

@ l, 5 say xprod
@ l,35 say + trans(xqtd,"9999")
@ l,50 say + trans(xvalor,"@E 9,999.99")
@ l,68 say + trans(xsoma,"@E 9,999.99")
l++
*xsoma=xqtd*xsoma
xtotalp+=xsoma
xtotalm=xsoma-(xsoma*xdes/100)
xtotalv+=xtotalm

if (l>=18)
   scroll(7,5,17,77,1)
   l:=17
endif

setcolor(cor3)
@03,20 say xtotalv pict'@e 99,999.99'
@03,61 say xtotalp pict'@e 99,999.99'
setcolor(cor2)
enddo

if fim=.f.
   loop
      else
*  do principa
    alert("4")
   exit
endif

enddo
return

********************************************************
function fechaorca()

select 2
*xver=venda
xver=xtotalv
if xver=0
   return
endif
save screen

box3dr2(10,16,20,55)
setcolor(cor3)
@10,30 say 'Fecha Orcamento'
setcolor(cor2)
@12,25 say 'Tipo...: '
x=1
@12,35 prompt 'A Vista   '
@13,35 prompt 'Cheque    '
@14,35 prompt 'Convenio  '
@15,35 prompt 'Orcamento '
menu to x
     do case
        case x=1
                avista()
        case x=2
                cheque()
        case x=3
                orcamento()
        case x=4
                orcaimp()
     endcase
restore screen

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

O problema esta nas funcao abaixo quando eu a chamo

se eu ficar na tela devenda ums 10 minuto,  abrindo e fechando
o pedito ai que aparece o erro.

***********************************************
procedure avista
set key -1 to
set key -4 to
set key -8 to
select 2
xdin=0
xfunc=0
xdata=date()
xhoje=date()
clear gets
do while .t.
box3dr2(10,17,20,55)
setcolor(cor3)
@10,30 say 'Venda A vista'
setcolor(cor2)

@12,25 say 'Total R$....: ' + trans(xtotalv,'@e 99,999.99')
@13,25 say 'Dinheiro....: ' get xdin pict '@e 99,999.99'
read
if lastkey()=27
   do fechaorca
endif
@14,25 say 'Troco.......: ' +trans(xdin-xtotalv,'@e 99,999.99')
@15,25 say 'Funcionario.: ' get xfunc pict '999' valid xfunc <> 0
@16,25 say 'Imprimir(<S>im/<N>ao) ' get ximp pict '@!' valid ximp $ 'SN'
read
if lastkey()=27
   do fechaorca
endif

movi002()
baixa1()

if ximp='S'
set device to print
@prow(),0 say chr(15)
@prow()+01,00 say date()
@prow()+00,30 say time()
*@prow()+01,00 say '---------------------------------------------'
*@prow()+01,00 say chr(15)+chr(14)+'FATURA: '+strzero(wnumero,10,0)
@prow()+01,00 say chr(18)+chr(15)+'---------------------------------------------'
@prow()+01,00 say 'Qtd  Produto               Unit. Total   -%'
   goto top
   xtotalp=0
   xtotalv=0
   do while (!EOF())
      xsoma=venda
      xdes=desconto
      @ prow()+ 1, 0 say + trans(qtd,"9999")
      @ prow()+ 0,05 say + nome
      @ prow()   ,34 say + trans(unit,"@E 9,999.99")
      @ prow()   ,43 say + trans(xsoma,"@E 9,999.99")
      @ prow()   ,52 say + trans(xdes,"@E 999")
       xtotalp+=xsoma
       xtotalm=xsoma-(xsoma*xdes/100)
       xtotalv+=xtotalm
      skip
   enddo
@prow()+01,00 say '---------------------------------------------'
@prow()+01,10 say 'Total A vista R$ ' +trans(xtotalv,'@e 99,999.99')
@prow()+01,10 say 'Total A Prazo R$ ' +trans(xtotalp,'@e 99,999.99')
@prow()+01,10 say 'Dinheiro..... R$ ' +trans(xdin,'@e 99,999.99')
@prow()+01,00 say '---------------------------------------------'
xtroco=xdin-xtotalv
if xtroco<0
else
@prow()+01,10 say 'Troco........ R$ ' +trans(xtroco,'@e 99,999.99')
endif
@prow()+03,00 say '  '
@prow()   ,00 say '*********************************************'
@prow()+01,00 say chr(15)+chr(14)+'FARMACIA FLORAQUIMICA'
@prow()+01,00 say chr(15)+chr(14)+'          &          '
@prow()+01,00 say chr(15)+chr(14)+'     MANIPULACAO     '
@prow()+01,00 say chr(18)+chr(15)+'*********************************************'
@prow()+01,00 say 'Endereco: Rua Conego Monte Raso, 381         '
@prow()+01,00 say 'Cidade..: Baependi - MG   -   37443-000      '
@prow()+01,00 say 'Tel/Fax.: 35-9958-5251                       '

set device to screen
@  5,  5 clear to 17, 77
zap
exit
xtotalv=0
xtotalp=0
xtotalpv=0
xporc=0
xdin=0
@03,20 say xtotalv pict'@e 99,999.99'
@03,61 say xtotalp pict'@e 99,999.99'
else
zap
xtotalv=0
xtotalp=0
xtotalpv=0
xporc=0
xdin=0
@03,20 say xtotalv pict'@e 99,999.99'
@03,61 say xtotalp pict'@e 99,999.99'
@  5,  5 clear to 17, 77
exit
endif
enddo

********************************************
function baixa1()
*nVar=0
save screen
   set color to W+*/r
   @ 10, 28 clear to 12, 51
   @ 10, 28 to 12, 51
   @ 11, 34 say "Baixa....."
   select 2
   go top
   do while (!EOF())
   xvar=codigo
   xlab=labora
   xprod=nome
   xvalor=venda
   xdes=desconto
   xporc=bonificado
   xqtd=qtd
   select 1
   set order to 2
   seek xvar

*****

   if rlock()
      codigo=nvar
      else
   alert("Nao disponivel")
   loop
   endif

*****

   if rlock()
      replace estoque with estoque - xqtd
      commit
      unlock
   endif
      select 4
*     if xporc<>0
      append blank
      replace data       with date()   
      replace empreg     with xfunc   
      replace produto    with xprod
      replace valor      with xvalor-(xvalor*xdes/100)
      replace porc       with xporc
*     replace total      with (xvalor*xporc/100)
      replace total      with (xvalor-xvalor*xdes/100)*xporc/100
      replace formapg    with 'V'
      commit
*     endif
      cont=1
      select 2
      skip
   enddo
restore screen
setcolor(cor2)

***************************************
function movi002
select 15
if netuse("movi",.f.,10)
set index to mov001
else
   msgab()
   return
endif

seek xhoje
if rlock()
replace avista with avista+xtotalv
commit
endif
unlock

***************************************
function movi003
select 15
if netuse("movi",.f.,10)
set index to mov001
else
   msgab()
   return
endif

seek xhoje
if rlock()
replace cheque with cheque+xchvalor
commit
endif
unlock

***************************************
function movi004
select 15
if netuse("movi",.f.,10)
set index to mov001
else
   msgab()
   return
endif

seek xhoje

if rlock()
replace recebida with recebida+xtotalp
commit
endif
unlock
Sempre há uma solucao para os nossos problema clipper.....
Avatar de usuário

marbio
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 200
Data de registro: 29 Jul 2004 16:26
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Mensagempor Anderson J. Freitas » 09 Abr 2005 21:13

Desculpe-me amigo Marbio, sei que não tem nada haver com sua dúvida, mas a curiosidade foi maior : Como você conseguiu exibir o código fonte dentro desta caixa ?

Anderson
[/list][/url][/quote]
Pitbull

Clipper 5.2e, Exospace, Six2, DBMax
Avatar de usuário

Anderson J. Freitas
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 46
Data de registro: 19 Fev 2005 09:34
Cidade/Estado: Caratinga-MG
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Colocar o codigo fonte na Caixa de texto

Mensagempor Toledo » 10 Abr 2005 16:21

Anderson,

Vou responder a sua pergunta, pois acho que fui eu que coloquei o código do Marbio dentro da "caixa", pois ele tinha digitado o código como um texto normal.

Quando você quiser colocar um código na sua mensagem, coloque o comando (code) no início do código e (/code) no final do código, ou simplesmente clique no botão Code, que tem na página onde se posta ou responde algum tópico aqui no fórum, antes e depois de digitar o seu código.

Atenção: no comando code acima, troque os ( ) por [ ], que é o caracter correto utilizado nos comandos de formatação de texto nas mensagens. Não utilizei [ ] acima, senão o comando code não iria aparecer no texto.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Estou ficando louco

Mensagempor marbio » 12 Abr 2005 18:55

Boa Noite,,

Turma nao consegui achar o danado do erro, ja verifiquei o mesmo umas dezenas de vez, eu acho que fiquei com os fontes na cabeça de uma maneira de pensar e nao sai outra.

:( :( :( :(
Sempre há uma solucao para os nossos problema clipper.....
Avatar de usuário

marbio
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 200
Data de registro: 29 Jul 2004 16:26
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Mensagempor Dudu_XBase » 12 Abr 2005 22:39

Marbio Boa Noite !
Verifique o seguinte arquivo no seu clipper.
STD.ch nesse include contém os principais comando do clipper.
Realize uma busca dentro desse seu arquivo e verifique a existência do comando DISPLAY .
Na versão clipper 5.2 existe esse comando, vc abrindo esse arquivo vc verá q o comando get faz chamada a esse cara.
Verificando esse arquivo e confirmando a existência das informações que lhe solicitei, faça o seguinte Adicione o seguinte comando nesse seu prg.

#Include "STD.CH"

Compile e Realize seus testes.
Caso utilize o clipper 5.2 e nesse arquivo não tem tais informações peço que reinstale o.
Nunca vi tal msg de erro, mas como o comando get faz chamada a essa conmando display() de acordo com o conteúdo da STD.CH comecei a desconfiar.
Como o Vagucs citou get:display().
Pode estar existindo tb algum conflito de comandos verifique suas libs e includes a existência do comando display().


________________________________________________________________________________________________________
(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

Mensagempor vagucs » 13 Abr 2005 10:54

Cara nas rotinas que tem read, coloque na primeira linha da procedure/function

Local Getlist:={}

Quando vc chama a rotina pelo F9 ele abre um outro GET que elimina o anterior.

Sem mais
Wagner Nunes
www.vagucs.com.br
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar de usuário

vagucs
Membro Master

Membro Master
 
Mensagens: 1466
Data de registro: 10 Jul 2004 10:45
Cidade/Estado: Ipanema - MG
Curtiu: 1 vez
Mens.Curtidas: 20 vezes




Retornar para CA-Clipper

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 7 visitantes


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