Access - Imprimir informes desde Builder C++

 
Vista:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Imprimir informes desde Builder C++

Publicado por Alejandro (4142 intervenciones) el 21/04/2023 20:19:06
Para imprimir un informe de Access desde Borland Builder C++, puedes utilizar la tecnología OLE (Object Linking and Embedding). Aquí hay un ejemplo de código que puede servir como punto de partida:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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);
}

Este código utiliza la biblioteca de objetos de automatización de Access (accesolib.tlb) para comunicarse con Access y realizar las operaciones necesarias. Ten en cuenta que tendrás que ajustar la ruta de la base de datos y el nombre del informe a tus necesidades.

También puedes buscar más información en la documentación de Access y en los foros de programación de Borland Builder C++.
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