Clipper On Line • Ver Tópico - Tela de PDV
Mudar para estilo Clássico
Projeto Harbour - Compilador de código aberto compatível com o Clipper.
Postar uma resposta

Tela de PDV

22 Mar 2018 21:36

JoséQuintas escreveu:A saída seria trocar esse elemento do array por um novo, com o novo texto.
sim... exatamente é o que pensei e já estava tentando fazer há muito tempo.
Mas, não estou conseguindo juntar o quebra cabeças pra alterar apenas o elemento específico da wvg_label()

Tela de PDV

23 Mar 2018 10:56

veja aí QUINTAS a tela de PDV com uso do CONSOLE com GTWVG:
pdvwvg.png
pdv - wvg

os seguintes códigos inclusos:
1 ) desenhar a tela pela primeira vez:
Código:
   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:
Código:
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()
Código:
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()
Código:
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!
:*

Tela de PDV

23 Mar 2018 11:00

ah! mais observações:
1 - se não colocar o CLS - mesmo depois da tela pronta, os gráficos da EXECFORM1() não são desenhados
2 - É como eu sempre disse e volto a dizer. As libs free não possuem manuais, apenas exemplos. No caso da GTWVG - até mesmo o QUINTAS, já disse por diversas vezes, que não tutoriais, apenas pouquíssimos exemplos de uso do WVT, mas, dos WVG, quase nada. Temos que ficar "chutando" e "atirando pedras em avião" por não saber o "caminho por onde andar" e o "porto pra ancorar".

Tela de PDV

26 Abr 2018 22:31

https://prnt.sc/jamrtj
https://prnt.sc/jamrtj
olá pessoal,
esse PDV eu fiz em 2001 com clipper 5,2 (100%) sem usar lib de terceiro, ele estava em produção ate 2007, eu tinha cliente com ele com 8PDV on line
como vi esse tópico resolvi postar, com poucos ajuste podera implementar NFC-e com ACBR, se alguem tiver interesse e for utilizar posso enviar os fonte sem custo.

skype: soft.tres
e-mail: soft-tres.com.br

Tela de PDV

26 Abr 2018 22:49

evaldo escreveu:esse PDV eu fiz em 2001 com clipper 5,2 (100%) sem usar lib de terceiro


Eu diria que é impossível.
Visivelmente usa recursos gráficos e o Clipper 5.2 não tinha isso.

Tela de PDV

26 Abr 2018 22:55

microvolution escreveu:veja aí QUINTAS a tela de PDV com uso do CONSOLE com GTWVG:


Estranhei esta parte. Não deveria ser função?
Pelo que imagino é pra bloquear uma parte da tela.

Código:
{ WVT_BLOCK_BOX, 03, 41, 05, 79 }

Tela de PDV

26 Abr 2018 23:48

https://prnt.sc/janckf

corrigindo a versao do COMPILADOR 5.3B rev. 338 1996

Tela de PDV

14 Ago 2018 20:04

PDVVENDAS.jpg
DESENVOLVENDO rotina de PDV

Tela de PDV

14 Ago 2018 20:07

PDVABERTURA.jpg
ABERTURA DO CAIXA

Tela de PDV

14 Ago 2018 20:08

PDVSUPRIMENTO.jpg
TELA DE SUPRIMENTO

Tela de PDV

14 Ago 2018 20:13

PDVFECHAMENTO.jpg

Tela de PDV

14 Ago 2018 20:13

PDVALIVIO.jpg

Tela de PDV

14 Ago 2018 20:14

PDVCANCELA.jpg

Tela de PDV

14 Ago 2018 20:15

PDVPAGAMENTO.jpg

Tela de PDV

14 Ago 2018 20:19

AMIGOS gostaria de criticas e sugestões sobre as telas do me PDV.

algumas duvidas surgiram tais como:

Se o Operador do Caixa sair - tenho de travar o caixa com senha ?

Se no Fechamento do caixa tenho de colocar os valores supridos e aliviados do caixa?

A minha ideia de ITEM vai ser acumulando no mesmo produto itens iguais , o que acham disso ?

:D :D :D :D :D
Postar uma resposta