Travando em DATAS

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

Moderador: Moderadores

Avatar do usuário
FFreire
Usuário Nível 3
Usuário Nível 3
Mensagens: 113
Registrado em: 19 Mai 2013 16:16
Localização: Andirá-PR / Itaporanga-SP

Travando em DATAS

Mensagem por FFreire »

Prezados...

Estou com um problema, no console, em um determinado campo do tipo data, se digitar uma data errada, exemplo 12/30/2015, simplesmente trava o sistema...o que será que esta acontecendo ?

Só para elucidar, estou usando harbour+minigui extended com os menus em gui e as antigas telas em modo console...

De antemão, agradeço !

F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Travando em DATAS

Mensagem por JoséQuintas »

Se não tem nenhuma validação extra, pode ser bug.
Como é uma distribuição com minigui, vai ter que confirmar com quem usa minigui, já que é um Harbour específico dela.
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/
Maurício Elias
Usuário Nível 3
Usuário Nível 3
Mensagens: 304
Registrado em: 12 Mai 2005 08:48

Travando em DATAS

Mensagem por Maurício Elias »

Olá, bom dia. Se for um bug, vc consegue resolver com um Valid ?
Abraços.
_______
Maurício
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Travando em DATAS

Mensagem por Itamar M. Lins Jr. »

Não informou a versão do Harbour nem da minigui.
Não mostrou o código, aparte do programa que acontece o erro. Um erro tão primário assim, acho difícil ser da Minigui ou do Harbour...

Vamos facilitar... É para resolver ou ficar fazendo suposições...

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
FFreire
Usuário Nível 3
Usuário Nível 3
Mensagens: 113
Registrado em: 19 Mai 2013 16:16
Localização: Andirá-PR / Itaporanga-SP

Travando em DATAS

Mensagem por FFreire »

Obrigado a atenção dispensada...

O Minigui extended é 2.4.8...o harbour que esta junto com a minigui é 3.2.0dev (r1506171039)...

Não existe validação alguma, é muito estranho, vou postar alguns trechos de código para ver o que acham...

Essa é a chamada para o console...

Código: Selecionar todos

POPUP '&Exportação'
         ITEM 'Livro Fiscal de Saída'        ACTION IIF(CkNivel('02001'),CH_CONSOLE( { ||RfSaida() } ), .T. )
         ITEM 'Livro Fiscal de Entrada'      ACTION IIF(CkNivel('02002'),CH_CONSOLE( { ||RfEntrada() } ), .T. )
         SEPARATOR
         ITEM 'Lançamentos Contábeis'        ACTION IIF(CkNivel('02003'),CH_CONSOLE( { ||Automa() } ), .T. )
         SEPARATOR
         ITEM 'Seguradora Averbação'         ACTION IIF(CkNivel('02004'),CH_CONSOLE( { ||TxtSeguro() } ), .T. )
         ITEM 'Intercâmbio - Cliente'        ACTION IIF(CkNivel('02005'),CH_CONSOLE( { ||Interc() } ), .T. )
         SEPARATOR
         ITEM 'Sintegra'                     ACTION IIF(CkNivel('02006'),CH_CONSOLE( { ||Rec_PR() } ), .T. )
         POPUP 'Obrigações PR'
            ITEM 'Crédito de ICMS'           ACTION IIF(CkNivel('02008'),CH_CONSOLE( { ||IcmsSaida() } ), .T. )
            ITEM 'SEAB - SIAGRO'             ACTION IIF(CkNivel('02009'),CH_CONSOLE( { ||Seab_PR() } ), .T. )
         END POPUP
         POPUP 'Obrigações SP'
            ITEM 'Receita'                   ACTION IIF(CkNivel('02011'),CH_CONSOLE( { ||Rec_SP() } ), .T. )
            ITEM 'CREA'                      ACTION IIF(CkNivel('02010'),CH_CONSOLE( { ||CREA_SP() } ), .T. )
         END POPUP
      END POPUP
Ai ele vem para este código...

Código: Selecionar todos

#include "wvtwin.ch"
#include "hbgtinfo.ch"
#include "hbgtwvg.ch"
#include "wvgparts.ch"
#Include 'minigui.ch'
#include 'inkey.ch'

REQUEST HB_GT_WVT

//--------------------------
FUNCTION CH_CONSOLE(b_Block)
//--------------------------

LOCAL zret

DEFINE WINDOW Trava;
       AT 0,0 ;
       WIDTH 100 HEIGHT 30;
       TITLE '.....Em execução.....';
       MODAL;
       NOSIZE;
       NOSYSMENU;
       ON GOTFOCUS FocarJanela('>>> Sagrio <<<');
       ON INIT Jan_Console(b_Block,@zret)

       SetaTeclas('Trava')

       ON KEY CONTROL+V OF Trava ACTION COLAR_CTRL_V()

       // Nao permite fechar a janela com ALT+F4
       ON KEY ALT+F4 OF Trava ACTION PlayBeep()

END WINDOW

CENTER WINDOW Trava

ACTIVATE WINDOW Trava

RETURN(zret)

//--------------------------
STATIC FUNCTION COLAR_CTRL_V
//--------------------------

