Código: Selecionar todos
/*
TITULO : SISTEMA DE GESTÇO DE COMERCIO
DATA : 16/09/2020
PROGRAMA : lembrete.PRG
COMENTARIO : UTILITARIOS ( LEMBRETE )
*/
#include "hwgui.ch"
#include "hbclass.ch"
#include "cores.CH"
CREATE CLASS LembreteClass
VAR oServer
METHOD New( ParamServer ) INLINE ::oServer := ParamServer, Self
METHOD LEMBRETE( )
PROTECTED:
VAR cRichedit1 INIT ""
METHOD LEMBRETE_onDlgInit( oDlg )
METHOD LEMBRETE_onKeyDown( oBrowse1, nKeyPress, oDlg, cProgressKey )
METHOD LEMBRETE_EXCLUI( oDlg )
METHOD LEMBRETE_MANUTENCAO( cAcao, cLembrete_Id )
METHOD LEMBRETE_CARREGA( cConsulta )
METHOD LEMBRETE_SALVA( cAcao, cLembrete_Id )
ENDCLASS
*********************************************************************************************************************************************************
METHOD LEMBRETE( ) CLASS LembreteClass
*********************************************************************************************************************************************************
LOCAL oDlg ;
, oLabel4;
, oBrowse1 ;
, oColuna;
, cProgressKey:="";
, cConsulta:="";
, oPanel1;
, oOwnerbutton1, oOwnerbutton2, oOwnerbutton3, oOwnerbutton4;
, oStatus1;
INIT DIALOG oDlg TITLE "NOTAS" ;
ICON HIcon():Addresource('SGC_ICON') ;
AT 0, 0 SIZE 1024,590 CLIPPER NOEXIT ;
ON INIT {|| oBrowse1:aArray := ::LEMBRETE_CARREGA( cConsulta ), oBrowse1:REFRESH(), ::LEMBRETE_onDlgInit( oDlg ) };
BACKCOLOR 16777215
@ 0,0 PANEL oPanel1 SIZE 1024,80
oPanel1:oStyle := PainelGradienteColor
oPanel1:Anchor := 130
@ 2,83 SAY oLabel4 CAPTION "" SIZE 1020,30 ;
STYLE WS_BORDER + SS_CENTER;
COLOR 16777215 BACKCOLOR 0 ;
FONT HFont():Add( '',0,-19,400,,,)
oLabel4:Anchor:=130
@ 2,113 BROWSE oBrowse1 ARRAY OF oDlg SIZE 1020,456 STYLE WS_BORDER + WS_VSCROLL +WS_HSCROLL ;
ON SIZE ANCHOR_TOPABS + ANCHOR_LEFTABS + ANCHOR_RIGHTABS + ANCHOR_BOTTOMABS ;
ON KEYDOWN {|oBrowse1,nKeyPress| ::LEMBRETE_onKeyDown( oBrowse1, nKeyPress, oDlg, @cProgressKey ) }
oBrowse1:nHeadRows := 2
oBrowse1:oStyleHead := BrowseStyleHead
oBrowse1:headColor := BrowseheadColor
oBrowse1:oFont := HFont():Add( '',0,-16,700,,,)
// oBrowse1:freeze := 1
oBrowse1:aArray := {}
oBrowse1:AddColumn( HColumn():New('Notas', hwg_ColumnArBlock() ,'C',124, 0 ,.F.,1,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Operador/Computador DATA/HORA', hwg_ColumnArBlock() ,'C',60, 0 ,.F.,,,,,,,,))
FOR EACH oColuna IN oBrowse1:aColumns
oColuna:bColorBlock := {|| BrowseBarColorPrimary }
NEXT
@ 5,9 OWNERBUTTON oOwnerbutton1 OF oPanel1 SIZE 73,63;
ON CLICK {|| ::LEMBRETE_MANUTENCAO( "INCLUIR", ), oBrowse1:aArray := ::LEMBRETE_CARREGA( cConsulta ), ::LEMBRETE_onDlgInit( oDlg ), obrowse1:REFRESH()};
FLAT ;
TEXT 'Inclui' COLOR 16777215 ;
COORDINATES 0, 40, 0, 0 ;
BITMAP HBitmap():Addresource('add-file-256-30') ;
COORDINATES 0, 5, 0, 0 ;
TOOLTIP 'Incluir nova Nota'
oOwnerbutton1:aStyle := OwnerbuttonStyle
@ 81,9 OWNERBUTTON oOwnerbutton2 OF oPanel1 SIZE 73,63;
ON CLICK {|| ::LEMBRETE_MANUTENCAO( "ALTERAR" ,LTRIM(str(oDlg:oBrowse1:aArray[ oDlg:oBrowse1:nCurrent, 3])) ), oBrowse1:aArray := ::LEMBRETE_CARREGA( cConsulta ), obrowse1:REFRESH()};
FLAT ;
TEXT 'Edita' COLOR 16777215 ;
COORDINATES 0, 40, 0, 0 ;
BITMAP HBitmap():Addresource('edit-property-256-30') ;
COORDINATES 0, 5, 0, 0 ;
TOOLTIP 'Editar Nota'
oOwnerbutton2:aStyle := OwnerbuttonStyle
@ 157,9 OWNERBUTTON oOwnerbutton3 OF oPanel1 SIZE 73,63;
ON CLICK {|| ::LEMBRETE_EXCLUI( oDlg ), oBrowse1:aArray := ::LEMBRETE_CARREGA( cConsulta ), ::LEMBRETE_onDlgInit( oDlg ), obrowse1:REFRESH() };
FLAT ;
TEXT 'Exclui' COLOR 16777215 ;
COORDINATES 0, 40, 0, 0 ;
BITMAP HBitmap():Addresource('delete-256-30') ;
COORDINATES 0, 5, 0, 0 ;
TOOLTIP 'Excluir Nota'
oOwnerbutton3:aStyle := OwnerbuttonStyle
@ 233,9 OWNERBUTTON oOwnerbutton4 OF oPanel1 SIZE 73,63 ;
ON CLICK {|| oDlg:Close() };
FLAT ;
TEXT 'Sair' COLOR 16777215 ;
COORDINATES 0, 40, 0, 0 ;
BITMAP HBitmap():Addresource('door-8-256-30') ;
COORDINATES 0, 5, 0, 0 ;
TOOLTIP 'Sair da Rotina'
oOwnerbutton4:aStyle := OwnerbuttonStyle
ADD STATUS oStatus1 TO oDlg PARTS 200,800
ACTIVATE DIALOG oDlg CENTER
RETURN NIL
*********************************************************************************************************************************************************
METHOD LEMBRETE_CARREGA( cConsulta ) CLASS LembreteClass
*********************************************************************************************************************************************************
LOCAL aResult :={};
, oQuery;
, cQuery
cQuery := "SELECT "
cQuery += "lembrete.DESCRICAO, "
cQuery += "lembrete.QUEM_BLOQ, "
cQuery += "lembrete.LEMBRETE_ID "
cQuery += "FROM lembrete "
cQuery += cConsulta
cQuery += " ORDER BY lembrete.DESCRICAO "
oQuery := CONECCOESCLASS():ExecuteSQL(::oServer, cQuery)
if ! oQuery:Eof()
aResult := InverseArray( oQuery:GetRows() )
endif
RETURN aResult
*********************************************************************************************************************************************************
METHOD LEMBRETE_onDlgInit( oDlg ) CLASS LembreteClass
*********************************************************************************************************************************************************
IF ! EMPTY(oDlg:oBrowse1:aArray)
IF strzero(M->NIV_ACESSO,1,0)$"89"
oDlg:oPanel1:oOwnerbutton1:ENABLE()
oDlg:oPanel1:oOwnerbutton2:ENABLE()
oDlg:oPanel1:oOwnerbutton3:ENABLE()
ELSE
oDlg:oPanel1:oOwnerbutton1:ENABLE()
oDlg:oPanel1:oOwnerbutton2:ENABLE()
oDlg:oPanel1:oOwnerbutton3:DISABLE()
ENDIF
ELSE
oDlg:oPanel1:oOwnerbutton2:DISABLE()
oDlg:oPanel1:oOwnerbutton3:DISABLE()
ENDIF
hwg_WriteStatus( oDlg,1,"Tabela: LEMBRETE" )
hwg_WriteStatus( oDlg,2,"Ordem: Notas")
RETURN Nil
*********************************************************************************************************************************************************
METHOD LEMBRETE_EXCLUI( oDlg) CLASS LembreteClass
*********************************************************************************************************************************************************
LOCAL cQuery;
, cQuery1;
, oQuery1;
IF hwg_MsgYesNo("DESEJA excluir a Nota, Tem certeza disso ?","Excluindo Nota")
IF strzero(M->NIV_ACESSO,1,0)$"89"
oQuery1 := CONECCOESCLASS():ExecuteSQL(::oServer, "SELECT lembrete.DESCRICAO FROM lembrete WHERE LEMBRETE_Id='" + LTRIM(str(oDlg:oBrowse1:aArray[ oDlg:oBrowse1:nCurrent, 3])) + "'")
cQuery1:="DELETE FROM Lembrete WHERE LEMBRETE_Id='" + LTRIM(str(oDlg:oBrowse1:aArray[ oDlg:oBrowse1:nCurrent, 3])) + "'"
CONECCOESCLASS():ExecuteSQL(::oServer, cQuery1)
cQuery:=[INSERT INTO logtrans (logtrans.OPERADOR, logtrans.COMPUTADOR, logtrans.TEXTO ) VALUES ( "] + M->OPERADOR + [", "] + rtrim(hwg_GetComputerName()) + [", "] ;
+ cQuery1 + (oDlg:oBrowse1:aArray[ oDlg:oBrowse1:nCurrent, 1]) + [-] + oQuery1:Fields( "DESCRICAO" ):Value + [")]
CONECCOESCLASS():ExecuteSQL(::oServer, cQuery)
endif
ENDIF
RETURN NIL
*********************************************************************************************************************************************************
METHOD LEMBRETE_onKeyDown( oBrowse1, nKeyPress, oDlg, cProgressKey ) CLASS LembreteClass
*********************************************************************************************************************************************************
LOCAL nPosicao:=0;
, cConsulta;
, cProgressKey1;
KSETCAPS(.T.);
IF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ "34|33|37|38|39|40|20|16"
cProgressKey:=""
oDlg:oLabel4:settext(cProgressKey)
RETURN .T.
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [90]
nKeyPress := 90
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [96]
nKeyPress := 48
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [97]
nKeyPress := 49
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [98]
nKeyPress := 50
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [99]
nKeyPress := 51
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [100]
nKeyPress := 52
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [101]
nKeyPress := 53
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [102]
nKeyPress := 54
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [103]
nKeyPress := 55
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [104]
nKeyPress := 56
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [105]
nKeyPress := 57
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [106]
nKeyPress := 42
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [190]
nKeyPress := 46
ELSEIF nKeyPress == Asc("8") .AND. hwg_isCtrlShift( .F.,.T. )
nKeyPress := 42
ENDIF
IF nKeyPress = VK_ESCAPE
oDlg:Close()
RETURN .T.
ENDIF
If nKeyPress # 8
cProgressKey += Chr(nKeyPress)
nPosicao:=AScan(oDlg:oBrowse1:aArray,cProgressKey)
oDlg:oLabel4:settext(cProgressKey)
cProgressKey1 := STRTRAN(cProgressKey," ","%")
cConsulta:= "WHERE lembrete.DESCRICAO LIKE '%" + cProgressKey1 + "%' "
oBrowse1:aArray := ::LEMBRETE_CARREGA( cConsulta )
oDlg:obrowse1:REFRESH()
ELSEIF nKeyPress = 8 .AND. Len(cProgressKey) >= 1
cProgressKey:=Left(cProgressKey,Len(cProgressKey) - 1)
nPosicao:=AScan(oDlg:oBrowse1:aArray,cProgressKey)
oDlg:oLabel4:settext(cProgressKey)
cProgressKey1 := STRTRAN(cProgressKey," ","%")
cConsulta:= "WHERE lembrete.DESCRICAO LIKE '%" + cProgressKey1 + "%' "
oBrowse1:aArray := ::LEMBRETE_CARREGA( cConsulta )
oDlg:obrowse1:REFRESH()
ENDIF
IF nPosicao # 0
cProgressKey1 := STRTRAN(cProgressKey," ","%")
cConsulta:= "WHERE lembrete.DESCRICAO LIKE '%" + cProgressKey1 + "%' "
oBrowse1:aArray := ::LEMBRETE_CARREGA( cConsulta )
oDlg:obrowse1:REFRESH()
ENDIF
return .T.
*********************************************************************************************************************************************************
METHOD LEMBRETE_MANUTENCAO( cAcao, cLembrete_Id ) CLASS LembreteClass
*********************************************************************************************************************************************************
LOCAL oDlg;
, cQuery;
, oQuery;
, oOwnerbutton1, oOwnerbutton2;
, oRichedit1;
, oLabel53;
, oPanel1, oPanel2;
, oStatus1;
IF cAcao = "INCLUIR"
::cRichedit1:=""
ELSE
cQuery := [SELECT lembrete.DESCRICAO FROM lembrete WHERE LEMBRETE_ID = '] + cLembrete_Id + [']
oQuery := CONECCOESCLASS():ExecuteSQL(::oServer, cQuery)
::cRichedit1:=oQuery:Fields( "DESCRICAO" ):Value
ENDIF
INIT DIALOG oDlg TITLE "NOTAS" ;
ICON HIcon():Addresource('SGC_ICON') ;
AT 0, 0 SIZE 1024,590 CLIPPER NOEXIT;
ON INIT {|| oRichedit1:setfocus() };
BACKCOLOR 0
@ 0,0 PANEL oPanel1 SIZE 1024,80
oPanel1:oStyle := PainelGradienteColor
oPanel1:Anchor := 130
@ 0,113 PANEL oPanel2 SIZE 1024,456 BACKCOLOR 16777215
oPanel2:Anchor:=130
@ 5,9 OWNERBUTTON oOwnerbutton1 OF oPanel1 SIZE 73,63 FLAT ;
TEXT 'Salvar' COLOR 16777215;
COORDINATES 0, 40, 0, 0 ;
BITMAP HBitmap():Addresource('save-as-256-30') ;
COORDINATES 0, 5, 0, 0;
TOOLTIP 'Salvar Nota';
ON CLICK {|| ::LEMBRETE_SALVA( cAcao, cLembrete_Id ), hwg_Enddialog() }
oPanel1:oOwnerbutton1:aStyle := OwnerbuttonStyle
@ 81,9 OWNERBUTTON oOwnerbutton2 OF oPanel1 SIZE 73,63 ;
ON CLICK {|| oDlg:Close() };
FLAT ;
TEXT 'Sair' COLOR 16777215 ;
COORDINATES 0, 40, 0, 0 ;
BITMAP HBitmap():Addresource('door-8-256-30') ;
COORDINATES 0, 5, 0, 0 ;
TOOLTIP 'Sair da Rotina'
oOwnerbutton2:aStyle := OwnerbuttonStyle
@ 1,85 SAY oLabel53 CAPTION "" SIZE 1024,25 ;
STYLE WS_BORDER + SS_CENTER;
COLOR 16777215 BACKCOLOR 0
oLabel53:Anchor:=130
@ 2,118 RICHEDIT oRichedit1 TEXT ::cRichedit1 SIZE 1020,420 ;
STYLE ES_MULTILINE +WS_BORDER+ES_WANTRETURN+ES_AUTOVSCROLL +WS_VSCROLL ;
ON INIT {|| oRichedit1:GETTEXT( ::cRichedit1 )} ;
ON LOSTFOCUS {|| ::cRichedit1:=oRichedit1:GETTEXT( )} ;
FONT HFont():Add( '',0,-19,700,,,)
oRichedit1:Anchor:=130
ADD STATUS oStatus1 TO oDlg PARTS 200,800
ACTIVATE DIALOG oDlg CENTER
RETURN NIL
*********************************************************************************************************************************************************
METHOD LEMBRETE_SALVA( cAcao, cLembrete_Id ) CLASS LembreteClass
*********************************************************************************************************************************************************
LOCAL cQuery;
, cQuery1;
IF cAcao = 'INCLUIR'
cQuery1:="INSERT INTO lembrete ( lembrete.DESCRICAO, lembrete.QUEM_BLOQ ) VALUES ('" + ::cRichedit1 + "', '" + rtrim(M->OPERADOR)+"/"+rtrim(hwg_GetComputerName()+" ["+dtoc(date())+" "+time()+"]") + "') "
CONECCOESCLASS():ExecuteSQL(::oServer, cQuery1 )
cQuery:=[INSERT INTO logtrans (logtrans.OPERADOR, logtrans.COMPUTADOR, logtrans.TEXTO ) VALUES ( "] + rtrim(M->OPERADOR) +[", "] + rtrim(hwg_GetComputerName()) + [", "] + cQuery1 + [")]
CONECCOESCLASS():ExecuteSQL(::oServer, cQuery)
ELSE
IF strzero(M->NIV_ACESSO,1,0)$"89"
cQuery1:=[UPDATE lembrete SET lembrete.DESCRICAO = '] + ::cRichedit1 + [', lembrete.QUEM_BLOQ = '] + rtrim(M->OPERADOR)+"/"+rtrim(hwg_GetComputerName()+" ["+dtoc(date())+" "+time()+"]") + [' WHERE LEMBRETE_Id = '] + cLembrete_Id + [']
CONECCOESCLASS():ExecuteSQL(::oServer, cQuery1 )
cQuery:=[INSERT INTO logtrans (logtrans.OPERADOR, logtrans.COMPUTADOR, logtrans.TEXTO ) VALUES ( "] + rtrim(M->OPERADOR) +[", "] + rtrim(hwg_GetComputerName()) + [", "] + cQuery1 + [")]
CONECCOESCLASS():ExecuteSQL(::oServer, cQuery)
endif
ENDIF
return NIL