De fato, eu não tinha baixado o último tutorial, pois não sabia que ele tinha sido atualizado. Baixei agora.
Segue o código inteiro:
* -----------------------------------------------------------------
* Programa...: ASAPREV.PRG
* Finalidade.: Controlar o Menu de Op??es do Sistema da ASAPREV
* Autor......: Alexandre Sim?es
* Data.......: 09/2010 at? presente data
* -----------------------------------------------------------------
* Manuten??o atual por: Alexandre Sim?es (SET/2010 A PRESENTE DATA)
* C?digo migrado para Harbour 32Bit
* -----------------------------------------------------------------
* Harbour : 3.4 FORK
* Compilador : LLVM/CLANG 9.0 (32-bit)
* Lib Gr?fica: HwGui 2.17 (FORK)
* -----------------------------------------------------------------
THREAD STATIC ThisFormMain
#include "hwgui.ch"
#include "inkey.ch"
#include "dbinfo.ch"
#include "fileio.ch"
#include "hbclass.ch"
#include "hbver.ch"
#include "hbdyn.ch"
#include "hbthread.ch"
//#define WM_QUERYENDSESSION 0x0011
//#define WM_ENDSESSION 0x0016
//#define WM_ENDSESSION 22
#define NIIF_INFO 0x00000001
#define NIIF_WARNING 0x00000002
#define NIIF_ERROR 0x00000003
#define NIIF_USER 0x00000004
#define HB_SYMBOL_UNUSED( symbol ) ( symbol := ( symbol ) )
FUNCTION MAIN()
PUBLIC oDEMO
WITH OBJECT oDEMO := ClDEMO():New()
:DEMO()
END
ANNOUNCE Errors2
RETURN Nil
CREATE CLASS ClDEMO
PROTECTED :
EXPORTED :
VAR nWidth AS INTEGER INIT Nil PROPERTY
VAR nHeight AS INTEGER INIT Nil PROPERTY
VAR nOpcao AS INTEGER INIT 1 PROPERTY
VAR nTmpSistema AS INTEGER INIT 60 PROPERTY
VAR nLoop AS INTEGER INIT 1 PROPERTY
VAR nTimeOut AS INTEGER INIT -1 PROPERTY
VAR aOpcao AS ARRAY INIT {} PROPERTY
VAR aCompDateTime AS ARRAY INIT {} PROPERTY
VAR aEstacaoFoto AS ARRAY INIT {"PC2"} PROPERTY
VAR oIcon001 AS OBJECT INIT Nil PROPERTY
VAR oIcon002 AS OBJECT INIT Nil PROPERTY
VAR oIcon003 AS OBJECT INIT Nil PROPERTY
VAR oIcon004 AS OBJECT INIT Nil PROPERTY
VAR oIcon005 AS OBJECT INIT Nil PROPERTY
VAR oIcon006 AS OBJECT INIT Nil PROPERTY
VAR oIconCEP AS OBJECT INIT Nil PROPERTY
VAR oIconOpe AS OBJECT INIT Nil PROPERTY
VAR oOpcoes AS OBJECT INIT Nil PROPERTY
VAR ThisFormInit AS OBJECT INIT Nil PROPERTY
METHOD DEMO()
METHOD AppSetup()
METHOD SaidaSistema()
METHOD ChamaRotina( cRotina, lGui )
ENDCLASS
METHOD DEMO()
LOCAL oStatus1, oMenu1, oToolbar1, oToolbutton1, oToolbutton2, oToolbutton3, oToolbutton4 ;
, oToolbutton5
LOCAL oIcon, oFont1, oFont2, oFont3, oFont4
LOCAL nIconIndex
LOCAL nHandleFile, nWidthW, nHeightH, nWidth, nHeight, aListBox:={}, oElemento
PUBLIC oWin
PUBLIC cDirSis := Hb_DirBase() + [NETIO\SERVER5\DB\], ;
cDirTMP := Hb_GetEnv("TEMP") + Hb_Ps()
PUBLIC cVersao
PUBLIC Tecla
PUBLIC cUsuSis
PUBLIC cSenSis
PUBLIC cCor_0101
PUBLIC cCor_2424
PUBLIC iGiro := 1
PUBLIC cArqPrint
PUBLIC aTexto := {}, oEdit
PUBLIC nRed := Round(212 / 255, 2), ;
nGreen := Round(255 / 255, 2), ;
nBlue := Round(255 / 255, 2)
PUBLIC lPaint := .F.
PUBLIC aAzul := {0, 0, Round(255/255, 2)}
PUBLIC aVermelho := {Round(255/255, 2), 0, 0}
PUBLIC aVerde := {0, Round(255/255, 2), 0}
PUBLIC aPreto := {0, 0, 0}
PUBLIC AzulHTML := '<span style="color:#0000FF">'
PUBLIC VermelhoHTML := '<span style="color:#FF0000">'
PUBLIC QuebraHTML := "<br>"
PUBLIC cAlineL := '<td align="left">'
PUBLIC cAlineC := '<td align="center">'
PUBLIC cAlineR := '<td align="right">'
PUBLIC oThisForm
PUBLIC cEstacaoCobranca := Hb_GetEnv( "COMPUTERNAME" )
PUBLIC cMens_, ;
cCor__, ;
nLin__, ;
nCol__
PUBLIC xMedia
PUBLIC oAchoice, ;
oEditor, ;
oMemo, ;
oBrowse, ;
oGuiProc, ;
oClRede, ;
oClShow, ;
oClJustificaTexto
PUBLIC pWindowGTI
PUBLIC N_BLUE := 16711680
PUBLIC N_DARKBLUE := 10027008
PUBLIC N_WHITE := 16777215
PUBLIC N_CYAN := 16776960
PUBLIC N_BLACK := 0
PUBLIC N_RED := 255
PUBLIC N_GREEN := 32768
PUBLIC N_GRAY := 8421504
PUBLIC N_YELLOW := 65535
PUBLIC N_CLEANBLUE := 16771276
PUBLIC N_CLEANGRAY := 12632256
PUBLIC N_BLUE001 := 16777172
*
PRIVATE cUserName := Hb_GetEnv("USERNAME")
PRIVATE aPrn := Win_PrinterList()
PRIVATE oSayMsg0
PRIVATE oSayMsg1
PRIVATE oSayMsg2
PRIVATE oSayMsg3
PRIVATE oBar
PRIVATE nTempoInicio
::AppSetup()
nIconIndex := NIIF_USER
hwg_SetColorInFocus( .T., 16711680, 8388607 )
hwg_SetTooltipBalloon( .T. )
oFont1 := HFont():Add( "Georgia", 15, -30, , 0 )
oFont2 := HFont():Add( "Tahoma", 8, -20, , 0 )
oFont3 := HFont():Add( "Tahoma", 6, -20, , 0 )
oFont4 := HFont():Add( "Tahoma", 6 )
oIcon := HIcon():AddResource("ICON_A", 24, 24)
nWidth := hwg_GetDesktopWidth()
nHeight := hwg_GetDesktopHeight()
::nWidth := hwg_GetDesktopWidth()
::nHeight := hwg_GetDesktopHeight()
lErro := .F.
cCor_0101 := "B/W*"
cCor_0202 := "W+/B*"
cCor_0322 := "W+/B,B/GR*,,,N/W"
cCor_2424 := "W+/B*"
::aOpcao := {}
INIT WINDOW oWin ;
MAIN ;
TITLE "Agenda" ;
AT 0, 0 ;
SIZE hwg_GetDesktopWidth() , hwg_GetDesktopHeight() ;
FONT HFont():Add( 'Tahoma', 0 , -13, 400 ) ;
ICON oIcon ;
STYLE WS_CAPTION + WS_SYSMENU + WS_MAXIMIZEBOX ;
ON INIT {|this| hwg_Keyb_Event( VK_UP ), ;
_CONTROLPOS_C_SETSTYLE_( oWin:handle, WS_SIZEBOX, .T. ) ;
} ;
ON EXIT {|this| ::SaidaSistema() }
ThisFormMain := oWin
@ 0,0 BITMAP Bitmap1 ;
SHOW "\lixo\WALLPAPER.JPG" ;
OF ThisFormMain ;
STRETCH 0 ;
SIZE nWidth, nHeight - 65
public vers :="17/06/20"
sh="S"
snh=654
*#require "rddsql"
*#require "sddodbc"
*#include "dbinfo.ch"
*#include "hbcompat.ch"
*#include "inkey.ch"
*#include "hbgtinfo.ch"
* #define RDDI_CONNECT 1001
* #define RDDI_DISCONNECT 1002
* #define RDDI_EXECUTE 1003
REQUEST SQLMIX, SDDODBC, DBFNTX
* ANNOUNCE RDDSYS
pargerais()
save scre to tl0
MENU OF ThisFormMain
MENUITEM 'Sair do Sistema' ID 32129 ACTION {|| ::SaidaSistema() }
MENUITEM 'Agenda financeira' ID 32001 ACTION {|| ::ChamaRotina( "CONTAGEN34()", .F. ) }
* MENUITEM 'Contas bancrias' ID 32002 ACTION {|| ::ChamaRotina( "BANCOS34()", .F. ) }
MENUITEM 'Compromissos' ID 32003 ACTION {|| ::ChamaRotina( "AGCOM34()", .F. ) }
* MENUITEM '&Graph1' ID 32004 ACTION Graph1()
MENUITEM 'Cotacoes' ID 32005 ACTION Cotacoes34()
MENUITEM '&Graph2' ID 32006 ACTION Graph2()
ENDMENU
ACTIVATE WINDOW oWin MAXIMIZED CENTER ON ACTIVATE {|| .T. }
RETURN Nil
METHOD SaidaSistema()
LOCAL lSair := .F.
hwg_ExitProcess()
RETURN lSair
Static Function Graph1
Local oModDlg, oFont := HFont():Add( "MS Sans Serif",0,-13 ), oGraph
Local i, aGraph[1]
aGraph[1] := {}
* FOR i := -40 TO 40
* Aadd( aGraph[1], { i, hwg_cos(i/10) } )
Aadd( aGraph[1], { day(date()-6), 5 } )
Aadd( aGraph[1], { day(date()-5), 6 } )
Aadd( aGraph[1], { day(date()-4), 7 } )
Aadd( aGraph[1], { day(date()-3), 8 } )
Aadd( aGraph[1], { day(date()-2), 9 } )
Aadd( aGraph[1], { day(date()-1), 10 } )
Aadd( aGraph[1], { day(date()), 11 } )
* NEXT
INIT DIALOG oModDlg CLIPPER TITLE "Gr?fico" ;
AT 410,30 SIZE 300,300 ;
FONT oFont
@ 50,30 GRAPH oGraph DATA aGraph SIZE 200,100 COLOR 65280
// oGraph:oPen := HPen():Add( PS_SOLID,2,oGraph:tcolor )
@ 90,250 BUTTON "Close" ;
SIZE 120,30 ;
ON CLICK {||EndDialog()}
ACTIVATE DIALOG oModDlg
Return Nil
Function Graph2(cod)
Local oModDlg, oFont := HFont():Add( "MS Sans Serif",0,-13 ), oGraph
Local i, aGraph[1]
local cProc, nCotMax, dDtMax, nCotMin,dDtMin, nCotMax30d, dDtMax30d, nCotMin30d, dDtMin30d, nCotAgora, dDtAgora
private conexao
IF ADOconecta( nProvAcoes, 5 )
cProc=conexao:execute("select dtcotacao,cotacao from acoes where codigo='"+cod+"' AND cotacao<9999 AND compvenda=0 order by cotacao DESC limit 1")
nCotMax=cProc:Fields("cotacao"):Value
dDtMax=cProc:Fields("dtcotacao"):Value
cProc=conexao:execute("select dtcotacao,cotacao from acoes where codigo='"+cod+"' AND cotacao>0 AND compvenda=0 order by cotacao limit 1")
nCotMin=cProc:Fields("cotacao"):Value
dDtMin=cProc:Fields("dtcotacao"):Value
cProc=conexao:execute("select dtcotacao,cotacao from acoes where codigo='"+cod+"' AND cotacao<9999 AND dtcotacao>'"+dtsql(date()-30)+"' AND compvenda=0 order by cotacao DESC limit 1")
nCotMax30d=cProc:Fields("cotacao"):Value
dDtMax30d=cProc:Fields("dtcotacao"):Value
cProc=conexao:execute("select dtcotacao,cotacao from acoes where codigo='"+cod+"' AND dtcotacao>'"+dtsql(date()-30)+"' AND cotacao>0 AND compvenda=0 order by cotacao limit 1")
nCotMin30d=cProc:Fields("cotacao"):Value
dDtMin30d=cProc:Fields("dtcotacao"):Value
cProc=conexao:execute("select dtcotacao,cotacao from acoes where codigo='"+cod+"' AND dtcotacao>'"+dtsql(date()-30)+"' AND cotacao>0 AND cotacao<9999 AND compvenda=0 order by dtcotacao DESC limit 1")
nCotAgora=cProc:Fields("cotacao"):Value
dDtAgora=cProc:Fields("dtcotacao"):Value
cProc:Close()
conexao:close()
Endif
aGraph[1] := {}
Aadd( aGraph[1], { day(dDtMin), nCotMin } )
Aadd( aGraph[1], { day(dDtMax), nCotMax } )
Aadd( aGraph[1], { day(dDtMin30d), nCotMin30d } )
Aadd( aGraph[1], { day(dDtMax30d), nCotMax30d } )
Aadd( aGraph[1], { day(dDtAgora), nCotAgora } )
INIT DIALOG oModDlg CLIPPER TITLE "Graph" ;
AT 38,5 SIZE 1310,800 ;
FONT oFont
@ 9,15 say cod size 500,45
@ 1087,384 say alltrim(str(nCotMin)) size 100,45
@ 1127,384 say alltrim(str(nCotMax)) size 100,45
@ 1166,384 say alltrim(str(nCotMin30d)) size 100,45
@ 1207,384 say alltrim(str(nCotMax30d)) size 100,45
@ 1250,384 say alltrim(str(nCotAgora)) size 100,45
@ 1090,647 say substr(dtoc(dDtMin),1,2) size 100,45
@ 1090,666 say substr(dtoc(dDtMin),4,2) size 100,45
@ 1090,684 say substr(dtoc(dDtMin),9,2) size 100,45
@ 1130,647 say substr(dtoc(dDtMax),1,2) size 100,45
@ 1130,666 say substr(dtoc(dDtMax),4,2) size 100,45
@ 1130,684 say substr(dtoc(dDtMax),9,2) size 100,45
@ 1170,647 say substr(dtoc(dDtMin30d),1,2) size 100,45
@ 1170,666 say substr(dtoc(dDtMin30d),4,2) size 100,45
@ 1170,684 say substr(dtoc(dDtMin30d),9,2) size 100,45
@ 1212,647 say substr(dtoc(dDtMax30d),1,2) size 100,45
@ 1212,666 say substr(dtoc(dDtMax30d),4,2) size 100,45
@ 1212,684 say substr(dtoc(dDtMax30d),9,2) size 100,45
@ 1255,647 say substr(dtoc(dDtAgora),1,2) size 100,45
@ 1255,666 say substr(dtoc(dDtAgora),4,2) size 100,45
@ 1255,684 say substr(dtoc(dDtAgora),9,2) size 100,45
@ 1070,410 GRAPH oGraph DATA aGraph SIZE 230,230 COLOR 65280
oGraph:nType := 2
IF ADOconecta( nProvAcoes, 5 )
cProc=conexao:execute("select dtcotacao,cotacao,quemcad,compvenda,conta from acoes where codigo='"+cod+"' AND status='M' order by dtcotacao")
if cProc:recordcount()>0
@ 22,5 say "Ordens marcadas:" size 500,45
a=34
do while !cProc:Eof()
@ a,5 say cProc:Fields("dtcotacao"):Value size 500,45
@ a+10,5 say cProc:Fields("quemcad"):Value size 500,45
@ a+20,5 say cProc:Fields("compvenda"):Value size 500,45
@ a+30,5 say cProc:Fields("cotacao"):Value size 500,45
@ a+40,5 say cProc:Fields("conta"):Value size 500,45
a=a+50
cProc:MoveNext()
enddo
endif
endif
* @ 130,250 BUTTON "Close" ;
* SIZE 130,30 ;
* ON CLICK {||EndDialog()}
ACTIVATE DIALOG oModDlg
Return Nil
Function velhaCotacoes
local opcotvar
private oRs, conexao
private dti := date()
private dtf := date()
GetDt()
/*
if seconds()<30000
dt=date()-1
else
dt=date()
endif
dtf=date()
*/
opcotvar=2
*?procline(0)
*?"Conferir:"
*inkey(11)
* @ 11,29 say "Data inicial:"get dt
* @ 12,29 say "Data final:"get dtf
* read
*?procline(0)
*inkey(11)
IF ADOconecta( nProvAcoes, 5 )
oRs=conexao:execute("SELECT codigo,dtcotacao,hrcotacao,cotacao,quemcad,dtvisto,hrvisto,dtver from acoes WHERE dtcotacao>='"+dtsql(dt-3)+"' AND dtcotacao<'"+dtsql(dtf+1)+"' AND compvenda=0"+if(opcotvar=2," AND quemcad like 'var-%'","")+if(opcotvar=3," ORDER by dtvisto,hrvisto"," ORDER by dtcotacao,hrcotacao"))
browseado()
oRs:Close()
conexao:close()
Endif
Return .t.
function enddialog
return
METHOD ChamaRotina( cRotina, lGui )
THREAD STATIC lInicio := .F., lContinua := .T., oErro
Hb_Default(@lGui, .F.)
If ! lGui
If ! lInicio
lInicio := .T.
nThread := Hb_ThreadStart( Hb_BitOr( HB_THREAD_INHERIT_PUBLIC, HB_THREAD_INHERIT_PRIVATE, HB_THREAD_INHERIT_MEMVARS ), {|| &cRotina.} )
// DO WHILE .T.
// IF Hb_ThreadWait( nThread, 0.1, .T. ) == 1
// Exit
// ENDIF
// hwg_DoEvents()
// ENDDO
//Eval( {|| &cRotina. } )
If pWindowGTI != Nil
wapi_DestroyWindow( pWindowGTI )
Endif
lInicio := .F.
Endif
Endif
RETURN Nil
/*
function logerro
return
function sendmessage
return
*function enddialog
*return
*/
function cotacoes34
oJanela := Janela():New():IniciaJanelaRotina( "Cotacoes" )
cotacoes()
return .t.
function agcom34
oJanela := Janela():New():IniciaJanelaRotina( "Compromissos" )
agcom()
?procline(0)
inkey(11)
return .t.
function bancos34
oJanela := Janela():New():IniciaJanelaRotina( "Bancos" )
bancos()
return .t.
function contagen34
oJanela := Janela():New():IniciaJanelaRotina( "Agenda financeira" )
contagen()
return .t.
function envmailkativ(dstmail,arqmand,contmail,arqanx,inc)
local ret :="S"
*return .f.
*if "RODRIGO"$upper(netname()) .or. "CAMYLLA"$upper(netname()) .or. "INACIO"$upper(netname()) .or. "VANESSA"$upper(netname()) .or. "LUIZ"$upper(netname()) .or. "MVAZ"$upper(netname())
* return .f.
*else
*?"Entrou no envmailkativ; ver se vai dar erro:"
*?netname()
*inkey(11)
*endif
bError := ErrorBlock( {|e| Break(e) } )
begin sequence
if inc=4 .and. us="I"
?dstmail
?arqmand
?contmail
?arqanx
?procline(0)
?"Ver se vai mandar pelo envmailkativ"
inkey(5)
endif
* if hb_sendmail("smtp"+if(upper(netname())="LUIZ" .or. "MVAZ"$upper(netname()),"i","")+".kinghost.net",587,"programa@inacio.kinghost.net",{dstmail},,,memoread(arqmand)+ansi(contmail),assuntomail,{arqanx},"programa@inacio.kinghost.net","piuma2018","pop.kinghost.net",,,.T.,.t.,,,)=.f.
if tip_mailsend("smtp"+if(upper(netname())="LUIZ" .or. "MVAZ"$upper(netname()),"i","")+".kinghost.net",587,"programa@inacio.kinghost.net",{dstmail},,,memoread(arqmand)+ansi(contmail),assuntomail,{arqanx},"programa@inacio.kinghost.net","piuma2018","pop.kinghost.net",,,.T.,.t.,,,)=.f.
if inc=4 .and. us="I"
?dstmail
?arqmand
?contmail
?arqanx
?procline(0)
?"N?o mandou pelo envmailkativ"
inkey(5)
endif
*?"Retornou falso"
*inkey(11)
*inkey(11)
ret="F"
if us="I" .and. inc#4
@ maxrow()-1,1 say "Aguarde... (mandmail n?o enviou pelo programa@inacio.kinghost.net)"
endif
*else
*?"Enviou"
*inkey(11)
*inkey(11)
endif
recover using e
cMessage := ErrorMessage(e)
logerro()
mandmail1("error.log","Erro na fun??o envmailkativ contornado com o recover do begin sequence")
ret="F"
endsequence
ErrorBlock( bError )
if ret="F"
return .f.
endif
return .t.
function envmailking(dstmail,arqmand,contmail,arqanx,inc)
local ret :="S"
*if "RODRIGO"$upper(netname()) .or. "CAMYLLA"$upper(netname()) .or. "VANESSA"$upper(netname()) .or. "LUIZ"$upper(netname()) .or. "MVAZ"$upper(netname())
* return .f.
*else
*if us="I"
*?upper(netname())
*inkey(1)
*endif
*endif
bError := ErrorBlock( {|e| Break(e) } )
begin sequence
if inc=4 .and. us="I"
?dstmail
?arqmand
?contmail
?arqanx
?procline(0)
?"Ver se vai mandar pelo envmailking"
inkey(5)
endif
if tip_mailsend("smtp"+if(netname()="INACIO" .or. netname()="inaciocarvalho","i","")+".kinghost.net",587,"programa@inaciocarvalho.com.br",{dstmail},,,memoread(arqmand)+ansi(contmail),assuntomail,if(!empty({arqanx}),arqanx,""),"programa@inaciocarvalho.com.br","Rfvv2015","pop.kinghost.net",,,.T.,.t.,,,)=.f.
* if hb_sendmail("smtp"+if(netname()="INACIO" .or. netname()="inaciocarvalho","i","")+".kinghost.net",587,"programa@inaciocarvalho.com.br",{dstmail},,,memoread(arqmand)+ansi(contmail),assuntomail,if(!empty({arqanx}),arqanx,""),"programa@inaciocarvalho.com.br","Rfvv2015","pop.kinghost.net",,,.T.,.t.,,,)=.f.
if inc=4 .and. us="I"
?dstmail
?arqmand
?contmail
?arqanx
?procline(0)
?"N?o mandou pelo envmailking"
inkey(5)
endif
ret="F"
if us="I" //.and. inc#4
@ maxrow()-1,1 say "Aguarde... (mandmail n?o enviou pelo programa@inaciocarvalho.com.br)"
endif
endif
recover using e
cMessage := ErrorMessage(e)
logerro()
mandmail1("error.log","Erro na fun??o envmailking contornado com o recover do begin sequence")
ret="F"
endsequence
ErrorBlock( bError )
if ret="F"
return .f.
endif
if us="I"
?procline(0)
inkey(11)
endif
return .t.
METHOD AppSetup()
PUBLIC cEstacaoCobranca := Hb_GetEnv( "COMPUTERNAME" )
PUBLIC cTaskMens1 := Hb_Eol() + ;
Hb_Eol() + ;
Hb_Eol() + ;
Hb_Eol() + ;
Hb_Eol() + ;
Hb_Version() + ;
Hb_Eol() + ;
Hb_Eol() + ;
Hb_Compiler()
PUBLIC cTaskMens2 := "Constru?do por: Alexandre Sim?es" + ;
Hb_Eol() + ;
Hb_Eol() + ;
"Email: asimoesluz@gmail.com"
* Verificar portas no windows 7: netstat -an
PUBLIC hWnd, ;
oSayMsg, ;
oDlgHabla, ;
cTituloJanela, ;
oTimer, ;
cPrinter, ;
nJanelaAsaPrev, ;
cBuild, ;
OldHandler
//ANNOUNCE hwg_ErrSys
//ErrorSistema()
*
cPrinter := Win_PrinterGetDefault()
REQUEST DBFCDX
REQUEST SIXCDX
REQUEST HB_MEMIO
RddSetDefault('DBFCDX')
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
REQUEST HB_CODEPAGE_PTISO
Hb_LangSelect("PT")
Hb_SetCodePage( "PTISO" )
Hb_CdpSelect("PTISO")
Set( _SET_EVENTMASK, INKEY_ALL - INKEY_MOVE )
SET TYPEAHEAD TO 0
SET INTENSITY ON
SET DELETED ON
SET DATE ANSI
SET DATE FORMAT "DD/MM/YY"
SET DELIMITERS TO
SET EXCLUSIVE OFF
SET EPOCH TO 1965
SET CENTURY ON
SET OPTIMIZE ON
SET AUTOPEN OFF
SET DBFLOCKSCHEME TO DB_DBFLOCK_CLIPPER
Set( _SET_FORCEOPT, .T. )
RETURN Self
#pragma BEGINDUMP
#include <windows.h>
#include "hbapi.h"
HB_FUNC( HB_GTI_DESTROY_WINDOW )
{
DestroyWindow( (HWND) hb_parnl( 1 ) );
}
#pragma ENDDUMP
#pragma BEGINDUMP
#if defined ( __MINGW32__ )
#define _WIN32_WINNT 0x0500
#endif
#include <windows.h>
#include "hbapi.h"
HB_FUNC( SETTRANSPARENT )
{
typedef BOOL (__stdcall *PFN_SETLAYEREDWINDOWATTRIBUTES) (HWND, COLORREF, BYTE, DWORD);
PFN_SETLAYEREDWINDOWATTRIBUTES pfnSetLayeredWindowAttributes = NULL;
HINSTANCE hLib = LoadLibrary("user32.dll");
if (hLib != NULL)
{
pfnSetLayeredWindowAttributes = (PFN_SETLAYEREDWINDOWATTRIBUTES) GetProcAddress(hLib, "SetLayeredWindowAttributes");
}
if (pfnSetLayeredWindowAttributes)
{
SetWindowLong((HWND) hb_parnl (1), GWL_EXSTYLE, GetWindowLong((HWND) hb_parnl (1), GWL_EXSTYLE) | WS_EX_LAYERED);
pfnSetLayeredWindowAttributes((HWND) hb_parnl (1), 0, hb_parni (2), LWA_ALPHA);
}
if (!hLib)
{
FreeLibrary(hLib);
}
}
#pragma ENDDUMP
Function GetDt()
Local oDlg, oFont := HFont():Add( "MS Sans Serif",0,-13 ), oTimer
*Local e1 := Date()-1
*Local e2 := Date()
INIT DIALOG oDlg CLIPPER NOEXIT TITLE "Datas inicial e final" ;
AT 210,10 SIZE 300,320 FONT oFont
SET KEY FSHIFT,VK_F3 TO hwg_Msginfo("Shift-F3")
SET KEY FCONTROL,VK_F3 TO hwg_Msginfo("Ctrl-F3")
SET KEY 0,VK_F3 TO hwg_Msginfo("F3")
SET KEY 0,VK_RETURN TO hwg_Msginfo("Return")
@ 20,10 SAY "Datas:" SIZE 260, 22
@ 20,35 GET dti SIZE 260, 26
@ 20,95 GET dtf SIZE 260, 26
@ 20,250 BUTTON "Ok" SIZE 100, 32 ON CLICK {||oDlg:lResult:=.T.,hwg_EndDialog()}
@ 180,250 BUTTON "Cancel" ID IDCANCEL SIZE 100, 32
ACTIVATE DIALOG oDlg
* IF oDlg:lResult
* hwg_Msginfo( Dtoc(e1) + chr(10) + chr(13) + ;
* Dtoc(e2) + chr(10) + chr(13) ;
* ,"Results:" )
* ENDIF
Return Nil
Function Cotacoes
local opcotvar
Local oDlg, oFont := HFont():Add( "MS Sans Serif",0,-13 ), oTimer
private oRs, conexao
private dti := date()
private dtf := date()
INIT DIALOG oDlg CLIPPER NOEXIT TITLE "Datas inicial e final" ;
AT 210,10 SIZE 300,320 FONT oFont
SET KEY FSHIFT,VK_F3 TO hwg_Msginfo("Shift-F3")
SET KEY FCONTROL,VK_F3 TO hwg_Msginfo("Ctrl-F3")
SET KEY 0,VK_F3 TO hwg_Msginfo("F3")
SET KEY 0,VK_RETURN TO hwg_Msginfo("Return")
@ 20,10 SAY "Datas:" SIZE 260, 22
@ 20,35 GET dti SIZE 260, 26
@ 20,95 GET dtf SIZE 260, 26
@ 20,250 BUTTON "Ok" SIZE 100, 32 ON CLICK {||oDlg:lResult:=.T.,hwg_EndDialog()}
@ 180,250 BUTTON "Cancel" ID IDCANCEL SIZE 100, 32
ACTIVATE DIALOG oDlg
opcotvar=2
IF ADOconecta( nProvAcoes, 5 )
oRs=conexao:execute("SELECT codigo,dtcotacao,hrcotacao,cotacao,quemcad,dtvisto,hrvisto,dtver from acoes WHERE dtcotacao>='"+dtsql(dti)+"' AND dtcotacao<'"+dtsql(dtf)+"' AND compvenda=0"+if(opcotvar=2," AND quemcad like 'var-%'","")+if(opcotvar=3," ORDER by dtvisto,hrvisto"," ORDER by dtcotacao,hrcotacao"))
if oRs:recordcount()=0
@ 30,10 SAY "Não há cotações cadastradas neste período" SIZE 260, 22
oRs:Close()
conexao:close()
endif
browseado()
oRs:Close()
conexao:close()
Endif
Return .t.