KEYBOARD( Hb_GtInfo( HB_GTI_CLIPBOARDDATA ) )

RETURN(NIL)

//---------------------------------------
STATIC FUNCTION Jan_Console(b_Block,_ret)
//---------------------------------------

LOCAL pGT, cFont

PRIVATE pNewGT

pNewGT := HB_GTCREATE("WVT")
pGT    := HB_GTSELECT(pNewGT)

HB_GTINFO( HB_GTI_FONTSEL, "Lucida Console")
HB_GTINFO( HB_GTI_FONTWIDTH, 12 )
HB_GTINFO( HB_GTI_FONTSIZE, 28)
HB_GTINFO( HB_GTI_MAXIMIZED      , .F. ) // Maximizar a tela
HB_GTINFO( HB_GTI_RESIZABLE      , .F. ) // Não usar botões de redimensionamento
HB_GTINFO( HB_GTI_ALTENTER       , .F. ) // Não usar ALT+Enter
HB_GTINFO( HB_GTI_CLOSABLE       , .F. ) // inibe o fechamento no X
HB_GTINFO( HB_GTI_RESIZEMODE, HB_GTI_RESIZEMODE_FONT ) /* aumenta o tamanho da letra proporcionalmente */
HB_GTINFO( HB_GTI_SPEC, HB_GTS_WNDSTATE, HB_GTS_WS_MAXIMIZED )
HB_GTINFO( HB_GTI_WINTITLE, ">>> Sagrio <<<" )
HB_GTINFO( HB_GTI_ICONRES, "AppIcon" )
HB_GTINFO( HB_GTI_ISFULLSCREEN, .F. ) // Deixar a tela cheia - estilo DOS
HB_GTINFO( HB_GTI_SELECTCOPY, .T. )

_ret := EVAL( b_Block )

pNewGT := NIL
HB_GTSELECT(pGT)

RELEASE WINDOW Trava

RETURN(NIL)
O que faz o código acima, abre uma janela modal, quando inicia chama a função que cria a janela console... mantém também o foco sempre na janela console, conforme a função focarjanela()... dai quando estou no console em qualquer lugar que pede data, seja com validação ou não... se eu digitar assim 12/30/2015 trava... se por acaso digitar / /2015, também trava... parece que fica num loop infinito... pois não obedece nada... é muito estranho... ja tirei o que esquema do focarjanela e não resolveu... talvez falte alguma configuração GTINFO... vejam que também coloco para funcionar o esquema de copiar/colar no console... funciona bem, mas tem um probleminha... se eu tentar usar o CTRL+V no word por exemplo... não funciona, tem que ser botão contrário/colar... mas isso é o de menos... o que acham ??

Só para constar o código que acontece o erro... é qualquer lugar do console que eu peça data... simplesmente... @ 10,10 get xvcto PICT '99/99/9999' com valid ou sem valid, com WHEN ou SEM... e isso nunca aconteceu ateriormente...

F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Travando em DATAS

Mensagem por Itamar M. Lins Jr. »

Pra mim, está difícil de entender.
Mas vc não pode matar uma janela quando ela está abrindo uma outra.
E a questão da data, vc usa o eval() ? Cadê o GET da data picture etc?
_ret := EVAL( b_Block )
É assim que está checando a data ?

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Travando em DATAS

Mensagem por janio »

Ja tentou colocar os comandos abaixo pra ver o que acontece?

SET DATE BRITISH
SET CENTURY ON
SET EPOCH TO 1990
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
FFreire
Usuário Nível 3
Usuário Nível 3
Mensagens: 113
Registrado em: 19 Mai 2013 16:16
Localização: Andirá-PR / Itaporanga-SP

Travando em DATAS

Mensagem por FFreire »

Vamos lá...

Mas eu não estou matando nenhuma janela... estou abrindo o console a partir da janela MODAL... primeiro chamo o CH_CONSOLE... que executa a montagem da console... veja em CH_CONSOLE.. ON INIT Jan_Console()... o código de blocos é executado para chamar as funções em console...

Então seria assim:
No menu, chamo a CH_CONSOLE( {|| RFSaida()} )
Dai na CH_CONSOLE.. quando inicia... Chama a Jan_Console.. que faz a configuração no modo console e executa o bloco que passei de parâmetro...
Com relação as data que esta travando, é em todos os campos a partir da chamada do bloco, que pedir data e for informado uma data inválida... em todos, sem exceção, por isso não postei o código específico, pois é algo assim... para todos... @ 10,10 SAY 'Vencimento:' GET xvcto PICT '99/99/9999'...

Com relação ao que o Janio disse... eu tenho essas configurações em um lugar inicial... que é assim...

Código: Selecionar todos

