Página 1 de 1

Consulta Browse com problema em :colSep e :hardSep

Enviado: 02 Out 2019 11:14
por clodoaldomonteiro
Boas a todos,

Estou migrando de xHarbour + GTWVW 1.00 para Harbour 3.4 + GTWVW e estou com um problema na definição dos caracteres de linha e coluna de separação: (oBrowse:colSep e oBrowse:headSep).
O problema aconteceu, quando abro uma janela com a função WVW_nOpenWindow(), onde nesta janela irei colocar a consulta e notei que o sistema coloca a linha de separação do cabeçalho numa posição a baixo e a linha de se paração de colunas em uma posição a mais.

Desde já agradeço a atenção de todos.

Consulta Browse com problema em :colSep e :hardSep

Enviado: 02 Out 2019 13:55
por clodoaldomonteiro
Agora que vi, que já tem um link tratando desse assunto, mas que o erro continua desde de 2014.

viewtopic.php?f=4&t=15117

Consulta Browse com problema em :colSep e :hardSep

Enviado: 02 Out 2019 23:45
por Fernando queiroz

Código: Selecionar todos

*******************************
function pesq_orca
*******************************
SELE ORCAMENTO
TELA_ORC := SAVESCREEN( LIN_MENU + 1, 00, 23, 79 )
DBGOTOP()
COR( "MENU" )
JANELA( 03, 02, 21, 77, "Consulta Or‡amento" )
L_CON := L_SOM; C_CON := C_SOM
COR( "MENU" )
@ 05, 04 CLEAR TO 19, 75
@ 05, 04 SAY SUBS( TB_JANELA, 1, 1 ) +;
             REPL( SUBS( TB_JANELA, 2, 1 ), 70 ) + SUBS( TB_JANELA, 3, 1 )
@ 06, 04 SAY SUBS( TB_JANELA, 12, 1 )
@ 06, 75 SAY SUBS( TB_JANELA, 4, 1 )
@ 07, 04 SAY SUBS( TB_JANELA, 11, 1 )
@ 07, 75 SAY SUBS( TB_JANELA, 5, 1 )
FOR CONTAR = 8 TO 18
   @ CONTAR, 04 SAY SUBS( TB_JANELA, 10, 1 )
   @ CONTAR, 75 SAY SUBS( TB_JANELA, 6, 1 )
NEXT
@ 19, 04 SAY SUBS( TB_JANELA, 9, 1 ) +;
             REPL( SUBS( TB_JANELA, 8, 1 ), 70 ) + SUBS( TB_JANELA, 7, 1 )

