Вы находитесь на странице: 1из 6

#include "colors.

ch"
#include "topconn.ch"

/*
��������������������������������������������������������
��������������������������������������������������������
������������������������������������������������
�������������������������ͻ��
���Programa �GDGPE004 �Autor �TOTVS CASCAVEL � Data � 03/03/2015
���
������������������������������������������������
��������������������������� ͹� �
���Desc. �Relatorio de Funcionarios c/ Funcao e CBO - SIGAGPE. ���
��� � ���
������������������������������������������������
��������������������������� ͹� �
���Uso � TOTVS ���
������������������������������������������������
�������������������������ͼ��
������������������������������������������������
�����������������������������
������������������������������������������������
�����������������������������
*/

*---------------------------------------------------------------------------*
User Function GDGPE004()
*---------------------------------------------------------------------------*

LOCAL wnrel
LOCAL cDesc1:="RELATORIO DE FUNCIONARIOS"
LOCAL cDesc2:=""
LOCAL cDesc3:=" "

Private nSaldo := 0
Private nHorMes := 0
Private nPgMes := 0
Private nComMes := 0
Private nSaldoFIM := 0
Private limite := 132
Private cConPc := 0
Private bImpr := .F.
Private tamanho := "M"
Private nTipo := 18
PRIVATE titulo := "RELATORIO DE FUNCIONARIOS"
PRIVATE aReturn := { "Zebrado", 1,"Administracao", 2, 2, 1, "",0 }
PRIVATE nomeprog := "RELGPE04",nLastKey := 0
PRIVATE cString := "SRA"
Private cBitMap := ""
Private cBitMap1 := ""
Private cBitMap2 := ""
Private cPerg := "RELGPE_004"
Private wnrel := "RELGP4"
Private oBrush
Private aCoords1 := {611,041,699,2290}
Private aCoords2 := {2321,041,2419,2290}
Private cResult := ""
Private cqual := ""
Private nVal := ""
Private cOper := ""

ajustaSX1()
Pergunte(cPerg,.t.)

nHeight10 := 10
nHeight12 := 12
nHeight09 := 9
nheight07 := 7
nHeight08 := 8
nHeight15 := 15
nheight13 := 13
nHeight11 := 11
lBold := .T.
lUnderLine := .T.

Processa( {|| RELGPEREL(wnrel,cString) },Titulo,"Aguarde....." )

Return

**/*----------------------------------------------------*/**
Static Function RELGPEREL(wnrel,cString)
**/*----------------------------------------------------*/**
LOCAL cabec1:= "",cabec2:= "",cabec3:= ""
LOCAL cbCont:= 0
LOCAL cSit
LOCAL cCat
LOCAL bOkPas
Private nCol := 50
Private nIncr := 50
Private nPag := 0
Private li := 0
Private m_pag := 1
Private nPag := 0

oFont1 := TFont():New( "Arial",,nheight07,,lBold,,,,,!lUnderLine )


oFont2 := TFont():New( "Arial",,nheight09,,lBold,,,,,!lUnderLine )
oFont3 := TFont():New( "Mono AS",,nHeight10,,lBold,,,,,!lUnderLine )
oFont4 := TFont():New( "Arial",,nHeight11,,lBold,,,,,!lUnderLine )
oFont5 := TFont():New( "Arial",,nHeight13,,lBold,,,,,!lUnderLine )
oFont6 := TFont():New( "Arial",,nheight15,,lBold,,,,,!lUnderLine )
oFont7 := TFont():New( "Arial",,nheight12,,lBold,,,,,!lUnderLine )
lFirst := .T.

oPrn := TMSPrinter():New()
cSit := ""
bOkPas := .f.
IF LEN(mv_par07) > 0
FOR I := 1 TO LEN(mv_par07)
IF SUBSTR(mv_par07,i-1,1) # "*"
IF I > 1 .AND. bOkPas
cSit += ","
bOkPas := .F.
ENDIF
cSit += "'"+SUBSTR(mv_par07,i-1,1)+"'"
bOkPas := .T.
ENDIF
NEXT I
ENDIF
cCat := ""
bOkPas := .f.
IF LEN(mv_par08) > 0
FOR I := 1 TO LEN(mv_par08)
IF SUBSTR(mv_par08,i-1,1) # "*"
IF I > 1 .AND. bOkPas
cCat += ","
bOkPas := .F.
ENDIF
cCat += "'"+SUBSTR(mv_par08,i-1,1)+"'"
bOkPas := .T.
ENDIF
NEXT I
ENDIF