// Define Ambiente
SET GLOBAL HOTKEYS ON
SET MENUSTYLE EXTENDED
SET NAVIGATION STANDARD
SET MENUCURSOR FULL
SET MENUSEPARATOR SINGLE RIGHTALIGN
SET MENUITEM BORDER 3D
SET AUTOADJUST ON
SET BROWSESYNC ON
SETBLINK(.F.)
__SETCENTURY( On )
SET DATE BRITISH
SET( _SET_DATEFORMAT, 'dd/mm/yyyy' )
SET( _SET_EPOCH, 1990     )
SET( _SET_DELETED   , On  )
SET( _SET_SCOREBOARD, Off )
SET( _SET_WRAP,       On  )
SET( _SET_EXCLUSIVE,  Off )
SET( _SET_BELL,       Off )
SET( _SET_EVENTMASK, INKEY_ALL - INKEY_MOVE + HB_INKEY_GTEVENT )
SETCANCEL(.F.)
Como disse... é muito estranho o que esta acontecendo...

F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
Avatar do usuário
FFreire
Usuário Nível 3
Usuário Nível 3
Mensagens: 113
Registrado em: 19 Mai 2013 16:16
Localização: Andirá-PR / Itaporanga-SP

Travando em DATAS

Mensagem por FFreire »

Só para elucidar mais...

Vcs podem me questionar, pq vc chama uma janela MODAL e depois a CONSOLE... é que se eu chamar a CONSOLE direto, ainda não descobri como não permitir o acesso a janela anterior... que é o que janela MODAL faz... eu acesso ela, mas não consigo acessar a anterior a ela, e toda vez que acesso ela (MODAL), ela retorna o foco para a console, fazendo o efeito de apenas existir a console...

Itamar... agora entendi o que quis dizer com relação ao matar uma janela... é que vc viu no código um "RELEASE WINDOW Trava" na função Jan_Console, mas o que esta acontecendo ali é que estou em execução no EVAL o código de blocos que passei de parâmetro, que é a função de emitir nfe (por exemplo), dai quando sair da console de nfe, que vai ser executado o RELEASE... dessa forma, todos os meus fontes foram aproveitados, sem mexer em nada, conforme for desenvolvendo os GUI, vou substituindo as chamadas nos menus... por isso que disse que não tem um lugar específico que ocorre o travamento da data é em todos os console, que tiver GET pedindo data...

Não sei se ficou claro... Mas o que preciso mesmo é entender o porque desse problema e resolver... de antemão agradeço e aguardo ajuda !

F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Travando em DATAS

Mensagem por janio »

@ 10,10 SAY 'Vencimento:' GET xvcto PICT '99/99/9999'
Eu não uso picture em campos data. Ja experimentou deixar sem picture ou usar "@D 99/99/9999" ??

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
FFreire
Usuário Nível 3
Usuário Nível 3
Mensagens: 113
Registrado em: 19 Mai 2013 16:16
Localização: Andirá-PR / Itaporanga-SP

Travando em DATAS

Mensagem por FFreire »

Janio ja fiz isso... retirei a mascara e nada, coloquei da forma que vc falou '@D 99/99/9999' e continua o problema, é muito estranho...

Pensei que pode ser o minigui, acabei de baixar a versão nova da minigui extended 2.4.9, e ta dando erro nela na nova versão...
hbmk2: Error: Referenced, missing, but unknown function(s): CHARREM() <- Deve ser coisa interna na lib

Se compilo com a 2.4.8, compila sem esse erro ai...

Que será isso ??? :%

F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
Avatar do usuário
FFreire
Usuário Nível 3
Usuário Nível 3
Mensagens: 113
Registrado em: 19 Mai 2013 16:16
Localização: Andirá-PR / Itaporanga-SP

Travando em DATAS

Mensagem por FFreire »

Outra coisa que fiz também... peguei uns exemplos de gui e console e coloquei um campo data lá... e também trava...

Como podem ver nos exemplos acima, estou usando REQUEST HB_GT_WVT, e depois, pNewGT := HB_GTCREATE("WVT"), será que é problema da WVT...
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Travando em DATAS

Mensagem por Itamar M. Lins Jr. »

Ola!
Tem que colocar apenas a linha que tem o get da data sem todas essas outras coisas que só complica quando for isolar o problema.

Código: Selecionar todos

Function main
local dDta := ctod('')
SET DATE BRITISH
SET( _SET_EPOCH, 1990     )
SET( _SET_DATEFORMAT, 'dd/mm/yyyy' )
cls
@ 10,10 get dDta picture "99/99/9999"
read
Veja que quando a data é inválida aparece uma msg informando, e não deixa sair do get.
Assim todos podem testar e verificar se é um problema(bug) do Harbour, ou um outro de estrutura/logica ai...

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Travando em DATAS

Mensagem por Itamar M. Lins Jr. »

Ola!
Nem a GTWVT ou a Minigui está tratando o campo data.
É o Harbour que controla isso, da forma que está usando.
Seria a Minigui se usasse o comando da Minigui.

@ a,b get dDta size x,y

E a GTWVT é só vídeo...

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
FFreire
Usuário Nível 3
Usuário Nível 3
Mensagens: 113
Registrado em: 19 Mai 2013 16:16
Localização: Andirá-PR / Itaporanga-SP

Travando em DATAS

Mensagem por FFreire »

Ok Itamar... fiz isso que vc citou e fica no canto superior direito a mensagem "invalid date" e fica piscando lá... sem parar... e trava lá... não sai mais...
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
Responder