En el IIS de Windows XP (Desarrollo) funciona todo a la perfección.
Este es el código:
PARAMETERS RutaDatos, RutaGuardado, IdFactura
sRutaDatos = ALLTRIM(RutaDatos)
sRutaGuardado = ALLTRIM(RutaGuardado)
iFact = INT(VAL(IdFactura))
iCantErrores = 0
sRutaArchivoCompleta = CURDIR() + "Facturas\"+ ALLTRIM(STR(iFact)) + ".pdf"
sUsuario = Getenv("USERNAME")
_SCREEN.VISIBLE = .F.
CLOSE DATABASE
SET DATE TO FRENCH
SET CENTURY ON
SET DELETED ON
SET EXCLUSIVE OFF
SET MULTILOCKS ON
SET TALK OFF
SET STATUS BAR OFF
SET CONSOLE OFF
SET SAFETY OFF
SET PROCEDURE TO (CURDIR() + "Foxypreviewer\foxypreviewer.app"), "foxypreviewercaller.prg", ;
"lib_impresion.prg", "foxbarcode.prg", "gpimage2.prg" ADDITIVE
_ReportPreview = "FoxyPreviewer.prg"
OPEN DATABASE (sRutaDatos + "Fact\fact.dbc")
OPEN DATABASE (sRutaDatos + "CEPA\cepa.dbc")
OPEN DATABASE (sRutaDatos + "Auxiliar\auxiliar.dbc")
OPEN DATABASE (sRutaDatos + "Puree\Puree.dbc")
OPEN DATABASE (sRutaDatos + "log\log.dbc")
bExisteFactura = FILE(sRutaArchivoCompleta)
IF bExisteFactura = .F. THEN
IF !USED("Facturasserv") THEN
USE fact!Facturasserv SHARED IN 0
ENDIF
SELECT Facturasserv
SET ORDER TO fac_id
SEEK iFact
IF FOUND() THEN
iServicio = fac_servid
oCodBarra = CREATEOBJECT("FoxBarCode")
*-- Object Properties
WITH oCodBarra
.cImageType = "PNG"
.cImageFile = "C:\Temp\" + ALLTRIM(STR(iFact)) + ".png"
.cText = ALLTRIM(Facturasserv.fac_lechum)
.lAddCheckDigit = .F.
.nBarcodeType = 132
.nFontSize = 7.5
.nImageHeight = 52.91
.nRatio = 2
ENDWITH
TRY
LOCAL loReport as "PreviewHelper" OF (CURDIR() + "Foxypreviewer\foxypreviewer.app")
loReport = CREATEOBJECT("PreviewHelper") CATCH
iCantErrores = iCantErrores + 1
ENDTRY
TRY
WITH loReport as ReportHelper
IF iServicio = 9 THEN
.AddReport(CURDIR() + "REPORTES\facturaserv_electrica.frx", "NODIALOG")
ELSE
.AddReport(CURDIR() + "REPORTES\modelfactura.frx", "NODIALOG")
ENDIF
.cTitle = "Factura del servicio"
.cDestFile = sRutaArchivoCompleta
.lSaveToFile = .T.
.lSaveAsPDF = .T.
.RunReport()
ENDWITH
CATCH
iCantErrores = iCantErrores + 1
ENDTRY
loReport = NULL
ENDIF &&IF FOUND() THEN
ELSE
ENDIF &&IF bExisteFactura = .F. THEN
IF iCantErrores = 0 THEN
DELETE FROM log!logs WHERE log_idfactura = iFact
ELSE
**---Log---**
ENDIF
CLOSE TABLES all
CLOSE DATABASES all
CLEAR EVENTS
CLOSE ALL