cQuery := "SELECT SRA.RA_MAT, SRA.RA_NOME, SRA.RA_ADMISSA, SRA.RA_NASC,


SRJ.RJ_DESC, SRJ.RJ_CODCBO "
cQuery += "FROM "+RetSqlName("SRA")+" AS SRA "
cQuery += "INNER JOIN " + RetSqlName("SRJ") + " AS SRJ "
cQuery += "ON SRA.RA_CODFUNC = SRJ.RJ_FUNCAO "
//cQuery += "AND SUBSTR(SRJ.RJ_FILIAL,1,4) = SUBSTR(SRA.RA_FILIAL,1,4) "
//cQuery += "AND SRJ.RJ_FILIAL = SRA.RA_FILIAL "
cQuery += "AND SRJ.D_E_L_E_T_ <> '*' "
cQuery += "WHERE SRA.D_E_L_E_T_ <> '*' AND "
cQuery += "SRA.RA_FILIAL BETWEEN '"+mv_par03+"' AND '"+mv_par04+"' AND "
cQuery += "SRA.RA_MAT BETWEEN '"+mv_par05+"' AND '"+mv_par06+"' AND "
cQuery += "SRA.RA_SITFOLH IN ("+cSit+") AND "
cQuery += "SRA.RA_CATFUNC IN ("+cCat+") "
cQuery += "ORDER BY SRJ.RJ_DESC ASC "

MemoWrite("RELGPE04.TXT",cQuery)

If select("TMP") > 0
dbSelectArea("TMP")
dbclosearea()
endif
TcQuery cQuery NEW ALIAS "TMP"
If Alias() <> "TMP"
MsgBox("TMP - Par�metros Inv�lidos!")
Return .f.
Endif

dbSelectArea("TMP")
dbGoTop("TMP")
oPrn:Setup()
WHILE !EOF()
Li := 50
nCol := 50
nIncr := 0
nPag ++
oPrn:StartPage()
IF cEmpAnt == "01"
oPrn:SayBitmap( Li+000, nCol+000, cBitMap , 365, 152 )
ELSE
IF cEmpAnt == "02"
oPrn:SayBitmap( Li+000, nCol+000, cBitMap2 , 365, 152 )
ENDIF
ENDIF

// oPrn:SayBitmap( 3120, 1800, cBitMap1, 300, 89 )


oPrn:Say( 3150, 0070, "Rel. GDGPE004", oFont2, 100 )
oPrn:Say( 3150, 1000, "Relatorio de Funcionarios", oFont2, 100 )
oPrn:Say( 3150, 2120, "Pag. "+ALLTRIM(STR(nPag)), oFont2, 100 )
nIncr += 030
//SUPERIOR
oPrn:Line( 0020, 0030,0020, 2300 )
//ESQUERDO
oPrn:Line( 0020, 0030,3230, 0030 )
//DIREITO
oPrn:Line( 0020, 2300,3230, 2300 )
//INFERIOR
oPrn:Line( 3230, 0030,3230, 2300 )
oPrn:Box( 280, 040, 3100, 2290 )

nIncr += 000
oPrn:Say( Li+nIncr, nCol+0750, "Relat�rio de Funcion�rios", oFont6, 100 )
nIncr += 080

