Mam ten kodJak otworzyć raport kryształów w aplikacji java swing?
import com.crystaldecisions.reports.sdk.ReportClientDocument;
...
ReportClientDocument rpt = new ReportClientDocument();
rpt.open(reportPath+fileName, 0);
rpt.getDatabaseController().logon(DBConnect.getUsername(), DBConnect.getPassword());
Tables tables = rpt.getDatabaseController().getDatabase().getTables();
for(int i=0; i< tables.size(); i++){
System.out.print(i);
ITable table = tables.getTable(i);
IConnectionInfo connInfo = table.getConnectionInfo();
PropertyBag innerProp = connInfo.getAttributes();
innerProp.clear();
PropertyBag propertyBag = new PropertyBag();
propertyBag.put("Server Type", "JDBC (JNDI)");
propertyBag.put("Database DLL", "crdb_jdbc.dll");
propertyBag.put("Connection String", DBConnect.getConnectionString());
propertyBag.put("Database Class Name", "com.mysql.jdbc.Driver");
propertyBag.put("Use JDBC", "true");
propertyBag.put("Server Name", DBConnect.getServer());
propertyBag.put("Generic JDBC Driver Behavior", "No");
propertyBag.put("URI", "!com.mysql.jdbc.Driver!jdbc:mysql://"+DBConnect.getServer()+":"+DBConnect.getPort()+"/"+DBConnect.getDatabase()+"!ServerType=29!QuoteChar=`");
connInfo.setAttributes(propertyBag);
connInfo.setKind(ConnectionInfoKind.SQL);
table.setConnectionInfo(connInfo);
rpt.getDatabaseController().setTableLocation(table, tables.getTable(i));
Co Im próbuje zrobić, to otworzyć raport i przekazać informacje o połączeniu z tym raportem tak, że można dynamicznie zmieniać bazy danych raportu, ale z jakiegoś powodu nie działa a raport nadal generuje informacje z bazy danych, którą pierwotnie utworzono. Czy ktoś może mi powiedzieć, co zrobiłem źle? Jest to aplikacja typu swing i używam raportów kryształów XI. Btw Im przy użyciu com.crystaldecisions.reports.sdk.ReportClientDocument zamiast com.crystaldecisions.sdk.occa.report.application.ReportClientDocument, ponieważ podczas korzystania z drugiej, otrzymuję nie można znaleźć błąd serwera. Proszę pomóż.
Nie widzę, jak Swing naprawdę odgrywa jakąś rolę w tym zakresie, z wyjątkiem być może potrzeby, aby zadbać o wywoływanie tego kodu w wątku w tle, ale poza tym tworzenie raportu odbywa się w ten sam sposób z GUI Swinga od program konsoli. –
Naprawdę nie dostałem tego. Przepraszam. Wszystko jest w porządku, z wyjątkiem dynamicznej zmiany części bazy danych. – John