Página 1 de 1

Arquivo relacional

Enviado: 04 Jul 2016 20:34
por gilbertosilverio
Ola Amigos,

Estou tentando montar um busca relacional, baseado neo exemplo da HWGUI, browsefilter, e esta dando o erro:

Error BASE/1099 Erro nos parƒmetros: STR
Chamado por --> STR(0)
Chamado por hbrowse.prg --> HBROWSE:FLDSTR(3486)
Chamado por hbrowse.prg --> HBROWSE:LINEOUT(2166)
Chamado por hbrowse.prg --> HBROWSE:PAINT(1498)
Chamado por hbrowse.prg --> HBROWSE:ONEVENT(559)
Chamado por --> HWG_DLGBOXINDIRECT(0)
Chamado por hdialog.prg --> HDIALOG:ACTIVATE(138)
Chamado por HWG_ROTINAS.PRG --> G_BUSCA(2997)
Chamado por HWG_ROTINAS.PRG --> (b)G_INICIO(1200)
Chamado por hbrowse.prg --> HBROWSE:ONEVENT(647)
Chamado por --> HWG_DLGBOXINDIRECT(0)
Chamado por hdialog.prg --> HDIALOG:ACTIVATE(138)
Chamado por HWG_ROTINAS.PRG --> LER_WGG_COTACAO_01(997)
Chamado por HWG_ROTINAS.PRG --> (b)ABRE_WGG(557)
Chamado por hbrowse.prg --> HBROWSE:ONCLICK(2959)
Chamado por hbrowse.prg --> HBROWSE:EDIT(2979)
Chamado por hbrowse.prg --> HBROWSE:ONEVENT(778)
Chamado por --> HWG_DLGBOXINDIRECT(0)
Chamado por hdialog.prg --> HDIALOG:ACTIVATE(138)
Chamado por HWG_ROTINAS.PRG --> ABRE_WGG(656)
Chamado por TEL.PRG --> (b)MENU_CRIATELE(125)
Chamado por ttopbar.prg --> TOPBARMENU:EXECUTE(1082)
Chamado por ttopbar.prg --> TOPBARMENU:MODAL(741)
Chamado por ttopbar.prg --> MENUMODAL(98)
Chamado por TEL.PRG --> MENU_TELE(60)
Chamado por TEL.PRG --> TEL(38)
Chamado por GIL.PRG --> (b)MENU_CRIAGERAL(610)
Chamado por ttopbar.prg --> TOPBARMENU:EXECUTE(1082)
Chamado por ttopbar.prg --> TOPBARMENU:MODAL(741)
Chamado por ttopbar.prg --> MENUMODAL(98)
Chamado por GIL.PRG --> MENU_GERAL(595)
Chamado por GIL.PRG --> MAIN(141)

Data e Hora do erro: 04/07/2016 - 20:24:05
Nome do Sistema : Faturamento
Usuario do Sistema : Gilberto
Nome do Micro : GILBERTO01 - Nome Usuario.: Gilberto
Sistema Operacional: Windows Windows Vista Home Edition 6.02.9200
Versão compilador : HwGUI 2.17 xHarbour build 1.1.0 Intl. (SimpLex)

Código: Selecionar todos


