veja aí QUINTAS a tela de PDV com uso do CONSOLE com GTWVG:
- pdv - wvg
os seguintes códigos inclusos:
1 ) desenhar a tela pela primeira vez:
AAdd( aPaint, { "Box_1_descricao_produto", {|| wvt_DrawColorRect( 00, 00, 02, 79 , , RGB( 063, 096, 150 ))}, { WVT_BLOCK_LABEL, 00, 00, 03, 79 } } )
AAdd( aPaint, { "Box_2_cupom_fiscal", {|| wvt_DrawColorRect( 03, 00, 20, 40 , , RGB( 255, 255, 206 ))}, { WVT_BLOCK_LABEL, 03, 00, 20, 40 } } )
AAdd( aPaint, { "Box_3_codigo_produto", {|| Wvt_DrawBoxGroup( 03, 41, 05, 79 ) }, { WVT_BLOCK_BOX, 03, 41, 05, 79 } } ) // box pra dentro (fundo) 26/2/18w
AAdd( aPaint, { "Box_4_quantidade", {|| Wvt_DrawBoxGroup( 07, 41, 09, 79 ) }, { WVT_BLOCK_BOX, 07, 41, 09, 79 } } ) // box alto relevo (pra fora) 26/2/18w
AAdd( aPaint, { "Box_5_preco_unitario", {|| Wvt_DrawBoxGroup( 11, 41, 13, 79 ) }, { WVT_BLOCK_BOX, 11, 41, 13, 79 } } ) // box só desenhado por fora (não tem relevo algum) 26/2/18w
AAdd( aPaint, { "Box_6_subtotal", {|| Wvt_DrawBoxGroup( 15, 41, 17, 79 ) }, { WVT_BLOCK_BOX, 15, 41, 17, 79 } } ) // desenha um box na cor selecionada (sem relevo algum) 26/2/18w
AAdd( aPaint, { "Label1_descricao_produto", {|| Wvt_DrawLabel( 00, 00, HB_AnsiToOem("DESCRIÇÃO DO PRODUTO") , 00, 00, RGB( 220, 220, 220 ) , RGB( 063, 096, 150 ), "Arial" , 20, , , , , .f., .f., .f. ) }, { WVT_BLOCK_LABEL, 00, 00, 03, 50 } } )
AAdd( aPaint, { "Label2_cupom_fiscal", {|| Wvt_DrawLabel( 03, 15, HB_AnsiToOem("CUPOM FISCAL") , 00, 00, RGB( 000, 000, 000 ) , RGB( 255, 255, 206 ), "VisualLib" , 24, , , , , .f., .f., .f. ) }, { WVT_BLOCK_LABEL, 03, 15, 03, 50 } } )
AAdd( aPaint, { "Label3_item_cod_descrica_qt_vrunit_vrtot", {|| Wvt_DrawLabel( 04, 00, HB_AnsiToOem("Ítem Código Descrição Qtd. Unitário R$ SubTotal R$") , 00, 00, RGB( 000, 000, 000 ) , RGB( 255, 255, 206 ), "VisualLib" , 11, 08, , , , .f., .f., .f. ) }, { WVT_BLOCK_LABEL, 04, 00, 03, 50 } } )
AAdd( aPaint, { "Label4_codigo_produto", {|| Wvt_DrawLabel( 03, 42, HB_AnsiToOem("CÓDIGO DO PRODUTO") , 00, 00, RGB( 078, 078, 078 ) , RGB( 192, 192, 192 ), "Lucida Console" , 14, , , , , .f., .f., .f. ) }, { WVT_BLOCK_LABEL, 03, 42, 03, 50 } } )
AAdd( aPaint, { "Label5_quantidade", {|| Wvt_DrawLabel( 07, 42, HB_AnsiToOem("QUANTIDADE") , 00, 00, RGB( 078, 078, 078 ) , RGB( 192, 192, 192 ), "Lucida Console" , 14, , , , , .f., .f., .f. ) }, { WVT_BLOCK_LABEL, 07, 42, 03, 50 } } )
AAdd( aPaint, { "Label6_preco_unitario", {|| Wvt_DrawLabel( 11, 42, HB_AnsiToOem("PREÇO UNITÁRIO R$") , 00, 00, RGB( 078, 078, 078 ) , RGB( 192, 192, 192 ), "Lucida Console" , 14, , , , , .f., .f., .f. ) }, { WVT_BLOCK_LABEL, 11, 42, 03, 50 } } )
AAdd( aPaint, { "Label7_subtotal", {|| Wvt_DrawLabel( 15, 42, HB_AnsiToOem("SUBTOTAL R$") , 00, 00, RGB( 078, 078, 078 ) , RGB( 192, 192, 192 ), "Lucida Console" , 16, , , , , .f., .f., .f. ) }, { WVT_BLOCK_LABEL, 15, 42, 03, 50 } } )
AAdd( aPaint, { "Gets" , {|| AEval( GetList, {| oGet | Wvt_DrawBoxGet( oGet:Row, oGet:Col, Len( Transform( oGet:VarGet(), oGet:Picture ) ) ) } ) }, NIL } )
ExecForm( aPaint )
2 ) após desenhar a TELA:
AAdd( aPaint1, { "Label_preco_unitario" , {|| wvg_Label( 12, 64, , "210.0000" , 00, 00, RGB( 255, 255, 255 ) , RGB( 192, 192, 192 ), "Arial" , 36, , , , , .f., .f., .f. ) } , { WVT_BLOCK_LABEL, 12, 64, 12, 64 } } ) // aqui é o preço unitário
AAdd( aPaint1, { "Label_descricao_produto" , {|| Wvg_Label( 01, 00, , "KIT EMBREAGEM" , 00, 00, RGB( 255, 255, 255 ) , RGB( 063, 096, 150 ), "verdana" , 50, , , , , .f., .f., .f. ) } , { WVT_BLOCK_LABEL, 01, 00, 01, 00 } } ) // aqui desenha o título do produto após a primeira desenhada de telas
AAdd( aPaint1, { "Label_preco_total" , {|| wvg_Label( 16, 66, , "0,00" , 00, 00, RGB( 255, 255, 255 ) , RGB( 192, 192, 192 ), "Arial" , 36, , , , , .f., .f., .f. ) } , { WVT_BLOCK_LABEL, 12, 50, 12, 50 } } ) // esta linha é do preço de venda que está zerado, apenas pra teste
ExecForm1(aPaint1)
3 ) função EXECFORM()
STATIC FUNCTION ExecForm( aPaint )
LOCAL cColor := SetColor()
LOCAL aPnt // sem estas 3 linhas não se consegue cancelar os gráficos da tela 12/3/18w
aPnt := WvtSetPaint( aPaint ) // sem estas 3 linhas não se consegue cancelar os gráficos da tela 12/3/18w
********
******** se não houver essas linhas, tudo que é feito fica por cima do que já existe. dependendo fica uma coisa horrível 26/2/18w
SetColor( "N/W" ) // cores básicas da tela
CLS
SetColor( "N/W,N/GR*,,,N/W*" ) // ativar cores após limpar a tela
******** se não houver essas linhas, tudo que é feito fica por cima do que já existe. dependendo fica uma coisa horrível 26/2/18w
********
CAD_PRODUTOS_WVG ()
WvtSetPaint( aPnt ) // esta função em conjunto a acima finaliza os gráficos da WVG 26/2/18w // se não for aplicada essas linhas, as imagens não desaparecem. // sem estas 3 linhas não se consegue cancelar os gráficos da tela 12/3/18w
RETURN NIL
4 ) função EXECFORM1()
STATIC FUNCTION ExecForm1( aPaint )
LOCAL cColor := SetColor() , aPnt
aPnt := WvtSetPaint( aPaint )
SetColor( "N/W" ) // cores básicas da tela
CLS
SetColor( "N/W,N/GR*,,,N/W*" ) // ativar cores após limpar a tela
GtSetupPalette() // funcionou só que preciso entender melhor 26/2/18w
SetColor( cColor ) // esta função em conjunto a abaixo finaliza os gráficos da WVG 26/2/18w //se não for aplicada essas linhas, as imagens não desaparecem.
WvtSetPaint( aPnt ) // esta função em conjunto a acima finaliza os gráficos da WVG 26/2/18w // se não for aplicada essas linhas, as imagens não desaparecem.
RETURN NIL
obs.:
1 - a função CAD_PRODUTOS_WVG() não postei, pois é a parte dos GETs;
2 - percebi que se não colocar os GETs antes de chamar a função EXECFORM() eles não aparecem;
3 - as funções EXECFORM() e EXECFORM1() são idênticas, pois, se eu não fizer duas chamadas não aparecem os gráficos, ou não aparecem os GETs. Bom mesmo é resumir/limpar o código pra ficar mais enxuto/profissional com apenas uma chamada à função EXECFORM().
É isso aí, por enquanto.
Vlw pessoal!
:*