vamos brincar então:
HARBOR + gtwvg + hmg.
1º 100% harbour + tela gráfica PDV 100% WVG (nem parece né - mas é)
a parte do GET fica assim:
Código: Selecionar todos
@ 04 ,66 get mCDPRODUTO picture pCDPRODUTO when empty (mCDPRODUTO) valid fCDPRODUTO_WVG ()
@ 08 ,72 get mQT_VENDA picture pQT_VENDA valid fQT_VENDA_WVG ()
read
a parte da função fCDPRODUTO_WVG:
Código: Selecionar todos
static function fCDPRODUTO_WVG ()
local ARQUIVO := select ()
LIMPA_MENSAGEM ()
if lastkey () <> K_UP
if empty (mCDPRODUTO)
mostra_listagem_prd_hmg()
select (ARQUIVO)
return (.f.)
endif
select ('DCI10010') // arquivo de produtos já indexado no início do main
if .not. EXISTE (str (mCDPRODUTO,13) )
MsgInfo('C¢digo do Produto n„o cadastrado')
mostra_listagem_prd_hmg()
select (ARQUIVO)
return (.f.)
endif
mDSPRODUTO := left (DSPRODUTO,32)
mVR_UNITAR := VR_PREVEN * (1+(mVR_PERJUR/100))
AAdd( aPaint, { "Label8", {|| Wvt_DrawLabel( 02, 01, mDSPRODUTO, 00, 00, RGB( 220, 220, 220 ) , RGB( 063, 096, 150 ), "Arial" , 30, , , , , .f., .f., .f. ) }, { WVT_BLOCK_LABEL, 01, 02, , } } )
mCD_GRADE := DSUNIDADE
select (ARQUIVO)
endif
return
2º harbour + gráficos 100% HMG:
função MOSTRA_LISTAGEM_PRD_HMG() - tambem feita em harbour + HMG:
Código: Selecionar todos
static function mostra_listagem_prd_hmg()
define window form_pesquisa;
at 0,0;
width 760;
height 610;
title 'DCI10010 - Produtos';
icon 'icone';
modal;
nosize
define grid grid_pesquisa
parent form_pesquisa
col 0
row 0
width 755
height 580
headers {'Código','Nome','Preço R$'}
widths {140,460,130}
showheaders .F.
nolines .T.
fontname 'courier new'
fontsize 12
backcolor {157,255,255}
fontcolor BLACK
ondblclick mostra_informacao_prd_hmg()
onenter mostra_informacao_prd_hmg()
end grid
on key escape action thiswindow.release
end window
popula_grid_prd_hmg()
form_pesquisa.grid_pesquisa.setfocus
form_pesquisa.grid_pesquisa.value := 1
form_pesquisa.center
form_pesquisa.activate
return(nil)
Função "popula_grid_prd_hmg()":
Código: Selecionar todos
static function popula_grid_prd_wvg()
// local ARQUIVO := select ()
delete item all from grid_pesquisa of form_pesquisa
dbselectarea('DCI10010')
DCI10010->(dbgotop())
while .not. eof()
add item {alltrim(str(DCI10010->CDPRODUTO)),alltrim(DCI10010->DSPRODUTO),trans(DCI10010->VR_UNITAR,'@E 999,999.99')} to grid_pesquisa of form_pesquisa
DCI10010->(dbskip())
end
return(nil)
Função MOSTRA_INFORMACAO_PRD_HMG()
Código: Selecionar todos
static function mostra_informacao_prd_hmg()
local x_codigo := valor_coluna('grid_pesquisa','form_pesquisa',1)
local x_nome := valor_coluna('grid_pesquisa','form_pesquisa',2)
_codigo := val(x_codigo)
_nome := alltrim(x_nome)
mNMPRODUTO:=_nome
form_pesquisa.release // tanto faz esta linha quanto a abaixo o resultado não fica como o esperado.
// form_pesquisa.minimize
eturn(nil)
FUNÇÃO VALOR_COLUNA():
Código: Selecionar todos
function valor_coluna(xObj,xForm,nCol)
local nPos := GetProperty(xForm,xObj,'Value')
local aRet := GetProperty(xForm,xObj,'Item',nPos)
return aRet[nCol]
Bom, o resultado é espetacular, vejam as 3 telas antes, durante e após a pesquisa
1ª tela: ANTES DA PESQUISA 100% gráficos da WVG↓

- TELA PDV 01 - antes da pesquisa - 100% gráfica com WVG
2ª tela: DURANTE A PESQUISA 100% gráficos HMG (após o 1º enter sem digitar nada no campo CÓDIGO)↓

- tela PDV 02 - durante a pesquisa
3ª tela: APÓS ENCONTRAR O PRODUTO e pressionar o ENTER ou DUPLO CLIQUE ↓

- TELA PDV 03 - após a pesquisa o FORM_WINDOW 100% HMG é fechado
Bom, conclusão da brincadeira:
- a compilação foi feita usando a interface IDE/HMG 3.4.4 com apenas a inclusão da GTWVG na lista de libs;
- no início do main só contém #include "hmg.ch"
- não contém #require "gtwvg"
- tudo funciona perfeitamente, exceto que:
1) no momento de ESC do formulário 100% HMG o controle retorna para o GET 100% harbour perfeitamente. PONTO POSITIVO;
2) quando do DUPLO CLIQUE ou do ENTER para escolher o produto, o FORMULÁRIO 100% HMG fecha mas parece que trava a TELA anterior que contém o GET e o relógio fica travado. Nada mais funciona, a não ser fechar o sistema com o clique no X da janela.
Faltam, alguns ajustes para voltar o controle ao GET.
Tirando isso, podem observar que há misturas gráficas e perfeitas entre as LIBs GTWVG e HMG-3, mas, que não retorna como nos exemplos do QUINTAS o controle para o GET, no caso, do produto.
Se, o JPA / Quintas tiver uma ideia, vamo que vamo!
vlw!