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:
Kurt Zenker 2008-06-25 14:54:24 +00:00
parent deb5f9bbe4
commit 5ecfd2e8dd

View file

@ -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);
}
}
}