erro sintaxe na execução quando compiladao com harbour

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

Moderador: Moderadores

porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

erro sintaxe na execução quando compiladao com harbour

Mensagem por porter »

olá pessoal, na execução dessa rotina, na linha abaixo está dando erro de sintaxe, essa mesma linha compilado com xHarbour, funciona perfeitamente,
gostaria de saber porque quando compilado com hbmk2 estoque.hbp, da erro de sintaxe no momento da execução.

brw:getcolumn(i_):colorblock=&("{||IF(BLOQ='S',{3,2},IF(BLOQ='N',{1,2},IF(MOTBLO='3',{6,2})))}")

Código: Selecionar todos

 FOR i_=1 TO LEN(brw_campos)
cp_titu:=brw_campos[i_,3]
cp_masc:=brw_campos[i_,2]
cp_:=brw_campos[i_,1]
brw:addcolumn(tbcolumnnew(cp_titu,&("{||TRAN("+cp_+",["+cp_masc+"])}")))
brw:getcolumn(i_):width := LEN(TRAN(&cp_.,cp_masc))
brw:getcolumn(i_):colorblock=&("{||IF(BLOQ='S',{3,2},IF(BLOQ='N',{1,2},IF(MOTBLO='3',{6,2})))}")  <- ERRO DE SINTAXE
brw:FREEZE:=1  && CONGELA PRIMEIRA COLUNA
NEXT
Error Base/1449 Erro de sintaxe : &
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

erro sintaxe na execução quando compiladao com harbour

Mensagem por Kapiaba »

Isto ocorre quando você vai imprimir alguma coisa?

Código: Selecionar todos

ERRO: ERROR BASE 1449/ SYNTAX ERROR : &
DESCRIÇÃO: Erro de Sintaxe
O QUE FAZER: Este erro geralmente ocorre durante o processo de impressão quando os comandos de Ativa Comprimido Desativa Comprimido, Ativa Expandido, Desativa Expandido, estão preenchidos de forma incorreta nos CADASTROS do programa. Defina corretamente o Cadastro de impressora no sistema. Exemplo.: 
Impressora EPSON;

ATIVA COMPRIMIDO: CHR(15)
DESATIVA COMPRIMIDO: CHR(18)
ATIVA EXPANDIDO: CHR(14)
DESATIVA EXPANDIDO: CHR(20)
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

erro sintaxe na execução quando compiladao com harbour

Mensagem por porter »

Isto ocorre quando você vai imprimir alguma coisa?
olá Kapiaba,
Esse erro ocorre quando tento mostrar um cadastro de clientes pelo Tbrowse, ao invés de usar o Dbedit, estou usando o Tbrowse, vou passar o código com mais detalhe para ver se facilita, dependendo do valor do campo o registro é mostrado com uma cor diferente.

Código: Selecionar todos

PROCEDURE BRW_ARQ
PARAMETERS brw_ls,brw_cs,brw_li,brw_ci,brw_campos
brw:=TBrowseDB(brw_ls+1,brw_cs+1,brw_li-1,brw_ci-1)
brw:colorspec :=  "&BCB/&AZ , &MR+/&VD , &CYB/&AZ , &PR/&PR , &VDB/&MR , &VM/&AZB"
brw:headsep:=chr(205)+chr(205)
brw:colsep:=" "+" "
brw:gotopblock({|| dbGoTop()})
brw:gobottomblock({|| dbGoBottom()})
brw:skipblock({|_1| MOV_PTR(_1)})
FOR i_=1 TO LEN(brw_campos)
cp_titu:=brw_campos[i_,3]
cp_masc:=brw_campos[i_,2]
cp_:=brw_campos[i_,1]
brw:addcolumn(tbcolumnnew(cp_titu,&("{||TRAN("+cp_+",["+cp_masc+"])}")))
brw:getcolumn(i_):width := LEN(TRAN(&cp_.,cp_masc))
brw:getcolumn(i_):colorblock=&("{||IF(BLOQ='S',{3,2},IF(BLOQ='N',{1,2},IF(MOTBLO='3',{6,2})))}")  <---  Erro
brw:FREEZE:=1  && CONGELA PRIMEIRA COLUNA
NEXT
gilbertosilverio
Usuário Nível 3
Usuário Nível 3
Mensagens: 339
Registrado em: 18 Jan 2009 10:39
Localização: Ribeirao Pires - SP

erro sintaxe na execução quando compiladao com harbour

Mensagem por gilbertosilverio »

Ola Porter,

Não esta faltando um "nil" nesta chave... IF(MOTBLO='3',{6,2}, nil)

brw:getcolumn(i_):colorblock=&("{||IF(BLOQ='S',{3,2}, IF(BLOQ='N',{1,2}, IF(MOTBLO='3',{6,2}, nil) ) )}")
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

erro sintaxe na execução quando compiladao com harbour

Mensagem por Kapiaba »

Ou, falta declarar uma variável com PRIVATE ou MEMVAR.
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

erro sintaxe na execução quando compiladao com harbour

Mensagem por porter »

Obrigado Kapiaba e Gilberto, agora deu certo, como havia dito, com xHarbour sempre usei assim, estava compilando e executando normalmente.
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

erro sintaxe na execução quando compiladao com harbour

Mensagem por Kapiaba »

Tudo é mais fácil com XHARBOUR, compilador maravilhoso, igual ao CLIPPER5.3, Mas, gosto não se discute! Abs.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

erro sintaxe na execução quando compiladao com harbour

Mensagem por JoséQuintas »

Tudo é mais fácil com XHARBOUR, compilador maravilhoso
Discordo totalmente: o xHarbour aceita bagunça, igual o Clipper.

Se iif é pra escolher entre duas opções.... cadê a segunda opção?

O erro foi em run-time.
Usando codeblock sem macro, já teria isso conferido durante a compilação.
Mais ainda se usar -w3 -es2.

Código: Selecionar todos

brw:GetColumn( i_ ):ColorBlock := { || iif( BLOQ == "S", { 3, 2 }, iif( BLOQ == "N", { 1, 2 }, iif( MOTBLO == "3", {6,2}, ??????? ) ) ) }
No final, depende muito do ponto de vista.
Será que faltou a cor porque foi esquecido, ou era NIL mesmo?
Às vezes é bom perder certos hábitos, vai ajudar quando isso realmente for problema.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder