#Include "PROTHEUS.CH" #Include "RWMAKE.CH" User Function REST002() Local oReport Private cPerg := 'REST002' CriaSx1(cPerg) Pergunte(cPerg,.T.) Processa({ || xPrintRel(),OemToAnsi('Gerando o relatório.')}, OemToAnsi('Aguarde...')) Return Static Function xPrintRel() Local nX := 0 Local nQtdPag := 0 Private oPrint Private cAlias := getNextAlias() //cria um alias temporário Private oFont06 := TFont():New('Arial',,06,,.F.,,,,.F.,.F.) Private oFont06n := TFont():New('Arial',,06,,.T.,,,,.F.,.F.) Private oFont08 := TFont():New('Arial',,08,,.F.,,,,.F.,.F.) Private oFont08n := TFont():New('Arial',,08,,.T.,,,,.F.,.F.) Private oFont10 := TFont():New('Arial',,10,,.F.,,,,.F.,.F.) Private oFont10n := TFont():New('Arial',,10,,.T.,,,,.F.,.F.) Private oFont12 := TFont():New('Arial',,12,,.F.,,,,.F.,.F.) Private oFont12n := TFont():New('Arial',,12,,.T.,,,,.F.,.F.) Private oFont13n := TFont():New('Arial',,13,,.T.,,,,.F.,.F.) Private oFont14 := TFont():New('Arial',,14,,.F.,,,,.F.,.F.) Private oFont14n := TFont():New('Arial',,14,,.T.,,,,.F.,.F.) Private oFont26 := TFont():New('Arial',,26,,.F.,,,,.F.,.F.) Private oFont26n := TFont():New('Arial',,26,,.T.,,,,.F.,.F.) Private nLin := 0 BeginSql Alias cAlias SELECT PRO.B1_COD, PRO.B1_DESC FROM SB1010 PRO WHERE PRO.B1_COD >= %exp:mv_par01% AND PRO.B1_COD <= %exp:mv_par02% AND PRO.D_E_L_E_T_ = %Exp:''% AND PRO.B1_MSBLQL = %Exp:'2'% ORDER BY PROD.B1_COD EndSql (cAlias)->(dbGoTop()) oPrint := TMSPrinter():New(OemToAnsi('Etiqueta de produto')) oPrint:SetPortrait() //1cm +/- 117,5 px //nQtdPag := (mv_par03 % 2) //iif(nQtdPag = 0, nQtdPag := Int(mv_par03/2), nQtdPag := Int(mv_par03/2) + 1) While !(cAlias)->(Eof()) oPrint:StartPage() nLin := 0060 oPrint:Say(nLin,0045,alltrim((cAlias)->B1_DESC),oFont13n,,,,0) MSBAR('CODE128',1.8,1.5,alltrim((cAlias)->B1_COD),oPrint,.F.,,.T.,0.080,4.5,,,,.F.) nLin += 00680 oPrint:Say(nLin,0500,OemToAnsi(alltrim((cAlias)->B1_COD)),oFont13n,,,,0) oPrint:EndPage() (cAlias)->(dbSkip()) enddo (cAlias)->(dbCloseArea()) oPrint:Preview() oPrint:end() Return Static Function CriaSx1(cPerg) PutSx1(cPerg,"01","Do Código Interno?" ,"Do Código Interno?" ,"Do Código Interno?" ,"mv_ch1","C",15,0,0,"G","","SB1","","","mv_par01") PutSx1(cPerg,"02","Até Código Interno?" ,"Até Código Interno?","Até Código Interno?","mv_ch2","C",15,0,0,"G","","SB1","","","mv_par02") //PutSx1(cPerg,"03","Qtde Etiquetas" ,"Qtde Etiquetas" ,"Qtde Etiquetas" ,"mv_ch3","N",05,0,0,"G","","" ,"","","mv_par03") return