FUNCTION g_Busca() //Pesquisa_Estoque()
     LOCAL o, nKEY, nRec:=1, oGET1, oGET2, nLast := 0, oLINE1

     PRIVATE oLabel1, oEdit1, oLabel2, oEdit2, oButtonex2, oBrw1, zREC:=0
     PRIVATE oButtonex1, oButtonex2,  oButtonex3, oButtonex4, oBRW2

     Private nPES, gPes, vPes:="", keyAnt:=0, aVERDE, aAMARELO, oTECLA:="", nORDEM:=1, cRAZ
     PRIVATE CM1:=1, aCOMBO

     KSETCAPS(.T.)

     aCOMBO:= {[1 - Descricao       ],;
               [2 - Sal Base        ],;
               [3 - Fornecedor      ] }

     CLOSE DATA
     DBUSEAREA(.T., "DBFNTX", "xESTOQUE", "xESTOQUE", .T.)
     SET INDEX TO xESTDES, xESTPCH, xESTFOR

     DBUSEAREA(.T., "DBFNTX", "xARDEX", "xARDEX", .T.)
     SET INDEX TO xADES, xACOD

     DBSELECTAREA("xESTOQUE")
     xESTOQUE->(DBSETORDER(nORDEM))
     xESTOQUE->(dbgotop())

     INIT DIALOG oDlg TITLE "Pesquisar Produto " AT 0,0 SIZE 980,640                ;
          FONT HFont():Add( 'tahoma',0,-13,400,,,) CLIPPER                          ;
          STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_MAXIMIZEBOX+WS_SIZEBOX+DS_CENTER

     ThisBUSCA := oDlg

     @  13, 10 SAY nPES CAPTION [Pesquisar     :]   SIZE 100,42
     @ 100, 10 SAY ogDESCRICAO CAPTION vgDESCRICAO  SIZE 600,42 FONT HFont():Add( 'tahoma', 6,0,400,,,) COLOR 255

     @  13, 35 SAY             [Marca aceita:]  SIZE 100,19
     @ 100, 35 SAY ogMARCA CAPTION vgMARCA      SIZE 500,22 FONT HFont():Add( 'tahoma', 6,0,400,,,) COLOR 255

     @ 0,   62 LINE oLine1 LENGTH 980

     @  13, 67 SAY              [Pesquisando :]   SIZE 100,19
     @ 100, 67 SAY gPes CAPTION vPes              SIZE 300,22 COLOR 255

     @  13, 90 SAY              [Localizado    :] SIZE 100,19
     @ 100, 90 SAY cRAZ CAPTION SPAC(50)          SIZE 400,22

     @ 0,   120 LINE oLine1 LENGTH 980


     @  13,130 BROWSE oBrw1 DATABASE SIZE 960,250 STYLE WS_TABSTOP   ;
      	       ON POSCHANGE {|| EVAL(oBrw2:bFirst), oBrw2:Refresh()} ;
               ON CLICK { |oBrw1,nkey| BrwKeyFUN( @oBrw1, @nKEY )  }

     oBrw1:nHeadHeight := 24
     oBrw1:alias       := 'xESTOQUE'
     oBrw1:nColumns    := 8
     Obrw1:freeze      := 1

     SELECT (oBrw1:alias)

     oBrw1:AddColumn( HColumn():New('Descrição', FieldBlock( 'DESCRICAO' ), 'C',50, 0 ,.F.,0,0,,,,,,,,,)) // ESQUERDA
     oBrw1:AddColumn( HColumn():New('Fornecedor',FieldBlock( 'FORNECEDOR' ),'C',20, 0 ,.F.,0,0,,,,,,,,,))
     oBrw1:AddColumn( HColumn():New('Estoque',   FieldBlock( 'QTDEESTOQU') ,'N',10, 0 ,.F.,1,1,,,,,,,,,)) // CENTRO
     oBrw1:AddColumn( HColumn():New('Tabela 02', FieldBlock( 'TABELA02' )  ,'N',10, 2 ,.F.,2,2,,,,,,,,,))
     oBrw1:AddColumn( HColumn():New('Sal Base',  FieldBlock( 'SALBASE' )   ,'C',70, 0 ,.F.,0,0,,,,,,,,,))
     oBrw1:AddColumn( HColumn():New('EAN',       FieldBlock( 'EAN' )       ,'C',16, 0 ,.F.,0,0,,,,,,,,,))
     oBrw1:AddColumn( HColumn():New('Codigo',    FieldBlock( 'CODIGO' )    ,'N',06, 0 ,.F.,0,0,,,,,,,,,))
     oBrw1:AddColumn( HColumn():New('P.M.C.',    FieldBlock( 'PRECOMC' )   ,'N',10, 2 ,.F.,2,2,,,,,,,,,)) // DIREITA

     oBrw1:bKeyDown := { |oBrw1,nkey| BrowseKeyFUN(@oBrw1, @nkey) }

     oBrw1:Anchor := 15

     oBrw1:Refresh()


     @  13,400 BROWSE oBrw2 DATABASE SIZE 960,150 STYLE WS_TABSTOP  ;
               FIRST {|| DBSEEK(xESTOQUE->DESCRICAO) }              ;
               WHILE {|| SUBSTR(DESCRICAO,1,49) == xESTOQUE->(SUBSTR(CODIGO,1,49))}

     oBrw2:nHeadHeight := 24
     oBrw2:alias       := 'xARDEX'
     oBrw2:nColumns    := 4
     Obrw2:freeze      := 1

     SELECT (oBrw2:alias)

     oBrw2:AddColumn( HColumn():New('Descrição', FieldBlock( 'DESCRICAO' ) ,'C',50, 0 ,.F.,0,0,,,,,,,,,)) // ESQUERDA
     oBrw2:AddColumn( HColumn():New('N Lote'   , FieldBlock( 'nlote' )     ,'C',20, 0 ,.F.,0,0,,,,,,,,,))
     oBrw2:AddColumn( HColumn():New('validade',  FieldBlock( 'validade')   ,'C',10, 0 ,.F.,1,1,,,,,,,,,)) // CENTRO
     oBrw2:AddColumn( HColumn():New('Qtde',      FieldBlock( 'qtde' )      ,'N',06, 0 ,.F.,2,2,,,,,,,,,))

     oBrw2:Anchor := 15

     oBrw2:Refresh()

     @ 527,600 BUTTONEX oButtonex1 CAPTION "C&have"  SIZE 98,32 STYLE WS_TABSTOP ;
          ON CLICK {|| zREC:=RECNO(), PESQUISA_CHAVE(), DBGOTO(zREC), oBRW1:REFRESH(), oBrw1:setfocus()  }
          oButtonex1:Anchor := 12

     @ 635,600 BUTTONEX oButtonex2 CAPTION "C&arregar"  SIZE 98,32 STYLE WS_TABSTOP ;
               ON CLICK {|| registro:=recno(), G_carrega_dados(), ThisBUSCA:CLOSE() }
          oButtonex2:Anchor := 12

     @ 740,600 BUTTONEX oButtonex3 CAPTION "&Ordem"      SIZE 98,32 STYLE WS_TABSTOP ;
               ON CLICK {|| MsgGetORDEM( @nORDEM, @aCOMBO ), DBSETORDER(nORDEM), oBRW1:REFRESH(), oBrw1:setfocus() }
          oButtonex3:Anchor := 12

     @ 848,600 BUTTONEX oButtonex4 CAPTION "&Sair"       SIZE 98,32 STYLE WS_TABSTOP ;
               ON CLICK {|| ThisBUSCA:CLOSE() }
          oButtonex4:Anchor := 12

     ACTIVATE DIALOG oDlg

 RETURN(NIL)

O que devo corrigir para esta rotina funcionar?

Grato

Arquivo relacional

Enviado: 05 Jul 2016 15:56
por sygecom
Esse erro geralmente acontece, quando vc define para visualizar o campo como caracter e a coluna na tabela é numérica, de uma revisa.

Arquivo relacional

Enviado: 05 Jul 2016 18:21
por gilbertosilverio
Leonardo,

Grato pela sua resposta.

Realmente, o erro foi pura falta de atenção.

Código: Selecionar todos

WHILE {|| SUBSTR(DESCRICAO,1,49) == xESTOQUE->(SUBSTR(CODIGO,1,49))}
Como deve ser:

Código: Selecionar todos

WHILE {|| SUBSTR(DESCRICAO,1,49) == xESTOQUE->(SUBSTR(DESCRICAO,1,49))}
Não sei como não vi isso...

Agora vamos a pesquisa incremental, que não ta funcionando...