onde está o erro - Rotina simples

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

lapinhazzz
Usuário Nível 3
Usuário Nível 3
Mensagens: 130
Registrado em: 20 Abr 2009 10:52
Localização: LAGOA

onde está o erro - Rotina simples

Mensagem por lapinhazzz »

Bom Dia amigos do Forum

Gostaria que me explicassem onde está o erro desta rotina
O erro que me dá diz que existe sintax error em dataa e sintax error em endif

Obrigado
Cumprimentos

Lapinhazzz

Código: Selecionar todos

proc main()
mv_c(1)
mv_c(2)
return

function mv_c()
   para dia
   sele 1
   use vendas
   rot="CAIXAA"
   dataa=ctod('  /  /  ')
   datab=ctod('  /  /  ')
   cor(21)
   IF dia=1
      @ 13,15 say "Data da Caixa:" get dataa
      read
   elseif dia=2
      @ 13,15 say "De:" get dataa
      @ 13,39 say "at‚" get datab
      read
   endif
   cp=0
   cc=0
   tp=0
   tc=0
   tt=0
   tco=0
   go top
   dataa=ctod(dataa)
   datab=ctod(datab)
   do whil !eof()
      if dataa=datactual .AND. dia=1
         cp=cp+quantp
         cc=cc+quantc
         tp=tp+totalp
         tc=tc+totalc
         tt=tt+total
         tco=tco+tcopias
      elseif dataa=>datactual .AND. datactual<=datab .AND. dia=2
         cp=cp+quantp
         cc=cc+quantc
         tp=tp+totalp
         tc=tc+totalc
         tt=tt+total
         tco=tco+tcopias
      endi
      skip
   enddo
   cor(12)
   @12,14 clea to 19,50
   @12,14 to 20,50
   @10,14 say "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿"
   @11,14 say "³                                   ³"
   @12,14 say "ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´"
   cor(51)
   IF dia=1
      @11,18 say dataa
   elseif dia=2
      cor(12)
      @11,15 say "De:"
      cor(51)
      @11,18 say dataa
      @11,40 say datab
      cor(12)
      @11,30 say "at‚:"
   endif
   cor(12)
   cur(0)
   @13,15 say "Copias a Preto           "+str(cp)
   @14,15 say "Copias a Cores           "+str(cc)
   @15,15 say "Total de Copias          "+str(tco)
   @16,15 say "Valor Copias a Preto  "+str(tp)
   @17,15 say "Valor Copias a Cores  "+str(tc)
   @18,15 say spac(35)
   @19,15 say "Valor Caixa:          "
   cor(51)
   @ 19,37 say str(tt)
   wait ""
   set cent on
rot="MAIN"
return
Editado pela última vez por lapinhazzz em 23 Nov 2009 11:01, em um total de 1 vez.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: onde está o erro - Rotina simples

Mensagem por Toledo »

Lapinhazzz, no início deste seu fonte você está criando duas variáveis com o tipo data...

Código: Selecionar todos

   rot="CAIXAA"
   dataa=ctod('  /  /  ')
   datab=ctod('  /  /  ')
Depois mais adiante você está criando novamente a mesmas variáveis (dataa e datab) usando como parâmetro na função CTOD() as próprias variáveis.

Código: Selecionar todos

   go top
   dataa=ctod(dataa)
   datab=ctod(datab)
Bom, se as variáveis dataa e datab já são do tipo data, então não se pode usar elas com a função CTOD().... e também não tem lógica o que você está tentando fazer nas linhas acima.

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 do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: onde está o erro - Rotina simples

Mensagem por gvc »

[Lapinhazzz]

datactual não esta declarada/inicializada.
Vc tb tem outras variáveis não declaradas. Veja se estão sendo declaradas e inicializadas.

Vc precisa especificar aonde aparece (linha) o erro para facilitar para nós ajudar-mos.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
lapinhazzz
Usuário Nível 3
Usuário Nível 3
Mensagens: 130
Registrado em: 20 Abr 2009 10:52
Localização: LAGOA

Re: onde está o erro - Rotina simples

Mensagem por lapinhazzz »

Amigo,

É um erro de compilação onde aparece.
a datactual é um campo data do ficheiro de vendas
Por favor verifique novamente o que eu postei em primeiro lugar

Código: Selecionar todos


xHarbour Compiler build 1.0.0 (SimpLex)
Copyright 1999-2007, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'LAPINHA.PRG'...

100

200

Lines 228, Functions/Procedures 1
Generating C source output to 'obj\LAPINHA.c'...
Done.

Building object module for 'obj\LAPINHA.c'
using C compiler 'BCC32' as defined in 'C:\XHARBOUR\BIN\harbour.cfg'...
Exec: BCC32  -c -D__EXPORT__ -IC:\XHARBOUR\include  -d -LC:\XHARBOUR\lib -oobj\LAPINHA.obj obj\LAPINHA.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
obj\LAPINHA.c:
Done.
Deleting: "obj\LAPINHA.c"
Done.
xHarbour Compiler build 1.0.0 (SimpLex)
Copyright 1999-2007, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'MV.PRG'...

100

200

300

400

Lines 402, Functions/Procedures 3
Generating C source output to 'obj\MV.c'...
Done.

Building object module for 'obj\MV.c'
using C compiler 'BCC32' as defined in 'C:\XHARBOUR\BIN\harbour.cfg'...
Exec: BCC32  -c -D__EXPORT__ -IC:\XHARBOUR\include  -d -LC:\XHARBOUR\lib -oobj\MV.obj obj\MV.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
obj\MV.c:
Done.
Deleting: "obj\MV.c"
Done.
xHarbour Compiler build 1.0.0 (SimpLex)
Copyright 1999-2007, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'MV_C.PRG'...

MV_C.PRG(35) Error E0030  Syntax error: "syntax error at 'DATAA'"

MV_C.PRG(42) Error E0030  Syntax error: "syntax error at 'ENDI'"

2 errors

No code generated



Obrigado

Lapinhazzz
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: onde está o erro - Rotina simples

Mensagem por alaminojunior »

lapinhazzz escreveu:elseif dataa=>datactual .AND. datactual<=datab .AND. dia=2
Está errada a maneira como passou o operador "maior ou igual". Ao invéz de

Código: Selecionar todos

=>
troque por

Código: Selecionar todos

>=
E é só segunda-feira hein "? :D
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Responder