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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
//Call the bootstrap to get the Component context
XComponentContext oComponentContext = null;
//argument de connexion
String[] argsn = new String[] {
"uno:socket,host=127.0.0.1,port=8100;urp;StarOffice.ServiceManager",
"private:factory/swriter" };
try {
oComponentContext = Bootstrap.createInitialComponentContext(null);
}catch(Exception ex)
{ System.out.println(ex.getMessage()); }
if(oComponentContext != null)
{
try
{
//Get the service manager
XMultiComponentFactory oMultiComponentFactory = oComponentContext.getServiceManager();
//recuperation d'une instance via l'interface UNO
Object objectUrlResolver = oMultiComponentFactory.createInstanceWithContext( "com.sun.star.bridge.UnoUrlResolver", oComponentContext);
XUnoUrlResolver xurlresolver =(XUnoUrlResolver)UnoRuntime.queryInterface(XUnoUrlResolver.class,objectUrlResolver);
Object objectInitial = xurlresolver.resolve(argsn[0]);
//on recupere une factory permettant la création d'espace de travail
oMultiComponentFactory =(XMultiComponentFactory) UnoRuntime.queryInterface(XMultiComponentFactory.class,
objectInitial);
// on recupere une factory permettant la création de service
XMultiServiceFactory _rMSF =(XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class,
objectInitial);
// Register it with the database context
XNameAccess xNameAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class,
_rMSF.createInstance("com.sun.star.sdb.DatabaseContext"));
System.out.println("XNA :"+xNameAccess);
XDataSource xDS = (XDataSource)UnoRuntime.queryInterface(
XDataSource.class, xNameAccess.getByName( "MyDB" ));
System.out.println("XDS :"+xDS);
XConnection con = xDS.getConnection("Login","motDePasse");
System.out.println("con :"+con);
XReportDocumentsSupplier xSup = (XReportDocumentsSupplier)UnoRuntime.queryInterface(XReportDocumentsSupplier.class, xDS);
System.out.println("xSup :"+xSup);
XNameAccess xReport = xSup.getReportDocuments();
if ( xReport.hasByName("utilisateur") ){
Object report = xReport.getByName("utilisateur"); // to hold ref
XComponentLoader loader = (XComponentLoader)UnoRuntime.queryInterface(XComponentLoader.class, xReport);
PropertyValue p1 = new PropertyValue();
p1.Name="ActiveConnection";
p1.Handle = 0;
p1.Value = con ;
PropertyValue p2 = new PropertyValue();
p2.Name="OpenMode";
p2.Handle = 0;
p2.Value = "openDesign" ;
PropertyValue[] arguments = new PropertyValue[]{p2,p1};
XComponent reportdocument = loader.loadComponentFromURL("maTable","",0,arguments);
}
}catch(Exception ex)
{
System.out.println("An exception occurs "+ex.getMessage());
System.exit(1);
} |
Partager