Página 3 de 4

Erro ao compilar o hbp

Enviado: 16 Fev 2015 18:57
por eciodias

Código: Selecionar todos

FUNCTION VendaGar
****************
Parameters Vgarson,SomaTira
Area=Select()
Select 4
If NetUse("CadGarso","Garson",.F.,10)
  If .Not. File("IndGar1.Ntx")
    @ 11,16 Say " Criar Arquivos de Indices......, <Tecle Algo> !"
    Set Color To
    Inkey(0)
    Select &Area
    Return(.F.)
  Endif
  Set Index To IndGar1
  Set Order To 1
  Go Top
  If Lastkey() = 27
    Use
    Select &Area
    Return(.T.)
  Endif
  Seek Vgarson <=============================== LINHA QUE ESTA DANDO O ERRO
  If RegLock(20)
    Replace Vendas With Iif(SomaTira=1,Vendas+ValMater,Vendas-ValMater)
    Unlock
  Else
    Mensagem("O registro näo esta disponível....",9,1)
    Return
  Endif
  Use
  Select &Area
  Return(.T.)
Else
  Vrede=.F.
  SetColor(Tcor14)
  ExpBox(09,13,13,76)
  @ 11,16 Say " Acesso Negado, Tente mais tarde. <Tecle Algo> !"
  Set Color To
  Inkey(0)
  Select &Area
  Return(.F.)
Endif

Erro ao compilar o hbp

Enviado: 16 Fev 2015 19:06
por Toledo
Poste também o código onde você chama a função VendaGar(). Pois é ai que você passa os parâmetros para a função, no caso Vgarson onde esta ocorrendo o erro.

Abraços,

Erro ao compilar o hbp

Enviado: 16 Fev 2015 19:11
por eciodias

Código: Selecionar todos

Select LancaDia
If AdiReg(20)
   Replace Situ     With Vsitu,     Mesa     With Vmesa,     Pedi     With Vpedi,;
               Data     With Vdata,     HoraInic With Vhora,     CodGarso With Vgarson,;
                CodMater With Vmater,    DesMater With VnomeMa,   ValUnita With Vvalor,;
                QtdMater With Vqtdes,    ConParce With ValMater,  Comissao With Vcomiss,;
                ConTotal With VconTotal, NomGarso With VnomeGa,   Fecho    With "1",;
                Usuario  With Usu,       NumeroCx With VnumeroCx, SeqDia   With VseqDia
     Unlock
     Commit

      SomaTira=1
      VendaGar(Vgarson,SomaTira)

Erro ao compilar o hbp

Enviado: 16 Fev 2015 19:17
por Itamar M. Lins Jr.
Coloque ai:

Código: Selecionar todos

alert( valtype(vgarson) )
Uma linha antes de dar o seek. Vai retornar o tipo de variavel. Tem que ser o mesmo tipo que vc criou no dbf.
E mostre p/ nós o tipo.

Saudações,
Itamar M. Lins Jr.

Erro ao compilar o hbp

Enviado: 16 Fev 2015 19:25
por eciodias
É uma variável tipo caracter com 2 posições tipo : 01,02,13,20.... e o campo indexado também é caracter onde esta armazenado o cadastro dos Garsons, simples.

Não tem mistério...,

A variável existe, tanto que incrementa um arquivo antes (de lançamentos) e depois vai no Cadastro de Garsons e incrementa mais este valor ou tira este valor do cadastro do Garsom.... simples.

Erro ao compilar o hbp

Enviado: 16 Fev 2015 19:38
por Toledo
Note: It is recommended to list formal parameters within parentheses in the FUNCTION or PROCEDURE declaration. This results in the formal parameters being created as LOCAL variables. Access to LOCAL variables is faster than to PRIVATE variables.
Amigo, o uso do comando PARAMETERS cria variáveis PRIVATE, então se a variável Vgarson for também Private, pode estar ocorrendo algum conflito. Então faça um pequeno teste:

Código: Selecionar todos

FUNCTION VendaGar
****************
Parameters Vgarson,SomaTira
Troque por:

Código: Selecionar todos

FUNCTION VendaGar(Vgarson,SomaTira)
****************
Abraços,

Erro ao compilar o hbp