OBJETO := TBROWSEDB( 06, 05, 19, 74 )
OBJETO:HEADSEP := TB_SEP_CAB
OBJETO:COLSEP := TB_SEP_LIN
OBJETO:FOOTSEP := TB_RODAPE
OBJETO:COLORSPEC := CONTECOR[ 2 ] + "," + CONTECOR[ 3 ] + "," + TB_COR_DEL
OB_COLUN := TBCOLUMNNEW( "Or‡amento", { || ORCAMENTO->NUMNOT } ) 
OB_COLUN:PICTURE := "999999"
OBJETO:ADDCOLUMN(OB_COLUN)
OB_COLUN := TBCOLUMNNEW( "Data Or‡amento", { || ORCAMENTO->DATVEN } ) 
OB_COLUN:PICTURE := "99-99-99"
OBJETO:ADDCOLUMN(OB_COLUN)
OB_COLUN := TBCOLUMNNEW( "Nome Cliente", { || ORCAMENTO->NOMCLI } ) 
OB_COLUN:PICTURE := "@S30"
OBJETO:ADDCOLUMN(OB_COLUN)
COR( "MENU" )
WHILE .T.
   WHILE ( !OBJETO:STABILIZE() )
      IF ( TECLA := INKEY() ) != 0
         EXIT
      ENDIF
   ENDDO
   IF OBJETO:STABLE
      SETCOLOR( CONTECOR[ 5 ] )
      @ 22, 04 SAY STRZERO( RECN(), 7 ) + "   " + IIF( DELETED(), "Del", "   " )
      TECLA := INKEY( 0 )
   ENDIF
   IF TECLA == T_CIMA
      OBJETO:UP()
   ELSEIF TECLA == T_BAIXO
      OBJETO:DOWN()
 ELSEIF TECLA == T_ESQUERDA
      OBJETO:LEFT()
   ELSEIF TECLA == T_DIREITA
      OBJETO:RIGHT()
   ELSEIF TECLA == T_HOME
      GO TOP
      OBJETO:REFRESHALL()
   ELSEIF TECLA == T_END
      GO BOTT
      OBJETO:REFRESHALL()
   ELSEIF TECLA == T_PGUP
      OBJETO:PAGEUP()
   ELSEIF TECLA == T_PGDN
      OBJETO:PAGEDOWN()
   ELSEIF TECLA == T_CTRL_PGUP
      OBJETO:GOTOP()
   ELSEIF TECLA == T_CTRL_PGDN
      OBJETO:GOBOTTOM()
   ELSEIF TECLA == T_CTRL_HOME
      OBJETO:PANHOME()
   ELSEIF TECLA == T_CTRL_END
      OBJETO:PANEND()
   ELSEIF TECLA == T_CTRL_ESQUERDA
      OBJETO:PANLEFT()
   ELSEIF TECLA == T_CTRL_DIREITA
      OBJETO:PANRIGHT()
   ELSEIF TECLA == T_ESC
      M->NUMORC:=VAL(NUMNOT)
      RESTSCREEN( LIN_MENU + 1, 00, 23, 79, TELA_ORC )
      COR( "GETS" )
      RETURN
   ELSEIF TECLA = T_ENTER
      M->NUMORC:=VAL(NUMNOT)
      RESTSCREEN( LIN_MENU + 1, 00, 23, 79, TELA_ORC )
      COR( "GETS" )
      RETURN
   ENDIF
ENDDO

Código: Selecionar todos

#define TB_COR_DEL      CONTECOR[ 4 ]  // Cor dos registros DELETADOS
#define TB_RODAPE       "ÄÁÄ"  // Caracteres para o rodape do TBROWSE
#define TB_SEP_LIN      " ³ "  // Separadores de coluna do TBROWSE
#define TB_SEP_LI1      "³"  // Separadores de coluna do TBROWSE
#define TB_SEP_CAB      "ÄÂÄ"  // Separadores do cabecalho do TBROWSE
#define TB_SEP_CA1      "ÂÄ"  // Separadores do cabecalho do TBROWSE
#define TB_JANELA       "ÚÄ¿³´³ÙÄÀ³Ã³"
Enfim não uso mais, tudo gráfico agora :)) :)) :))

coloca no editor com pagina de código 850

Consulta Browse com problema em :colSep e :hardSep

Enviado: 03 Out 2019 17:38
por clodoaldomonteiro
Já descobri qual é o erro, é causado pela chamada da função WVW_setMainCoord(.T.), que seria pra dar independência de coordenadas a cada janela, ou seja, cada janela WVW_nOpenWindow(), teria sua contagem de linhas independente da janela Mãe.
Se o parâmetro passado for .F., as próximas janelas terão que usar as referências de linhas/coluna baseadas na janela Main, mas fica muito difícil ajustar os @ SAY e @ GET.

Vejo que isso seria um BUG do Harbour, que já está assim a muito tempo e a minha solução é mudar pra GTWVG.

Muito obrigado a todos.

Consulta Browse com problema em :colSep e :hardSep

Enviado: 04 Out 2019 08:47
por clodoaldomonteiro
Ontem, pesquisando até mais tarde, descobri os fontes da TBrowse no Harbour 3.4 e xHarbour 1.21, onde percebi que a versão do xHB121 não tem esse problema.
Então, basta anexar o .PRG correto no seu projeto que o Browse será apresentado de forma correta, quando usado junto com a GTWVW e WVW_SetMainCoord(.T.).

Espero ter ajudado a todos e segue em anexo os arquivos mencionados.

Consulta Browse com problema em :colSep e :hardSep

Enviado: 07 Out 2019 14:56
por clodoaldomonteiro
O problema era causado pela função hb_DispOutAtBox() e a solução foi substituir por DispOutAt().

Finalizado.