oPrn:Say( Li+nIncr, nCol+0050, "Empresa: "+ALLTRIM(SM0->M0_NOME)+" / Filial:


"+ALLTRIM(SM0->M0_FILIAL)+" / CNPJ: "+ALLTRIM(SM0->M0_CGC), oFont1, 100 )
// oPrn:Say( Li+nIncr, nCol+0850, "Per�odo: "+DTOC(mv_par01)+" �
"+DTOC(mv_par02), oFont1, 100 )
oPrn:Say( Li+nIncr, nCol+1950, "Emiss�o: "+DTOC(DDATABASE), oFont1, 100 )
oPrn:Box( 210, 040, 270, 2290 )
nIncr += 60
oPrn:Say( Li+nIncr, nCol+0000, "Matr�cula", oFont2, 100 )
oPrn:Say( Li+nIncr, nCol+0200, "Nome do Empregado", oFont2, 100 )
oPrn:Say( Li+nIncr, nCol+1050, "Admiss�o", oFont2, 100 )
oPrn:Say( Li+nIncr, nCol+1250, "Nascimento", oFont2, 100 )
oPrn:Say( Li+nIncr, nCol+1480, "Fun��o", oFont2, 100 )
oPrn:Say( Li+nIncr, nCol+1950, "CBO", oFont2, 100 )
nIncr += 30
WHILE !EOF() .AND. nIncr < 2900
nIncr += 50

oPrn:Say( Li+nIncr, nCol+0000, TMP->RA_MAT, oFont2, 100 )


oPrn:Say( Li+nIncr, nCol+0200, ALLTRIM(TMP->RA_NOME), oFont2, 100 )

oPrn:Say( Li+nIncr, nCol+1050, Dtoc( Stod (TMP->RA_ADMISSA) ), oFont2,


100 )
oPrn:Say( Li+nIncr, nCol+1250, Dtoc( Stod (TMP->RA_NASC) ), oFont2, 100
)
oPrn:Say( Li+nIncr, nCol+1480, ALLTRIM(TMP->RJ_DESC), oFont2, 100 )
oPrn:Say( Li+nIncr, nCol+1950, ALLTRIM(TMP->RJ_CODCBO), oFont2, 100 )

dbSelectArea("TMP")
dbSkip()
ENDDO
oPrn:EndPage()
dbSelectArea("TMP")
dbSkip()
ENDDO
nItem := 0
oPrn:Preview()
//�����������������������������������������������
���������������Ŀ
//� Se em disco, desvia para Spool �
//�����������������������������������������������
�����������������
If aReturn[5] = 1 // Se Saida para disco, ativa SPOOL
Set Printer To
Commit
OurSpool(wnrel)
Endif

MS_FLUSH()

Return

/*
������������������������������������������������
�����������������������������
������������������������������������������������
�����������������������������
������������������������������������������������
�������������������������ͻ��
���Programa �AjustaSX1 �Autor �TOTVS CASCAVEL � Data � 03/03/2015
���
������������������������������������������������
��������������������������� ͹� �
���Desc. �Fun��o para criar grupo de perguntas SX1.
���
��� � ���
������������������������������������������������
��������������������������� ͹� �
���Uso � TOTVS ���
������������������������������������������������
�������������������������ͼ��
������������������������������������������������
�����������������������������
������������������������������������������������
�����������������������������
*/

*---------------------------------------------------------------------------*
Static Function AjustaSX1()
*---------------------------------------------------------------------------*

_sAlias := Alias()
aRegs :={}
mv_par03
dbSelectArea("SX1")
dbSetOrder(1)
aAdd(aRegs,{cperg,"01","Data
de ?","","","mv_ch1","D",08,0,0,"G","NaoVazio()","mv_par01","","","",""
,"","","","","","","","","","","","","","","","","","","","","","",""})
aAdd(aRegs,{cperg,"02","Data
ate ?","","","mv_ch2","D",08,0,0,"G","NaoVazio()","mv_par02","","","",""
,"","","","","","","","","","","","","","","","","","","","","","",""})
aAdd(aRegs,{cperg,"03","Filial
de ?","","","mv_ch3","C",06,0,0,"G","","mv_par03","","","","","","","",""
,"","","","","","","","","","","","","","","","","XM0","",""})
aAdd(aRegs,{cperg,"04","Filial
ate ?","","","mv_ch4","C",06,0,0,"G","","mv_par04","","","","","","","",""
,"","","","","","","","","","","","","","","","","XM0","",""})
aAdd(aRegs,{cperg,"05","Matricula
de ?","","","mv_ch5","C",06,0,0,"G","","mv_par05","","","","","","","","",""
,"","","","","","","","","","","","","","","","SRA","",""})
aAdd(aRegs,{cperg,"06","Matricula
ate ?","","","mv_ch6","C",06,0,0,"G","","mv_par06","","","","","","","","",""
,"","","","","","","","","","","","","","","","SRA","",""})
aAdd(aRegs,
{cperg,"07","Situacoes ?","","","mv_ch9","C",05,0,0,"G","fSituacao","mv_p
ar09","","","","","","","","","","","","","","","","","","","","","","","","","",""
,""})
aAdd(aRegs,
{cperg,"08","Categorias ?","","","mv_cha","C",15,0,0,"G","fCategoria","mv_
par10","","","","","","","","","","","","","","","","","","","","","","","","","","
",""})

For i:=1 to Len(aRegs)


If !dbSeek(cperg+aRegs[i,2])
RecLock("SX1",.T.)
For j:=1 to FCount()
If j <= Len(aRegs[i])
FieldPut(j,aRegs[i,j])
Endif
Next
MsUnlock()
Endif
Next
dbSelectArea(_sAlias)
Return .t.

Вам также может понравиться