INTEGRATION: CWS rptwizard01 (1.40.44); FILE MERGED
2008/05/21 10:14:36 lla 1.40.44.3: RESYNC: (1.41-1.42); FILE MERGED 2008/02/15 07:36:23 lla 1.40.44.2: RESYNC: (1.40-1.41); FILE MERGED 2008/02/14 13:00:48 lla 1.40.44.1: #i86092# changes for new Report Wizard
This commit is contained in:
parent
deb5f9bbe4
commit
5ecfd2e8dd
1 changed files with 123 additions and 369 deletions
|
@ -7,7 +7,7 @@
|
|||
* OpenOffice.org - a multi-platform office productivity suite
|
||||
*
|
||||
* $RCSfile: Dataimport.java,v $
|
||||
* $Revision: 1.43 $
|
||||
* $Revision: 1.44 $
|
||||
*
|
||||
* This file is part of OpenOffice.org.
|
||||
*
|
||||
|
@ -29,418 +29,172 @@
|
|||
************************************************************************/
|
||||
package com.sun.star.wizards.report;
|
||||
|
||||
import java.util.Vector;
|
||||
|
||||
import com.sun.star.awt.VclWindowPeerAttribute;
|
||||
import com.sun.star.beans.PropertyValue;
|
||||
import com.sun.star.beans.XPropertySet;
|
||||
import com.sun.star.container.XNameAccess;
|
||||
import com.sun.star.container.XNameContainer;
|
||||
import com.sun.star.container.XNamed;
|
||||
import com.sun.star.lang.XMultiServiceFactory;
|
||||
import com.sun.star.sdb.CommandType;
|
||||
import com.sun.star.style.BreakType;
|
||||
import com.sun.star.style.CaseMap;
|
||||
import com.sun.star.table.XCellRange;
|
||||
import com.sun.star.text.XTextContent;
|
||||
import com.sun.star.text.XTextCursor;
|
||||
import com.sun.star.text.XTextDocument;
|
||||
import com.sun.star.text.XTextTable;
|
||||
|
||||
import com.sun.star.uno.Any;
|
||||
import com.sun.star.uno.UnoRuntime;
|
||||
import com.sun.star.uno.XInterface;
|
||||
import com.sun.star.wizards.db.*;
|
||||
import com.sun.star.wizards.ui.*;
|
||||
import com.sun.star.wizards.common.*;
|
||||
import com.sun.star.wizards.document.*;
|
||||
import com.sun.star.wizards.text.*;
|
||||
import com.sun.star.wizards.common.InvalidQueryException;
|
||||
import com.sun.star.uno.Exception;
|
||||
|
||||
public class Dataimport extends UnoDialog2 implements com.sun.star.awt.XActionListener{ // extends ReportWizard
|
||||
|
||||
ReportDocument CurReportDocument;
|
||||
PropertyValue[] CurProperties;
|
||||
// ReportTextDocument CurReportDocument;
|
||||
IReportDocument CurReportDocument;
|
||||
|
||||
// PropertyValue[] CurProperties;
|
||||
static boolean bStopProcess;
|
||||
static String sProgressDBConnection;
|
||||
static String sProgressDataImport;
|
||||
static String sProgressBaseCurRecord;
|
||||
static String sProgressCurRecord;
|
||||
static String sProgressTitle;
|
||||
static String sMsgQueryCreationImpossible;
|
||||
static String sReportFormNotExisting;
|
||||
static String sStop;
|
||||
static String sMsgHiddenControlMissing;
|
||||
static String sMsgEndAutopilot;
|
||||
static String sMsgConnectionImpossible;
|
||||
static String sMsgNoConnection;
|
||||
static String[] ReportMessages = new String[4];
|
||||
public static final String TBLRECORDSECTION = ReportDocument.TBLRECORDSECTION;
|
||||
public static final String TBLGROUPSECTION = ReportDocument.TBLGROUPSECTION;
|
||||
public static final String RECORDSECTION = ReportDocument.RECORDSECTION;
|
||||
public static final String GROUPSECTION = ReportDocument.GROUPSECTION;
|
||||
public static final String COPYOFTBLRECORDSECTION = ReportDocument.COPYOFTBLRECORDSECTION;
|
||||
public static final String COPYOFTBLGROUPSECTION = ReportDocument.COPYOFTBLGROUPSECTION;
|
||||
public static final String COPYOFRECORDSECTION = ReportDocument.COPYOFRECORDSECTION;
|
||||
public static final String COPYOFGROUPSECTION = ReportDocument.COPYOFGROUPSECTION;
|
||||
|
||||
// public static final String TBLRECORDSECTION = ReportTextDocument.TBLRECORDSECTION;
|
||||
// public static final String TBLGROUPSECTION = ReportTextDocument.TBLGROUPSECTION;
|
||||
// public static final String RECORDSECTION = ReportTextDocument.RECORDSECTION;
|
||||
// public static final String GROUPSECTION = ReportTextDocument.GROUPSECTION;
|
||||
// public static final String COPYOFTBLRECORDSECTION = ReportTextDocument.COPYOFTBLRECORDSECTION;
|
||||
// public static final String COPYOFTBLGROUPSECTION = ReportTextDocument.COPYOFTBLGROUPSECTION;
|
||||
// public static final String COPYOFRECORDSECTION = ReportTextDocument.COPYOFRECORDSECTION;
|
||||
// public static final String COPYOFGROUPSECTION = ReportTextDocument.COPYOFGROUPSECTION;
|
||||
|
||||
|
||||
public Dataimport(XMultiServiceFactory _xMSF) {
|
||||
super(_xMSF);
|
||||
super.addResourceHandler("ReportWizard", "dbw");
|
||||
sProgressDBConnection = oResource.getResText(UIConsts.RID_DB_COMMON + 34);
|
||||
sProgressDataImport = oResource.getResText(UIConsts.RID_REPORT + 67);
|
||||
sProgressTitle = oResource.getResText(UIConsts.RID_REPORT + 62);
|
||||
sProgressBaseCurRecord = oResource.getResText(UIConsts.RID_REPORT + 63);
|
||||
sReportFormNotExisting = oResource.getResText(UIConsts.RID_REPORT + 64);
|
||||
sMsgQueryCreationImpossible = oResource.getResText(UIConsts.RID_REPORT + 65);
|
||||
sStop = oResource.getResText(UIConsts.RID_DB_COMMON + 21);
|
||||
sMsgHiddenControlMissing = oResource.getResText(UIConsts.RID_REPORT + 66);
|
||||
sMsgEndAutopilot = oResource.getResText(UIConsts.RID_DB_COMMON + 33);
|
||||
sMsgNoConnection = oResource.getResText(UIConsts.RID_DB_COMMON + 14);
|
||||
}
|
||||
public Dataimport(XMultiServiceFactory _xMSF)
|
||||
{
|
||||
super(_xMSF);
|
||||
super.addResourceHandler("ReportWizard", "dbw");
|
||||
sProgressDBConnection = m_oResource.getResText(UIConsts.RID_DB_COMMON + 34);
|
||||
sProgressDataImport = m_oResource.getResText(UIConsts.RID_REPORT + 67);
|
||||
sProgressTitle = m_oResource.getResText(UIConsts.RID_REPORT + 62);
|
||||
sProgressBaseCurRecord = m_oResource.getResText(UIConsts.RID_REPORT + 63);
|
||||
sStop = m_oResource.getResText(UIConsts.RID_DB_COMMON + 21);
|
||||
|
||||
}
|
||||
|
||||
public void disposing(com.sun.star.lang.EventObject eventObject){
|
||||
}
|
||||
|
||||
|
||||
public void actionPerformed(com.sun.star.awt.ActionEvent actionEvent) {
|
||||
bStopProcess = true;
|
||||
// bStopProcess = true;
|
||||
CurReportDocument.StopProcess();
|
||||
}
|
||||
|
||||
public static void main(String args[]) {
|
||||
String ConnectStr = "uno:socket,host=localhost,port=8100;urp,negotiate=0,forcesynchronous=1;StarOffice.NamingService";
|
||||
XMultiServiceFactory xMSF = null;
|
||||
try {
|
||||
xMSF = com.sun.star.wizards.common.Desktop.connect(ConnectStr);
|
||||
if (xMSF != null)
|
||||
System.out.println("Connected to " + ConnectStr);
|
||||
PropertyValue[] curproperties = new PropertyValue[3];
|
||||
curproperties[0] = Properties.createProperty("DatabaseLocation", "file:///C:/Documents and Settings/bc93774.EHAM02-DEV/My Documents/MyHSQL.odb");
|
||||
// curproperties[0] = Properties.createProperty("DatabaseLocation", "file:///C:/Documents and Settings/bc93774.EHAM02-DEV/My Documents/MyDocAssign.odb"); //baseLocation ); "DataSourceName", "db1");
|
||||
// curproperties[0] = Properties.createProperty("DataSourceName", "Bibliography");
|
||||
curproperties[1] = Properties.createProperty("CommandType", new Integer(CommandType.TABLE));
|
||||
curproperties[2] = Properties.createProperty("Command", "Table2");
|
||||
// public static void main(String args[])
|
||||
// {
|
||||
// String ConnectStr = "uno:socket,host=localhost,port=8100;urp,negotiate=0,forcesynchronous=1;StarOffice.NamingService";
|
||||
// XMultiServiceFactory xMSF = null;
|
||||
// try
|
||||
// {
|
||||
// xMSF = com.sun.star.wizards.common.Desktop.connect(ConnectStr);
|
||||
// if (xMSF != null)
|
||||
// {
|
||||
// System.out.println("Connected to " + ConnectStr);
|
||||
// }
|
||||
// PropertyValue[] curproperties = new PropertyValue[3];
|
||||
// curproperties[0] = Properties.createProperty("DatabaseLocation", "file:///C:/Documents and Settings/bc93774.EHAM02-DEV/My Documents/MyHSQL.odb");
|
||||
//// curproperties[0] = Properties.createProperty("DatabaseLocation", "file:///C:/Documents and Settings/bc93774.EHAM02-DEV/My Documents/MyDocAssign.odb"); //baseLocation ); "DataSourceName", "db1");
|
||||
//// curproperties[0] = Properties.createProperty("DataSourceName", "Bibliography");
|
||||
// curproperties[1] = Properties.createProperty("CommandType", new Integer(CommandType.TABLE));
|
||||
// curproperties[2] = Properties.createProperty("Command", "Table2");
|
||||
//
|
||||
// Dataimport CurDataimport = new Dataimport(xMSF);
|
||||
// TextDocument oTextDocument = new TextDocument(xMSF, true, null);
|
||||
// CurDataimport.createReport(xMSF, oTextDocument.xTextDocument, curproperties);
|
||||
//
|
||||
// }
|
||||
// catch (Exception e)
|
||||
// {
|
||||
// e.printStackTrace(System.out);
|
||||
// }
|
||||
// catch (java.lang.Exception javaexception)
|
||||
// {
|
||||
// javaexception.printStackTrace(System.out);
|
||||
// }
|
||||
// }
|
||||
|
||||
Dataimport CurDataimport = new Dataimport(xMSF);
|
||||
TextDocument oTextDocument = new TextDocument(xMSF, true, null);
|
||||
CurDataimport.createReport(xMSF, oTextDocument.xTextDocument, curproperties);
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace(System.out);
|
||||
} catch (java.lang.Exception javaexception) {
|
||||
javaexception.printStackTrace(System.out);
|
||||
}
|
||||
}
|
||||
|
||||
public void showProgressDisplay(XMultiServiceFactory xMSF, boolean bgetConnection) {
|
||||
try {
|
||||
Helper.setUnoPropertyValues(xDialogModel,
|
||||
new String[] { "Height", "Step", "Title", "Width" },
|
||||
new Object[] { new Integer(84), new Integer(0), sProgressTitle, new Integer(180)});
|
||||
com.sun.star.awt.FontDescriptor oFontDesc = new com.sun.star.awt.FontDescriptor();
|
||||
oFontDesc.Weight = com.sun.star.awt.FontWeight.BOLD;
|
||||
if (bgetConnection) {
|
||||
insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblProgressDBConnection",
|
||||
new String[] { "FontDescriptor", "Height", "Label", "PositionX", "PositionY", "Step", "Width" },
|
||||
new Object[] { oFontDesc, new Integer(10), sProgressDBConnection, new Integer(6), new Integer(6), new Integer(0), new Integer(150)});
|
||||
|
||||
insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblProgressDataImport",
|
||||
new String[] { "Height", "Label", "PositionX", "PositionY", "Step", "Width" },
|
||||
new Object[] { new Integer(10), sProgressDataImport, new Integer(6), new Integer(24), new Integer(0), new Integer(120)});
|
||||
} else
|
||||
insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblProgressDataImport",
|
||||
new String[] { "FontDescriptor", "Height", "Label", "PositionX", "PositionY", "Step", "Width" },
|
||||
new Object[] { oFontDesc, new Integer(10), sProgressDataImport, new Integer(6), new Integer(24), new Integer(0), new Integer(120)});
|
||||
|
||||
insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblCurProgress",
|
||||
new String[] { "Height", "Label", "PositionX", "PositionY", "Step", "Width" },
|
||||
new Object[] { new Integer(10), "", new Integer(12), new Integer(42), new Integer(0), new Integer(120)});
|
||||
|
||||
insertButton("cmdCancel", 10000, this,
|
||||
new String[] { "Height", "HelpURL", "PositionX", "PositionY", "Step", "TabIndex", "Width", "Label" },
|
||||
new Object[] { new Integer(14), "HID:34321", new Integer(74), new Integer(58), new Integer(0), new Short((short) 1), new Integer(40), sStop });
|
||||
createWindowPeer(CurReportDocument.xWindowPeer);
|
||||
calculateDialogPosition(CurReportDocument.xFrame.getComponentWindow().getPosSize());
|
||||
xWindow.setVisible(true);
|
||||
super.xReschedule.reschedule();
|
||||
return;
|
||||
} catch (Exception exception) {
|
||||
exception.printStackTrace(System.out);
|
||||
return;
|
||||
} catch (java.lang.Exception jexception) {
|
||||
jexception.printStackTrace(System.out);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void addTextSectionCopies(){
|
||||
CurReportDocument.setLayoutSectionsVisible(false);
|
||||
XTextCursor xTextCursor = ReportDocument.createTextCursor(CurReportDocument.xTextDocument.getText());
|
||||
xTextCursor.gotoStart(false);
|
||||
for (int i = 0; i < CurReportDocument.CurDBMetaData.GroupFieldNames.length; i++){
|
||||
XNamed xNamedTextSection = addLinkedTextSection(xTextCursor, GROUPSECTION + Integer.toString(i + 1), null, null);
|
||||
xNamedTextSection.setName(COPYOFGROUPSECTION + (i+1));
|
||||
renameTableofLastSection(COPYOFTBLGROUPSECTION + (i+1));
|
||||
}
|
||||
if( CurReportDocument.CurDBMetaData.RecordFieldNames.length > 0){
|
||||
XNamed xNamedTextSection = addLinkedTextSection(xTextCursor, RECORDSECTION, null, null);
|
||||
xNamedTextSection.setName(COPYOFRECORDSECTION);
|
||||
renameTableofLastSection(COPYOFTBLRECORDSECTION);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void renameTableofLastSection(String _snewname){
|
||||
XTextTable xTextTable = CurReportDocument.oTextTableHandler.getlastTextTable();
|
||||
XNamed xNamedTable = (XNamed) UnoRuntime.queryInterface(XNamed.class, xTextTable);
|
||||
xNamedTable.setName(_snewname);
|
||||
}
|
||||
|
||||
|
||||
public void importReportData(final XMultiServiceFactory xMSF, final Dataimport CurDataimport, final ReportDocument CurReportDocument) {
|
||||
if (reconnectToDatabase(xMSF)) {
|
||||
// The following calls to remove the Sections must occur after the connection to the database
|
||||
modifyFontWeight("lblProgressDBConnection", com.sun.star.awt.FontWeight.NORMAL);
|
||||
modifyFontWeight("lblProgressDataImport", com.sun.star.awt.FontWeight.BOLD);
|
||||
insertDatabaseDatatoReportDocument(xMSF);
|
||||
}
|
||||
xComponent.dispose();
|
||||
CurReportDocument.CurDBMetaData.dispose();
|
||||
}
|
||||
|
||||
|
||||
public void createReport(final XMultiServiceFactory xMSF,XTextDocument _textDocument, PropertyValue[] properties) {
|
||||
CurReportDocument = new ReportDocument(xMSF, _textDocument,oResource);
|
||||
CurProperties = properties;
|
||||
showProgressDisplay(xMSF, true);
|
||||
importReportData(xMSF, this, CurReportDocument);
|
||||
}
|
||||
|
||||
public boolean reconnectToDatabase(XMultiServiceFactory xMSF) {
|
||||
try {
|
||||
XNameContainer xNamedForms = CurReportDocument.oFormHandler.getDocumentForms();
|
||||
Object oDBForm = Helper.getUnoObjectbyName(xNamedForms, ReportWizard.SOREPORTFORMNAME);
|
||||
boolean bgetConnection;
|
||||
String sQueryName = "";
|
||||
if (oDBForm != null) {
|
||||
String sMsg = sMsgHiddenControlMissing + (char) 13 + sMsgEndAutopilot;
|
||||
XNameAccess xNamedForm = (XNameAccess) UnoRuntime.queryInterface(XNameAccess.class, oDBForm);
|
||||
CurReportDocument.CurDBMetaData.Command = CurReportDocument.oFormHandler.getValueofHiddenControl(xNamedForm, "Command", sMsg);
|
||||
String sCommandType = CurReportDocument.oFormHandler.getValueofHiddenControl(xNamedForm, "CommandType", sMsg);
|
||||
String sGroupFieldNames = CurReportDocument.oFormHandler.getValueofHiddenControl(xNamedForm, "GroupFieldNames", sMsg);
|
||||
String sFieldNames = CurReportDocument.oFormHandler.getValueofHiddenControl(xNamedForm, "FieldNames", sMsg);
|
||||
String sRecordFieldNames = CurReportDocument.oFormHandler.getValueofHiddenControl(xNamedForm, "RecordFieldNames", sMsg);
|
||||
if (xNamedForm.hasByName("QueryName"))
|
||||
sQueryName = CurReportDocument.oFormHandler.getValueofHiddenControl(xNamedForm, "QueryName", sMsg);
|
||||
String[] sFieldNameList = JavaTools.ArrayoutofString(sFieldNames, ";");
|
||||
CurReportDocument.CurDBMetaData.RecordFieldNames = JavaTools.ArrayoutofString(sRecordFieldNames, ";");
|
||||
CurReportDocument.CurDBMetaData.GroupFieldNames = JavaTools.ArrayoutofString(sGroupFieldNames, ";");
|
||||
CurReportDocument.CurDBMetaData.setCommandType(Integer.valueOf(sCommandType).intValue());
|
||||
sMsgQueryCreationImpossible = JavaTools.replaceSubString(sMsgQueryCreationImpossible, CurReportDocument.CurDBMetaData.Command, "<STATEMENT>");
|
||||
bgetConnection = CurReportDocument.CurDBMetaData.getConnection(CurProperties);
|
||||
int nCommandType = com.sun.star.sdb.CommandType.COMMAND;
|
||||
boolean bexecute = false;
|
||||
public void showProgressDisplay(XMultiServiceFactory xMSF, boolean bgetConnection)
|
||||
{
|
||||
try
|
||||
{
|
||||
Helper.setUnoPropertyValues(xDialogModel,
|
||||
new String[] { "Height", "Step", "Title", "Width" },
|
||||
new Object[] { new Integer(84), new Integer(0), sProgressTitle, new Integer(180)});
|
||||
com.sun.star.awt.FontDescriptor oFontDesc = new com.sun.star.awt.FontDescriptor();
|
||||
oFontDesc.Weight = com.sun.star.awt.FontWeight.BOLD;
|
||||
if (bgetConnection)
|
||||
{
|
||||
// LLA: restored from old 2.3 Version
|
||||
if ((CurReportDocument.CurDBMetaData.getCommandType() == CommandType.QUERY) &&
|
||||
(CurReportDocument.CurDBMetaData.Command.equals("")))
|
||||
{
|
||||
CurReportDocument.CurDBMetaData.oSQLQueryComposer = new SQLQueryComposer(CurReportDocument.CurDBMetaData);
|
||||
DBMetaData.CommandObject oCommand = CurReportDocument.CurDBMetaData.getQueryByName(sQueryName);
|
||||
if (CurReportDocument.CurDBMetaData.hasEscapeProcessing(oCommand.xPropertySet))
|
||||
{
|
||||
CurReportDocument.CurDBMetaData.Command = (String) oCommand.xPropertySet.getPropertyValue("Command");
|
||||
CurReportDocument.CurDBMetaData.oSQLQueryComposer.xQueryAnalyzer.setQuery(CurReportDocument.CurDBMetaData.Command);
|
||||
CurReportDocument.CurDBMetaData.oSQLQueryComposer.prependSortingCriteria();
|
||||
}
|
||||
else
|
||||
{
|
||||
nCommandType = com.sun.star.sdb.CommandType.QUERY;
|
||||
CurReportDocument.CurDBMetaData.Command = sQueryName;
|
||||
}
|
||||
}
|
||||
bexecute = CurReportDocument.CurDBMetaData.executeCommand(nCommandType); //sMsgQueryCreationImpossible + (char) 13 + sMsgEndAutopilot, sFieldNameList, true);
|
||||
if (bexecute){
|
||||
bexecute = CurReportDocument.CurDBMetaData.getFields(sFieldNameList, true);
|
||||
}
|
||||
return bexecute;
|
||||
} else
|
||||
return false;
|
||||
} else {
|
||||
sReportFormNotExisting = JavaTools.replaceSubString(sReportFormNotExisting, ReportWizard.SOREPORTFORMNAME, "<REPORTFORM>");
|
||||
showMessageBox("ErrorBox", VclWindowPeerAttribute.OK, sReportFormNotExisting + (char) 13 + sMsgEndAutopilot);
|
||||
return false;
|
||||
}
|
||||
} catch (InvalidQueryException queryexception) {
|
||||
return false;
|
||||
} catch (java.lang.Exception javaexception) {
|
||||
javaexception.printStackTrace(System.out);
|
||||
return false;
|
||||
} catch (com.sun.star.wizards.document.FormHandler.UnknownHiddenControlException exception) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblProgressDBConnection",
|
||||
new String[] { "FontDescriptor", "Height", "Label", "PositionX", "PositionY", "Step", "Width" },
|
||||
new Object[] { oFontDesc, new Integer(10), sProgressDBConnection, new Integer(6), new Integer(6), new Integer(0), new Integer(150)});
|
||||
|
||||
public void insertDatabaseDatatoReportDocument(XMultiServiceFactory xMSF) {
|
||||
try {
|
||||
int ColIndex;
|
||||
boolean breset;
|
||||
Object oTable;
|
||||
Vector DataVector = new Vector();
|
||||
DBColumn CurDBColumn;
|
||||
Object CurGroupValue;
|
||||
String CurGroupTableName;
|
||||
RecordParser CurDBMetaData = CurReportDocument.CurDBMetaData;
|
||||
com.sun.star.style.BreakType CorrBreakValue = null;
|
||||
String CorrPageDescName = "";
|
||||
CurReportDocument.oTextFieldHandler.fixDateFields(true);
|
||||
CurReportDocument.removeAllVisibleTextSections();
|
||||
CurReportDocument.removeNonLayoutTextTables();
|
||||
addTextSectionCopies();
|
||||
CurReportDocument.getallDBColumns();
|
||||
int GroupFieldCount = CurDBMetaData.GroupFieldNames.length;
|
||||
int FieldCount = CurDBMetaData.FieldColumns.length;
|
||||
Object[] OldGroupFieldValues = new Object[GroupFieldCount];
|
||||
XTextTable[] xGroupBaseTables = new XTextTable[GroupFieldCount];
|
||||
int RecordFieldCount = FieldCount - GroupFieldCount;
|
||||
XTextDocument xTextDocument = CurReportDocument.xTextDocument;
|
||||
XTextCursor xTextCursor = ReportDocument.createTextCursor(CurReportDocument.xTextDocument.getText());
|
||||
xTextDocument.lockControllers();
|
||||
if (CurDBMetaData.ResultSet.next() == true) {
|
||||
replaceUserFields();
|
||||
Helper.setUnoPropertyValue(xTextCursor, "PageDescName", "First Page");
|
||||
for (ColIndex = 0; ColIndex < GroupFieldCount; ColIndex++) {
|
||||
CurGroupTableName = TBLGROUPSECTION + Integer.toString(ColIndex + 1);
|
||||
oTable = CurReportDocument.oTextTableHandler.xTextTablesSupplier.getTextTables().getByName(CurGroupTableName);
|
||||
xGroupBaseTables[ColIndex] = (XTextTable) UnoRuntime.queryInterface(XTextTable.class, oTable);
|
||||
CurGroupValue = CurDBMetaData.getGroupColumnValue(ColIndex);
|
||||
OldGroupFieldValues[ColIndex] = CurGroupValue;
|
||||
CurDBColumn = (DBColumn) CurReportDocument.DBColumnsVector.elementAt(ColIndex);
|
||||
addLinkedTextSection(xTextCursor, GROUPSECTION + Integer.toString(ColIndex + 1), CurDBColumn, CurGroupValue); //COPYOF!!!!
|
||||
insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblProgressDataImport",
|
||||
new String[] { "Height", "Label", "PositionX", "PositionY", "Step", "Width" },
|
||||
new Object[] { new Integer(10), sProgressDataImport, new Integer(6), new Integer(24), new Integer(0), new Integer(120)});
|
||||
}
|
||||
if (CurDBMetaData.getcurrentRecordData(DataVector) == true) {
|
||||
int RowIndex = 1;
|
||||
bStopProcess = false;
|
||||
while ((CurDBMetaData.ResultSet.next() == true) && (bStopProcess == false)) {
|
||||
RowIndex += 1;
|
||||
breset = false;
|
||||
for (ColIndex = 0; ColIndex < GroupFieldCount; ColIndex++) {
|
||||
CurGroupValue = CurDBMetaData.getGroupColumnValue(ColIndex);
|
||||
if ((CurGroupValue.equals((Object) OldGroupFieldValues[ColIndex]) == false) || (breset)) {
|
||||
breset = true;
|
||||
insertDataToRecordTable(xTextCursor, DataVector, RecordFieldCount);
|
||||
CurDBColumn = (DBColumn) CurReportDocument.DBColumnsVector.elementAt(ColIndex);
|
||||
addLinkedTextSection(xTextCursor, COPYOFGROUPSECTION + Integer.toString(ColIndex + 1), CurDBColumn, CurGroupValue);
|
||||
OldGroupFieldValues[ColIndex] = CurGroupValue;
|
||||
breset = !(ColIndex == GroupFieldCount - 1);
|
||||
}
|
||||
}
|
||||
CurDBMetaData.getcurrentRecordData(DataVector);
|
||||
updateProgressDisplay(RowIndex);
|
||||
}
|
||||
insertDataToRecordTable(xTextCursor, DataVector, RecordFieldCount);
|
||||
} else {
|
||||
CurReportDocument.unlockallControllers();
|
||||
return;
|
||||
else
|
||||
{
|
||||
insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblProgressDataImport",
|
||||
new String[] { "FontDescriptor", "Height", "Label", "PositionX", "PositionY", "Step", "Width" },
|
||||
new Object[] { oFontDesc, new Integer(10), sProgressDataImport, new Integer(6), new Integer(24), new Integer(0), new Integer(120)});
|
||||
}
|
||||
}
|
||||
else{
|
||||
for (ColIndex = 0; ColIndex < GroupFieldCount; ColIndex++) {
|
||||
CurDBColumn = (DBColumn) CurReportDocument.DBColumnsVector.elementAt(ColIndex);
|
||||
Object oValue = "";
|
||||
addLinkedTextSection(xTextCursor, COPYOFGROUPSECTION + Integer.toString(ColIndex + 1), CurDBColumn, oValue);
|
||||
}
|
||||
addLinkedTextSection(xTextCursor, COPYOFRECORDSECTION, null, null);
|
||||
Object[][] RecordArray = new Object[1][RecordFieldCount];
|
||||
for (int i = 0; i < RecordArray[0].length; i++){
|
||||
RecordArray[0][i] = Any.VOID;
|
||||
}
|
||||
XTextTable xTextTable = CurReportDocument.oTextTableHandler.getlastTextTable();
|
||||
OfficeDocument.ArraytoCellRange(RecordArray, xTextTable, 0, 1);
|
||||
}
|
||||
CurReportDocument.oTextSectionHandler.breakLinkofTextSections();
|
||||
} catch (Exception exception) {
|
||||
} catch (java.lang.Exception javaexception) {
|
||||
javaexception.printStackTrace(System.out);
|
||||
}
|
||||
CurReportDocument.unlockallControllers();
|
||||
CurReportDocument.setLayoutSectionsVisible(false);
|
||||
CurReportDocument.removeCopiedTextSections();
|
||||
CurReportDocument.oTextSectionHandler.removeInvisibleTextSections();
|
||||
CurReportDocument.removeLayoutTextTables();
|
||||
}
|
||||
insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblCurProgress",
|
||||
new String[] { "Height", "Label", "PositionX", "PositionY", "Step", "Width" },
|
||||
new Object[] { new Integer(10), "", new Integer(12), new Integer(42), new Integer(0), new Integer(120)});
|
||||
|
||||
|
||||
public void insertDataToRecordTable(XTextCursor xTextCursor, Vector DataVector, int FieldCount) {
|
||||
int DataLength = DataVector.size();
|
||||
if ((FieldCount > 0) && (DataLength > 0)) {
|
||||
addLinkedTextSection(xTextCursor, COPYOFRECORDSECTION, null, null);
|
||||
Object[][] RecordArray = new Object[DataLength][FieldCount];
|
||||
DataVector.copyInto(RecordArray);
|
||||
XTextTable xTextTable = CurReportDocument.oTextTableHandler.getlastTextTable();
|
||||
if (DataLength > 1)
|
||||
xTextTable.getRows().insertByIndex(xTextTable.getRows().getCount(), DataLength - 1);
|
||||
OfficeDocument.ArraytoCellRange(RecordArray, xTextTable, 0, 1);
|
||||
}
|
||||
DataVector.removeAllElements();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void updateProgressDisplay(int iCounter) {
|
||||
try {
|
||||
if (iCounter % 10 == 0) {
|
||||
sProgressCurRecord = JavaTools.replaceSubString(sProgressBaseCurRecord, String.valueOf(iCounter), "<COUNT>");
|
||||
setControlProperty("lblCurProgress", "Label", sProgressCurRecord);
|
||||
insertButton("cmdCancel", 10000, this,
|
||||
new String[] { "Height", "HelpURL", "PositionX", "PositionY", "Step", "TabIndex", "Width", "Label" },
|
||||
new Object[] { new Integer(14), "HID:34321", new Integer(74), new Integer(58), new Integer(0), new Short((short) 1), new Integer(40), sStop });
|
||||
createWindowPeer(CurReportDocument.getWizardParent());
|
||||
calculateDialogPosition(CurReportDocument.getFrame().getComponentWindow().getPosSize());
|
||||
xWindow.setVisible(true);
|
||||
super.xReschedule.reschedule();
|
||||
return;
|
||||
}
|
||||
} catch (java.lang.Exception jexception) {
|
||||
jexception.printStackTrace(System.out);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
exception.printStackTrace(System.out);
|
||||
// return;
|
||||
}
|
||||
catch (java.lang.Exception jexception)
|
||||
{
|
||||
jexception.printStackTrace(System.out);
|
||||
// return;
|
||||
}
|
||||
}
|
||||
|
||||
public XNamed addLinkedTextSection(XTextCursor xTextCursor, String sLinkRegion, DBColumn CurDBColumn, Object CurGroupValue) {
|
||||
XNamed xNamedTextSection = null;
|
||||
try {
|
||||
XInterface xTextSection = (XInterface) CurReportDocument.xMSFDoc.createInstance("com.sun.star.text.TextSection");
|
||||
XTextContent xTextSectionContent = (XTextContent) UnoRuntime.queryInterface(XTextContent.class, xTextSection);
|
||||
xNamedTextSection = (XNamed) UnoRuntime.queryInterface(XNamed.class, xTextSection);
|
||||
xTextCursor.gotoEnd(false);
|
||||
xTextCursor.getText().insertTextContent(xTextCursor, xTextSectionContent, true);
|
||||
Helper.setUnoPropertyValue(xTextSection, "LinkRegion", sLinkRegion);
|
||||
if (CurDBColumn != null){
|
||||
boolean bIsGroupTable = (sLinkRegion.equals(RECORDSECTION) != true);
|
||||
if (bIsGroupTable == true){
|
||||
XTextTable xTextTable = CurReportDocument.oTextTableHandler.getlastTextTable();
|
||||
XCellRange xCellRange = (XCellRange) UnoRuntime.queryInterface(XCellRange.class, xTextTable);
|
||||
CurDBColumn.modifyCellContent(xCellRange, CurGroupValue);
|
||||
// public void importReportData(final XMultiServiceFactory xMSF, final Dataimport CurDataimport, final ReportTextDocument CurReportDocument.getDoc()) {
|
||||
public void importReportData(final XMultiServiceFactory _xMSF, final Dataimport _CurDataimport, IReportDocument _CurReportDocument, PropertyValue[] _properties)
|
||||
{
|
||||
if (CurReportDocument.reconnectToDatabase(_xMSF, _properties))
|
||||
{
|
||||
// The following calls to remove the Sections must occur after the connection to the database
|
||||
modifyFontWeight("lblProgressDBConnection", com.sun.star.awt.FontWeight.NORMAL);
|
||||
modifyFontWeight("lblProgressDataImport", com.sun.star.awt.FontWeight.BOLD);
|
||||
CurReportDocument.insertDatabaseDatatoReportDocument(_xMSF);
|
||||
}
|
||||
xComponent.dispose();
|
||||
CurReportDocument.getRecordParser().dispose();
|
||||
}
|
||||
} catch (Exception exception) {
|
||||
exception.printStackTrace(System.out);
|
||||
}
|
||||
return xNamedTextSection;
|
||||
}
|
||||
|
||||
|
||||
public void replaceUserFields() {
|
||||
DBColumn CurDBColumn;
|
||||
XTextCursor xNameCellCursor;
|
||||
String FieldContent;
|
||||
int iCount = CurReportDocument.DBColumnsVector.size();
|
||||
for (int i = 0; i < iCount; i++) {
|
||||
CurDBColumn = (DBColumn) CurReportDocument.DBColumnsVector.elementAt(i);
|
||||
xNameCellCursor = ReportDocument.createTextCursor(CurDBColumn.xNameCell);
|
||||
xNameCellCursor.gotoStart(false);
|
||||
FieldContent = CurReportDocument.oTextFieldHandler.getUserFieldContent(xNameCellCursor);
|
||||
if (!FieldContent.equals("")){
|
||||
xNameCellCursor.goRight((short) 1, true);
|
||||
xNameCellCursor.setString(FieldContent);
|
||||
}
|
||||
public void createReport(final XMultiServiceFactory xMSF,XTextDocument _textDocument, PropertyValue[] properties)
|
||||
{
|
||||
// CurReportDocument = new ReportTextDocument(xMSF, _textDocument,m_oResource);
|
||||
CurReportDocument = ReportTextImplementation.create(xMSF, _textDocument,m_oResource);
|
||||
// CurProperties = properties;
|
||||
showProgressDisplay(xMSF, true);
|
||||
importReportData(xMSF, this, CurReportDocument, properties);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue