Imprimir informes desde Builder C++
Publicado por kalgan (1 intervención) el 01/07/2002 19:12:57
¿Cómo podria imprimir una informe de Access desde Borland Builder C++?
Valora esta pregunta


0
try {
// Crear una instancia de la aplicación Access
OleCheck(CoCreateInstance(CLSID_AccessApplication, NULL, CLSCTX_LOCAL_SERVER, IID_IDispatch, (LPVOID*)&pAccess));
// Abrir la base de datos
OleVariant db("C:\\ruta\\a\\tu\\base\\de\\datos.accdb");
OleVariant user("");
OleVariant password("");
OleVariant readOnly(false);
OleVariant options(0);
OleCheck(pAccess->GetDefaultWorkspace(&pWorkspace));
OleCheck(pWorkspace->OpenDatabase(db, readOnly, options, user, password, &pDatabase));
// Obtener el informe que deseas imprimir
OleVariant reportName("Nombre del informe");
OleCheck(pAccess->get_Documents(&pDocuments));
OleVariant itemIndex(1);
OleVariant itemType(acReport);
OleVariant templateName("");
OleVariant visible(true);
OleVariant outputFormat(acFormatPDF);
OleVariant outputFilename("");
OleCheck(pDocuments->Open(reportName, itemType, templateName, visible, outputFormat, outputFilename, &pReport));
// Imprimir el informe
OleVariant printRange(acPages);
OleVariant pageFrom(0);
OleVariant pageTo(0);
OleVariant printQuality(acHigh);
OleVariant copies(1);
OleVariant collate(false);
OleCheck(pReport->PrintOut(printRange, pageFrom, pageTo, printQuality, copies, collate));
// Cerrar la base de datos y la aplicación Access
OleCheck(pDatabase->Close());
OleCheck(pAccess->Quit());
} catch (const Exception& e) {
// Manejar excepciones
ShowMessage("Error: " + e.Message);
}