Rotina p/ transportar produtos obsoletos

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

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

Rotina p/ transportar produtos obsoletos

Mensagem por Itamar M. Lins Jr. »

Olá!
Para achar e mover/apagar produtos com ano(s) sem movimentação -> Entradas no Estoque e QTD = ZERO!

Código: Selecionar todos

**********************************
FUNCTION TransportarProdutos(oBrw)
**********************************
*
*
LOCAL oFont,oDlg,lOk := .f.,cTitulo:='Transporte de produtos descontinuados'
LOCAL nAno := Year(Date())-2, cPhantom:="", nSoma :=  0, nRefresh := 0, nRec:=0, nTRec:=eq->(RecCount()), oBar
PREPARE FONT oFont NAME "MS Sans Serif" WIDTH 0 HEIGHT -16

INIT DIALOG oDlg CLIPPER TITLE cTitulo Font oFont AT 0,0 SIZE 340,180 STYLE DS_CENTER + WS_VISIBLE + WS_SYSMENU 

@ 020,035 say 'Ano base:' size 100,25 
@ 110,030 get oAno  VAR nAno  picture '9999' size 60,25 STYLE ES_RIGHT

@ 110,050 get oPhantom VAR cPhantom size 0,0

@ 020,090 ButtonEx oBtOff Caption 'Cancelar'   Size 110,30 BITMAP HBitmap():AddResource('EXIT'):handle TRANSPARENT ON CLICK {||hwg_EndDialog()}
@ 200,090 ButtonEx oBtOn  Caption 'Confirmar'  Size 110,30 BITMAP HBitmap():AddResource('RUN'):handle TRANSPARENT ON CLICK {||lOk:=.t.,hwg_EndDialog()}

oDlg:Activate()

if !lOk
  RETURN .T.
endif

oBar := HProgressBar():NewBox( "Processando, "+lTrim(str(nRec,9))+" De "+lTrim(Str(nTRec,9))+" Registro(s)",,,350,,nTRec)
eq->(dbGoTop())
DO WHILE eq->(!Eof())

   tp54e->(ordSetFocus(8)) //cod_mercad+DESCEND(dtos(DATA))
   tp54e->(OrdScope(0,eq->cod_mercad) )
   tp54e->(OrdScope(1,eq->cod_mercad) )
   tp54e->(DbGoTop())
   
   IF Empty(eq->quantidade)
      IF Year(tp54e->data) < nAno 
         nSoma++                
      ENDIF
   ENDIF
   
   eq->(dbSkip())
   
   IF ++nRefresh == 100
       oBar:Set("Movendo "+lTrim(Str(nRec+=nRefresh,9))+" De "+lTrim(Str(nTRec,9))+" Registro(s)",nRec)         
       hwg_processmessage()
       nRefresh :=  0
   ENDIF
   
ENDDO
oBar:Close()
hwg_msginfo("Total de produto(s) encontrado(s): " + AllTrim(Transform(nSoma,"9999,999,999")) + " Ano base: " + Str(nAno) )
RETURN .T.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Rotina p/ transportar produtos obsoletos

Mensagem por JoséQuintas »

Na prática não é isso, porque não está movimentando nada.
Mas entendi que é um exemplo que pode até ser comparado a uma tela de login.
E que pode ter 1001 utilidades.
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/
Responder