Enviado: 16 Fev 2015 19:42
por eciodias
Isto quer dizer.... que todas as minhas... que antes eram Procedures, que viraram Function com os parâmetros declarados abaixo... vão ter que serem modificadas?

É isto mesmo?

Erro ao compilar o hbp

Enviado: 16 Fev 2015 20:15
por Toledo
Amigo, você fez o teste? Deu certo?
eciodias escreveu:que antes eram Procedures, que viraram Function
Você pode continuar usando Procedures, mas na chama desta procedure é aconselhável usar como se fosse uma Function, por exemplo:

Código: Selecionar todos

//Chamada modo procedural
DO Somar With nQta, nVlr

//Chamada modo funcional
Somar(nQta, nVlr)

Procedure Somar(npQta,npVlr)
  ? (npQta * npVlr)
Return
eciodias escreveu:os parâmetros declarados abaixo... vão ter que serem modificadas?
Não necessariamente, mas de preferência não nomear parâmetros com o mesmo nome de uma variável Private já existente.

Abraços,

Erro ao compilar o hbp

Enviado: 16 Fev 2015 20:29
por Jairo Maia
Olá Pessoal,

O Itamar já pediu para que ele verificasse o tipo da variavel que chega no Seek colocando um alert( valtype(vgarson) ), e ele apenas afirmou que é caractere. Porém, não é!

O erro DBCMD/1001 ocorre quando o tipo do argumento passado para Seek ou DbSeek() não é: Caractere, Numérico, Lógico ou Data.

Erro ao compilar o hbp

Enviado: 16 Fev 2015 22:29
por Nascimento
elcio eu fiz o seguinte : quando comecei

baixei o harbour3.2
instalei mudando o nome de hb32 para harbour

ficando c:\harbour


em seguida abri meu computador , cliquei em configuraçoes avançadas do sistema

la em baixo tem: Variaveis de Ambiente

cliquei nela abriu uma janela onde embaixo novamente tem: Variaveis de sistema

fui ate onde tem o nome PATH , cliquei em cima e cliquei embaixo em editar

ai coloquei exatamente essas linhas

Código: Selecionar todos

;C:\Harbour\bin;C:\Harbour\lib;C:\Harbour\include;
apliquei fechei ai abri o cmd e digitei hbmk2 , ai apareceu os parametros do hbmk2

apos isso fui e compilei meu sistema que era em clipper sem aperreio nem 1 decorreu tudo tranquilinho pequenos ajustes mesmo que vc encontra ate aqui no forum

tipo:

do case
case i = 1

do tarefas

end case

para:

do case
case i = 1
tarefas()
end case

mais nada que nao tenha no forum

Erro ao compilar o hbp

Enviado: 16 Fev 2015 22:46
por eciodias
Obrigado, eu já esperava que não fosse tão fácil como diziam....

A cada minuto me deparo com complicações que não deveriam existir....

Set Date British
Set Date Format To "dd/mm/yyyy"
Set Epoch To 2000
Set Century On

No Clipper 5
---------------
16/02/2015

No Harbour
-------------
02/16/15

Agora estou atras de como mudar isto.........

Erro ao compilar o hbp

Enviado: 16 Fev 2015 22:56
por Toledo
Tente:
Set Date To British
Set Century On
Set Epoch To 2000

Se você já está usando Set Date To British, então não precisa de Set Date Format To "dd/mm/yyyy".

Abraços,

Erro ao compilar o hbp

Enviado: 16 Fev 2015 23:04
por eciodias
Continua.... 02/16/15

Erro ao compilar o hbp

Enviado: 16 Fev 2015 23:06
por eciodias
Preciso do formato... DD/MM/YYYY

Com as alterações que sugeriu ficou MM/DD/YY......

Erro ao compilar o hbp

Enviado: 16 Fev 2015 23:11
por Toledo
Amigo, estranho isto, você deve estar fazendo algo errado ai.

Faz um pequeno teste, copie o código abaixo em uma arquivo PRG (por exemplo: testedata.prg) e depois compile.

Código: Selecionar todos

Proc Main()
Set Date To British
Set Century On
Set Epoch To 2000

? date()

Return
Para compilar digite: hbmk2 testedata.prg

Depois execute este programinha e veja qual o formato que vai apresentar a data.

Abraços,