FoxPro/Visual FoxPro - API de Impresion

 
Vista:

API de Impresion

Publicado por ElSuperRo (98 intervenciones) el 21/05/2003 19:27:23
Hola a todos.

tengo un reporte muy compicado que administra distintos campos en columnas con los respectivos resumenes en cada columna, definitivamente no se puede hacer en el generador de reportes salvo alguien conosca otro generador de reportes, pero lo he solucionado programando impresora al viejo estilo DOS

set devi to prin
??char(27)+char(15)
etc, etc....

Me funciona bien pero en el administrador de impresion de WIndows no logro que el trabajo termine, el trabajo esta ahi y no puedo imprimir desde otras aplicaciones WORD, EXCEL, etc. y tengo que resetear para que me libere el adm de impresion

Alguien sabe de algun API, DLL, etc. con el que pueda controlar el administracion de Impresion de Win

visiten www.portalfox.com tiene buenisima informacion
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:API de Impresion

Publicado por Cecilia Colalongo (218 intervenciones) el 22/05/2003 01:53:29
Las API's de impresión (OpenPrinter,StartPagePrinter, etc.) requieren punteros a estructuras que VFP no soporta. ¿Por qué no intentás con Crystal Reports?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:API de Impresion

Publicado por ElSuperRo (98 intervenciones) el 22/05/2003 15:42:46
Gracias CECI

lo que estoy usando es :

Declare Function ResetPrinter Lib "winspool.drv" Alias "ResetPrinterA" (ByVal hPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long

y ya encontre la forma de que funcione en el FOX

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Otra Solucion

Publicado por ElSuperRo (98 intervenciones) el 22/05/2003 18:15:50
Otra solucion que limpia y reinicia los servicios de buffer impresion es simplemente:

set printer to name getprinter()

Funciona OK

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:API de Impresion

Publicado por Cecilia Colalongo (218 intervenciones) el 23/05/2003 03:14:38
¿Cómo estás mandando ésta estructura?

typedef struct _PRINTER_DEFAULTS { // pd
LPTSTR pDatatype;
LPDEVMODE pDevMode;
ACCESS_MASK DesiredAccess;
} PRINTER_DEFAULTS;

porque una de las partes es un puntero a otra estructura:

typedef struct _devicemode { // dvmd
BCHAR dmDeviceName[CCHDEVICENAME];
WORD dmSpecVersion;
WORD dmDriverVersion;
WORD dmSize;
WORD dmDriverExtra;
DWORD dmFields;
union {
struct {
short dmOrientation;
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
};
POINTL dmPosition;
};
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
short dmColor;
short dmDuplex;
short dmYResolution;
short dmTTOption;
short dmCollate;
BCHAR dmFormName[CCHFORMNAME];
WORD dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
DWORD dmDisplayFlags;
DWORD dmDisplayFrequency;
#if(WINVER >= 0x0400)
DWORD dmICMMethod;
DWORD dmICMIntent;
DWORD dmMediaType;
DWORD dmDitherType;
DWORD dmReserved1;
DWORD dmReserved2;
#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
DWORD dmPanningWidth;
DWORD dmPanningHeight;
#endif
#endif /* WINVER >= 0x0400 */
} DEVMODE;

No digo que en VFP no se pueda, ¿pero estás mandando toda la estructura como un Long?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:API de Impresion

Publicado por ElSuperRo (98 intervenciones) el 23/05/2003 18:10:45
Si se puede enviar como LONG y para punteros utilizas @

Pudes verficar sino la ayuda en el MSDN



Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:API de Impresion

Publicado por Cecilia Colalongo (218 intervenciones) el 24/05/2003 02:06:31
Ya se que se puede enviar como Long es un cast explícito, lo que quería saber es como llegabas a ese cast con VFP, y el @ es para punteros pero solo para datos, VFP no soporta punteros a funciones ni tampoco funciones callback.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar