diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2011-08-06 13:05:26 -0500 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2011-08-06 13:05:26 -0500 |
commit | 801936459fa8cd5d452f875d14da7f34a9117f08 (patch) | |
tree | b68a8d557f97d432db6933f487ebdff842eee600 | |
parent | bf202438d88e650b69c9817f003f45aed1f58996 (diff) | |
parent | f8c7607ea291d7e7d976a9485abc1761627eb654 (diff) |
Merge remote branch 'extensions/master'MELD_LIBREOFFICE_REPOS
* extensions/master: (978 commits)
get this building for me
Version 3.4.2.3, tag libreoffice-3.4.2.3 (3.4.2-rc3)
enable l10n of presenter screen
oops Bjoern's .gitattributes link got commited by mistake
enable l10n of presenter screen
Version 3.4.2.2, tag libreoffice-3.4.2.2 (3.4.2-rc2)
poppler 0.17.0 changed its api for no some reason or other
Branch libreoffice-3-4-2
Version 3.4.2.1, tag libreoffice-3.4.2.1 (3.4.2-rc1)
Remove component_getImplementationEnvironment
hotfix to include localizations of Presenter screen extension
hotfix to include localizations of Presenter screen extension
Goodbye to CWS_WORK_STAMP
use OString::equalsL
fixing rebase errors
ause130: #i117218# change .idl handling to gnu make
CWS gnumake4: reimplement basegfx_s hack for new build system [hg:c943ed591aff]
Use DESKTOP and NATIVE where appropriate
Version 3.4.1.1, tag libreoffice-3.4.1.1 (3.4.1-rc1)
createFromAscii -> RTL_CONSTASCII_USTRINGPARAM
...
899 files changed, 243184 insertions, 0 deletions
diff --git a/apache-commons/java/codec/makefile.mk b/apache-commons/java/codec/makefile.mk new file mode 100644 index 000000000000..84643530eb16 --- /dev/null +++ b/apache-commons/java/codec/makefile.mk @@ -0,0 +1,75 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=..$/.. + +PRJNAME=apache-commons +TARGET=commons-codec + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + +# override buildfile +ANT_BUILDFILE=build.xml + +.INCLUDE : antsettings.mk + +.IF "$(SOLAR_JAVA)" != "" && "$(ENABLE_MEDIAWIKI)" == "YES" +# --- Files -------------------------------------------------------- + +TARFILE_NAME=commons-codec-1.3-src +TARFILE_MD5=af3c3acf618de6108d65fcdc92b492e1 + +TARFILE_ROOTDIR=commons-codec-1.3 + +PATCH_FILES=$(PRJ)$/patches$/codec.patch + +OUT2CLASS=dist$/commons-codec-1.3.jar + +ANT_OPTS+="-Dfile.encoding=ISO-8859-1" +.EXPORT : ANT_OPTS + +.IF "$(JAVACISGCJ)"=="yes" +JAVA_HOME= +.EXPORT : JAVA_HOME +BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +.ELSE +BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar +.ENDIF + +.ENDIF # $(SOLAR_JAVA)!= "" + +# --- Targets ------------------------------------------------------ + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk + +.IF "$(SOLAR_JAVA)" != "" && "$(ENABLE_MEDIAWIKI)" == "YES" +.INCLUDE : tg_ext.mk +.ENDIF + diff --git a/apache-commons/java/httpclient/makefile.mk b/apache-commons/java/httpclient/makefile.mk new file mode 100644 index 000000000000..55302e8c2f6a --- /dev/null +++ b/apache-commons/java/httpclient/makefile.mk @@ -0,0 +1,78 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=..$/.. + +PRJNAME=apache-commons +TARGET=commons-httpclient + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + +# override buildfile +ANT_BUILDFILE=build.xml + +.INCLUDE : antsettings.mk + +TAR!:=$(GNUTAR) + +.IF "$(SOLAR_JAVA)" != "" && "$(ENABLE_MEDIAWIKI)" == "YES" +# --- Files -------------------------------------------------------- + +TARFILE_NAME=commons-httpclient-3.1-src +TARFILE_MD5=2c9b0f83ed5890af02c0df1c1776f39b + +TARFILE_ROOTDIR=commons-httpclient-3.1 + +OUT2CLASS=dist$/commons-httpclient.jar + +COMMONS_LOGGING_JAR=..$/..$/..$/..$/$(INPATH)$/class$/commons-logging-1.1.1-SNAPSHOT.jar +COMMONS_CODEC_JAR=..$/..$/..$/..$/$/$(INPATH)$/class$/commons-codec-1.3.jar + +ANT_OPTS+="-Dfile.encoding=ISO-8859-1" +.EXPORT : ANT_OPTS + +.IF "$(JAVACISGCJ)"=="yes" +JAVA_HOME= +.EXPORT : JAVA_HOME +BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -Dcommons-logging.jar=$(COMMONS_LOGGING_JAR) -Dcommons-codec.jar=$(COMMONS_CODEC_JAR) -f $(ANT_BUILDFILE) dist +.ELSE +BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dcommons-logging.jar=$(COMMONS_LOGGING_JAR) -Dcommons-codec.jar=$(COMMONS_CODEC_JAR) -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) dist +.ENDIF + +.ENDIF # $(SOLAR_JAVA)!= "" + +# --- Targets ------------------------------------------------------ + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk + +.IF "$(SOLAR_JAVA)" != "" && "$(ENABLE_MEDIAWIKI)" == "YES" +.INCLUDE : tg_ext.mk +.ENDIF + diff --git a/apache-commons/java/lang/makefile.mk b/apache-commons/java/lang/makefile.mk new file mode 100644 index 000000000000..88a7e1f78dc8 --- /dev/null +++ b/apache-commons/java/lang/makefile.mk @@ -0,0 +1,75 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=..$/.. + +PRJNAME=apache-commons +TARGET=commons-lang + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + +# override buildfile +ANT_BUILDFILE=build.xml + +.INCLUDE : antsettings.mk + +TAR!:=$(GNUTAR) + +.IF "$(SOLAR_JAVA)" != "" && "$(ENABLE_MEDIAWIKI)" == "YES" +# --- Files -------------------------------------------------------- + +TARFILE_NAME=commons-lang-2.3-src +TARFILE_MD5=2ae988b339daec234019a7066f96733e + +TARFILE_ROOTDIR=commons-lang-2.3-src + +OUT2CLASS=dist$/commons-lang-2.3.jar + +ANT_OPTS+="-Dfile.encoding=ISO-8859-1" +.EXPORT : ANT_OPTS + +.IF "$(JAVACISGCJ)"=="yes" +JAVA_HOME= +.EXPORT : JAVA_HOME +BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +.ELSE +BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -f $(ANT_BUILDFILE) jar +.ENDIF + +.ENDIF # $(SOLAR_JAVA)!= "" + +# --- Targets ------------------------------------------------------ + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk + +.IF "$(SOLAR_JAVA)" != "" && "$(ENABLE_MEDIAWIKI)" == "YES" +.INCLUDE : tg_ext.mk +.ENDIF + diff --git a/apache-commons/java/logging/makefile.mk b/apache-commons/java/logging/makefile.mk new file mode 100644 index 000000000000..cc1f1a6e8aaa --- /dev/null +++ b/apache-commons/java/logging/makefile.mk @@ -0,0 +1,81 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=..$/.. + +PRJNAME=apache-commons +TARGET=commons-logging + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + +# override buildfile +ANT_BUILDFILE=build.xml + +.INCLUDE : antsettings.mk + +.IF "$(SOLAR_JAVA)" != "" && ( "$(ENABLE_MEDIAWIKI)" == "YES" || "$(ENABLE_REPORTBUILDER)" == "YES" ) +# --- Files -------------------------------------------------------- + +TARFILE_NAME=commons-logging-1.1.1-src +TARFILE_MD5=3c219630e4302863a9a83d0efde889db + +TARFILE_ROOTDIR=commons-logging-1.1.1-src + +PATCH_FILES=$(PRJ)$/patches$/logging.patch + +CONVERTFILES=build.xml + +OUT2CLASS=target$/commons-logging-1.1.1-SNAPSHOT.jar + +ANT_OPTS+="-Dfile.encoding=ISO-8859-1" +.EXPORT : ANT_OPTS + +.IF "$(SYSTEM_TOMCAT)" != "YES" +SERVLETAPI_JAR := $(SOLARVER)$/$(INPATH)$/bin$(UPDMINOREXT)$/servlet-api.jar +.ENDIF + +.IF "$(JAVACISGCJ)"=="yes" +JAVA_HOME= +.EXPORT : JAVA_HOME +BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -Dservletapi.jar=$(SERVLETAPI_JAR) -f $(ANT_BUILDFILE) compile build-jar +.ELSE +BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -f $(ANT_BUILDFILE) -Dservletapi.jar=$(SERVLETAPI_JAR) compile build-jar +.ENDIF + +.ENDIF # $(SOLAR_JAVA)!= "" + +# --- Targets ------------------------------------------------------ + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk + +.IF "$(SOLAR_JAVA)" != "" && ( "$(ENABLE_MEDIAWIKI)" == "YES" || "$(ENABLE_REPORTBUILDER)" == "YES" ) +.INCLUDE : tg_ext.mk +.ENDIF + diff --git a/apache-commons/patches/codec.patch b/apache-commons/patches/codec.patch new file mode 100644 index 000000000000..dea25ad263d2 --- /dev/null +++ b/apache-commons/patches/codec.patch @@ -0,0 +1,17 @@ +--- misc/build/commons-codec-1.3/build.xml-old 2008-01-31 15:28:58.000000000 +0100 ++++ misc/build/commons-codec-1.3/build.xml 2008-01-31 15:29:21.000000000 +0100 +@@ -90,14 +90,12 @@ + </target>
+ <target name="dist" depends="compile,javadoc" description="Create binary distribution">
+ <mkdir dir="${dist.home}"/>
+- <copy file="../LICENSE" todir="${dist.home}"/>
+ <copy file="${basedir}/RELEASE-NOTES.txt" todir="${dist.home}"/>
+ <antcall target="jar"/>
+ </target>
+ <target name="jar" depends="compile" description="Create jar">
+ <mkdir dir="${dist.home}"/>
+ <mkdir dir="${build.home}/classes/META-INF"/>
+- <copy file="../LICENSE" tofile="${build.home}/classes/META-INF/LICENSE.txt"/>
+ <jar jarfile="${dist.home}/${final.name}.jar" basedir="${build.home}/classes" manifest="${build.home}/conf/MANIFEST.MF"/>
+ </target>
+ <target name="install-jar" depends="jar" description="--> Installs jar file in ${lib.repo}">
diff --git a/apache-commons/patches/logging.patch b/apache-commons/patches/logging.patch new file mode 100644 index 000000000000..63b93dcbd6f2 --- /dev/null +++ b/apache-commons/patches/logging.patch @@ -0,0 +1,15 @@ +--- misc/commons-logging-1.1.1-src/build.xml 2007-11-22 00:27:52.000000000 +0100 ++++ misc/build/commons-logging-1.1.1-src/build.xml 2008-06-24 14:23:56.316301736 +0200 +@@ -127,10 +127,10 @@ + <!-- ========== Compiler Defaults ========================================= --> + + <!-- Version of java class files to generate. --> +- <property name="target.version" value="1.1"/> ++ <property name="target.version" value="1.3"/> + + <!-- Version of java source to accept --> +- <property name="source.version" value="1.2"/> ++ <property name="source.version" value="1.3"/> + + <!-- Should Java compilations set the 'debug' compiler option? --> + <property name="compile.debug" value="true"/> diff --git a/apache-commons/prj/build.lst b/apache-commons/prj/build.lst new file mode 100644 index 000000000000..c509ce0336dd --- /dev/null +++ b/apache-commons/prj/build.lst @@ -0,0 +1,6 @@ +ac apache-commons : solenv TOMCAT:tomcat NULL +ac apache-commons usr1 - all ac_mkout NULL +ac apache-commons\java\codec nmake - all ac_codec NULL +ac apache-commons\java\lang nmake - all ac_lang NULL +ac apache-commons\java\logging nmake - all ac_logging NULL +ac apache-commons\java\httpclient nmake - all ac_httpclient ac_logging ac_codec NULL diff --git a/apache-commons/prj/d.lst b/apache-commons/prj/d.lst new file mode 100644 index 000000000000..03eec2a853ad --- /dev/null +++ b/apache-commons/prj/d.lst @@ -0,0 +1,5 @@ +..\%__SRC%\class\commons-logging-1.1.1-SNAPSHOT.jar %_DEST%\bin\commons-logging-1.1.1.jar +..\%__SRC%\class\commons-codec-1.3.jar %_DEST%\bin\commons-codec-1.3.jar +..\%__SRC%\class\commons-httpclient.jar %_DEST%\bin\commons-httpclient-3.1.jar +..\%__SRC%\class\commons-lang-2.3.jar %_DEST%\bin\commons-lang-2.3.jar + diff --git a/ct2n/ConvertTextToNumber-1.3.2-no-license.patch b/ct2n/ConvertTextToNumber-1.3.2-no-license.patch new file mode 100644 index 000000000000..1d8b805ceaa8 --- /dev/null +++ b/ct2n/ConvertTextToNumber-1.3.2-no-license.patch @@ -0,0 +1,16 @@ +diff -purN misc/description.xml misc/build/description.xml +--- misc/description.xml 2009-02-03 00:07:30.000000000 +0100 ++++ misc/build/description.xml 2010-03-05 21:38:48.000000000 +0100 +@@ -5,12 +5,4 @@ + xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="nl.nouenoff.ct2n"/>
+ <version value="1.3.2"/>
+- <!-- <dependencies>
+-
+- </dependencies> -->
+- <registration>
+- <simple-license accept-by="admin" default-license-id="ID0" suppress-on-update="true" >
+- <license-text xlink:href="registration/COPYING" lang="en" license-id="ID0" />
+- </simple-license>
+- </registration>
+ </description>
diff --git a/ct2n/ConvertTextToNumber-1.3.2-no-visible-by-default.patch b/ct2n/ConvertTextToNumber-1.3.2-no-visible-by-default.patch new file mode 100644 index 000000000000..e764b55e3b8b --- /dev/null +++ b/ct2n/ConvertTextToNumber-1.3.2-no-visible-by-default.patch @@ -0,0 +1,104 @@ +diff -purN misc/Office/UI/BaseWindowState.xcu misc/build/Office/UI/BaseWindowState.xcu +--- misc/Office/UI/BaseWindowState.xcu 2008-02-09 23:26:50.000000000 +0100 ++++ misc/build/Office/UI/BaseWindowState.xcu 2010-03-05 21:36:37.000000000 +0100 +@@ -9,6 +9,9 @@ + <prop oor:name="UIName" oor:type="xs:string">
+ <value>CT2N</value>
+ </prop>
++ <prop oor:name="Visible" oor:type="xs:boolean">
++ <value>false</value>
++ </prop>
+ </node>
+ </node>
+ </node>
+diff -purN misc/Office/UI/BasicIDEWindowState.xcu misc/build/Office/UI/BasicIDEWindowState.xcu +--- misc/Office/UI/BasicIDEWindowState.xcu 2008-02-09 23:26:50.000000000 +0100 ++++ misc/build/Office/UI/BasicIDEWindowState.xcu 2010-03-05 21:36:46.000000000 +0100 +@@ -9,6 +9,9 @@ + <prop oor:name="UIName" oor:type="xs:string">
+ <value>CT2N</value>
+ </prop>
++ <prop oor:name="Visible" oor:type="xs:boolean">
++ <value>false</value>
++ </prop>
+ </node>
+ </node>
+ </node>
+diff -purN misc/Office/UI/CalcWindowState.xcu misc/build/Office/UI/CalcWindowState.xcu +--- misc/Office/UI/CalcWindowState.xcu 2008-02-09 23:26:50.000000000 +0100 ++++ misc/build/Office/UI/CalcWindowState.xcu 2010-03-05 21:36:32.000000000 +0100 +@@ -9,6 +9,9 @@ + <prop oor:name="UIName" oor:type="xs:string">
+ <value>CT2N</value>
+ </prop>
++ <prop oor:name="Visible" oor:type="xs:boolean">
++ <value>false</value>
++ </prop>
+ </node>
+ </node>
+ </node>
+diff -purN misc/Office/UI/DrawWindowState.xcu misc/build/Office/UI/DrawWindowState.xcu +--- misc/Office/UI/DrawWindowState.xcu 2008-02-09 23:26:50.000000000 +0100 ++++ misc/build/Office/UI/DrawWindowState.xcu 2010-03-05 21:36:54.000000000 +0100 +@@ -9,6 +9,9 @@ + <prop oor:name="UIName" oor:type="xs:string">
+ <value>CT2N</value>
+ </prop>
++ <prop oor:name="Visible" oor:type="xs:boolean">
++ <value>false</value>
++ </prop>
+ </node>
+ </node>
+ </node>
+diff -purN misc/Office/UI/ImpressWindowState.xcu misc/build/Office/UI/ImpressWindowState.xcu +--- misc/Office/UI/ImpressWindowState.xcu 2008-02-09 23:26:50.000000000 +0100 ++++ misc/build/Office/UI/ImpressWindowState.xcu 2010-03-05 21:36:59.000000000 +0100 +@@ -9,6 +9,9 @@ + <prop oor:name="UIName" oor:type="xs:string">
+ <value>CT2N</value>
+ </prop>
++ <prop oor:name="Visible" oor:type="xs:boolean">
++ <value>false</value>
++ </prop>
+ </node>
+ </node>
+ </node>
+diff -purN misc/Office/UI/MathWindowState.xcu misc/build/Office/UI/MathWindowState.xcu +--- misc/Office/UI/MathWindowState.xcu 2008-02-09 23:26:50.000000000 +0100 ++++ misc/build/Office/UI/MathWindowState.xcu 2010-03-05 21:37:03.000000000 +0100 +@@ -9,6 +9,9 @@ + <prop oor:name="UIName" oor:type="xs:string">
+ <value>CT2N</value>
+ </prop>
++ <prop oor:name="Visible" oor:type="xs:boolean">
++ <value>false</value>
++ </prop>
+ </node>
+ </node>
+ </node>
+diff -purN misc/Office/UI/StartModuleWindowState.xcu misc/build/Office/UI/StartModuleWindowState.xcu +--- misc/Office/UI/StartModuleWindowState.xcu 2008-02-09 23:26:50.000000000 +0100 ++++ misc/build/Office/UI/StartModuleWindowState.xcu 2010-03-05 21:37:09.000000000 +0100 +@@ -9,6 +9,9 @@ + <prop oor:name="UIName" oor:type="xs:string">
+ <value>CT2N</value>
+ </prop>
++ <prop oor:name="Visible" oor:type="xs:boolean">
++ <value>false</value>
++ </prop>
+ </node>
+ </node>
+ </node>
+diff -purN misc/Office/UI/WriterWindowState.xcu misc/build/Office/UI/WriterWindowState.xcu +--- misc/Office/UI/WriterWindowState.xcu 2008-02-09 23:26:50.000000000 +0100 ++++ misc/build/Office/UI/WriterWindowState.xcu 2010-03-05 21:37:17.000000000 +0100 +@@ -9,6 +9,9 @@ + <prop oor:name="UIName" oor:type="xs:string">
+ <value>CT2N</value>
+ </prop>
++ <prop oor:name="Visible" oor:type="xs:boolean">
++ <value>false</value>
++ </prop>
+ </node>
+ </node>
+ </node>
diff --git a/ct2n/delzip b/ct2n/delzip new file mode 100644 index 000000000000..00d6fa1d41c7 --- /dev/null +++ b/ct2n/delzip @@ -0,0 +1,2 @@ +*.orig +so_*_ct2n diff --git a/ct2n/makefile.mk b/ct2n/makefile.mk new file mode 100644 index 000000000000..62e70521d3f2 --- /dev/null +++ b/ct2n/makefile.mk @@ -0,0 +1,70 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2008 by Sun Microsystems, Inc. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# $RCSfile: makefile.mk,v $ +# +# $Revision: 1.10 $ +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=. + +PRJNAME=ct2n +TARGET=ct2n + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + +# --- Files -------------------------------------------------------- + +TARFILE_MD5=451ccf439a36a568653b024534669971 +TARFILE_NAME=ConvertTextToNumber-1.3.2 +TARFILE_ROOTDIR=. +BUILD_DIR=. + +PATCH_FILES=\ + ConvertTextToNumber-1.3.2-no-license.patch \ + ConvertTextToNumber-1.3.2-no-visible-by-default.patch + +CONFIGURE_DIR= +CONFIGURE_ACTION= +CONFIGURE_FLAGS= +BUILD_ACTION= + +ZIP1TARGET=ConvertTextToNumber +ZIP1EXT=.oxt +ZIP1FLAGS=-u -r +ZIP1DIR=$(MISC)/build$/$(TARFILE_ROOTDIR) +ZIP1LIST= * -x "*.orig" -x "so_*_ct2n" +ZIP1DEPS=$(PACKAGE_DIR)/$(PREDELIVER_FLAG_FILE) + +# --- Targets ------------------------------------------------------ + +.INCLUDE : set_ext.mk +.INCLUDE : tg_ext.mk +.INCLUDE : target.mk + +ZIP1TARGET : $(PACKAGE_DIR)/$(PREDELIVER_FLAG_FILE) diff --git a/ct2n/prj/build.lst b/ct2n/prj/build.lst new file mode 100644 index 000000000000..714d9265d372 --- /dev/null +++ b/ct2n/prj/build.lst @@ -0,0 +1,3 @@ +ct2n ct2n : solenv NULL +ct2n ct2n usr1 - all ct2n_mkout NULL +ct2n ct2n nmake - all ct2n_ct2n NULL diff --git a/ct2n/prj/d.lst b/ct2n/prj/d.lst new file mode 100644 index 000000000000..bb394d57baef --- /dev/null +++ b/ct2n/prj/d.lst @@ -0,0 +1 @@ +..\%__SRC%\bin\ConvertTextToNumber*.oxt %_DEST%\bin\* diff --git a/jfreereport/java/flute/makefile.mk b/jfreereport/java/flute/makefile.mk new file mode 100644 index 000000000000..0e4d28b173a2 --- /dev/null +++ b/jfreereport/java/flute/makefile.mk @@ -0,0 +1,79 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=..$/.. + +PRJNAME=jfreereport +TARGET=flute + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk +.INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)$/version.mk + +.IF "$(SOLAR_JAVA)" != "" +# --- Files -------------------------------------------------------- +.IF "$(L10N_framework)"=="" +TARFILE_NAME=$(TARGET)-$(FLUTE_VERSION) +TARFILE_MD5=d8bd5eed178db6e2b18eeed243f85aa8 +# TARFILE_ROOTDIR=$(TARGET) +TARFILE_IS_FLAT=true +PATCH_FILES=$(PACKAGE_DIR)$/$(TARGET).patch +CONVERTFILES=common_build.xml + +.IF "$(JAVACISGCJ)"=="yes" +JAVA_HOME= +.EXPORT : JAVA_HOME +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(FLUTE_VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +.ELSE +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(FLUTE_VERSION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar +.ENDIF + +.ENDIF # $(SOLAR_JAVA)!= "" + +# --- Targets ------------------------------------------------------ +.ENDIF + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk + +.IF "$(SOLAR_JAVA)" != "" +.INCLUDE : tg_ext.mk +.IF "$(L10N_framework)"=="" +ALLTAR : $(CLASSDIR)$/$(TARGET)-$(FLUTE_VERSION).jar + +$(PACKAGE_DIR)$/$(TARGET).patch : + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + ( $(TYPE:s/+//) $(PRJ)$/patches$/common_build.patch | $(SED) 's/libloader-1.1.3/$(TARGET)-$(FLUTE_VERSION)/g' > $(PACKAGE_DIR)$/$(TARGET).patch ) + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)$/so_converted_$(TARGET).dummy + +$(CLASSDIR)$/$(TARGET)-$(FLUTE_VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/dist$/$(TARGET)-$(FLUTE_VERSION).jar $(CLASSDIR)$/$(TARGET)-$(FLUTE_VERSION).jar +.ENDIF +.ENDIF + diff --git a/jfreereport/java/jfreereport/makefile.mk b/jfreereport/java/jfreereport/makefile.mk new file mode 100644 index 000000000000..fb082f9058e5 --- /dev/null +++ b/jfreereport/java/jfreereport/makefile.mk @@ -0,0 +1,70 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=..$/.. + +PRJNAME=jfreereport +TARGET=flow-engine + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk +.INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)$/version.mk + +.IF "$(SOLAR_JAVA)" != "" +# --- Files -------------------------------------------------------- +.IF "$(L10N_framework)"=="" +TARFILE_NAME=$(TARGET)-$(FLOW_ENGINE_VERSION) +TARFILE_IS_FLAT=true +TARFILE_MD5=ba2930200c9f019c2d93a8c88c651a0f +PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch +CONVERTFILES=build.xml + +.IF "$(JAVACISGCJ)"=="yes" +JAVA_HOME= +.EXPORT : JAVA_HOME +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +.ELSE +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar +.ENDIF + +.ENDIF # $(SOLAR_JAVA)!= "" +.ENDIF +# --- Targets ------------------------------------------------------ + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk + +.IF "$(SOLAR_JAVA)" != "" +.INCLUDE : tg_ext.mk +.IF "$(L10N_framework)"=="" +ALLTAR : $(CLASSDIR)$/$(TARGET)-$(FLOW_ENGINE_VERSION).jar +$(CLASSDIR)$/$(TARGET)-$(FLOW_ENGINE_VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/build$/lib$/$(TARGET).jar $(CLASSDIR)$/$(TARGET)-$(FLOW_ENGINE_VERSION).jar +.ENDIF +.ENDIF diff --git a/jfreereport/java/libbase/makefile.mk b/jfreereport/java/libbase/makefile.mk new file mode 100644 index 000000000000..2c5fc5195aa5 --- /dev/null +++ b/jfreereport/java/libbase/makefile.mk @@ -0,0 +1,91 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=../.. + +PRJNAME=jfreereport +TARGET=libbase +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk +.INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)/version.mk + +.IF "$(SOLAR_JAVA)" != "" +# --- Files -------------------------------------------------------- + +TARFILE_NAME=$(TARGET)-$(LIBBASE_VERSION) +TARFILE_MD5=eeb2c7ddf0d302fba4bfc6e97eac9624 +#TARFILE_ROOTDIR=$(TARGET) +TARFILE_IS_FLAT=true + +PATCH_FILES=$(PACKAGE_DIR)/$(TARGET).patch $(PRJ)/patches/$(TARGET)-$(LIBBASE_VERSION)-deprecated.patch +CONVERTFILES=common_build.xml + +.IF "$(JAVACISGCJ)"=="yes" +JAVA_HOME= +.EXPORT : JAVA_HOME +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBBASE_VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +.ELSE +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBBASE_VERSION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar +.ENDIF + +.ENDIF # $(SOLAR_JAVA)!= "" + +# --- Targets ------------------------------------------------------ + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk + +.IF "$(SOLAR_JAVA)" != "" +.IF "$(L10N_framework)"=="" +.INCLUDE : tg_ext.mk + +ALLTAR : $(CLASSDIR)/$(TARGET)-$(LIBBASE_VERSION).jar + +$(PACKAGE_DIR)/$(TARGET).patch : + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + ( $(TYPE:s/+//) $(PRJ)/patches/common_build.patch | $(SED) 's/libloader-1.1.3/$(TARGET)-$(LIBBASE_VERSION)/g' > $(PACKAGE_DIR)/$(TARGET).patch ) + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)/so_converted_$(TARGET).dummy + +# XCLASSPATH/CLASSPATH does not work and we only can give lib once. But +# the build.xmls fortunately take *.jar out of lib so we can copy our +# commons-logging.jar here - yes, even in the system-apache commons case. +# Sucks. +$(PACKAGE_DIR)/$(CONFIGURE_FLAG_FILE) : $(CLASSDIR)/commons-logging.jar + +$(CLASSDIR)/commons-logging.jar : +.IF "$(SYSTEM_APACHE_COMMONS)" != "YES" + $(COPY) $(SOLARBINDIR)/commons-logging-1.1.1.jar $(CLASSDIR)/commons-logging.jar +.ELSE + $(COPY) $(COMMONS_LOGGING_JAR) $(CLASSDIR)/commons-logging.jar +.ENDIF + +$(CLASSDIR)/$(TARGET)-$(LIBBASE_VERSION).jar : $(CLASSDIR)/commons-logging.jar $(PACKAGE_DIR)/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/dist/$(TARGET)-$(LIBBASE_VERSION).jar $(CLASSDIR)/$(TARGET)-$(LIBBASE_VERSION).jar +.ENDIF +.ENDIF diff --git a/jfreereport/java/libfonts/makefile.mk b/jfreereport/java/libfonts/makefile.mk new file mode 100644 index 000000000000..cffe2a999f12 --- /dev/null +++ b/jfreereport/java/libfonts/makefile.mk @@ -0,0 +1,78 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=../.. + +PRJNAME=jfreereport +TARGET=libfonts + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk +.INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)/version.mk + +.IF "$(SOLAR_JAVA)" != "" +# --- Files -------------------------------------------------------- +.IF "$(L10N_framework)"=="" +TARFILE_NAME=$(TARGET)-$(LIBFONTS_VERSION) +TARFILE_IS_FLAT=true +TARFILE_MD5=3bdf40c0d199af31923e900d082ca2dd +PATCH_FILES=$(PACKAGE_DIR)/$(TARGET).patch $(PRJ)/patches/$(TARGET)-$(LIBFONTS_VERSION)-deprecated.patch +CONVERTFILES=common_build.xml + +.IF "$(JAVACISGCJ)"=="yes" +JAVA_HOME= +.EXPORT : JAVA_HOME +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBFONTS_VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +.ELSE +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBFONTS_VERSION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar +.ENDIF + +.ENDIF # $(SOLAR_JAVA)!= "" +.ENDIF +# --- Targets ------------------------------------------------------ + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk +.IF "$(L10N_framework)"=="" +.IF "$(SOLAR_JAVA)" != "" +.INCLUDE : tg_ext.mk + +ALLTAR : $(CLASSDIR)/$(TARGET)-$(LIBFONTS_VERSION).jar + +$(PACKAGE_DIR)/$(TARGET).patch : + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + ( $(TYPE:s/+//) $(PRJ)/patches/common_build.patch | $(SED) 's/libloader-1.1.3/$(TARGET)-$(LIBFONTS_VERSION)/g' > $(PACKAGE_DIR)/$(TARGET).patch ) + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)/so_converted_$(TARGET).dummy + +$(CLASSDIR)/$(TARGET)-$(LIBFONTS_VERSION).jar : $(PACKAGE_DIR)/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/dist/$(TARGET)-$(LIBFONTS_VERSION).jar $(CLASSDIR)/$(TARGET)-$(LIBFONTS_VERSION).jar + +.ENDIF +.ENDIF + diff --git a/jfreereport/java/libformula/makefile.mk b/jfreereport/java/libformula/makefile.mk new file mode 100644 index 000000000000..33ff65f7bb8d --- /dev/null +++ b/jfreereport/java/libformula/makefile.mk @@ -0,0 +1,81 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=..$/.. + +PRJNAME=jfreereport +TARGET=libformula + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk +.INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)$/version.mk + +.IF "$(SOLAR_JAVA)" != "" +# --- Files -------------------------------------------------------- +.IF "$(L10N_framework)"=="" +TARFILE_NAME=$(TARGET)-$(LIBFORMULA_VERSION) +TARFILE_IS_FLAT=true +TARFILE_MD5=3404ab6b1792ae5f16bbd603bd1e1d03 +PATCH_FILES=$(PACKAGE_DIR)$/$(TARGET).patch +CONVERTFILES=common_build.xml + +.IF "$(JAVACISGCJ)"=="yes" +JAVA_HOME= +.EXPORT : JAVA_HOME +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBFORMULA_VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +.ELSE +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBFORMULA_VERSION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar +.ENDIF + + +.ENDIF # $(SOLAR_JAVA)!= "" +.ENDIF +# --- Targets ------------------------------------------------------ + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk +.IF "$(L10N_framework)"=="" +.IF "$(SOLAR_JAVA)" != "" +.INCLUDE : tg_ext.mk + +ALLTAR : $(CLASSDIR)$/$(TARGET)-$(LIBFORMULA_VERSION).jar + +$(PACKAGE_DIR)$/$(TARGET).patch : + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + ( $(TYPE:s/+//) $(PRJ)$/patches$/common_build.patch | $(SED) 's/libloader-1.1.3/$(TARGET)-$(LIBFORMULA_VERSION)/g' > $(PACKAGE_DIR)$/$(TARGET).patch ) + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)$/so_converted_$(TARGET).dummy + +$(CLASSDIR)$/$(TARGET)-$(LIBFORMULA_VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/dist$/$(TARGET)-$(LIBFORMULA_VERSION).jar $(CLASSDIR)$/$(TARGET)-$(LIBFORMULA_VERSION).jar + +.ENDIF +# $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/source$/org$/jfree$/formula$/function$/information$/IsRef-Function.properties : +# @@-$(MKDIRHIER) $(@:d) +# $(MV) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/source$/org$/jfree$/formula$/function$/information$/isRef-Function.properties $@ +.ENDIF diff --git a/jfreereport/java/liblayout/makefile.mk b/jfreereport/java/liblayout/makefile.mk new file mode 100644 index 000000000000..7e4977d8639c --- /dev/null +++ b/jfreereport/java/liblayout/makefile.mk @@ -0,0 +1,71 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=..$/.. + +PRJNAME=jfreereport +TARGET=liblayout + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk +.INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)$/version.mk + +.IF "$(SOLAR_JAVA)" != "" +# --- Files -------------------------------------------------------- +.IF "$(L10N_framework)"=="" +TARFILE_NAME=$(TARGET)-$(LIBLAYOUT_VERSION) +TARFILE_IS_FLAT=true +TARFILE_MD5=db60e4fde8dd6d6807523deb71ee34dc +PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch +CONVERTFILES=build.xml + +.IF "$(JAVACISGCJ)"=="yes" +JAVA_HOME= +.EXPORT : JAVA_HOME +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +.ELSE +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar +.ENDIF + +.ENDIF # $(SOLAR_JAVA)!= "" +.ENDIF +# --- Targets ------------------------------------------------------ + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk +.IF "$(L10N_framework)"=="" +.IF "$(SOLAR_JAVA)" != "" +.INCLUDE : tg_ext.mk + +ALLTAR : $(CLASSDIR)$/$(TARGET)-$(LIBLAYOUT_VERSION).jar +$(CLASSDIR)$/$(TARGET)-$(LIBLAYOUT_VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/build$/lib$/$(TARGET).jar $(CLASSDIR)$/$(TARGET)-$(LIBLAYOUT_VERSION).jar + +.ENDIF +.ENDIF diff --git a/jfreereport/java/libloader/makefile.mk b/jfreereport/java/libloader/makefile.mk new file mode 100644 index 000000000000..c0741e3e9ef9 --- /dev/null +++ b/jfreereport/java/libloader/makefile.mk @@ -0,0 +1,78 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=../.. + +PRJNAME=jfreereport +TARGET=libloader + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk +.INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)/version.mk + +.IF "$(SOLAR_JAVA)" != "" +# --- Files -------------------------------------------------------- + +TARFILE_NAME=$(TARGET)-$(LIBLOADER_VERSION) +TARFILE_IS_FLAT=true +TARFILE_MD5=97b2d4dba862397f446b217e2b623e71 +PATCH_FILES=$(PACKAGE_DIR)/$(TARGET).patch $(PRJ)/patches/$(TARGET)-$(LIBLOADER_VERSION)-deprecated.patch +CONVERTFILES=common_build.xml + +.IF "$(L10N_framework)"=="" +.IF "$(JAVACISGCJ)"=="yes" +JAVA_HOME= +.EXPORT : JAVA_HOME +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBLOADER_VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +.ELSE +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBLOADER_VERSION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar +.ENDIF + +.ENDIF # $(SOLAR_JAVA)!= "" +.ENDIF +# --- Targets ------------------------------------------------------ + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk +.IF "$(L10N_framework)"=="" +.IF "$(SOLAR_JAVA)" != "" +.INCLUDE : tg_ext.mk + +ALLTAR : $(CLASSDIR)/$(TARGET)-$(LIBLOADER_VERSION).jar + +$(PACKAGE_DIR)/$(TARGET).patch : + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + ( $(TYPE:s/+//) $(PRJ)/patches/common_build.patch | $(SED) 's/libloader-1.1.3/$(TARGET)-$(LIBLOADER_VERSION)/g' > $(PACKAGE_DIR)/$(TARGET).patch ) + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)/so_converted_$(TARGET).dummy + +$(CLASSDIR)/$(TARGET)-$(LIBLOADER_VERSION).jar : $(PACKAGE_DIR)/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/dist/$(TARGET)-$(LIBLOADER_VERSION).jar $(CLASSDIR)/$(TARGET)-$(LIBLOADER_VERSION).jar + +.ENDIF +.ENDIF diff --git a/jfreereport/java/librepository/makefile.mk b/jfreereport/java/librepository/makefile.mk new file mode 100644 index 000000000000..617572ce7eb9 --- /dev/null +++ b/jfreereport/java/librepository/makefile.mk @@ -0,0 +1,78 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=../.. + +PRJNAME=jfreereport +TARGET=librepository + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk +.INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)/version.mk + +.IF "$(SOLAR_JAVA)" != "" +# --- Files -------------------------------------------------------- + +TARFILE_NAME=$(TARGET)-$(LIBREPOSITORY_VERSION) +TARFILE_IS_FLAT=true +TARFILE_MD5=8ce2fcd72becf06c41f7201d15373ed9 +PATCH_FILES=$(PACKAGE_DIR)/$(TARGET).patch $(PRJ)/patches/$(TARGET)-$(LIBREPOSITORY_VERSION)-deprecated.patch +CONVERTFILES=common_build.xml + +.IF "$(L10N_framework)"=="" +.IF "$(JAVACISGCJ)"=="yes" +JAVA_HOME= +.EXPORT : JAVA_HOME +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBREPOSITORY_VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +.ELSE +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBREPOSITORY_VERSION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar +.ENDIF + +.ENDIF # $(SOLAR_JAVA)!= "" +.ENDIF +# --- Targets ------------------------------------------------------ + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk +.IF "$(L10N_framework)"=="" +.IF "$(SOLAR_JAVA)" != "" +.INCLUDE : tg_ext.mk + +ALLTAR : $(CLASSDIR)/$(TARGET)-$(LIBREPOSITORY_VERSION).jar + +$(PACKAGE_DIR)/$(TARGET).patch : + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + ( $(TYPE:s/+//) $(PRJ)/patches/common_build.patch | $(SED) 's/libloader-1.1.3/$(TARGET)-$(LIBREPOSITORY_VERSION)/g' > $(PACKAGE_DIR)/$(TARGET).patch ) + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)/so_converted_$(TARGET).dummy + +$(CLASSDIR)/$(TARGET)-$(LIBREPOSITORY_VERSION).jar : $(PACKAGE_DIR)/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/dist/$(TARGET)-$(LIBREPOSITORY_VERSION).jar $(CLASSDIR)/$(TARGET)-$(LIBREPOSITORY_VERSION).jar + +.ENDIF +.ENDIF diff --git a/jfreereport/java/libserializer/makefile.mk b/jfreereport/java/libserializer/makefile.mk new file mode 100644 index 000000000000..d5ee7cc878c6 --- /dev/null +++ b/jfreereport/java/libserializer/makefile.mk @@ -0,0 +1,77 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=..$/.. + +PRJNAME=jfreereport +TARGET=libserializer + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk +.INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)$/version.mk + +.IF "$(SOLAR_JAVA)" != "" +# --- Files -------------------------------------------------------- +.IF "$(L10N_framework)"=="" +TARFILE_NAME=$(TARGET)-$(LIBSERIALIZER_VERSION) +TARFILE_IS_FLAT=true +TARFILE_MD5=f94d9870737518e3b597f9265f4e9803 +PATCH_FILES=$(PACKAGE_DIR)$/$(TARGET).patch +CONVERTFILES=common_build.xml + +.IF "$(JAVACISGCJ)"=="yes" +JAVA_HOME= +.EXPORT : JAVA_HOME +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBSERIALIZER_VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +.ELSE +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBSERIALIZER_VERSION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar +.ENDIF + +.ENDIF # $(SOLAR_JAVA)!= "" +.ENDIF +# --- Targets ------------------------------------------------------ + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk +.IF "$(L10N_framework)"=="" +.IF "$(SOLAR_JAVA)" != "" +.INCLUDE : tg_ext.mk + +ALLTAR : $(CLASSDIR)$/$(TARGET)-$(LIBSERIALIZER_VERSION).jar + +$(PACKAGE_DIR)$/$(TARGET).patch : + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + ( $(TYPE:s/+//) $(PRJ)$/patches$/common_build.patch | $(SED) 's/libloader-1.1.3/$(TARGET)-$(LIBSERIALIZER_VERSION)/g' > $(PACKAGE_DIR)$/$(TARGET).patch ) + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)$/so_converted_$(TARGET).dummy + +$(CLASSDIR)$/$(TARGET)-$(LIBSERIALIZER_VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/dist$/$(TARGET)-$(LIBSERIALIZER_VERSION).jar $(CLASSDIR)$/$(TARGET)-$(LIBSERIALIZER_VERSION).jar + +.ENDIF +.ENDIF diff --git a/jfreereport/java/libxml/makefile.mk b/jfreereport/java/libxml/makefile.mk new file mode 100644 index 000000000000..1ae17a1b8dd1 --- /dev/null +++ b/jfreereport/java/libxml/makefile.mk @@ -0,0 +1,77 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=..$/.. + +PRJNAME=jfreereport +TARGET=libxml + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk +.INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)$/version.mk + +.IF "$(SOLAR_JAVA)" != "" +# --- Files -------------------------------------------------------- +.IF "$(L10N_framework)"=="" +TARFILE_NAME=$(TARGET)-$(LIBXML_VERSION) +TARFILE_IS_FLAT=true +TARFILE_MD5=ace6ab49184e329db254e454a010f56d +PATCH_FILES=$(PACKAGE_DIR)$/$(TARGET).patch +CONVERTFILES=common_build.xml + +.IF "$(JAVACISGCJ)"=="yes" +JAVA_HOME= +.EXPORT : JAVA_HOME +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBXML_VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +.ELSE +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBXML_VERSION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar +.ENDIF + +.ENDIF # $(SOLAR_JAVA)!= "" +.ENDIF +# --- Targets ------------------------------------------------------ + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk +.IF "$(L10N_framework)"=="" +.IF "$(SOLAR_JAVA)" != "" +.INCLUDE : tg_ext.mk + +ALLTAR : $(CLASSDIR)$/$(TARGET)-$(LIBXML_VERSION).jar + +$(PACKAGE_DIR)$/$(TARGET).patch : + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + ( $(TYPE:s/+//) $(PRJ)$/patches$/common_build.patch | $(SED) 's/libloader-1.1.3/$(TARGET)-$(LIBXML_VERSION)/g' > $(PACKAGE_DIR)$/$(TARGET).patch ) + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)$/so_converted_$(TARGET).dummy + +$(CLASSDIR)$/$(TARGET)-$(LIBXML_VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/dist$/$(TARGET)-$(LIBXML_VERSION).jar $(CLASSDIR)$/$(TARGET)-$(LIBXML_VERSION).jar + +.ENDIF +.ENDIF diff --git a/jfreereport/java/sac/makefile.mk b/jfreereport/java/sac/makefile.mk new file mode 100644 index 000000000000..899fc258b422 --- /dev/null +++ b/jfreereport/java/sac/makefile.mk @@ -0,0 +1,83 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=..$/.. + +PRJNAME=jfreereport +TARGET=sac-1.3 + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + +.IF "$(L10N_framework)"=="" + +# override buildfile +ANT_BUILDFILE=build.xml + +.INCLUDE : antsettings.mk + +.IF "$(SOLAR_JAVA)" != "" +# --- Files -------------------------------------------------------- + +TARFILE_NAME=sacjava-1.3 +TARFILE_MD5=39bb3fcea1514f1369fcfc87542390fd + +TARFILE_ROOTDIR=$(TARGET) + +PATCH_FILES=$(PRJ)$/patches$/sac.patch + +ADDITIONAL_FILES=build.xml + +# CONVERTFILES=build.xml + +.IF "$(JAVACISGCJ)"=="yes" +JAVA_HOME= +.EXPORT : JAVA_HOME +BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dproject.revision="$(VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) all +.ELSE +BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dproject.revision="$(VERSION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) all +.ENDIF + +.ENDIF # $(SOLAR_JAVA)!= "" +.ENDIF # L10N_framework +# --- Targets ------------------------------------------------------ + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk + +.IF "$(L10N_framework)"=="" +.IF "$(SOLAR_JAVA)" != "" +.INCLUDE : tg_ext.mk + +ALLTAR : $(CLASSDIR)$/sac.jar + +$(CLASSDIR)$/sac.jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/build$/lib$/sac.jar $(CLASSDIR)$/sac.jar +.ENDIF +.ENDIF # L10N_framework + diff --git a/jfreereport/nbprojects/flute/nbproject/project.xml b/jfreereport/nbprojects/flute/nbproject/project.xml new file mode 100644 index 000000000000..4280b91022ab --- /dev/null +++ b/jfreereport/nbprojects/flute/nbproject/project.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://www.netbeans.org/ns/project/1"> + <type>org.netbeans.modules.ant.freeform</type> + <configuration> + <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1"> + <!-- Do not use Project Properties customizer when editing this file manually. --> + <name>flute-13a</name> + <properties> + <property name="project.dir">../../wntmsci10/misc/build/flute</property> + <property name="ant.script">${project.dir}/ant/build.xml</property> + </properties> + <folders> + <source-folder> + <label>flute</label> + <location>${project.dir}</location> + </source-folder> + </folders> + <ide-actions> + <action name="build"> + <script>${ant.script}</script> + <target>all</target> + </action> + <action name="javadoc"> + <script>${ant.script}</script> + <target>javadoc</target> + </action> + </ide-actions> + <view> + <items> + <source-file> + <location>${ant.script}</location> + </source-file> + </items> + <context-menu> + <ide-action name="build"/> + <ide-action name="javadoc"/> + </context-menu> + </view> + </general-data> + <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/1"/> + </configuration> +</project> diff --git a/jfreereport/nbprojects/jcommon-serializer/nbproject/project.xml b/jfreereport/nbprojects/jcommon-serializer/nbproject/project.xml new file mode 100644 index 000000000000..f7a14ae8712f --- /dev/null +++ b/jfreereport/nbprojects/jcommon-serializer/nbproject/project.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://www.netbeans.org/ns/project/1"> + <type>org.netbeans.modules.ant.freeform</type> + <configuration> + <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1"> + <!-- Do not use Project Properties customizer when editing this file manually. --> + <name>jcommon-serializer</name> + <properties> + <property name="project.dir">../../wntmsci10/misc/build/jcommon-serializer</property> + <property name="ant.script">${project.dir}/ant/build.xml</property> + </properties> + <folders> + <source-folder> + <label>jcommon-serializer</label> + <location>${project.dir}</location> + </source-folder> + </folders> + <ide-actions> + <action name="build"> + <script>${ant.script}</script> + <target>all</target> + </action> + <action name="javadoc"> + <script>${ant.script}</script> + <target>javadoc</target> + </action> + </ide-actions> + <view> + <items> + <source-file> + <location>${ant.script}</location> + </source-file> + </items> + <context-menu> + <ide-action name="build"/> + <ide-action name="javadoc"/> + </context-menu> + </view> + </general-data> + <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/1"/> + </configuration> +</project> diff --git a/jfreereport/nbprojects/jfreereport/nbproject/project.xml b/jfreereport/nbprojects/jfreereport/nbproject/project.xml new file mode 100644 index 000000000000..8f6074cfb8d8 --- /dev/null +++ b/jfreereport/nbprojects/jfreereport/nbproject/project.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://www.netbeans.org/ns/project/1"> + <type>org.netbeans.modules.ant.freeform</type> + <configuration> + <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1"> + <!-- Do not use Project Properties customizer when editing this file manually. --> + <name>jfreereport</name> + <properties> + <property name="project.dir">../../wntmsci10/misc/build/jfreereport</property> + <property name="ant.script">${project.dir}/ant/build.xml</property> + </properties> + <folders> + <source-folder> + <label>jfreereport</label> + <location>${project.dir}</location> + </source-folder> + </folders> + <ide-actions> + <action name="build"> + <script>${ant.script}</script> + <target>all</target> + </action> + <action name="javadoc"> + <script>${ant.script}</script> + <target>javadoc</target> + </action> + </ide-actions> + <view> + <items> + <source-file> + <location>${ant.script}</location> + </source-file> + </items> + <context-menu> + <ide-action name="build"/> + <ide-action name="javadoc"/> + </context-menu> + </view> + </general-data> + <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/1"/> + </configuration> +</project> diff --git a/jfreereport/nbprojects/libfonts/nbproject/project.xml b/jfreereport/nbprojects/libfonts/nbproject/project.xml new file mode 100644 index 000000000000..d84bfb7f832b --- /dev/null +++ b/jfreereport/nbprojects/libfonts/nbproject/project.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://www.netbeans.org/ns/project/1"> + <type>org.netbeans.modules.ant.freeform</type> + <configuration> + <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1"> + <!-- Do not use Project Properties customizer when editing this file manually. --> + <name>libfonts</name> + <properties> + <property name="project.dir">../../wntmsci10/misc/build/libfonts</property> + <property name="ant.script">${project.dir}/ant/build.xml</property> + </properties> + <folders> + <source-folder> + <label>libfonts</label> + <location>${project.dir}</location> + </source-folder> + </folders> + <ide-actions> + <action name="build"> + <script>${ant.script}</script> + <target>all</target> + </action> + <action name="javadoc"> + <script>${ant.script}</script> + <target>javadoc</target> + </action> + </ide-actions> + <view> + <items> + <source-file> + <location>${ant.script}</location> + </source-file> + </items> + <context-menu> + <ide-action name="build"/> + <ide-action name="javadoc"/> + </context-menu> + </view> + </general-data> + <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/1"/> + </configuration> +</project> diff --git a/jfreereport/nbprojects/libformula/nbproject/project.xml b/jfreereport/nbprojects/libformula/nbproject/project.xml new file mode 100644 index 000000000000..e056200ee16e --- /dev/null +++ b/jfreereport/nbprojects/libformula/nbproject/project.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://www.netbeans.org/ns/project/1"> + <type>org.netbeans.modules.ant.freeform</type> + <configuration> + <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1"> + <!-- Do not use Project Properties customizer when editing this file manually. --> + <name>libformula</name> + <properties> + <property name="project.dir">../../wntmsci10/misc/build/libformula</property> + <property name="ant.script">${project.dir}/ant/build.xml</property> + </properties> + <folders> + <source-folder> + <label>libformula</label> + <location>${project.dir}</location> + </source-folder> + </folders> + <ide-actions> + <action name="build"> + <script>${ant.script}</script> + <target>all</target> + </action> + <action name="javadoc"> + <script>${ant.script}</script> + <target>javadoc</target> + </action> + </ide-actions> + <view> + <items> + <source-file> + <location>${ant.script}</location> + </source-file> + </items> + <context-menu> + <ide-action name="build"/> + <ide-action name="javadoc"/> + </context-menu> + </view> + </general-data> + <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/1"/> + </configuration> +</project> diff --git a/jfreereport/nbprojects/liblayout/nbproject/project.xml b/jfreereport/nbprojects/liblayout/nbproject/project.xml new file mode 100644 index 000000000000..63ad9ef3f420 --- /dev/null +++ b/jfreereport/nbprojects/liblayout/nbproject/project.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://www.netbeans.org/ns/project/1"> + <type>org.netbeans.modules.ant.freeform</type> + <configuration> + <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1"> + <!-- Do not use Project Properties customizer when editing this file manually. --> + <name>liblayout</name> + <properties> + <property name="project.dir">../../wntmsci10/misc/build/liblayout</property> + <property name="ant.script">${project.dir}/ant/build.xml</property> + </properties> + <folders> + <source-folder> + <label>liblayout</label> + <location>${project.dir}</location> + </source-folder> + </folders> + <ide-actions> + <action name="build"> + <script>${ant.script}</script> + <target>all</target> + </action> + <action name="javadoc"> + <script>${ant.script}</script> + <target>javadoc</target> + </action> + </ide-actions> + <view> + <items> + <source-file> + <location>${ant.script}</location> + </source-file> + </items> + <context-menu> + <ide-action name="build"/> + <ide-action name="javadoc"/> + </context-menu> + </view> + </general-data> + <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/1"/> + </configuration> +</project> diff --git a/jfreereport/nbprojects/libloader/nbproject/project.xml b/jfreereport/nbprojects/libloader/nbproject/project.xml new file mode 100644 index 000000000000..6b06d5686759 --- /dev/null +++ b/jfreereport/nbprojects/libloader/nbproject/project.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://www.netbeans.org/ns/project/1"> + <type>org.netbeans.modules.ant.freeform</type> + <configuration> + <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1"> + <!-- Do not use Project Properties customizer when editing this file manually. --> + <name>libloader</name> + <properties> + <property name="project.dir">../../wntmsci10/misc/build/libloader</property> + <property name="ant.script">${project.dir}/ant/build.xml</property> + </properties> + <folders> + <source-folder> + <label>libloader</label> + <location>${project.dir}</location> + </source-folder> + </folders> + <ide-actions> + <action name="build"> + <script>${ant.script}</script> + <target>all</target> + </action> + <action name="javadoc"> + <script>${ant.script}</script> + <target>javadoc</target> + </action> + </ide-actions> + <view> + <items> + <source-file> + <location>${ant.script}</location> + </source-file> + </items> + <context-menu> + <ide-action name="build"/> + <ide-action name="javadoc"/> + </context-menu> + </view> + </general-data> + <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/1"/> + </configuration> +</project> diff --git a/jfreereport/nbprojects/librepository/nbproject/project.xml b/jfreereport/nbprojects/librepository/nbproject/project.xml new file mode 100644 index 000000000000..c1b92593de3f --- /dev/null +++ b/jfreereport/nbprojects/librepository/nbproject/project.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://www.netbeans.org/ns/project/1"> + <type>org.netbeans.modules.ant.freeform</type> + <configuration> + <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1"> + <!-- Do not use Project Properties customizer when editing this file manually. --> + <name>librepository</name> + <properties> + <property name="project.dir">../../wntmsci10/misc/build/librepository</property> + <property name="ant.script">${project.dir}/ant/build.xml</property> + </properties> + <folders> + <source-folder> + <label>librepository</label> + <location>${project.dir}</location> + </source-folder> + </folders> + <ide-actions> + <action name="build"> + <script>${ant.script}</script> + <target>all</target> + </action> + <action name="javadoc"> + <script>${ant.script}</script> + <target>javadoc</target> + </action> + </ide-actions> + <view> + <items> + <source-file> + <location>${ant.script}</location> + </source-file> + </items> + <context-menu> + <ide-action name="build"/> + <ide-action name="javadoc"/> + </context-menu> + </view> + </general-data> + <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/1"/> + </configuration> +</project> diff --git a/jfreereport/nbprojects/libxml/nbproject/project.xml b/jfreereport/nbprojects/libxml/nbproject/project.xml new file mode 100644 index 000000000000..6b966c904cd3 --- /dev/null +++ b/jfreereport/nbprojects/libxml/nbproject/project.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://www.netbeans.org/ns/project/1"> + <type>org.netbeans.modules.ant.freeform</type> + <configuration> + <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1"> + <!-- Do not use Project Properties customizer when editing this file manually. --> + <name>libxml</name> + <properties> + <property name="project.dir">../../wntmsci10/misc/build/libxml</property> + <property name="ant.script">${project.dir}/ant/build.xml</property> + </properties> + <folders> + <source-folder> + <label>libxml</label> + <location>${project.dir}</location> + </source-folder> + </folders> + <ide-actions> + <action name="build"> + <script>${ant.script}</script> + <target>all</target> + </action> + <action name="javadoc"> + <script>${ant.script}</script> + <target>javadoc</target> + </action> + </ide-actions> + <view> + <items> + <source-file> + <location>${ant.script}</location> + </source-file> + </items> + <context-menu> + <ide-action name="build"/> + <ide-action name="javadoc"/> + </context-menu> + </view> + </general-data> + <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/1"/> + </configuration> +</project> diff --git a/jfreereport/patches/common_build.patch b/jfreereport/patches/common_build.patch new file mode 100755 index 000000000000..2bc54595cf17 --- /dev/null +++ b/jfreereport/patches/common_build.patch @@ -0,0 +1,102 @@ +--- misc/libloader-1.1.3/common_build.xml 2009-11-16 10:25:34.000000000 +0100 ++++ misc/build/libloader-1.1.3/common_build.xml 2009-12-04 10:22:24.277647200 +0100 +@@ -261,7 +261,7 @@ TYPICAL TARGET SEQUENCE + <property name="project.revision" value="${Implementation-Version}" description="Sets the version number of the project based on the Implementation-Version found in the manifest file (if one is supplied and nothing is specified in the build.properties)" /> + <fail message="A project revision number has not been determined!"> + <condition> +- <matches string="${project.revision}" pattern="\$\{.*\}" /> ++ <contains string="${project.revision}" substring="\$\{" /> + </condition> + </fail> + +@@ -270,7 +270,7 @@ TYPICAL TARGET SEQUENCE + <property name="impl.title" value="${Implementation-Title}" description="Sets the title of the project based on the Implementation-Title found in the manifest file (if one is supplied and nothing is specified in the build.properties)" /> + <fail message="A project title has not been determined!"> + <condition> +- <matches string="${impl.title}" pattern="\$\{.*\}" /> ++ <contains string="${impl.title}" substring="\$\{" /> + </condition> + </fail> + +@@ -497,7 +497,7 @@ + Sets a property build.id to the either "development" or the svn revision + if in release mode + ====================================================================--> +- <target name="set-build.id" unless="build.id" depends="install-antcontrib"> ++ <target name="set-build.id" unless="build.id" > + <if> + <istrue value="${release}" /> + <then> +@@ -1061,6 +1061,11 @@ + Performs the actual compile + ====================================================================--> + <target name="compile.compile" depends="init"> ++ <copy todir="${classes.dir}"> ++ <fileset dir="source"> ++ <include name="**/*.properties"/> ++ </fileset> ++ </copy> + <javac destdir="${classes.dir}" + debug="${javac.debug}" + deprecation="${javac.deprecation}" +@@ -1082,27 +1087,32 @@ + duplicate copying of resources from src tree (handled by compile.src_copy + if jar.include.source is set. + ====================================================================--> +- <target name="compile.res_copy" depends="install-antcontrib"> +- <if> +- <available file="${res.dir}" /> +- <then> +- <copy todir="${classes.dir}"> +- <fileset dir="${res.dir}" /> +- </copy> +- </then> +- </if> ++ <target name="compile.res_copy" > ++ <condition property="copy.res.available"> ++ <available file="$(res.dir)" type="dir" /> ++ </condition> ++ <antcall target="copy.res" /> + +- <if> +- <not> +- <isset property="jar.include.source" /> +- </not> +- <then> +- <copy todir="${classes.dir}" flatten="false"> +- <fileset dir="${src.dir}" excludes="**/*.java" /> +- </copy> +- </then> +- </if> +- </target> ++ <condition property="copy.res.class.available"> ++ <not> ++ <isset property="jar.include.source" /> ++ </not> ++ </condition> ++ <antcall target="copy.res.class" /> ++ </target> ++ ++ <target name="copy.res" if="copy.res.available" > ++ <copy todir="${classes.dir}"> ++ <fileset dir="${res.dir}"/> ++ </copy> ++ </target> ++ ++ <target name="copy.res.class" if="copy.res.class.available" > ++ <uptodate targetfile="${classes.dir}" property="s"> ++ <srcfiles dir= "${src.dir}" excludes="**/*.java" /> ++ <flattenmapper/> ++ </uptodate> ++ </target> + + + <!--======================================================================= +@@ -1167,7 +1177,6 @@ + <target name="generate.manifest" depends="init,set-build.id"> + <delete file="${dist.manifest.file}" /> + <touch file="${dist.manifest.file}" /> +- <copy file="${manifest.file}" tofile="${dist.manifest.file}" overwrite="true" failonerror="false" /> + + <manifest file="${dist.manifest.file}" mode="update"> + <attribute name="Implementation-Title" value="${impl.title}" /> diff --git a/jfreereport/patches/flow-engine.patch b/jfreereport/patches/flow-engine.patch new file mode 100644 index 000000000000..aef70cb7fef6 --- /dev/null +++ b/jfreereport/patches/flow-engine.patch @@ -0,0 +1,10 @@ +--- misc/flow-engine-0.9.4/build.xml (Revision 6728) ++++ misc/build/flow-engine-0.9.4/build.xml (Arbeitskopie) +@@ -24,6 +24,6 @@ + <!-- Setup the compile classpath --> + <path id="classpath"> +- <fileset dir="lib"> ++ <fileset dir="${lib}"> + <include name="*.jar" /> + </fileset> + </path> diff --git a/jfreereport/patches/libbase-1.1.6-deprecated.patch b/jfreereport/patches/libbase-1.1.6-deprecated.patch new file mode 100644 index 000000000000..da28c30eb70e --- /dev/null +++ b/jfreereport/patches/libbase-1.1.6-deprecated.patch @@ -0,0 +1,11 @@ +--- misc/libbase-1.1.6/source/org/pentaho/reporting/libraries/base/boot/ModuleInitializeException.java 2010-04-27 15:58:44.000000000 +0200 ++++ misc/build/libbase-1.1.6/source/org/pentaho/reporting/libraries/base/boot/ModuleInitializeException.java 2011-06-13 01:28:14.000000000 +0200 +@@ -48,7 +48,7 @@ + */ + public ModuleInitializeException(final String s, final Exception e) + { +- super(s, e); ++ super(s, (Throwable) e); + } + + /** diff --git a/jfreereport/patches/libfonts-1.1.6-deprecated.patch b/jfreereport/patches/libfonts-1.1.6-deprecated.patch new file mode 100644 index 000000000000..eb2ab8c76c10 --- /dev/null +++ b/jfreereport/patches/libfonts-1.1.6-deprecated.patch @@ -0,0 +1,11 @@ +--- misc/libfonts-1.1.6/source/org/pentaho/reporting/libraries/fonts/FontException.java 2010-04-27 16:09:00.000000000 +0200 ++++ misc/build/libfonts-1.1.6/source/org/pentaho/reporting/libraries/fonts/FontException.java 2011-06-13 02:04:51.000000000 +0200 +@@ -39,7 +39,7 @@ + */ + public FontException(final String message, final Exception ex) + { +- super(message, ex); ++ super(message, (Throwable) ex); + } + + /** diff --git a/jfreereport/patches/liblayout.patch b/jfreereport/patches/liblayout.patch new file mode 100644 index 000000000000..4b1c23100987 --- /dev/null +++ b/jfreereport/patches/liblayout.patch @@ -0,0 +1,10 @@ +--- misc/liblayout-0.2.10/build.xml (Revision 6728) ++++ misc/build/liblayout-0.2.10/build.xml (Arbeitskopie) +@@ -24,6 +24,6 @@ + <!-- Setup the compile classpath --> + <path id="classpath"> +- <fileset dir="lib"> ++ <fileset dir="${lib}"> + <include name="*.jar" /> + </fileset> + </path> diff --git a/jfreereport/patches/libloader-1.1.6-deprecated.patch b/jfreereport/patches/libloader-1.1.6-deprecated.patch new file mode 100644 index 000000000000..c098906fcf70 --- /dev/null +++ b/jfreereport/patches/libloader-1.1.6-deprecated.patch @@ -0,0 +1,11 @@ +--- misc/libloader-1.1.6/source/org/pentaho/reporting/libraries/resourceloader/ResourceException.java 2010-04-27 16:07:00.000000000 +0200 ++++ misc/build/libloader-1.1.6/source/org/pentaho/reporting/libraries/resourceloader/ResourceException.java 2011-06-13 02:00:46.000000000 +0200 +@@ -42,7 +42,7 @@ + */ + public ResourceException(final String message, final Exception ex) + { +- super(message, ex); ++ super(message, (Throwable) ex); + } + + /** diff --git a/jfreereport/patches/librepository-1.1.6-deprecated.patch b/jfreereport/patches/librepository-1.1.6-deprecated.patch new file mode 100644 index 000000000000..a266efc4bb79 --- /dev/null +++ b/jfreereport/patches/librepository-1.1.6-deprecated.patch @@ -0,0 +1,11 @@ +--- misc/librepository-1.1.6/source/org/pentaho/reporting/libraries/repository/ContentIOException.java 2010-04-27 16:04:50.000000000 +0200 ++++ misc/build/librepository-1.1.6/source/org/pentaho/reporting/libraries/repository/ContentIOException.java 2011-06-13 01:44:35.000000000 +0200 +@@ -43,7 +43,7 @@ + */ + public ContentIOException(final String message, final Exception ex) + { +- super(message, ex); ++ super(message, (Throwable) ex); + } + + /** diff --git a/jfreereport/patches/sac.patch b/jfreereport/patches/sac.patch new file mode 100644 index 000000000000..77db8511acbe --- /dev/null +++ b/jfreereport/patches/sac.patch @@ -0,0 +1,73 @@ +*** misc/sac-1.3/build.xml Thu Oct 18 09:22:24 2007 +--- misc/build/sac-1.3/build.xml Thu Oct 18 08:53:59 2007 +*************** +*** 1 **** +! dummy +--- 1,66 ---- +! <!-- simple generic build file --> +! +! <project name="sac" default="all" basedir="."> +! +! <!-- Properties --> +! +! <property name="name" value="sac"/> +! <property name="src" value="src"/> +! <property name="build" value="build"/> +! <property name="build.classes" value="${build}/classes"/> +! <property name="build.doc" value="${build}/api"/> +! <property name="build.lib" value="${build}/lib"/> +! <property name="packagenames" value="org.w3c.css.sac.*"/> +! +! <!-- Targets --> +! +! <!-- Prepare build directories --> +! <target name="prepare"> +! <mkdir dir="${src}"/> +! <mkdir dir="${build}"/> +! <mkdir dir="${build.classes}"/> +! <mkdir dir="${build.lib}"/> +! <mkdir dir="${build.doc}"/> +! <copy todir="${src}/org"> +! <fileset dir="org"/> +! </copy> +! </target> +! +! <!-- Kill all the created directories --> +! <target name="clean"> +! <delete dir="${build}"/> +! <delete dir="${src}"/> +! </target> +! +! <!-- Build classes --> +! <target name="classes" depends="prepare"> +! <javac srcdir="${src}" destdir="${build.classes}" debug="off" optimize="on"/> +! <copy todir="${build.classes}"> +! <fileset dir="${src}"> +! <include name="**/*.properties"/> +! </fileset> +! </copy> +! </target> +! +! <!-- Build jar archives --> +! <target name="jar" depends="classes"> +! <jar jarfile="${build.lib}/${name}.jar" basedir="${build.classes}"/> +! </target> +! +! <!-- Build the full JavaDocs --> +! <target name="javadoc" depends="prepare"> +! <javadoc sourcepath="${src}" +! destdir="${build.doc}" +! doctitle="${name} JavaDoc" +! windowtitle="${name} JavaDoc" +! package="true" +! author="true" +! version="true" +! packagenames="${packagenames}" +! /> +! </target> +! +! <!-- Build everything --> +! <target name="all" depends="jar,javadoc"/> +! +! </project> +\ No newline at end of file diff --git a/jfreereport/prj/build.lst b/jfreereport/prj/build.lst new file mode 100644 index 000000000000..62cdd738c3b6 --- /dev/null +++ b/jfreereport/prj/build.lst @@ -0,0 +1,13 @@ +jf jfreereport : solenv APACHE_COMMONS:apache-commons NULL +jf jfreereport usr1 - all jf_mkout NULL +jf jfreereport\java\sac nmake - all jf_sac NULL +jf jfreereport\java\libbase nmake - all jf_libbase NULL +jf jfreereport\java\flute nmake - all jf_flute jf_sac NULL +jf jfreereport\java\libloader nmake - all jf_libloader jf_libbase NULL +jf jfreereport\java\libxml nmake - all jf_libxml jf_libbase jf_libloader NULL +jf jfreereport\java\libformula nmake - all jf_libformula jf_libbase NULL +jf jfreereport\java\libfonts nmake - all jf_libfonts jf_libbase jf_libloader NULL +jf jfreereport\java\librepository nmake - all jf_librepository jf_libbase NULL +jf jfreereport\java\libserializer nmake - all jf_libserializer jf_libbase NULL +jf jfreereport\java\jfreereport nmake - all jf_jfreereport jf_liblayout jf_libformula jf_libserializer NULL +jf jfreereport\java\liblayout nmake - all jf_liblayout jf_libbase jf_flute jf_libfonts jf_libloader jf_librepository jf_libxml jf_sac NULL diff --git a/jfreereport/prj/d.lst b/jfreereport/prj/d.lst new file mode 100644 index 000000000000..094707925b36 --- /dev/null +++ b/jfreereport/prj/d.lst @@ -0,0 +1,2 @@ +..\%__SRC%\class\*.jar %_DEST%\bin\*.jar +..\version.mk %_DEST%\bin\jfreereport_version.mk diff --git a/jfreereport/version.mk b/jfreereport/version.mk new file mode 100644 index 000000000000..cd9a8053bbd9 --- /dev/null +++ b/jfreereport/version.mk @@ -0,0 +1,12 @@ +FLUTE_VERSION=1.1.6 +LIBBASE_VERSION=1.1.6 +LIBFONTS_VERSION=1.1.6 +LIBFORMAT_VERSION=1.1.6 +LIBFORMULA_VERSION=1.1.7 +LIBLAYOUT_VERSION=0.2.10 +LIBLOADER_VERSION=1.1.6 +LIBREPOSITORY_VERSION=1.1.6 +LIBSERIALIZER_VERSION=1.1.6 +LIBXML_VERSION=1.1.7 +FLOW_ENGINE_VERSION=0.9.4 + diff --git a/languagetool/JLanguageTool-1.0.0.patch b/languagetool/JLanguageTool-1.0.0.patch new file mode 100644 index 000000000000..2b025c904394 --- /dev/null +++ b/languagetool/JLanguageTool-1.0.0.patch @@ -0,0 +1,137 @@ +--- misc/JLanguageTool-1.0.0/build.properties 2009-11-01 17:02:22.000000000 +0100 ++++ misc/build/JLanguageTool-1.0.0/build.properties 2010-03-10 15:33:21.000000000 +0100 +@@ -54,10 +54,10 @@ + ext.log4j.lib = ${ext.dir}/build/cobertura/log4j-1.2.9.jar + ext.jakarta-oro.lib = ${ext.dir}/build/cobertura/jakarta-oro-2.0.8.jar + +-ext.ooo.juh.lib = ${ext.ooo.dir}/juh.jar +-ext.ooo.unoil.lib = ${ext.ooo.dir}/unoil.jar +-ext.ooo.ridl.lib = ${ext.ooo.dir}/ridl.jar +-ext.ooo.jurt.lib = ${ext.ooo.dir}/jurt.jar ++ext.ooo.juh.lib = ${solver.ooo.dir}/juh.jar ++ext.ooo.unoil.lib = ${solver.ooo.dir}/unoil.jar ++ext.ooo.ridl.lib = ${solver.ooo.dir}/ridl.jar ++ext.ooo.jurt.lib = ${solver.ooo.dir}/jurt.jar + + build.meta-inf = ${build.dir}/META-INF + final.name = LanguageTool +--- misc/JLanguageTool-1.0.0/build.xml 2009-10-26 14:28:30.000000000 +0100 ++++ misc/build/JLanguageTool-1.0.0/build.xml 2010-03-10 15:33:21.000000000 +0100 +@@ -20,6 +20,8 @@ + <pathelement location="${ext.logging.lib}" /> + <pathelement location="${ext.segment.lib}" /> + <!-- --> ++ <pathelement location="${ext.junit.lib}"/> ++ <!-- --> + <pathelement location="${ext.ooo.juh.lib}" /> + <pathelement location="${ext.ooo.unoil.lib}" /> + <pathelement location="${ext.ooo.ridl.lib}" /> +@@ -367,11 +369,11 @@ + <!-- ================================================================== --> + + <target name="dist" depends="ooo-internal" description="Builds one ZIP for both OpenOffice.org and stand-alone use"> +-<zip compress="yes" destfile="${dist.dir}/LanguageTool-${version}.oxt" basedir="${dist.dir}" includes="**" excludes="deploy.sh,undeploy.sh,turn.sh,jdic.jar,printlocales.jar,linux/**,windows/**,sunos/**,mac/**" /> ++<zip compress="yes" destfile="${dist.dir}/LanguageTool.oxt" basedir="${dist.dir}" includes="**" excludes="deploy.sh,undeploy.sh,turn.sh,jdic.jar,printlocales.jar,linux/**,windows/**,sunos/**,mac/**" /> + </target> + + <target name="fast" depends="ooo-internal" description="like dist, but without ZIP compression (for development only)"> +-<zip compress="no" destfile="${dist.dir}/LanguageTool-${version}.oxt" basedir="${dist.dir}" includes="**" excludes="deploy.sh,undeploy.sh,turn.sh,jdic.jar,printlocales.jar,linux/**,windows/**,sunos/**,mac/**" /> ++<zip compress="no" destfile="${dist.dir}/LanguageTool.oxt" basedir="${dist.dir}" includes="**" excludes="deploy.sh,undeploy.sh,turn.sh,jdic.jar,printlocales.jar,linux/**,windows/**,sunos/**,mac/**" /> + </target> + + <target name="ooo-internal" depends="clean,init,build,ooo-build"> +@@ -402,11 +404,6 @@ + <copy file="${ext.segment.lib}" todir="${dist.dir}" /> + <copy file="${ext.logging.lib}" todir="${dist.dir}" /> + <copy file="${ext.junit.lib}" todir="${dist.dir}" /> +-<!-- JAXB jars for Java 1.5 --> +-<copy file="${ext.jaxb-api.lib}" todir="${dist.dir}" /> +-<copy file="${ext.jaxb-impl.lib}" todir="${dist.dir}" /> +-<copy file="${ext.jsr.lib}" todir="${dist.dir}" /> +-<copy file="${ext.activation.lib}" todir="${dist.dir}" /> + + + <copy todir="${dist.dir}/linux"> +@@ -472,7 +472,6 @@ + <copy file="${resource.dir}/sv/swedish.info" todir="${dist.dir}/resource/sv" /> + <copy file="${resource.dir}/sv/swedish.dict" todir="${dist.dir}/resource/sv" /> + <copy file="${resource.dir}/sv/compounds.txt" todir="${dist.dir}/resource/sv" /> +-<copy file="${resource.dir}/uk/ukrainian.dict" todir="${dist.dir}/resource/uk" /> + <copy file="${resource.dir}/ru/russian.dict" todir="${dist.dir}/resource/ru" /> + <copy file="${resource.dir}/ru/russian.info" todir="${dist.dir}/resource/ru" /> + <copy file="${resource.dir}/ru/russian_tags.txt" todir="${dist.dir}/resource/ru" /> +@@ -494,7 +493,6 @@ + <copy file="${resource.dir}/sk/slovak_synth.dict" todir="${dist.dir}/resource/sk" /> + <copy file="${resource.dir}/sk/slovak_synth.info" todir="${dist.dir}/resource/sk" /> + <copy file="${resource.dir}/sk/slovak_tags.txt" todir="${dist.dir}/resource/sk" /> +-<copy file="${resource.dir}/xx/dummy.dict" tofile="${dist.dir}/resource/cs/czech.dict" /> + + <!-- prepare properties file automatically --> + <javac encoding="${encoding}" srcdir="${src.dir}/dev" includes="de/danielnaber/languagetool/dev/PrintLocales.java" destdir="${build.classes}" target="${target}" debug="${debug}"> +--- misc/JLanguageTool-1.0.0/src/java/de/danielnaber/languagetool/gui/Configuration.java 2009-01-01 23:39:30.000000000 +0100 ++++ misc/build/JLanguageTool-1.0.0/src/java/de/danielnaber/languagetool/gui/Configuration.java 2010-03-10 15:33:21.000000000 +0100 +@@ -23,6 +23,7 @@ + import java.io.FileNotFoundException; + import java.io.FileOutputStream; + import java.io.IOException; ++import java.lang.ClassLoader; + import java.util.HashSet; + import java.util.Iterator; + import java.util.Properties; +@@ -154,8 +155,19 @@ + final String motherTongueStr = (String) props + .get(MOTHER_TONGUE_CONFIG_KEY); + if (motherTongueStr != null) { ++ // FIXME: hack to disable the functionality for JRE 1.5 ++ // javax.xml.bind.JAXBException is part of JRE 1.6 ++ boolean isJRE15 = false; ++ try { ++ ClassLoader cl = ClassLoader.getSystemClassLoader(); ++ cl.loadClass("javax.xml.bind.JAXBException"); ++ } catch (ClassNotFoundException e) { ++ isJRE15 = true; ++ } ++ if (!isJRE15) { + motherTongue = Language.getLanguageForShortName(motherTongueStr); + } ++ } + final String runServerString = (String) props.get(SERVER_RUN_CONFIG_KEY); + if (runServerString != null) { + runServer = runServerString.equals("true"); +--- misc/JLanguageTool-1.0.0/src/java/de/danielnaber/languagetool/openoffice/Main.java 2009-10-24 16:52:03.000000000 +0200 ++++ misc/build/JLanguageTool-1.0.0/src/java/de/danielnaber/languagetool/openoffice/Main.java 2010-03-10 15:33:21.000000000 +0100 +@@ -24,6 +24,7 @@ + * @author Marcin Miłkowski + */ + import java.io.File; ++import java.lang.ClassLoader; + import java.util.ArrayList; + import java.util.Arrays; + import java.util.Comparator; +@@ -455,6 +456,14 @@ + * @return An array of Locales supported by LT. + */ + public final Locale[] getLocales() { ++ // FIXME: hack to disable the functionality for JRE 1.5 ++ // javax.xml.bind.JAXBException is part of JRE 1.6 ++ try { ++ ClassLoader cl = ClassLoader.getSystemClassLoader(); ++ cl.loadClass("javax.xml.bind.JAXBException"); ++ } catch (ClassNotFoundException e) { ++ return new Locale[0]; ++ } + try { + int dims = 0; + for (final Language element : Language.LANGUAGES) { +@@ -609,9 +618,9 @@ + if (version != null + && (version.startsWith("1.0") || version.startsWith("1.1") + || version.startsWith("1.2") || version.startsWith("1.3") || version +- .startsWith("1.4"))) { ++ .startsWith("1.4") || version.startsWith("1.5"))) { + final DialogThread dt = new DialogThread( +- "Error: LanguageTool requires Java 1.5 or later. Current version: " ++ "Error: LanguageTool requires Java 1.6 or later. Current version: " + + version); + dt.start(); + return false; diff --git a/languagetool/makefile.mk b/languagetool/makefile.mk new file mode 100644 index 000000000000..89505c280f76 --- /dev/null +++ b/languagetool/makefile.mk @@ -0,0 +1,63 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2008 by Sun Microsystems, Inc. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=. + +PRJNAME=languagetool +TARGET=languagetool + +.IF "$(SOLAR_JAVA)"!="" +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk +.INCLUDE : antsettings.mk + +# --- Files -------------------------------------------------------- + +TARFILE_NAME=JLanguageTool-1.0.0 +TARFILE_MD5=47e1edaa44269bc537ae8cabebb0f638 +TARFILE_ROOTDIR=JLanguageTool-1.0.0 +PATCH_FILES=JLanguageTool-1.0.0.patch + +.IF "$(JAVACISGCJ)"=="yes" +JAVA_HOME= +.EXPORT : JAVA_HOME +BUILD_ACTION=$(ANT) -v -Dsolver.ooo.dir=$(SOLARVER)$/$(INPATH)$/bin -Dbuild.compiler=gcj dist +.ELSE +BUILD_ACTION=$(ANT) -v -Dsolver.ooo.dir=$(SOLARVER)$/$(INPATH)$/bin -Dant.build.javac.target=$(JAVA_TARGET_VER) dist +.ENDIF + +# --- Targets ------------------------------------------------------ + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk +.INCLUDE : tg_ext.mk + +.ELSE +all: + @echo java disabled +.ENDIF diff --git a/languagetool/prj/build.lst b/languagetool/prj/build.lst new file mode 100644 index 000000000000..98e25c36b3fc --- /dev/null +++ b/languagetool/prj/build.lst @@ -0,0 +1,3 @@ +lt languagetool : javaunohelper jurt ridljar unoil NULL +lt languagetool usr1 - all lt_mkout NULL +lt languagatool nmake - all lt_languagetool NULL diff --git a/languagetool/prj/d.lst b/languagetool/prj/d.lst new file mode 100644 index 000000000000..cdbabc31f919 --- /dev/null +++ b/languagetool/prj/d.lst @@ -0,0 +1 @@ +..\%__SRC%\misc\build\JLanguageTool*\dist\LanguageTool.oxt %_DEST%\bin\ diff --git a/migrationanalysis/Read Me.odt b/migrationanalysis/Read Me.odt Binary files differnew file mode 100644 index 000000000000..02c8db4b5eaa --- /dev/null +++ b/migrationanalysis/Read Me.odt diff --git a/migrationanalysis/no_localization b/migrationanalysis/no_localization new file mode 100644 index 000000000000..502bb06d023a --- /dev/null +++ b/migrationanalysis/no_localization @@ -0,0 +1 @@ +Touch me to prevent that the localisation process extracts strings here diff --git a/migrationanalysis/prj/build.lst b/migrationanalysis/prj/build.lst new file mode 100644 index 000000000000..54f0af004187 --- /dev/null +++ b/migrationanalysis/prj/build.lst @@ -0,0 +1,7 @@ +at migrationanalysis : soltools shell NULL +at migrationanalysis\src\msokill nmake - w at_src NULL +at migrationanalysis\src\driver_docs nmake - w at_src_driver NULL +at migrationanalysis\src\resources nmake - w at_src_resources NULL +at migrationanalysis\src\wizard nmake - w at_src_wizard NULL +at migrationanalysis\util nmake - w at_util at_src.w at_src_driver.w at_src_resources.w at_src_wizard.w NULL + diff --git a/migrationanalysis/prj/d.lst b/migrationanalysis/prj/d.lst new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/migrationanalysis/prj/d.lst @@ -0,0 +1 @@ + diff --git a/migrationanalysis/src/driver_docs/CreateDriverDocs.wsf b/migrationanalysis/src/driver_docs/CreateDriverDocs.wsf new file mode 100644 index 000000000000..a9442ff58cdb --- /dev/null +++ b/migrationanalysis/src/driver_docs/CreateDriverDocs.wsf @@ -0,0 +1,221 @@ +'/*************************************************************************
+' *
+' * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+' *
+' * Copyright 2000, 2010 Oracle and/or its affiliates.
+' *
+' * OpenOffice.org - a multi-platform office productivity suite
+' *
+' * This file is part of OpenOffice.org.
+' *
+' * OpenOffice.org is free software: you can redistribute it and/or modify
+' * it under the terms of the GNU Lesser General Public License version 3
+' * only, as published by the Free Software Foundation.
+' *
+' * OpenOffice.org is distributed in the hope that it will be useful,
+' * but WITHOUT ANY WARRANTY; without even the implied warranty of
+' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+' * GNU Lesser General Public License version 3 for more details
+' * (a copy is included in the LICENSE file that accompanied this code).
+' *
+' * You should have received a copy of the GNU Lesser General Public License
+' * version 3 along with OpenOffice.org. If not, see
+' * http://www.openoffice.org/license.html
+' * for a copy of the LGPLv3 License.
+' *
+' ************************************************************************/
+'### Build Support Module for running commands to export and import
+'### modules from Word, Excel and PowerPoint Document Analysis driver documents
+
+
+<job id="DocAnalysisBuildCmd" error="true" debug="true">
+ <script language="VBScript" src="DocAnalysisRunMacro.vbs"/>
+ <script language="VBScript">
+
+Const CTITLE = "Document Analysis Command"
+
+Const CWORD_DRIVER = "_OOoDocAnalysisWordDriver.doc"
+Const CEXCEL_DRIVER = "_OOoDocAnalysisExcelDriver.xls"
+Const CPP_DRIVER = "_OOoDocAnalysisPPTDriver.ppt"
+Const CStub = "Stripped"
+
+Const CUTIL_APPNAME_WORD = "Word"
+Const CUTIL_APPNAME_EXCEL = "Excel"
+Const CUTIL_APPNAME_POWERPOINT = "Powerpoint"
+
+Const CDIAG_STD_DELAY = 2
+
+Const CDEFAULT_SOURCE_DIR = ".\sources\"
+Const CDEFAULT_TARGET_DIR = "."
+
+Const CSOURCE_DIR_ARG = "X"
+Const CTARGET_DIR_ARG = "T"
+Const CUSAGE_ARG = "?"
+
+Const CSTR_PAW = "\PAW\"
+
+'######### Doc Analysis Build - Main Script Body #############
+Dim mArgsNamed, mArgsUnnamed
+Dim mSourceDir
+Dim mTargetDir
+
+On Error Resume Next
+
+'### Process Arguments ###
+Set mArgsNamed = WScript.Arguments.Named
+Set mArgsUnnamed = WScript.Arguments.Unnamed
+
+If mArgsNamed.Exists(CUSAGE_ARG) Then
+ Usage
+ FinalExit
+End If
+
+'# Source Dir
+if mArgsNamed.Exists(CSOURCE_DIR_ARG) Then
+ mSourceDir = mArgsNamed.Item(CSOURCE_DIR_ARG)
+Else
+ mSourceDir = CDEFAULT_SOURCE_DIR
+End If
+
+'# Target Dir
+if mArgsNamed.Exists(CTARGET_DIR_ARG ) Then
+ mTargetDir = mArgsNamed.Item(CTARGET_DIR_ARG )
+Else
+ mTargetDir = CDEFAULT_TARGET_DIR
+End If
+
+mSourceDir = daFso.GetAbsolutePathName(mSourceDir )
+mTargetDir = daFso.GetAbsolutePathName(mTargetDir )
+
+'# Check source and target dirs exist
+If Not daFso.FolderExists(mSourceDir) Then
+ DAErrMsg "Source directory does not exist: " & mSourceDir, CDA_ERR_STD_DELAY
+ FinalExit
+End If
+If Not daFso.FolderExists(mTargetDir) Then
+ DAErrMsg "Target directory does not exist: " & mTargetDir, CDA_ERR_STD_DELAY
+ FinalExit
+End If
+
+Set mArgsNamed = Nothing
+Set mArgsUnnamed = Nothing
+
+'#### then continue with PAW
+ImportAll mTargetDir & CSTR_PAW
+
+'# Cleanup
+FinalExit
+
+
+'######### End - Main Script Body #############
+
+
+'#### Doc Analysis Build - Support Functions ####
+
+Sub Usage()
+ DAdiagMsg "Build command line tool to create Document Analysis driver documents" & vbLf & vbLf &_
+ "DocAnalysisBuildCmd [/X:<sourceDir>] [/T:<targetDir>]" & vbLf & vbLf &_
+ "/X:<sourceDir> base <source> directory " & vbLf & _
+ " The <sourceDir> is the base dir under which all the " & vbLf & _
+ " _res.bas files are located to import from" & vbLf & vbLf & _
+ "/T:<targetDir> target directory " & vbLf & _
+ " <targetDir> is where the new Driver docs" & vbLf & _
+ " will be created", 30
+End Sub
+
+'######################
+Sub FinalExit()
+ DACleanUp
+ wscript.quit
+End Sub
+
+'######################
+Sub ImportAll( aTargetDir )
+
+ '#### Create automation servers ####
+ DAsetupWrdServer
+ DAsetupExcelServer
+ DAsetupPPServer
+
+ If Not daFso.FolderExists( aTargetDir ) Then
+ daFso.CreateFolder( aTargetDir )
+ End If
+
+ BackupDrivers aTargetDir
+
+ DAOpenWrdDriver mSourceDir & "\" & CSTUB & CWORD_DRIVER
+ DAOpenExcelDriver mSourceDir & "\" & CSTUB & CEXCEL_DRIVER
+ DAOpenPPDriver mSourceDir & "\" & CSTUB & CPP_DRIVER
+
+ DASetTitle CTITLE & " - Import"
+
+ ImportSelectedProjectFiles mSourceDir, CUTIL_APPNAME_WORD
+ ImportSelectedProjectFiles mSourceDir, CUTIL_APPNAME_EXCEL
+ ImportSelectedProjectFiles mSourceDir, CUTIL_APPNAME_POWERPOINT
+
+ DAsaveWrdDriver aTargetDir & "\" & CWORD_DRIVER
+ DAsaveExcelDriver aTargetDir & "\" & CEXCEL_DRIVER
+ DAsavePPDriver aTargetDir & "\" & CPP_DRIVER
+
+ DACloseApps
+End Sub
+
+'######################
+Sub BackupDrivers(importdir)
+ On Error Resume Next
+
+ Dim wrdPath
+ Dim xlsPath
+ Dim ppPath
+
+ wrdPath = daFso.GetAbsolutePathName(importdir & "\" & CWORD_DRIVER)
+ xlsPath= daFso.GetAbsolutePathName(importdir & "\" & CEXCEL_DRIVER)
+ ppPath= daFso.GetAbsolutePathName(importdir & "\" & CPP_DRIVER)
+
+ If daFso.FileExists( wrdPath ) Then daFso.CopyFile wrdPath, wrdPath & ".bak"
+ If daFso.FileExists( xlsPath ) Then daFso.CopyFile xlsPath, xlsPath & ".bak"
+ If daFso.FileExists( ppPath ) Then daFso.CopyFile ppPath, ppPath & ".bak"
+End Sub
+
+'######################
+Sub ImportSelectedProjectFiles(dir, app_name)
+ On Error Resume Next
+
+ Dim base
+ Dim lcApp_name
+ lcApp_name = LCase(app_name)
+
+ 'Driver Specific
+ base = dir & "\" & lcApp_name & "\"
+
+ DAImportFile base & "ApplicationSpecific.bas", "ApplicationSpecific", app_name
+ DAImportFile base & "MigrationAnalyser.cls", "MigrationAnalyser", app_name
+
+ DAImportFile base & "Preparation.bas", "Preparation", app_name
+
+ 'app resource
+ DAImportFile base & lcApp_name & "_res.bas", lcApp_name & "_res", app_name
+
+ 'Common
+ base = dir & "\"
+ DAImportFile base & "AnalysisDriver.bas", "AnalysisDriver", app_name
+ DAImportFile base & "CommonMigrationAnalyser.bas", "CommonMigrationAnalyser", app_name
+ DAImportFile base & "CollectedFiles.cls", "CollectedFiles", app_name
+ DAImportFile base & "DocumentAnalysis.cls", "DocumentAnalysis", app_name
+ DAImportFile base & "FileTypeAssociation.cls", "FileTypeAssociation", app_name
+ DAImportFile base & "IssueInfo.cls", "IssueInfo", app_name
+ DAImportFile base & "PrepareInfo.cls", "PrepareInfo", app_name
+ DAImportFile base & "StringDataManager.cls", "StringDataManager", app_name
+ DAImportFile base & "LocalizeResults.bas", "LocalizeResults", app_name
+
+ DAImportFile base & "CommonPreparation.bas", "CommonPreparation", app_name
+
+ 'common resource
+ DAImportFile base & "common_res.bas", "common_res", app_name
+ DAImportFile base & "results_res.bas", "results_res", app_name
+
+End Sub
+
+</script>
+</job>
+
diff --git a/migrationanalysis/src/driver_docs/DocAnalysisRunMacro.vbs b/migrationanalysis/src/driver_docs/DocAnalysisRunMacro.vbs new file mode 100644 index 000000000000..4fa6b203ae4a --- /dev/null +++ b/migrationanalysis/src/driver_docs/DocAnalysisRunMacro.vbs @@ -0,0 +1,438 @@ +'/*************************************************************************
+' *
+' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +' +' Copyright 2000, 2010 Oracle and/or its affiliates. +' +' OpenOffice.org - a multi-platform office productivity suite +' +' This file is part of OpenOffice.org. +' +' OpenOffice.org is free software: you can redistribute it and/or modify +' it under the terms of the GNU Lesser General Public License version 3 +' only, as published by the Free Software Foundation. +' +' OpenOffice.org is distributed in the hope that it will be useful, +' but WITHOUT ANY WARRANTY; without even the implied warranty of +' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +' GNU Lesser General Public License version 3 for more details +' (a copy is included in the LICENSE file that accompanied this code). +' +' You should have received a copy of the GNU Lesser General Public License +' version 3 along with OpenOffice.org. If not, see +' <http://www.openoffice.org/license.html> +' for a copy of the LGPLv3 License. +' +' ************************************************************************/
+'### Support Module for running macros in Word. Excel and Powerpoint
+'### using automation
+
+CONST CDA_TITLE = "Document Analysis Run Macro"
+CONST CDA_ANALYSIS_INI = "analysis.ini"
+Const CDA_ERR_STD_DELAY = 10
+Const CDA_APPNAME_WORD = "Word"
+Const CDA_APPNAME_EXCEL = "Excel"
+Const CDA_APPNAME_POWERPOINT = "Powerpoint"
+
+Dim daWrd
+Dim daDoc
+Dim daXl
+Dim daWb
+Dim daPP
+Dim daPres
+Dim daWshShell
+Dim daFso
+Dim daTitle
+
+daTitle = CDA_TITLE
+
+'# Setup Scripting objects
+set daFso = WScript.CreateObject("Scripting.FileSystemObject")
+set daWshShell = Wscript.CreateObject("Wscript.Shell")
+
+
+'##### Run Macro FUNCTIONS ######
+
+'######################
+Sub DASetTitle(newTitle)
+ daTitle = newTitle
+End Sub
+
+'######################
+Sub DAsetupWrdServer
+
+On Error Resume Next
+
+Set daWrd = wscript.CreateObject("Word.Application")
+If Err.Number <> 0 Then
+ DAErrMsg "Failed to create Word Automation server: " & vbLf & vbLf & "Error: " _
+ & CStr(Err.Number) & " " & Err.Description, CDA_ERR_STD_DELAY
+ FinalExit
+End If
+
+End Sub
+
+'######################
+Sub DAOpenWrdDriver(driver)
+Dim sWordDriverDocPath
+
+On Error Resume Next
+daWrd.Visible = False
+
+'# Open a driver doc
+sWordDriverDocPath = daFso.GetAbsolutePathName(driver)
+'DAdiagMsg "sWordDriverDocPath : " & sWordDriverDocPath , CDIAG_STD_DELAY
+
+If Not daFso.FileExists(sWordDriverDocPath) Then
+ DAErrMsg "Driver doc does not exist: " & sWordDriverDocPath, CDA_ERR_STD_DELAY
+ FinalExit
+End If
+
+Set daDoc = daWrd.Documents.Open(sWordDriverDocPath)
+If Err.Number <> 0 Then
+ DAErrMsg "Failed to open driver doc: " & vbLf & sWordDriverDocPath & vbLf & vbLf & "Error: " _
+ & CStr(Err.Number) & " " & Err.Description, CDA_ERR_STD_DELAY
+ FinalExit
+End If
+
+End Sub
+
+'######################
+Function DArunWrdDriver(driver, macro)
+
+On Error Resume Next
+'# Run macro
+DArunWrdDriver = True
+daWrd.Run ("AnalysisTool." & macro)
+If Err.Number <> 0 Then
+ DAErrMsg "Failed to run macro: " & macro & vbLf & vbLf & "Error: " _
+ & CStr(Err.Number) & " " & Err.Description, CDA_ERR_STD_DELAY
+ DArunWrdDriver = False
+End If
+
+End Function
+
+'######################
+Sub DAsaveWrdDriver(saveDriver)
+'DAdiagMsg "saveDriver : " & saveDriver , CDIAG_STD_DELAY
+'DAdiagMsg "Abs(saveDriver) : " & daFso.GetAbsolutePathName( saveDriver) , CDIAG_STD_DELAY
+ daDoc.SaveAs daFso.GetAbsolutePathName( saveDriver)
+End Sub
+
+'######################
+Sub DAsetupExcelServer
+
+On Error Resume Next
+
+Set daXl = wscript.CreateObject("Excel.Application")
+If Err.Number <> 0 Then
+ DAErrMsg "Failed to create Excel Automation server: " & vbLf & vbLf & "Error: " _
+ & CStr(Err.Number) & " " & Err.Description, CDA_ERR_STD_DELAY
+ FinalExit
+End If
+
+End Sub
+
+'######################
+Sub DAOpenExcelDriver(driver)
+ Dim sExcelDriverDocPath
+
+ On Error Resume Next
+ daXl.Visible = False
+
+ '# Open driver doc
+ sExcelDriverDocPath = daFso.GetAbsolutePathName(driver)
+ If Not daFso.FileExists(sExcelDriverDocPath) Then
+ DAErrMsg "Driver doc does not exist: " & sExcelDriverDocPath, CDA_ERR_STD_DELAY
+ FinalExit
+ End If
+
+ Set daWb = daXl.Workbooks.Open(sExcelDriverDocPath)
+ If Err.Number <> 0 Then
+ DAErrMsg "Failed to open driver doc: " & vbLf & sExcelDriverDocPath & vbLf & vbLf & "Error: " _
+ & CStr(Err.Number) & " " & Err.Description, CDA_ERR_STD_DELAY
+ FinalExit
+ End If
+
+End Sub
+
+'######################
+Function DArunExcelDriver(driver, macro)
+On Error Resume Next
+
+'# Run macro
+DArunExcelDriver = True
+daXl.Run ("AnalysisTool." & macro)
+If Err.Number <> 0 Then
+ DAErrMsg "Failed to run macro: " & macro & vbLf & vbLf & "Error: " _
+ & CStr(Err.Number) & " " & Err.Description, CDA_ERR_STD_DELAY
+ DArunExcelDriver = False
+End If
+
+End Function
+
+'######################
+Sub DAsaveExcelDriver(saveDriver)
+ '# Not overwritting - Excel hangs, need to remove file first
+ if daFso.FileExists(daFso.GetAbsolutePathName(saveDriver)) Then
+ daFso.DeleteFile(daFso.GetAbsolutePathName(saveDriver))
+ End If
+ daWb.SaveAs daFso.GetAbsolutePathName(saveDriver)
+End Sub
+
+'######################
+Sub DAsetupPPServer
+
+On Error Resume Next
+
+Set daPP = wscript.CreateObject("PowerPoint.Application")
+If Err.Number <> 0 Then
+ DAErrMsg "Failed to create PowerPoint Automation server: " & vbLf & vbLf & "Error: " _
+ & CStr(Err.Number) & " " & Err.Description, CDA_ERR_STD_DELAY
+ FinalExit
+End If
+
+End Sub
+
+'######################
+Sub DAOpenPPDriver(driver)
+Dim sPPDriverDocPath
+
+On Error Resume Next
+
+
+'# Open driver doc
+sPPDriverDocPath = daFso.GetAbsolutePathName(driver)
+If Not daFso.FileExists(sPPDriverDocPath ) Then
+ DAErrMsg "Driver doc does not exist: " & sPPDriverDocPath, CDA_ERR_STD_DELAY
+ FinalExit
+End If
+
+
+'## MS: KB Article 155073 ##
+'# PPT7: OLE Automation Error Using Open Method
+'# MUST show the PowerPoint application window at least once before calling the Application.Presentations.Open method
+daPP.Visible = True
+daPP.WindowState = 2 'Minimize PowerPoint
+
+daPP.Presentations.Open sPPDriverDocPath
+If Err.Number <> 0 Then
+ DAErrMsg "Failed to open driver doc: " & vbLf & sPPDriverDocPath & vbLf & vbLf & "Error: " _
+ & CStr(Err.Number) & " " & Err.Description, CDA_ERR_STD_DELAY
+ FinalExit
+End If
+
+set daPres = daPP.Presentations(1)
+
+End Sub
+
+'######################
+Function DArunPPDriver(driver, macro)
+
+On Error Resume Next
+'# Run macro
+DArunPPDriver = True
+daPP.Run (daFso.GetFileName(driver) & "!" & macro)
+If Err.Number <> 0 Then
+ DAErrMsg "Failed to run macro: " & macro & vbLf & vbLf & "Error: " _
+ & CStr(Err.Number) & " " & Err.Description, CDA_ERR_STD_DELAY
+ DArunPPDriver = False
+End If
+
+End Function
+
+'######################
+Sub DAsavePPDriver(saveDriver)
+ daPres.SaveAs daFso.GetAbsolutePathName(saveDriver)
+End Sub
+
+
+'######################
+
+Sub DACloseApps()
+ '# Quit apps
+ On Error Resume Next
+ If Not daWrd Is Nothing Then
+ daDoc.Close wdDoNotSaveChanges
+ daWrd.Quit
+ End If
+ If Not daXl Is Nothing Then
+ daWb.Close False
+ daXl.Quit
+ End If
+ If Not daPP Is Nothing Then
+ daPres.Close
+ daPP.Quit
+ End If
+
+ Set daDoc = Nothing
+ Set daWb = Nothing
+ Set daPres = Nothing
+
+ Set daWrd = Nothing
+ Set daXl = Nothing
+ Set daPP = Nothing
+End Sub
+
+'######################
+
+Sub DACleanUp()
+ '# Quit apps
+ On Error Resume Next
+
+ DACloseApps
+
+ Set daFso = Nothing
+ Set daWshShell = Nothing
+End Sub
+
+
+'######################
+Sub DAdiagMsg( msg, delay)
+ '# WSHShell.echo: Popup if run with Wscript.exe, command line output if run with Cscript.exe
+ WScript.Echo msg
+
+ 'WSHShell.popup msg, delay, daTitle, 64
+End Sub
+
+'######################
+Sub DAErrMsg( msg, delay)
+ daWshShell.Popup msg, delay, daTitle, 16
+
+ 'WScript.Echo msg
+End Sub
+
+'######################
+Sub DAVerifyAnalysisIni()
+ if daFso.FileExists(daFso.GetAbsolutePathName(".\" & CDA_ANALYSIS_INI)) Then Exit Sub
+
+ DAErrMsg CDA_ANALYSIS_INI & " does not exist. " & vbLf & vbLf & _
+ "You need to create it manually or use the DocAnalysisWizard to create one for you." & vbLf & _
+ "Once this is done you can rerun the Document Analysis command line.", CDA_ERR_STD_DELAY
+ FinalExit
+End Sub
+
+'######################
+Sub DAExportFile(fileName, projectFile, app_name)
+ On Error Resume Next
+
+ Dim myProject
+
+ '# Setup App Specifc VB Project
+ Set myProject = DAgetProject(fileName, projectFile, app_name)
+
+ Dim myComponent
+ Set myComponent = myProject.VBComponents(projectFile)
+ If Err.Number <> 0 Then
+ DAErrMsg "Missing Project File [" & projectFile & "] - Path:" & vbLf & vbLf & fileName, CERR_STD_DELAY
+ Set myComponent = Nothing
+ Set myProject = Nothing
+ FinalExit
+ End If
+
+ myProject.VBComponents(projectFile).Export fileName
+ If Err.Number <> 0 Then
+ DAErrMsg "Error exporting Project File [" & projectFile & "] - Path:" & vbLf & vbLf & fileName, CERR_STD_DELAY
+ Set myComponent = Nothing
+ Set myProject = Nothing
+ FinalExit
+ End If
+
+ Set myComponent = Nothing
+ Set myProject = Nothing
+
+End Sub
+
+'######################
+Sub DAImportFile(fileName, projectFile, app_name)
+ On Error Resume Next
+
+ Dim myProject
+
+ '# Setup App Specifc VB Project
+ Set myProject = DAgetProject(fileName, projectFile, app_name)
+
+ '# Check if module already exists raise error
+ Dim myComponent
+ Set myComponent = myProject.VBComponents(projectFile)
+ If Err.Number = 0 Then
+ DAErrMsg "Duplicate Project File [" & projectFile & "] - Path:" & vbLf & vbLf & fileName, CERR_STD_DELAY
+ Set myComponent = Nothing
+ Set myProject = Nothing
+ FinalExit
+ End If
+
+ '#If module not there need to clear out of index error
+ Err.Clear
+
+ If Not daFso.FileExists(fileName) Then
+ DAErrMsg "Missing File " & fileName, CERR_STD_DELAY
+ Set myComponent = Nothing
+ Set myProject = Nothing
+ FinalExit
+ End If
+
+ Call myProject.VBComponents.Import(fileName)
+
+ If Err.Number <> 0 Then
+ DAErrMsg "Error importing Project File [" & projectFile & "] - Path:" & vbLf & vbLf & fileName, CERR_STD_DELAY
+ Set myComponent = Nothing
+ Set myProject = Nothing
+ FinalExit
+ End If
+
+ Set myComponent = Nothing
+ Set myProject = Nothing
+End Sub
+
+'#################
+
+Sub DARemoveModule(fileName, projectFile, app_name)
+ On Error Resume Next
+
+ Dim myProject
+
+ '# Setup App Specifc VB Project
+ Set myProject = DAgetProject(fileName, projectFile, app_name)
+
+ '# Check if module already exists raise error
+ Dim myComponent
+ Set myComponent = myProject.VBComponents(projectFile)
+
+
+ myProject.VBComponents.Remove myComponent
+
+ If Err.Number <> 0 Then
+ DAErrMsg "Error removing Project File [" & projectFile & "] - Path:" & vbLf & vbLf & fileName, CERR_STD_DELAY
+ Set myComponent = Nothing
+ Set myProject = Nothing
+ FinalExit
+ End If
+
+ Set myComponent = Nothing
+ Set myProject = Nothing
+End Sub
+
+'######################
+Function DAgetProject(fileName, projectFile, app_name)
+ On Error Resume Next
+
+ If app_name = CDA_APPNAME_WORD Then
+ Set DAgetProject = daWrd.ActiveDocument.VBProject
+
+ ElseIf app_name = CDA_APPNAME_EXCEL Then
+ Set DAgetProject = daXl.ActiveWorkbook.VBProject
+
+ ElseIf app_name = CDA_APPNAME_POWERPOINT Then
+ Set DAgetProject = daPP.ActivePresentation.VBProject
+ End If
+
+ If Err.Number <> 0 Then
+ DAErrMsg "Cannot access VBProject for Project File [" & projectFile & "] - Path:" & vbLf & vbLf & fileName, _
+ CERR_STD_DELAY
+ Set DAgetProject = Nothing
+ FinalExit
+ End If
+
+End Function
+
diff --git a/migrationanalysis/src/driver_docs/PAW/_OOoDocAnalysisExcelDriver.xls b/migrationanalysis/src/driver_docs/PAW/_OOoDocAnalysisExcelDriver.xls Binary files differnew file mode 100644 index 000000000000..a5a52adc1350 --- /dev/null +++ b/migrationanalysis/src/driver_docs/PAW/_OOoDocAnalysisExcelDriver.xls diff --git a/migrationanalysis/src/driver_docs/PAW/_OOoDocAnalysisPPTDriver.ppt b/migrationanalysis/src/driver_docs/PAW/_OOoDocAnalysisPPTDriver.ppt Binary files differnew file mode 100644 index 000000000000..e5f9de418b9a --- /dev/null +++ b/migrationanalysis/src/driver_docs/PAW/_OOoDocAnalysisPPTDriver.ppt diff --git a/migrationanalysis/src/driver_docs/PAW/_OOoDocAnalysisWordDriver.doc b/migrationanalysis/src/driver_docs/PAW/_OOoDocAnalysisWordDriver.doc Binary files differnew file mode 100644 index 000000000000..501274bc5220 --- /dev/null +++ b/migrationanalysis/src/driver_docs/PAW/_OOoDocAnalysisWordDriver.doc diff --git a/migrationanalysis/src/driver_docs/allstrings.ulf b/migrationanalysis/src/driver_docs/allstrings.ulf new file mode 100644 index 000000000000..0f36a93290ff --- /dev/null +++ b/migrationanalysis/src/driver_docs/allstrings.ulf @@ -0,0 +1,2371 @@ +[RID_STR_COMMON_PRODUCTNAME]
+en-US = "OpenOffice.org"
+
+[RID_STR_COMMON_PRODUCTVERSION]
+en-US = "3.0"
+
+[RID_STR_COMMON_NEXTPRODUCTVERSION]
+en-US = "3.1"
+
+[RID_STR_COMMON_OLE_CONTROL]
+en-US = "OLE Control"
+
+[RID_STR_COMMON_OLE_FIELD_LINK]
+en-US = "OLE Field Link"
+
+[RID_STR_COMMON_OLE_UNKNOWN]
+en-US = "Unknown Type"
+
+[RID_STR_COMMON_VB_COMPONENT_MODULE]
+en-US = "Module"
+
+[RID_STR_COMMON_VB_COMPONENT_STANDARD]
+en-US = "Standard Module"
+
+[RID_STR_COMMON_VB_COMPONENT_CLASS]
+en-US = "Class Module"
+
+[RID_STR_COMMON_VB_COMPONENT_USER_FORM]
+en-US = "User Form"
+
+[RID_STR_COMMON_VB_COMPONENT_DOCUMENT]
+en-US = "Document"
+
+[RID_STR_COMMON_VB_COMPONENT_ACTIVEX_DESIGNER]
+en-US = "ActiveX Designer"
+
+[RID_STR_COMMON_VB_COMPONENT_UNKNOWN]
+en-US = "Unknown"
+
+[RID_STR_COMMON_YES_OR_NO]
+en-US = "Yes or No"
+
+[RID_STR_COMMON_DATE]
+en-US = "Date"
+
+[RID_STR_COMMON_NUMBER]
+en-US = "Number"
+
+[RID_STR_COMMON_TEXT]
+en-US = "Text"
+
+[RID_STR_COMMON_UNKNOWN]
+en-US = "Unknown"
+
+[RID_STR_COMMON_DEC_TO_EXTERNAL_LIBRARY]
+en-US = "Declaration to external library"
+
+[RID_STR_COMMON_RESULTS_LOCATION_TYPE_DOCUMENT]
+en-US = "Document"
+
+[RID_STR_COMMON_RESULTS_LOCATION_TYPE_PAGE]
+en-US = "Page"
+
+[RID_STR_COMMON_RESULTS_LOCATION_TYPE_WORKBOOK]
+en-US = "WorkBook"
+
+[RID_STR_COMMON_RESULTS_LOCATION_TYPE_SHEET]
+en-US = "Sheet"
+
+[RID_STR_COMMON_RESULTS_LOCATION_TYPE_PRESENTATION]
+en-US = "Presentation"
+
+[RID_STR_COMMON_RESULTS_LOCATION_TYPE_SLIDE]
+en-US = "Slide"
+
+[RID_STR_COMMON_INVALID_PASSWORD]
+en-US = "Invalid Password"
+
+[RID_STR_COMMON_PASSWORD_SKIPDOC]
+en-US = "Skip Password Protected"
+
+[RID_STR_COMMON_NA]
+en-US = "na"
+
+[RID_STR_COMMON_ATTRIBUTE_BROKEN]
+en-US = "Broken!"
+
+[RID_STR_COMMON_ATTRIBUTE_BUILTIN]
+en-US = "BuiltIn"
+
+[RID_STR_COMMON_ATTRIBUTE_CHECK_DOCUMENT_REFERENCES]
+en-US = "Check document VB-IDE/Tools/References"
+
+[RID_STR_COMMON_ATTRIBUTE_CLASS_ME_COUNT]
+en-US = "Class refs to Me"
+
+[RID_STR_COMMON_ATTRIBUTE_COMPONENT]
+en-US = "Component"
+
+[RID_STR_COMMON_ATTRIBUTE_CONTROLS]
+en-US = "Controls"
+
+[RID_STR_COMMON_ATTRIBUTE_CUSTOM]
+en-US = "Custom"
+
+[RID_STR_COMMON_ATTRIBUTE_DESCRIPTION]
+en-US = "Description"
+
+[RID_STR_COMMON_ATTRIBUTE_GUID]
+en-US = "GUID"
+
+[RID_STR_COMMON_ATTRIBUTE_FILE]
+en-US = "File"
+
+[RID_STR_COMMON_ATTRIBUTE_PROPERTIES]
+en-US = "Properties"
+
+[RID_STR_COMMON_ATTRIBUTE_FURTHER_MACRO_ANALYSIS_NOT_POSSIBLE]
+en-US = "Further macro analysis not possible"
+
+[RID_STR_COMMON_ATTRIBUTE_INCLUDING]
+en-US = "including:"
+
+[RID_STR_COMMON_ATTRIBUTE_INTACT]
+en-US = "Intact"
+
+[RID_STR_COMMON_ATTRIBUTE_ISBROKEN]
+en-US = "IsBroken"
+
+[RID_STR_COMMON_ATTRIBUTE_MAJOR]
+en-US = "Major"
+
+[RID_STR_COMMON_ATTRIBUTE_MINOR]
+en-US = "Minor"
+
+[RID_STR_COMMON_ATTRIBUTE_MISSING]
+en-US = "MISSING"
+
+[RID_STR_COMMON_ATTRIBUTE_NAME]
+en-US = "Name"
+
+[RID_STR_COMMON_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES]
+en-US = "Non Portable External References"
+
+[RID_STR_COMMON_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES_COUNT]
+en-US = "External Reference Count"
+
+[RID_STR_COMMON_ATTRIBUTE_NUMBER_OF_LINES]
+en-US = "Number of Lines"
+
+[RID_STR_COMMON_ATTRIBUTE_SIGNATURE]
+en-US = "MD5 Hash"
+
+[RID_STR_COMMON_ATTRIBUTE_PASSWORD]
+en-US = "Password"
+
+[RID_STR_COMMON_ATTRIBUTE_PATH]
+en-US = "Path"
+
+[RID_STR_COMMON_ATTRIBUTE_PROCEDURES]
+en-US = "Procedures"
+
+[RID_STR_COMMON_ATTRIBUTE_PROJECT]
+en-US = "Project"
+
+[RID_STR_COMMON_ATTRIBUTE_TYPE]
+en-US = "Type"
+
+[RID_STR_COMMON_ATTRIBUTE_TYPELIB]
+en-US = "Type Library"
+
+[RID_STR_COMMON_ATTRIBUTE_UNABLE_TO_ACCESS_VBPROJECT]
+en-US = "Unable to access VBProject"
+
+[RID_STR_COMMON_ATTRIBUTE_UNKNOWN]
+en-US = "Unknown"
+
+[RID_STR_COMMON_ATTRIBUTE_USERFORM_TYPE]
+en-US = "Control Types"
+
+[RID_STR_COMMON_ATTRIBUTE_USERFORM_TYPES_COUNT]
+en-US = "Control Types Count"
+
+[RID_STR_COMMON_ATTRIBUTE_VALUE]
+en-US = "Value"
+
+[RID_STR_COMMON_ATTRIBUTE_VBPROJECT_PASSWORD]
+en-US = "VBProject Password set"
+
+[RID_STR_COMMON_ISSUE_INFORMATION]
+en-US = "Information"
+
+[RID_STR_COMMON_ISSUE_FORMAT]
+en-US = "Format"
+
+[RID_STR_COMMON_ISSUE_PORTABILITY]
+en-US = "Portability"
+
+[RID_STR_COMMON_ISSUE_VBA_MACROS]
+en-US = "VBA Macros"
+
+[RID_STR_COMMON_ISSUE_CONTENT_AND_DOCUMENT_PROPERTIES]
+en-US = "Content and Document Properties"
+
+[RID_STR_COMMON_NOTE_DOCUMENT_PROPERTIES_LOST]
+en-US = "this summary property is lost"
+
+[RID_STR_COMMON_SUBISSUE_PROPERTIES]
+en-US = "Properties"
+
+[RID_STR_COMMON_SUBISSUE_REFERENCES]
+en-US = "References"
+
+[RID_STR_COMMON_SUBISSUE_EXTERNAL_REFERENCES_IN_MACROS]
+en-US = "External References in Macro"
+
+[RID_STR_COMMON_SUBISSUE_INVALID_PASSWORD_ENTERED]
+en-US = "Invalid Password Entered"
+
+[RID_STR_COMMON_SUBISSUE_DOCUMENT_PARTS_PROTECTION]
+en-US = "Document Parts Protection"
+
+[RID_STR_COMMON_SUBISSUE_MACRO_PASSWORD_PROTECTION]
+en-US = "Password Protected"
+
+[RID_STR_COMMON_SUBISSUE_PASSWORDS_PROTECTION]
+en-US = "Password Protection"
+
+[RID_STR_COMMON_ATTRIBUTE_OBJECT_NAME]
+en-US = "Object Name"
+
+[RID_STR_COMMON_ATTRIBUTE_OBJECT_TYPE]
+en-US = "Object Type"
+
+[RID_STR_COMMON_ATTRIBUTE_SOURCE]
+en-US = "Source"
+
+[RID_STR_COMMON_NOTE_HF_PREPARABLE]
+en-US = "will add additional returns to the header/footer"
+
+[RID_STR_COMMON_PREPARATION_FOLDER]
+en-US = "prepared"
+
+[RID_STR_COMMON_SUBISSUE_DOCUMENT_CUSTOM_PROPERTY]
+en-US = "Document Custom Property"
+
+[RID_STR_COMMON_MACRO_CLASS_COMPLEX]
+en-US = "Complex"
+
+[RID_STR_COMMON_MACRO_CLASS_MEDIUM]
+en-US = "Medium"
+
+[RID_STR_COMMON_MACRO_CLASS_SIMPLE]
+en-US = "Simple"
+
+[RID_STR_COMMON_MACRO_CLASS_NONE]
+en-US = "No Macros"
+
+[RID_STR_COMMON_ISSUE_CLASS_COMPLEX]
+en-US = "Complex"
+
+[RID_STR_COMMON_ISSUE_CLASS_MINOR]
+en-US = "Minor"
+
+[RID_STR_COMMON_ISSUE_CLASS_NONE]
+en-US = "No Issues"
+
+[RID_STR_COMMON_OV_VERSION_STR]
+en-US = "Created by"
+
+[RID_STR_COMMON_OV_DOC_MOD_DATES_COMMENT_TITLE]
+en-US = "Which documents do you need to migrate?"
+
+[RID_STR_COMMON_OV_DOC_MOD_DATES_COMMENT_BODY]
+en-US = "<CR>The last modified date is an indicator of the importance of a document. It helps you decide which documents should just be archived to a read only format such as Adobe PDF and which actually need to be migrated to <PRODUCTNAME> where they can continue to be updated and modified."
+
+[RID_STR_COMMON_OV_LEGEND_TITLE]
+en-US = "Legend"
+
+[RID_STR_COMMON_OV_DOC_MOD_DATES_LEGEND_BODY]
+en-US = "< 3 months: Migrate to <PRODUCTNAME>.<CR>3 - 6 Months: Careful review to see if they should be archived or migrated to <PRODUCTNAME>.<CR>6 - 12 Months: Quick review, either archive or migrate to the read/write <PRODUCTNAME> XML file format.<CR>> 1 Year: Older than 1 year, archive to read-only format such as PDF"
+
+[RID_STR_COMMON_OV_DOC_MACRO_COMMENT_TITLE]
+en-US = "How many documents contain macros?"
+
+[RID_STR_COMMON_OV_DOC_MACRO_COMMENT_BODY]
+en-US = "<CR><PRODUCTNAME> includes <PRODUCTNAME> BASIC, a Basic dialect that is similar to Microsoft's Visual Basic for Application (VBA), but <PRODUCTNAME> uses a different sets of objects to access the underlying Office.<CR>This makes it necessary to migrate the VBA macros into the platform independent <PRODUCTNAME> BASIC. Your local <PRODUCTNAME> Migration partner can help you with these VBA macro migrations."
+
+[RID_STR_COMMON_OV_DOC_MACRO_LEGEND_BODY]
+en-US = "Complex: Macros using Forms, Controls and external references<CR>Medium: Macros with more than 50 lines of code<CR>Simple: Macros with less than 50 lines of code<CR>None: No macros in the document"
+
+[RID_STR_COMMON_OV_HIGH_LEVEL_ANALYSIS_DAW]
+en-US = "Analysis of document migration issues for documents modified within the last <TOPIC> months"
+
+[RID_STR_COMMON_OV_HIGH_LEVEL_ANALYSIS_PAW_NO_LIMIT]
+en-US = "High level analysis of document migration issues"
+
+[RID_STR_COMMON_OV_DOC_ANALYSIS_COMMENT_TITLE]
+en-US = "Which documents may have migration issues?"
+
+[RID_STR_COMMON_OV_DOC_ANALYSIS_COMMENT_BODY]
+en-US = "<CR>Some Microsoft Office documents may not migrate perfectly into <PRODUCTNAME>. These issues are outlined in the <PRODUCTNAME> Migration Guide. <PRODUCTNAME> engineering is working continously to resolve these issues by improving the Microsoft Office filters.<CR>The Document Analysis Wizard has been provided by <PRODUCTNAME> engineering to detect the most important of these migration issues in any Microsoft Office document you wish to specify. These findings are summarised below [refer to the 'List of documents' sheet to see the list of all analyzed documents]."
+
+[RID_STR_COMMON_OV_DOC_ANALYSIS_DAW_LEGEND_BODY]
+en-US = "Complex: More complex migration issues.<CR>Minor: Minor migration issues easily fixed by any user.<CR>None: No issues Migrate to <PRODUCTNAME> without any issues.<CR><CR>Your <PRODUCTNAME> Migration Partners can help you with these more complex migration issues [refer to link above]. For instance they can migrate these documents to custom templates that achieve the same functionality but work well in both Office environments allowing the documents to be freely exchanged."
+
+[RID_STR_COMMON_OV_DOC_ANALYSIS_PAW_LEGEND_BODY]
+en-US = "Complex: More complex migration issues.<CR>Minor: Minor migration issues easily fixed by any user.<CR>None: No issues Migrate to <PRODUCTNAME> without any issues."
+
+[RID_STR_COMMON_OV_DOC_MOD_DATES_CHART_TITLE]
+en-US = "Document modification dates"
+
+[RID_STR_COMMON_OV_DOC_MACRO_CHART_TITLE]
+en-US = "Document with Macro Migration Issues"
+
+[RID_STR_COMMON_OV_DOC_ANALYSIS_CHART_TITLE]
+en-US = "Documents with Document Migration Issues"
+
+[RID_STR_COMMON_PREPARATION_NOTE]
+en-US = "Preparation"
+
+[RID_STR_COMMON_CANNOT_OPEN]
+en-US = "Cannot open - no analysis possible"
+
+[RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW]
+en-US = "Overview"
+
+[RID_STR_COMMON_RESULTS_SHEET_NAME_COSTS]
+en-US = "Issues Analyzed"
+
+[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_WORD]
+en-US = "Word Issues"
+
+[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_EXCEL]
+en-US = "Excel Issues"
+
+[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_POWERPOINT]
+en-US = "PowerPoint Issues"
+
+[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUE_DETAILS]
+en-US = "Issue Details"
+
+[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCREF_DETAILS]
+en-US = "Reference Details"
+
+[RID_STR_COMMON_RESULTS_SHEET_NAME_DOCPROP]
+en-US = "List of documents"
+
+[RID_STR_COMMON_ANALYSIS_STR]
+en-US = "Analysis"
+
+[RID_STR_COMMON_NOTE_PRE]
+en-US = "Note"
+
+[RID_STR_COMMON_NOTE_POST]
+en-US = " on migration"
+
+[RID_STR_COMMON_OLE_EMBEDDED]
+en-US = "Embedded OLE Object"
+
+[RID_STR_COMMON_OLE_LINKED]
+en-US = "Linked OLE Object"
+
+[RID_STR_EXCEL_ISSUE_CHARTS_AND_TABLES]
+en-US = "Charts and Tables"
+
+[RID_STR_EXCEL_ISSUE_FORMAT]
+en-US = "Format"
+
+[RID_STR_EXCEL_ISSUE_FUNCTIONS]
+en-US = "Functions"
+
+[RID_STR_EXCEL_ISSUE_PORTABILITY]
+en-US = "Portability"
+
+[RID_STR_EXCEL_ISSUE_VBA_MACROS]
+en-US = "VBA Macros"
+
+[RID_STR_EXCEL_ISSUE_INFORMATION]
+en-US = "Information"
+
+[RID_STR_EXCEL_SUBISSUE_PIVOT]
+en-US = "Pivot"
+
+[RID_STR_EXCEL_SUBISSUE_ZOOM]
+en-US = "Zoom"
+
+[RID_STR_EXCEL_TRUE]
+en-US = "True"
+
+[RID_STR_EXCEL_FALSE]
+en-US = "False"
+
+[RID_STR_EXCEL_SUBISSUE_MAX_SHEETS_EXCEEDED]
+en-US = "Maximum Sheets Exceeded"
+
+[RID_STR_EXCEL_SUBISSUE_ATTRIBUTES]
+en-US = "Cell Attributes"
+
+[RID_STR_EXCEL_SUBISSUE_EXTERNAL]
+en-US = "External"
+
+[RID_STR_EXCEL_SUBISSUE_SHEET_CHART]
+en-US = "Sheet Chart"
+
+[RID_STR_EXCEL_SUBISSUE_EMBEDDED_CHART]
+en-US = "Embedded Chart"
+
+[RID_STR_EXCEL_SUBISSUE_INVALID_WORKSHEET_NAME]
+en-US = "Invalid Worksheet Name"
+
+[RID_STR_EXCEL_ATTRIBUTE_BADCHARACTER]
+en-US = "'<TOKEN1>' at pos <TOKEN2>"
+
+[RID_STR_EXCEL_ATTRIBUTE_DB_QUERY]
+en-US = "Connection string"
+
+[RID_STR_EXCEL_ATTRIBUTE_NAME]
+en-US = "Name"
+
+[RID_STR_EXCEL_ATTRIBUTE_NUMBER_OF_PIVOTFIELDS]
+en-US = "Number of PivotFields"
+
+[RID_STR_EXCEL_ATTRIBUTE_TITLE]
+en-US = "Title"
+
+[RID_STR_EXCEL_ATTRIBUTE_TYPE]
+en-US = "Type"
+
+[RID_STR_EXCEL_ATTRIBUTE_PIE]
+en-US = "Pie"
+
+[RID_STR_EXCEL_ATTRIBUTE_SLICES_IN_DIFFERENT_DIRECTION]
+en-US = "Slices in diff. direction"
+
+[RID_STR_EXCEL_ATTRIBUTE_LEGEND_NAME]
+en-US = "Legend Name"
+
+[RID_STR_EXCEL_ATTRIBUTE_NUMBER_OF_LEGEND_ENTRIES]
+en-US = "Number of Legend Entries"
+
+[RID_STR_EXCEL_ATTRIBUTE_PIVOT_TABLE_NAME]
+en-US = "PivotTable Name"
+
+[RID_STR_EXCEL_ATTRIBUTE_PIVOT_FIELDS_VISIBLE]
+en-US = "PivotFields Visible"
+
+[RID_STR_EXCEL_ATTRIBUTE_PIVOT_FIELDS_NUM]
+en-US = "Number of PivotFields"
+
+[RID_STR_EXCEL_ATTRIBUTE_PRINT_RANGE]
+en-US = "Print Range"
+
+[RID_STR_EXCEL_ATTRIBUTE_DISPLAY_ZOOM]
+en-US = "Display Zoom"
+
+[RID_STR_EXCEL_ATTRIBUTE_NUMBER_OF_SHEETS]
+en-US = "Number of Sheets"
+
+[RID_STR_EXCEL_ATTRIBUTE_LIST_SOURCE]
+en-US = "ListSource"
+
+[RID_STR_EXCEL_ATTRIBUTE_CUSTOM_FORMULA]
+en-US = "Custom Formula"
+
+[RID_STR_EXCEL_ATTRIBUTE_SET]
+en-US = "Set"
+
+[RID_STR_EXCEL_ATTRIBUTE_LINE_STYLE]
+en-US = "Line Style"
+
+[RID_STR_EXCEL_ATTRIBUTE_DASHED_DOT]
+en-US = "Dashed/Dot"
+
+[RID_STR_EXCEL_ATTRIBUTE_FILL_PATTERN]
+en-US = "Fill Pattern"
+
+[RID_STR_EXCEL_ATTRIBUTE_PATTERNED]
+en-US = "Patterned"
+
+[RID_STR_EXCEL_ATTRIBUTE_FUNCTION_STRING]
+en-US = "Function String"
+
+[RID_STR_EXCEL_ATTRIBUTE_PASSWORD_TO_OPEN]
+en-US = "Password to Open"
+
+[RID_STR_EXCEL_ATTRIBUTE_PASSWORD_TO_MODIFY]
+en-US = "Password to Modify"
+
+[RID_STR_EXCEL_ATTRIBUTE_OBJECT_TYPE]
+en-US = "Object Type"
+
+[RID_STR_EXCEL_ATTRIBUTE_OBJECT_NAME]
+en-US = "Object Name"
+
+[RID_STR_EXCEL_ATTRIBUTE_SOURCE]
+en-US = "Source"
+
+[RID_STR_EXCEL_ATTRIBUTE_VALUE]
+en-US = "Value"
+
+[RID_STR_EXCEL_ATTRIBUTE_UNABLE_TO_ACCESS_VBPROJECT]
+en-US = "Unable to access VBProject"
+
+[RID_STR_EXCEL_ATTRIBUTE_FURTHER_MACRO_ANALYSIS_NOT_POSSIBLE]
+en-US = "Further macro analysis not possible"
+
+[RID_STR_EXCEL_ATTRIBUTE_VBPROJECT_PASSWORD_SET]
+en-US = "VBProject Password Set"
+
+[RID_STR_EXCEL_ATTRIBUTE_PROJECT]
+en-US = "Project"
+
+[RID_STR_EXCEL_ATTRIBUTE_COMPONENT]
+en-US = "Component"
+
+[RID_STR_EXCEL_ATTRIBUTE_PROCEDURES]
+en-US = "Procedures"
+
+[RID_STR_EXCEL_ATTRIBUTE_NUMBER_OF_LINES]
+en-US = "Number of Lines"
+
+[RID_STR_EXCEL_ATTRIBUTE_CONTROLS]
+en-US = "Controls"
+
+[RID_STR_EXCEL_ATTRIBUTE_TYPES]
+en-US = "Types"
+
+[RID_STR_EXCEL_ATTRIBUTE_DESCRIPTION]
+en-US = "Description"
+
+[RID_STR_EXCEL_ATTRIBUTE_FILE]
+en-US = "File"
+
+[RID_STR_EXCEL_ATTRIBUTE_PATH]
+en-US = "Path"
+
+[RID_STR_EXCEL_ATTRIBUTE_MISSING]
+en-US = "MISSING"
+
+[RID_STR_EXCEL_ATTRIBUTE_CHECK_DOCUMENT_REFERENCES]
+en-US = "Check document VB-IDE/Tools/References"
+
+[RID_STR_EXCEL_ATTRIBUTE_MAJOR]
+en-US = "Major"
+
+[RID_STR_EXCEL_ATTRIBUTE_MINOR]
+en-US = "Minor"
+
+[RID_STR_EXCEL_ATTRIBUTE_BUILT_IN]
+en-US = "Built In"
+
+[RID_STR_EXCEL_ATTRIBUTE_INTACT]
+en-US = "Intact"
+
+[RID_STR_EXCEL_ATTRIBUTE_TYPELIB]
+en-US = "TypeLib"
+
+[RID_STR_EXCEL_ATTRIBUTE_GUID]
+en-US = "GUID"
+
+[RID_STR_EXCEL_ATTRIBUTE_CUSTOM]
+en-US = "Custom"
+
+[RID_STR_EXCEL_ATTRIBUTE_IS_BROKEN]
+en-US = "Is Broken"
+
+[RID_STR_EXCEL_ATTRIBUTE_BROKEN]
+en-US = "Broken!"
+
+[RID_STR_EXCEL_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES]
+en-US = "Non Portable External References"
+
+[RID_STR_EXCEL_ATTRIBUTE_INCLUDING]
+en-US = "including:"
+
+[RID_STR_EXCEL_ATTRIBUTE_PASSWORD]
+en-US = "Password"
+
+[RID_STR_EXCEL_ENUMERATION_CUSTOM]
+en-US = "Custom"
+
+[RID_STR_EXCEL_ENUMERATION_LIST]
+en-US = "List"
+
+[RID_STR_EXCEL_ENUMERATION_UNKNOWN]
+en-US = "Unknown"
+
+[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_CONTINUOUS]
+en-US = "Continuous"
+
+[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_DASH]
+en-US = "Dash"
+
+[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_DASHDOT]
+en-US = "DashDot"
+
+[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_DOT]
+en-US = "Dot"
+
+[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_DOUBLE]
+en-US = "Double"
+
+[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_SLANTDASHDOT]
+en-US = "SlantDashDot"
+
+[RID_STR_EXCEL_ENUMERATION_LINE_STYLE_LINESTYLENONE]
+en-US = "LineStyleNone"
+
+[RID_STR_EXCEL_NOTE_DB_QUERY]
+en-US = "The connection to the database in <PRODUCTNAME> will be lost . The data will appear correctly but can not be updated."
+
+[RID_STR_EXCEL_NOTE_INVALIDWORKSHEETNAME]
+en-US = "The worksheet name contains characters that are not supported by <PRODUCTNAME>. Please rename your sheet and exclude these characters."
+
+[RID_STR_EXCEL_NOTE_ZOOM]
+en-US = "all sheets will have the same zoom irrespective of their Excel View/Zoom setting after migration to <PRODUCTNAME>"
+
+[RID_STR_EXCEL_NOTE_CELL_ATTRIBUTES_3]
+en-US = "this line style is imported as a solid line. Only solid line syles are supported in <PRODUCTNAME>"
+
+[RID_STR_EXCEL_NOTE_CELL_ATTRIBUTES_4]
+en-US = "this fill pattern is imported as a solid gray. Only solid fill patterns are supported in <PRODUCTNAME>"
+
+[RID_STR_EXCEL_NOTE_CELL_FUNCTIONS_1]
+en-US = "this function returns platform dependent information specific to Windows and is not imported to <PRODUCTNAME>"
+
+[RID_STR_EXCEL_NOTE_CELL_FUNCTIONS_2]
+en-US = "this function returns error codes specific to Excel and is imported in <PRODUCTNAME> as the stub function ErrorType() always returning Err.520"
+
+[RID_STR_EXCEL_NOTE_CELL_FUNCTIONS_3]
+en-US = "this is an external function referenced from an Excel spreadsheet. It does not import correctly to <PRODUCTNAME>. The external reference is stripped and the resulting formula always returns #ADDIN?"
+
+[RID_STR_EXCEL_NOTE_DOCUMENT_PROPERTIES_1]
+en-US = "this summary property is lost"
+
+[RID_STR_EXCEL_NOTE_DOCUMENT_PROPERTIES_2]
+en-US = "this custom property is lost"
+
+[RID_STR_EXCEL_NOTE_SHEET_LIMITS_1]
+en-US = "all sheets will be lost in <PRODUCTNAME> that are greater than "
+
+[RID_STR_EXCEL_NOTE_SHEET_LIMITS_2]
+en-US = "all sheets must be moved to a new workbook before migration that are greater than "
+
+[RID_STR_EXCEL_SUBLOCATION_NA]
+en-US = "na"
+
+[RID_STR_EXCEL_SUBISSUE_WORKBOOK_PROTECTION]
+en-US = "Workbook Protection"
+
+[RID_STR_EXCEL_ATTRIBUTE_PROTECT_TYPE_SHARING]
+en-US = "Protection Sharing"
+
+[RID_STR_EXCEL_ATTRIBUTE_PROTECT_TYPE_STRUCTURE]
+en-US = "Protection Structure"
+
+[RID_STR_EXCEL_ATTRIBUTE_PROTECT_TYPE_WINDOWS]
+en-US = "Protection Windows"
+
+[RID_STR_EXCEL_NOTE_PASSWORD_TO_OPEN]
+en-US = "workbook is protected"
+
+[RID_STR_EXCEL_NOTE_DATATABLE]
+en-US = "no simple workaround, could copy the data table and paste below the chart"
+
+[RID_STR_EXCEL_NOTE_XAXISCATEGORY]
+en-US = "only category option supported. Setup your category labels you need on the sheet"
+
+[RID_STR_EXCEL_NOTE_UNSUPPORTEDTYPE1]
+en-US = "following chart types not supported"
+
+[RID_STR_EXCEL_NOTE_UNSUPPORTEDTYPE2]
+en-US = "pie of pie,exploded 3D pie,bar of pie,bubble,filled radar,exploded doughnut"
+
+[RID_STR_EXCEL_NOTE_TRENDLINE]
+en-US = "replace the trend line by drawing a line on the chart. You must click outside the chart when adding the line and drag it onto the chart. Objects created by clicking on the chart will not import"
+
+[RID_STR_EXCEL_NOTE_DATALABELWITHLEGEND]
+en-US = "after import into <PRODUCTNAME>, select Insert->Data Labels->show legend icon with label and the legend key will appear"
+
+[RID_STR_EXCEL_NOTE_LEGENDPOSITION]
+en-US = "only legend to the right is supported on import. Change legend position in <PRODUCTNAME> after import"
+
+[RID_STR_EXCEL_NOTE_TITLEFONT]
+en-US = "title font with different font size is not supported on import, set a sub-title in <PRODUCTNAME>, then change the font size"
+
+[RID_STR_EXCEL_NOTE_SERIESCHARTTYPE]
+en-US = "multiple series with different chart types. SO only supports one chart type for all series. Adjust the chart type to best display the series"
+
+[RID_STR_EXCEL_NOTE_DATASOURCENOTLINKEDTOCELL]
+en-US = "data sources to catalogue or other external sources not supported. Data source must be set to cell or range on the sheet"
+
+[RID_STR_EXCEL_NOTE_CATEGORYANDDATA]
+en-US = "category names must be located above or to the left of the value ranges"
+
+[RID_STR_EXCEL_NOTE_DATASOURCEONDIFFERENTSHEET]
+en-US = "data sources must be located on the same sheet. Paste the data sources onto the same sheet"
+
+[RID_STR_EXCEL_NOTE_CATEGORYLABELMORETHANONECELL]
+en-US = "category labels spanning multiple cells are not supported. Copy all the text to one cell"
+
+[RID_STR_EXCEL_NOTE_COLUMNBAR]
+en-US = "chart 'series in' must match the data source. For data source in single row, set 'series in' = row. For data source in single column, set 'series in' = column"
+
+[RID_STR_EXCEL_NOTE_BORDER]
+en-US = "chart border will not appear in <PRODUCTNAME>, before import,set border to none, draw a rectangle around the border of the chart"
+
+[RID_STR_EXCEL_NOTE_AXISINTERVAL]
+en-US = " y axis interval setting will be changed in <PRODUCTNAME>. Modify axes interval setting in <PRODUCTNAME>, re-set major interval scale"
+
+[RID_STR_EXCEL_ATTRIBUTE_DATATABLE]
+en-US = "Data Table"
+
+[RID_STR_EXCEL_ATTRIBUTE_INVALIDCHARACTER]
+en-US = "Invalid Characters"
+
+[RID_STR_EXCEL_ATTRIBUTE_XAXISCATEGORY]
+en-US = "Chart Axes"
+
+[RID_STR_EXCEL_ATTRIBUTE_TIMESCALE]
+en-US = "time scale/auto"
+
+[RID_STR_EXCEL_ATTRIBUTE_UNSUPPORTEDTYPE]
+en-US = "Unsupported Chart Type"
+
+[RID_STR_EXCEL_ATTRIBUTE_TRENDLINE]
+en-US = "Trendline"
+
+[RID_STR_EXCEL_ATTRIBUTE_DATALABELWITHLEGEND]
+en-US = "Data Label With Legend"
+
+[RID_STR_EXCEL_ATTRIBUTE_LEGENDPOSITION]
+en-US = "Legend Position"
+
+[RID_STR_EXCEL_ATTRIBUTE_TITLEFONT]
+en-US = "Title Font"
+
+[RID_STR_EXCEL_ATTRIBUTE_DIFFERENT]
+en-US = "Different"
+
+[RID_STR_EXCEL_ATTRIBUTE_SERIESCHARTTYPE]
+en-US = "Multiple series chart type"
+
+[RID_STR_EXCEL_ATTRIBUTE_CHANGED]
+en-US = "changed"
+
+[RID_STR_EXCEL_ATTRIBUTE_DATASOURCE]
+en-US = "Data Source"
+
+[RID_STR_EXCEL_ATTRIBUTE_DATASOURCENOTLINKEDTOCELL]
+en-US = "Not Linked To A Cell"
+
+[RID_STR_EXCEL_ATTRIBUTE_CATEGORYANDDATA]
+en-US = "Category And Data"
+
+[RID_STR_EXCEL_ATTRIBUTE_SEPARATE]
+en-US = "Separate"
+
+[RID_STR_EXCEL_ATTRIBUTE_DATASOURCEONDIFFERENTSHEET]
+en-US = "On Different Sheet"
+
+[RID_STR_EXCEL_ATTRIBUTE_CATEGORYLABEL]
+en-US = "Category Label"
+
+[RID_STR_EXCEL_ATTRIBUTE_CATEGORYLABELMORETHANONECELL]
+en-US = "More Than One Cell"
+
+[RID_STR_EXCEL_ATTRIBUTE_COLUMNBAR]
+en-US = "Column/Bar Chart"
+
+[RID_STR_EXCEL_ATTRIBUTE_ONECOLUMNROW]
+en-US = "Data Source With Single Column/ Chart Series In Row"
+
+[RID_STR_EXCEL_ATTRIBUTE_BORDER]
+en-US = "Border"
+
+[RID_STR_EXCEL_ATTRIBUTE_AXISINTERVAL]
+en-US = "Y Axis Interval"
+
+[RID_STR_EXCEL_ATTRIBUTE_AUTO]
+en-US = "Auto"
+
+[RID_STR_EXCEL_ATTRIBUTE_CHARTNAME]
+en-US = "Chart Name"
+
+[RID_STR_EXCEL_SUBISSUE_CHART_COMPLEX]
+en-US = "Chart Issues Complex"
+
+[RID_STR_EXCEL_SUBISSUE_CHART_MINOR]
+en-US = "Chart Issues Minor"
+
+[RID_STR_EXCEL_ATTRIBUTE_NOTRIGHT]
+en-US = "not at right hand side"
+
+[RID_STR_EXCEL_ATTRIBUTE_NUMBER_OF_CELLS]
+en-US = "number cells effected"
+
+[RID_STR_PP_TRUE]
+en-US = "True"
+
+[RID_STR_PP_FALSE]
+en-US = "False"
+
+[RID_STR_PP_ISSUE_OBJECTS_GRAPHICS_AND_TEXTBOXES]
+en-US = "Objects, Graphics and Textboxes"
+
+[RID_STR_PP_SUBISSUE_COMMENT]
+en-US = "Comment"
+
+[RID_STR_PP_SUBISSUE_MOVIE]
+en-US = "Movie"
+
+[RID_STR_PP_ATTRIBUTE_CONTENT]
+en-US = "Content"
+
+[RID_STR_PP_ATTRIBUTE_LOOP]
+en-US = "Loop"
+
+[RID_STR_PP_ATTRIBUTE_PLAYONENTRY]
+en-US = "PlayOnEntry"
+
+[RID_STR_PP_ATTRIBUTE_REWIND]
+en-US = "Rewind"
+
+[RID_STR_PP_ATTRIBUTE_TYPES]
+en-US = "Types"
+
+[RID_STR_PP_ENUMERATION_VIEW_HANDOUT_MASTER]
+en-US = "View Handout Master"
+
+[RID_STR_PP_ENUMERATION_VIEW_NORMAL]
+en-US = "View Normal"
+
+[RID_STR_PP_ENUMERATION_VIEW_NOTES_MASTER]
+en-US = "View Notes Master"
+
+[RID_STR_PP_ENUMERATION_VIEW_NOTES_PAGE]
+en-US = "View Notes Page"
+
+[RID_STR_PP_ENUMERATION_VIEW_OUTLINE]
+en-US = "View Outline"
+
+[RID_STR_PP_ENUMERATION_VIEW_SLIDE]
+en-US = "View Slide"
+
+[RID_STR_PP_ENUMERATION_VIEW_SLIDE_MASTER]
+en-US = "View Slide Master"
+
+[RID_STR_PP_ENUMERATION_VIEW_SLIDE_SORTER]
+en-US = "View Slide Sorter"
+
+[RID_STR_PP_ENUMERATION_VIEW_TITLE_MASTER]
+en-US = "View Title Master"
+
+[RID_STR_PP_ENUMERATION_UNKNOWN]
+en-US = "Unknown"
+
+[RID_RESXLS_COST_Action_Settings]
+en-US = "Action Settings"
+
+[RID_RESXLS_COST_Add_custom_properties_to_document_Properties_Summary_Comments_field]
+en-US = "Add custom properties to document Properties Summary Comments field."
+
+[RID_RESXLS_COST_Additional_Weighting_Factors]
+en-US = "Additional Weighting Factors"
+
+[RID_RESXLS_COST_All_sheets__256_will_need_to_be_moved_to_a_new_workbook]
+en-US = "All sheets >256 will need to be moved to a new workbook"
+
+[RID_RESXLS_COST_Appearance]
+en-US = "Appearance"
+
+[RID_RESXLS_COST_Application]
+en-US = "Application"
+
+[RID_RESXLS_COST_AutoFilter]
+en-US = "AutoFilter"
+
+[RID_RESXLS_COST_Border_Styles]
+en-US = "Border Styles"
+
+[RID_RESXLS_COST_Cell_Attributes]
+en-US = "Cell Attributes"
+
+[RID_RESXLS_COST_CELL_SPAN_WORKAROUND]
+en-US = "Add extra row below cell. Cut and paste contents running onto 2nd page into new cell."
+
+[RID_RESXLS_COST_Cell_Spanning_Page]
+en-US = "Cell Spanning Page"
+
+[RID_RESXLS_COST_ChangesAndReviewing]
+en-US = "Changes And Reviewing"
+
+[RID_RESXLS_COST_Charts_And_Tables]
+en-US = "Charts And Tables"
+
+[RID_RESXLS_COST_Comment]
+en-US = "Comment"
+
+[RID_RESXLS_COST_Content_And_Document_Properties]
+en-US = "Content And Document Properties"
+
+[RID_RESXLS_COST_ContentAndDocumentProperties]
+en-US = "Content And Document Properties"
+
+[RID_RESXLS_COST_Controls]
+en-US = "Controls"
+
+[RID_RESXLS_COST_Cost]
+en-US = "Cost Comment"
+
+[RID_RESXLS_COST_Cost__In_simple_cases_cut_and_paste_to_new_sheet_3___5_min]
+en-US = "Cost: In simple cases cut and paste to new sheet. 3 - 5 min. May exist functions that refer to these cells. 10+"
+
+[RID_RESXLS_COST_COST_0]
+en-US = "Cost = 0. No work around."
+
+[RID_RESXLS_COST_COST_EMBED_CHART]
+en-US = "Variations in cost can range from 0 - 30 mins. Cost caused by uneven data souce, external data source, unsupported chart types, floating legend position."
+
+[RID_RESXLS_COST_COST_ERROR_TYPE]
+en-US = "Fix up cost can vary depending on the context in which this is used. Cost 3 - 5"
+
+[RID_RESXLS_COST_COST_INFO]
+en-US = "Fix up cost can vary depending on the context in which this is used. Cost 2 - 4"
+
+[RID_RESXLS_COST_COST_INVAL_PASS]
+en-US = "Cost = 0. Rerun analysis with correct password."
+
+[RID_RESXLS_COST_COST_INVALID_WORKSHEET_NAME]
+en-US = "Aufewand: Vergewissern Sie sich nach der Umbenennung, dass alle Makros mit Verweisen auf dieses Arbeitsblatt ebenfalls angepaßt werden. Der Aufwand hängt von der Zahl der Codezeilen ab, die auf den Arbeitsblattnamen verweisen."
+en-US = "Cost: When the worksheet has been renamed, ensure that all macros with a reference to the worksheet are also renamed accordingly. Cost depends on how many lines of code there are that refer to the worksheet name."
+
+[RID_RESXLS_COST_Cost_of_4_min_per_line__takes_no_account_of_complexity_of_code__number_of_comment_lines_and_so_on]
+en-US = "Cost of 4 min per line, takes no account of complexity of code, number of comment lines and so on"
+
+[RID_RESXLS_COST_Cost_per_Issue_or_Factor__min]
+en-US = "Cost per Issue or Factor (min)"
+
+[RID_RESXLS_COST_COST_PIVOT]
+en-US = "Cost = 0. Calc does not support dynamically created charts. No workaround."
+
+[RID_RESXLS_COST_COST_SHEET_CHART]
+en-US = "Variations in cost can range from 0 - 30 mins. Cost caused by uneven data souce, external data source, unsupported chart types, floating legend position."
+
+[RID_RESXLS_COST_Cost_variations_occur_because_of_the_use_of_macros_with_controls]
+en-US = "Cost variations occur because of the use of macros with controls."
+
+[RID_RESXLS_COST_COST_VBA_CONT_TYPE]
+en-US = "Cost = 0. Total number of controls better estimate - this information is useful as an indication of complexity of the Forms."
+
+[RID_RESXLS_COST_COST_VBA_CONTROLS]
+en-US = "Cost = 3 minute per control, this does not take account of issues with Frame controls or the number of these controls that have event handlers that need manually linked to migrated code."
+
+[RID_RESXLS_COST_COST_VBA_FORMS]
+en-US = "Cost = 0. Using total number of controls on forms as better estimate"
+
+[RID_RESXLS_COST_COST_VBA_LOC]
+en-US = "Cost of 4 min per line, takes no account of complexity of code, number of comment lines and so on"
+
+[RID_RESXLS_COST_COST_VBA_PROPS]
+en-US = "Cost = 0 using lines of code as better cost estimate."
+
+[RID_RESXLS_COST_Costs__min]
+en-US = "Costs (min)"
+
+[RID_RESXLS_COST_Custom_Bullet_List]
+en-US = "Custom Bullet List"
+
+[RID_RESXLS_COST_Document_Custom_Properties]
+en-US = "Document Custom Properties"
+
+[RID_RESXLS_COST_Document_Parts_Protection]
+en-US = "Document Parts Protection"
+
+[RID_RESXLS_COST_Embedded_Chart]
+en-US = "Chart Issues Minor"
+
+[RID_RESXLS_COST_embedded_objects]
+en-US = "Cost = 0. Most embedded objects come across. If one does not then this may require some reenginering and is not in the scope of an automated cost calculation."
+
+[RID_RESXLS_COST_Embedded_OLE_Object]
+en-US = "Embedded OLE Object"
+
+[RID_RESXLS_COST_Excel]
+en-US = "Excel"
+
+[RID_RESXLS_COST_Excel_Totals]
+en-US = "Excel Totals"
+
+[RID_RESXLS_COST_External]
+en-US = "External"
+
+[RID_RESXLS_COST_External_References_In_Macro___Module__Class_or_UserForm]
+en-US = "External References In Macro - Module, Class or UserForm"
+
+[RID_RESXLS_COST_Factor_Count]
+en-US = "Factor Count"
+
+[RID_RESXLS_COST_Fields]
+en-US = "Fields"
+
+[RID_RESXLS_COST_Filters]
+en-US = "Filters"
+
+[RID_RESXLS_COST_Fixed_SO7]
+en-US = "Fixed <PRODUCTNAME> <PRODUCTVERSION>"
+
+[RID_RESXLS_COST_Form_Field]
+en-US = "Form Field"
+
+[RID_RESXLS_COST_Format]
+en-US = "Format"
+
+[RID_RESXLS_COST_Functions]
+en-US = "Functions"
+
+[RID_RESXLS_COST_Zoom]
+en-US = "Zoom"
+
+[RID_RESXLS_COST_HEADERFOOTER_WORKAROUND]
+en-US = "Insert carriage returns to resize header/ footer to the size of the graphic."
+
+[RID_RESXLS_COST_Hours_Per_MD]
+en-US = "Hours Per MD ="
+
+[RID_RESXLS_COST_Indexes_And_References]
+en-US = "Indexes And References"
+
+[RID_RESXLS_COST_Invalid_Password_Entered]
+en-US = "Invalid Password Entered"
+
+[RID_RESXLS_COST_Invalid_Worksheet_Name]
+en-US = "Invalid Worksheet Name"
+
+[RID_RESXLS_COST_Issue__18_of_the_24_table_border_styles_do_not_display_correctly]
+en-US = "Issue: 18 of the 24 table border styles do not display correctly."
+
+[RID_RESXLS_COST_Issue__256_sheet_limit_exceeded]
+en-US = "Issue: 256 sheet limit exceeded."
+
+[RID_RESXLS_COST_Issue__32000_row_limit_exceeded]
+en-US = "Issue: 32000 row limit exceeded."
+
+[RID_RESXLS_COST_Issue__A_worksheet_in_the_workbook_has_a_name_with_invalid_characters]
+en-US = "Issue: A worksheet in the workbook has a name with invalid characters."
+
+[RID_RESXLS_COST_Issue__AutoFilter_does_not_function_properly]
+en-US = "Issue: AutoFilter does not function properly."
+
+[RID_RESXLS_COST_Issue__Calls_to_windows_API_functions_are_windows_specific]
+en-US = "Issue: Calls to windows API functions are windows specific."
+
+[RID_RESXLS_COST_Issue__Chart_support_is_limited_in_SO7]
+en-US = "Issue: Chart support is limited in <PRODUCTNAME>."
+
+[RID_RESXLS_COST_Issue__Comments_are_lost_on_migration_to_SO7]
+en-US = "Issue: Comments are lost on migration to <PRODUCTNAME>."
+
+[RID_RESXLS_COST_Issue__Custom_Properties_are_lost_on_migration]
+en-US = "Issue: Custom Properties are lost on migration"
+
+[RID_RESXLS_COST_Issue__Document_is_password_protected_and_cannot_be_opened_by_SO]
+en-US = "Issue: Document is password protected and cannot be opened by SO."
+
+[RID_RESXLS_COST_Issue__External_functions_not_supported_by_SO7]
+en-US = "Issue: External functions not supported by <PRODUCTNAME>"
+
+[RID_RESXLS_COST_Issue__External_references_are_windows_specific]
+en-US = "Issue: External references are windows specific."
+
+[RID_RESXLS_COST_Issue__Fields_are_imported_but_need_to_have_the_link_to_datasource_reset]
+en-US = "Issue: Fields are imported but need to have the link to data source reset."
+
+[RID_RESXLS_COST_Issue__Graphics___frames_in_header_footer_tend_to_be_misplaced]
+en-US = "Issue: Graphics & frames in header footer tend to be misplaced."
+
+[RID_RESXLS_COST_Issue__Incorrect_password_entered]
+en-US = "Issue: Incorrect password entered. "
+
+[RID_RESXLS_COST_Issue__Information_relating_to_the_data_source_is_lost_in_migration]
+en-US = "Issue: Information relating to the data source is lost in migration."
+
+[RID_RESXLS_COST_Issue__Invalid_password_entered_Rerun_analysis]
+en-US = "Issue: Invalid password entered. Rerun analysis."
+
+[RID_RESXLS_COST_Issue__Lost_during_migration_No_StarOffice_equivalent]
+en-US = "Issue: Lost during migration. No <PRODUCTNAME> equivalent."
+
+[RID_RESXLS_COST_Issue__Macros_from_old_workbook_versions_do_not_import_into_SO7]
+en-US = "Issue: Macros from old workbook versions do not import into SO9."
+
+[RID_RESXLS_COST_Issue__Modules_will_need_porting_to_StarOffice_Basic]
+en-US = "Issue: Modules will need porting to <PRODUCTNAME> Basic."
+
+[RID_RESXLS_COST_Issue__Most_migrate_ok_but_do_not_roundtrip]
+en-US = "Issue: Most migrate ok but do not roundtrip."
+
+[RID_RESXLS_COST_Issue__Movies_are_not_supported_by_SO7]
+en-US = "Issue: Movies are not supported by <PRODUCTNAME>."
+
+[RID_RESXLS_COST_Issue__Need_to_set_these_to_be_included_in_TOC_in_SO7]
+en-US = "Issue: Need to set these to be included in TOC in <PRODUCTNAME>"
+
+[RID_RESXLS_COST_Issue__Password_protection_of_comments__tracked_changes_and_forms_is_lost]
+en-US = "Issue: Password protection of comments, tracked changes and forms is lost."
+
+[RID_RESXLS_COST_Issue__Pivot_charts_are_not_supported_by_SO7]
+en-US = "Issue: Pivot charts are not supported by <PRODUCTNAME>."
+
+[RID_RESXLS_COST_Issue__Presents_a_cross_platform_interoperability_issue]
+en-US = "Issue: Presents a cross platform interoperability issue."
+
+[RID_RESXLS_COST_Issue__Print_wide_pages_not_supported]
+en-US = "Issue: Print wide pages not supported."
+
+[RID_RESXLS_COST_Issue__Shading_can_be_applied_to_fields_and_to_controls_separately_in_Word]
+en-US = "Issue: Shading can be applied to fields and to controls separately in Word. <PRODUCTNAME> does not differentiate between controls and fields so shading can look different in Writer."
+
+[RID_RESXLS_COST_Issue__Table_imported_as_text_as_no_StarOffice_equivalent]
+en-US = "Issue: Table imported as text as no <PRODUCTNAME> equivalent."
+
+[RID_RESXLS_COST_Issue__Tables_nested_in_tables_are_not_supported_by_SO7]
+en-US = "Issue: Tables nested in tables are not supported by <PRODUCTNAME>."
+
+[RID_RESXLS_COST_Issue__Tabs_are_incorrect_after_migration]
+en-US = "Issue: Tabs are incorrect after migration. Certain format types do not migrate to <PRODUCTNAME>."
+
+[RID_RESXLS_COST_Issue__Text_form_fields_roundtrip_as_Fill_In_field]
+en-US = "Issue: Text form fields roundtrip as Fill In field. Field attributes are lost."
+
+[RID_RESXLS_COST_Issue__Unsupported_formatting_set]
+en-US = "Issue: Unsupported formatting set."
+
+[RID_RESXLS_COST_Issue__Unsupported_function_type]
+en-US = "Issue: Unsupported function type. "
+
+[RID_RESXLS_COST_Issue__Userform_controls_will_need_porting_to_StarOffice_Basic]
+en-US = "Issue: Userform controls will need porting to <PRODUCTNAME> Basic."
+
+[RID_RESXLS_COST_Issue__Userforms_controls_will_need_porting_to_StarOffice_Basic]
+en-US = "Issue: Userform controls will need porting to <PRODUCTNAME> Basic."
+
+[RID_RESXLS_COST_Issue__Userforms_will_need_porting_to_StarOffice_Basic]
+en-US = "Issue: Userforms will need porting to <PRODUCTNAME> Basic."
+
+[RID_RESXLS_COST_Issue__VBProject_is_password_protected_Remove_password__rerun_analysis]
+en-US = "Issue: VBProject is password protected. Remove password, rerun analysis."
+
+[RID_RESXLS_COST_Issue__Will_need_refreshing_in_SO7_External_datasources_and_functions_are_not_supported]
+en-US = "Issue: Will need refreshing in <PRODUCTNAME>. External data sources and functions are not supported"
+
+[RID_RESXLS_COST_Issue__Workbook_protection_is_not_supported]
+en-US = "Issue: Workbook protection is not supported"
+
+[RID_RESXLS_COST_Issue__Writer_cannot_correctly_display_cells_spanning_more_than_1_page]
+en-US = "Issue: Writer cannot correctly display cells spanning more than 1 page."
+
+[RID_RESXLS_COST_Issue_Category]
+en-US = "Issue Category"
+
+[RID_RESXLS_COST_Issue_Count]
+en-US = " Issue Count"
+
+[RID_RESXLS_COST_Issue_Type]
+en-US = "Issue Type"
+
+[RID_RESXLS_COST_Linked_OLE_Object]
+en-US = "Linked OLE Object"
+
+[RID_RESXLS_COST_Mail_Merge_Datasource]
+en-US = "Mail Merge Data Source"
+
+[RID_RESXLS_COST_Mail_Merge_Field]
+en-US = "Mail Merge Field"
+
+[RID_RESXLS_COST_Major_Issue]
+en-US = "Complex Issue"
+
+[RID_RESXLS_COST_MAX_SHEETS_WORKAROUND]
+en-US = "Need to move sheets to new workbook. "
+
+[RID_RESXLS_COST_Maximum_Rows_Exceeded]
+en-US = "Maximum Rows Exceeded"
+
+[RID_RESXLS_COST_Maximum_Sheets_Exceeded]
+en-US = "Maximum Sheets Exceeded"
+
+[RID_RESXLS_COST_Migration_Issues_Costs]
+en-US = "Migration Issues Analyzed"
+
+[RID_RESXLS_COST_Movie]
+en-US = "Movie"
+
+[RID_RESXLS_COST_NESTED_TABLE_WORKAROUND]
+en-US = "In word use split cell to create similar layout."
+
+[RID_RESXLS_COST_Nested_Tables]
+en-US = "Nested Tables"
+
+[RID_RESXLS_COST_Not_Planned]
+en-US = "Not Planned"
+
+[RID_RESXLS_COST_Notes_And_Handouts]
+en-US = "Notes And Handouts"
+
+[RID_RESXLS_COST_Number_Of_External_References]
+en-US = "Number Of External References"
+
+[RID_RESXLS_COST_Number_Of_Lines]
+en-US = "Number Of Lines"
+
+[RID_RESXLS_COST_Number_of_Lines_in_Unique_Modules]
+en-US = "Number of Lines in Unique Code Modules"
+
+[RID_RESXLS_COST_Number_of_Modules]
+en-US = "Number of Modules"
+
+[RID_RESXLS_COST_Number_of_Unique_Modules]
+en-US = "Number of Unique Code Modules"
+
+[RID_RESXLS_COST_Numbering_Reference]
+en-US = "Numbering Reference"
+
+[RID_RESXLS_COST_Numbering_Reference_Comment]
+en-US = "Issue: <PRODUCTNAME> can not import references that refer in a numbered list."
+
+[RID_RESXLS_COST_Object_In_Header_Footer]
+en-US = "Object In Header Footer"
+
+[RID_RESXLS_COST_Objects_And_Graphics]
+en-US = "Objects And Graphics"
+
+[RID_RESXLS_COST_Objects_Graphics_And_Frames]
+en-US = "Objects Graphics And Frames"
+
+[RID_RESXLS_COST_Objects_Graphics_And_Textboxes]
+en-US = "Objects Graphics And Textboxes"
+
+[RID_RESXLS_COST_Old_Workbook_Version]
+en-US = "Old Workbook Version"
+
+[RID_RESXLS_COST_OLE_Control]
+en-US = "OLE Control"
+
+[RID_RESXLS_COST_OLECONTR_COST]
+en-US = "Cost variations occur because of the use of macros with controls."
+
+[RID_RESXLS_COST_Page_Setup]
+en-US = "Page Setup"
+
+[RID_RESXLS_COST_Password_Protected]
+en-US = "Password Protected"
+
+[RID_RESXLS_COST_Password_Protection]
+en-US = "Password Protection"
+
+[RID_RESXLS_COST_Pivot]
+en-US = "Pivot Chart"
+
+[RID_RESXLS_COST_Planned_SO8]
+en-US = "Planned"
+
+[RID_RESXLS_COST_Portability]
+en-US = "Portability"
+
+[RID_RESXLS_COST_PowerPoint]
+en-US = "PowerPoint"
+
+[RID_RESXLS_COST_PowerPoint_Totals]
+en-US = "PowerPoint Totals"
+
+[RID_RESXLS_COST_Prepared_Issue_Count]
+en-US = "Prepared Issue Count"
+
+[RID_RESXLS_COST_Prepared_Savings__min]
+en-US = "Prepared Savings (min)"
+
+[RID_RESXLS_COST_Properties___Module__Class_or_UserForm]
+en-US = "Properties - Module, Class or UserForm"
+
+[RID_RESXLS_COST_Remove_password_to_open]
+en-US = "Remove password to open."
+
+[RID_RESXLS_COST_Remove_the_invalid_characters_from_the_worksheet_name]
+en-US = "Remove the invalid characters from the worksheet name."
+
+[RID_RESXLS_COST_Rerun_analysis_with_correct_password]
+en-US = "Rerun analysis with correct password."
+
+[RID_RESXLS_COST_Reset_link_to_Data_Base_having_setup_a_Datasource_in_SO7]
+en-US = "Reset link to database having setup a data source in <PRODUCTNAME>."
+
+[RID_RESXLS_COST_set_cost_factor_if_the_macro_has_to_be_ported_off_Windows]
+en-US = "Cost = 0. Set a cost factor if the macro has to be ported off Windows. "
+
+[RID_RESXLS_COST_Save_workbook_as_a_new_workbook_version]
+en-US = "Save workbook as a new workbook version."
+
+[RID_RESXLS_COST_Setup_Datasource_in_SO7_using_Tools__Datasource]
+en-US = "Setup data source in <PRODUCTNAME> using Tools/Data source"
+
+[RID_RESXLS_COST_Sheet_Chart]
+en-US = "Chart Issues Complex"
+
+[RID_RESXLS_COST_Status]
+en-US = "Status"
+
+[RID_RESXLS_COST_Table_Of_Authorities]
+en-US = "Table Of Authorities"
+
+[RID_RESXLS_COST_Table_Of_Authorities_Field]
+en-US = "Table Of Authorities Field"
+
+[RID_RESXLS_COST_Table_Of_Contents]
+en-US = "Table Of Contents"
+
+[RID_RESXLS_COST_Tables]
+en-US = "Tables"
+
+[RID_RESXLS_COST_TOC_ISSUE_WORKAROUND]
+en-US = "Tab Issues: use fancy format. Numbering incorrect: remove blank lines with heading style used by TOC. Numbering abuts Header: replace leading tabs in Header style used in TOC with spaces."
+
+[RID_RESXLS_COST_Total_Cost___MD]
+en-US = "Total Cost (MD) = "
+
+[RID_RESXLS_COST_User_Error]
+en-US = "User Error"
+
+[RID_RESXLS_COST_User_Forms_Control_Count]
+en-US = "User Forms Control Count"
+
+[RID_RESXLS_COST_User_Forms_Control_Type_Count]
+en-US = "User Forms Control Type Count"
+
+[RID_RESXLS_COST_User_Forms_Count]
+en-US = "User Forms Count"
+
+[RID_RESXLS_COST_VBA_Macros]
+en-US = "VBA Macros"
+
+[RID_RESXLS_COST_Word]
+en-US = "Word"
+
+[RID_RESXLS_COST_Word_Totals]
+en-US = "Word Totals"
+
+[RID_RESXLS_COST_Work_Around]
+en-US = "Work Around"
+
+[RID_RESXLS_COST_Workaround_Remove_protection_before_importing]
+en-US = "Remove protection before importing"
+
+[RID_RESXLS_COST_WorkbookProtection]
+en-US = "WorkbookProtection "
+
+[RID_RESXLS_DP_Accessed]
+en-US = "Accessed"
+
+[RID_RESXLS_DP_All_Analysed_Documents___Properties]
+en-US = "All Analysed Documents - properties"
+
+[RID_RESXLS_DP_Application]
+en-US = "Application"
+
+[RID_RESXLS_DP_Based_on_Template]
+en-US = "Based on Template"
+
+[RID_RESXLS_DP_Costs]
+en-US = "Costs"
+
+[RID_RESXLS_DP_Created]
+en-US = "Created"
+
+[RID_RESXLS_DP_Document_Details]
+en-US = "Document Details"
+
+[RID_RESXLS_DP_Document_Issue_Costs]
+en-US = "Document Migration Costs (min)"
+
+[RID_RESXLS_DP_Document_Migration_Issues]
+en-US = "Document Migration Issues"
+
+[RID_RESXLS_DP_Document_Name]
+en-US = "Document Name"
+
+[RID_RESXLS_DP_Document_Name_and_Path]
+en-US = "Document Name and Path"
+
+[RID_RESXLS_DP_Issues_Complex_count]
+en-US = "Issues Complex Count"
+
+[RID_RESXLS_DP_Last_Saved_By]
+en-US = "Last Saved By"
+
+[RID_RESXLS_DP_Lines_of_Macro_Code]
+en-US = "Lines of Macro Code"
+
+[RID_RESXLS_DP_Macro_Issues]
+en-US = "Macro Migration Issues"
+
+[RID_RESXLS_DP_Macro_Migration_Costs]
+en-US = "Macro Migration Costs (min)"
+
+[RID_RESXLS_DP_Macro_Migration_Issues]
+en-US = "Macro Migration Issues"
+
+[RID_RESXLS_DP_Migration_Issues]
+en-US = "Document Migration Issues"
+
+[RID_RESXLS_DP_Minor_Issues]
+en-US = "Issues Minor Count"
+
+[RID_RESXLS_DP_Modified]
+en-US = "Modified"
+
+[RID_RESXLS_DP_Pages_Sheets_Slides]
+en-US = "Pages, Sheets or Slides Count"
+
+[RID_RESXLS_DP_Prepareable_Issues_Costs]
+en-US = "Prepareable Issues Savings (min)"
+
+[RID_RESXLS_DP_Prepared_Issues]
+en-US = "Prepareable Document Issues"
+
+[RID_RESXLS_DP_Printed]
+en-US = "Printed"
+
+[RID_RESXLS_DP_Revision]
+en-US = "Revision"
+
+[RID_RESXLS_DP_User_Form_Count]
+en-US = "User Form Count"
+
+[RID_RESXLS_ID_All_Documents_with_Issues___Issue_Details]
+en-US = "All Documents with Issues - Issue Details"
+
+[RID_RESXLS_ID_Application]
+en-US = "Application"
+
+[RID_RESXLS_ID_Column__Left]
+en-US = "Column/ Left"
+
+[RID_RESXLS_ID_Document_Name]
+en-US = "Document Name"
+
+[RID_RESXLS_ID_Document_Name_and_Path]
+en-US = "Document Name and Path"
+
+[RID_RESXLS_ID_Issue_Category]
+en-US = "Issue Category"
+
+[RID_RESXLS_ID_Issue_Details]
+en-US = "Issue Details"
+
+[RID_RESXLS_ID_Issue_Type]
+en-US = "Issue Type"
+
+[RID_RESXLS_ID_Line__Row__Top]
+en-US = "Line/ Row/ Top"
+
+[RID_RESXLS_ID_Location]
+en-US = "Location"
+
+[RID_RESXLS_ID_Location_Type]
+en-US = "Location Type"
+
+[RID_RESXLS_OV_3_to_6_months]
+en-US = "3 - 6 months"
+
+[RID_RESXLS_OV_6_to_12_months]
+en-US = "6 - 12 months"
+
+[RID_RESXLS_OV_Complex]
+en-US = "Complex"
+
+[RID_RESXLS_OV_Cost_estimates_for_migration]
+en-US = "Cost estimates for migration of all analyzed documents"
+
+[RID_RESXLS_OV_Costs]
+en-US = "Costs (MD)"
+
+[RID_RESXLS_OV_Docs_with_DocumentMigrationIssues]
+en-US = "Documents with Document Migration Issues (excludes macro issues)"
+
+[RID_RESXLS_OV_Document_Migration_Costs]
+en-US = "Document Migration Costs<CR>( costs based on: issues listed in Issues Analyzed, excludes macros issues )"
+
+[RID_RESXLS_OV_Document_Modification_Dates]
+en-US = "Document Modification Dates"
+
+[RID_RESXLS_OV_Document_Type]
+en-US = "Type"
+
+[RID_RESXLS_OV_Documents_with_Macro_Migration_Issues]
+en-US = "Documents with Macro Migration Issues"
+
+[RID_RESXLS_OV_Excel]
+en-US = "Excel"
+
+[RID_RESXLS_OV_Excel_Costs]
+en-US = "Excel "
+
+[RID_RESXLS_OV_Excel_Spreadsheet]
+en-US = " Spreadsheets (.xls)"
+
+[RID_RESXLS_OV_Excel_Template]
+en-US = " Templates (.xlt)"
+
+[RID_RESXLS_OV_GREATER_THAN_1_year]
+en-US = "> 1 year"
+
+[RID_RESXLS_OV_Last_Modified]
+en-US = "Last Modified"
+
+[RID_RESXLS_OV_LESS_3_months]
+en-US = "< 3 months"
+
+[RID_RESXLS_OV_LESS_THAN3MONTHS]
+en-US = "Templates (.dot)"
+
+[RID_RESXLS_OV_Macro_Migration_Costs]
+en-US = "Manual Macro Migration Costs<CR>( costs based on: number of lines in unique code modules and number of user form controls )"
+
+[RID_RESXLS_OV_Medium]
+en-US = "Medium"
+
+[RID_RESXLS_OV_Minor]
+en-US = "Minor"
+
+[RID_RESXLS_OV_None]
+en-US = "None"
+
+[RID_RESXLS_OV_Number]
+en-US = "Number"
+
+[RID_RESXLS_OV_Number_of_Documents_Analyzed]
+en-US = "Number of Documents Analyzed"
+
+[RID_RESXLS_OV_NumberOfDocs]
+en-US = "Number of docs"
+
+[RID_RESXLS_OV_Potential_savings_macro_conversion]
+en-US = "Potential Savings with Automated Macro Migration of 20 to 60%"
+
+[RID_RESXLS_OV_Potential_savings_prepared_docs]
+en-US = "Potential Savings with Automated Preparation"
+
+[RID_RESXLS_OV_PowerPoint]
+en-US = "PowerPoint"
+
+[RID_RESXLS_OV_PowerPoint_Costs]
+en-US = "PowerPoint "
+
+[RID_RESXLS_OV_PowerPoint_Document]
+en-US = " Presentations (.ppt)"
+
+[RID_RESXLS_OV_PowerPoint_Template]
+en-US = " Templates (.pot)"
+
+[RID_RESXLS_OV_Simple]
+en-US = "Simple"
+
+[RID_RESXLS_OV_Total]
+en-US = "Total"
+
+[RID_RESXLS_OV_Totals]
+en-US = "Totals"
+
+[RID_RESXLS_OV_Word]
+en-US = "Word"
+
+[RID_RESXLS_OV_Word_Costs]
+en-US = "Word "
+
+[RID_RESXLS_OV_Word_Document]
+en-US = "Documents (.doc)"
+
+[RID_RESXLS_OV_Word_Template]
+en-US = "Templates (.dot)"
+
+[RID_RESXLS_PP_Action_Settings]
+en-US = "Action Settings"
+
+[RID_RESXLS_PP_Application]
+en-US = "Application"
+
+[RID_RESXLS_PP_Content___Document_Properties]
+en-US = "Content & Document Properties"
+
+[RID_RESXLS_PP_Document_Name_and_Path]
+en-US = "Document Name and Path"
+
+[RID_RESXLS_PP_Fields]
+en-US = "Fields"
+
+[RID_RESXLS_PP_Format]
+en-US = "Format"
+
+[RID_RESXLS_PP_Notes___Handouts]
+en-US = "Notes & Handouts"
+
+[RID_RESXLS_PP_Objects__Graphics___Textboxes]
+en-US = "Objects, Graphics & Textboxes"
+
+[RID_RESXLS_PP_Portability]
+en-US = "Portability"
+
+[RID_RESXLS_PP_PowerPoint_Documents_with_Issues___Issue_Summary]
+en-US = "PowerPoint Documents with Issues - Issue Summary"
+
+[RID_RESXLS_PP_PowerPoint_Presentation_Name]
+en-US = "PowerPoint Presentation Name"
+
+[RID_RESXLS_PP_VBA_Macros]
+en-US = "VBA Macros"
+
+[RID_RESXLS_RD_All_Documents_with_Macros___Reference_Details]
+en-US = "All Documents with Macros - Reference Details"
+
+[RID_RESXLS_RD_Application]
+en-US = "Application"
+
+[RID_RESXLS_RD_Description]
+en-US = "Description"
+
+[RID_RESXLS_RD_Document_Name]
+en-US = "Document Name"
+
+[RID_RESXLS_RD_Document_Name_and_Path]
+en-US = "Document Name and Path"
+
+[RID_RESXLS_RD_Location]
+en-US = "Location"
+
+[RID_RESXLS_RD_Reference]
+en-US = "Reference"
+
+[RID_RESXLS_RD_Reference_Details]
+en-US = "Reference Details"
+
+[RID_RESXLS_WI_Application]
+en-US = "Application"
+
+[RID_RESXLS_WI_Changes_and_Reviewing]
+en-US = "Changes and Reviewing"
+
+[RID_RESXLS_WI_Content___Document_Properties]
+en-US = "Content & Document Properties"
+
+[RID_RESXLS_WI_Controls]
+en-US = "Controls"
+
+[RID_RESXLS_WI_Document_Name_and_Path]
+en-US = "Document Name and Path"
+
+[RID_RESXLS_WI_Fields]
+en-US = "Fields"
+
+[RID_RESXLS_WI_Format]
+en-US = "Format"
+
+[RID_RESXLS_WI_Index_and_References]
+en-US = "Index and References"
+
+[RID_RESXLS_WI_Objects__Graphics____Frames]
+en-US = "Objects, Graphics & Frames"
+
+[RID_RESXLS_WI_Portability]
+en-US = "Portability"
+
+[RID_RESXLS_WI_Tables]
+en-US = "Tables"
+
+[RID_RESXLS_WI_VBA_Macros]
+en-US = "VBA Macros"
+
+[RID_RESXLS_WI_Word_Document_Name]
+en-US = "Word Document Name"
+
+[RID_RESXLS_WI_Word_Documents_with_Issues___Issue_Summary]
+en-US = "Word Documents with Issues - Issue Summary"
+
+[RID_RESXLS_XL_Application]
+en-US = "Application"
+
+[RID_RESXLS_XL_Changes___Reviewing]
+en-US = "Changes & Reviewing"
+
+[RID_RESXLS_XL_Charts___Tables]
+en-US = "Charts & Tables"
+
+[RID_RESXLS_XL_Excel_Documents_with_Issues___Issue_Summary]
+en-US = "Excel Documents with Issues - Issue Summary"
+
+[RID_RESXLS_XL_Excel_Spreadsheet_Name]
+en-US = "Excel Spreadsheet Name"
+
+[RID_RESXLS_XL_Filters]
+en-US = "Filters"
+
+[RID_RESXLS_XL_Format]
+en-US = "Format"
+
+[RID_RESXLS_XL_Functions]
+en-US = "Functions"
+
+[RID_RESXLS_XL_Objects___Graphics]
+en-US = "Objects & Graphics"
+
+[RID_STR_DVR_XL_EXCEL_DRIVER]
+en-US = "Excel Driver"
+
+[RID_STR_DVR_XL_ISSUES]
+en-US = "2. Issues"
+
+[RID_STR_DVR_XL_PURPOSE]
+en-US = "1. Purpose"
+
+[RID_STR_DVR_XL_READ_README]
+en-US = "If there are any problems running the Wizard please refer to the Readme.doc"
+
+[RID_STR_DVR_XL_THE_MACROS]
+en-US = "The macros in this document are used by the Analysis Wizard to analyze the collection of Excel documents you specify using the Wizard. It should not be modified in any way, the Wizard will open and close it as required by the tool."
+
+[RID_STR_DVR_XL_THIS_DOC]
+en-US = "This document contains VBA macros which collect and analyse Excel documents for known issues when importing into <PRODUCTNAME>"
+
+[RID_STR_DVR_XL_TITLE]
+en-US = "<PRODUCTNAME> Migration Analysis - Excel Driver"
+
+[RID_STR_DVR_PP_TXT2]
+en-US = "This document contains VBA macros which collect and analyse PowerPoint documents for known issues when importing into <PRODUCTNAME>"
+
+[RID_STR_DVR_PP_TXT3]
+en-US = "<PRODUCTNAME> Migration Analysis - PowerPoint Driver"
+
+[RID_STR_DVR_PP_TXT4]
+en-US = "PowerPoint Driver"
+
+[RID_STR_DVR_PP_TXT5]
+en-US = "Purpose"
+
+[RID_STR_DVR_PP_TXT6]
+en-US = "The macros in this document are used by the Analysis Wizard to analyze the collection of PowerPoint documents you specify using the Wizard. It should not be modified in any way, the Wizard will open and close it as required by the tool."
+
+[RID_STR_DVR_PP_TXT7]
+en-US = "Issues"
+
+[RID_STR_DVR_PP_TXT8]
+en-US = "If there are any problems running the Wizard please refer to the Readme.doc"
+
+[RID_STR_WDVR_SOANA]
+en-US = "<PRODUCTNAME> MIGRATION ANALYSIS - WORD DRIVER"
+
+[RID_STR_WDVR_INTRO]
+en-US = "This document contains VBA macros, which collect and analyse Word documents for known issues when importing into <PRODUCTNAME>"
+
+[RID_STR_WDVR_TITLE]
+en-US = "Word Driver"
+
+[RID_STR_WDVR_PURPO]
+en-US = "Purpose"
+
+[RID_STR_WDVR_PARA1]
+en-US = "The macros in this document are used by the Analysis Wizard to analyze the collection of Word documents you specify using the Wizard. It should not be modified in any way, the Wizard will open and close it as required by the tool."
+
+[RID_STR_WDVR_ISSUE]
+en-US = "Issues"
+
+[RID_STR_WDVR_PARA2]
+en-US = "If there are any problems running the Wizard please refer to the Readme.doc"
+
+[RID_STR_WORD_ATTRIBUTE_ALLOW_ONLY_COMMENTS]
+en-US = "Allow Only Comments"
+
+[RID_STR_WORD_ATTRIBUTE_ALLOW_ONLY_FORM_FIELDS]
+en-US = "Allow Only FormFields"
+
+[RID_STR_WORD_ATTRIBUTE_ALLOW_ONLY_REVISIONS]
+en-US = "Allow Only Revisions"
+
+[RID_STR_WORD_ATTRIBUTE_AUTHOR]
+en-US = "Author"
+
+[RID_STR_WORD_ATTRIBUTE_DATASOURCE]
+en-US = "Datasource"
+
+[RID_STR_WORD_ATTRIBUTE_FIELD_TEXT]
+en-US = "Field Text"
+
+[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_AUTOSIZE]
+en-US = "Autosize"
+
+[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_ENTRY_MACRO]
+en-US = "Entry macro"
+
+[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_EXIT_MACRO]
+en-US = "Exit macro"
+
+[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_FILLIN_ENABLED]
+en-US = "Fill-in enabled"
+
+[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_GREYED]
+en-US = "FormFields Greyed"
+
+[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_HELP_KEY_F1_AUTO_TEXT]
+en-US = "Help Key(F1) [Auto Text]"
+
+[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_HELP_KEY_F1_OWN_TEXT]
+en-US = "Help Key(F1) [Own Text]"
+
+[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_LOCKED]
+en-US = "Locked"
+
+[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_MAX_LENGTH]
+en-US = "Maximum Length"
+
+[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_STATUS_BAR_HELP_AUTO_TEXT]
+en-US = "Status Bar Help [Auto Text]"
+
+[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_STATUS_BAR_HELP_OWN_TEXT]
+en-US = "Status Bar Help [Own Text]"
+
+[RID_STR_WORD_ATTRIBUTE_FORM_FIELD_TEXT_FORM_FIELD_TYPE]
+en-US = "Text Form Field Type"
+
+[RID_STR_WORD_ATTRIBUTE_FOOTER]
+en-US = "Footer"
+
+[RID_STR_WORD_ATTRIBUTE_HEADER]
+en-US = "Header"
+
+[RID_STR_WORD_ATTRIBUTE_FRAME]
+en-US = "Frame"
+
+[RID_STR_WORD_ATTRIBUTE_GRAPHIC]
+en-US = "Graphic"
+
+[RID_STR_WORD_ATTRIBUTE_OBJECT_HEIGHT_GT_H]
+en-US = "Height Greater Than Header Height"
+
+[RID_STR_WORD_ATTRIBUTE_OBJECT_HEIGHT_GT_F]
+en-US = "Height Greater Than Footer Height"
+
+[RID_STR_WORD_ATTRIBUTE_NUM_OF_GRAPHIC]
+en-US = "Number of Graphics"
+
+[RID_STR_WORD_ATTRIBUTE_OBJECT_LOCATED_BELOW_HEADER]
+en-US = "Located Below Header"
+
+[RID_STR_WORD_ATTRIBUTE_NUM_OF_FRAME]
+en-US = "Number of Frames"
+
+[RID_STR_WORD_ATTRIBUTE_HEADER_EVEN_PAGES]
+en-US = "Even Page(s)"
+
+[RID_STR_WORD_ATTRIBUTE_HEADER_FIRST_PAGE]
+en-US = "First Page"
+
+[RID_STR_WORD_ATTRIBUTE_HEADER_ODD_PAGES]
+en-US = "Odd Page(s)"
+
+[RID_STR_WORD_ATTRIBUTE_HEADER_PAGE_DEFAULT]
+en-US = "Page Default"
+
+[RID_STR_WORD_ATTRIBUTE_GRAPHICTYPE]
+en-US = "Graphic Type"
+
+[RID_STR_WORD_ATTRIBUTE_INLINESHAPE]
+en-US = "Inline Shape"
+
+[RID_STR_WORD_ATTRIBUTE_INNER_TABLE]
+en-US = "InnerTable"
+
+[RID_STR_WORD_ATTRIBUTE_LEADER]
+en-US = "Leader"
+
+[RID_STR_WORD_ATTRIBUTE_LINK]
+en-US = "Link"
+
+[RID_STR_WORD_ATTRIBUTE_LOCATION]
+en-US = "Location"
+
+[RID_STR_WORD_ATTRIBUTE_NUMBER_CUSTOM_PARAGRAPHS]
+en-US = "Number of custom paragraphs"
+
+[RID_STR_WORD_ATTRIBUTE_OUTER_TABLE]
+en-US = "Outer Table"
+
+[RID_STR_WORD_ATTRIBUTE_PASSWORD_TO_MODIFY]
+en-US = "Password to Modify"
+
+[RID_STR_WORD_ATTRIBUTE_PASSWORD_TO_OPEN]
+en-US = "Password to Open"
+
+[RID_STR_WORD_ATTRIBUTE_PROTECTION]
+en-US = "Protection"
+
+[RID_STR_WORD_ATTRIBUTE_SET]
+en-US = "Set"
+
+[RID_STR_WORD_ATTRIBUTE_START_COL]
+en-US = "Start Column"
+
+[RID_STR_WORD_ATTRIBUTE_START_ROW]
+en-US = "Start Row"
+
+[RID_STR_WORD_ATTRIBUTE_TEXT]
+en-US = "Text"
+
+[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_ISSUE]
+en-US = "Potential problem with TOC Format matching Modern style"
+
+[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_NOT_MIGRATE_CLEAN]
+en-US = "TOC Format will not migrate cleanly"
+
+[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_NOT_ROUNDTRIP_CLEAN]
+en-US = "TOC will not roundtrip cleanly due to following settings"
+
+[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_FROM_TEMPLATE_WITH_LEVEL]
+en-US = "Format [FromTemplate] Level"
+
+[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_FROM_TEMPLATE_TAB_DOTS]
+en-US = "Format [FromTemplate] TabLeader [Dots]"
+
+[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_FORMAL_WITH_LEVEL]
+en-US = "Format [Formal] Level"
+
+[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_CLASSIC_WITH_LEVEL]
+en-US = "Format [Classic] Level"
+
+[RID_STR_WORD_ATTRIBUTE_TOC_FORMAT_DISTINCTIVE_WITH_LEVEL]
+en-US = "Format [Distinctive] Level"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_CALCULATION]
+en-US = "Calculation"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_CHECK_BOX]
+en-US = "Check Box Form Field"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_CURRENT_DATE]
+en-US = "Current Date"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_CURRENT_TIME]
+en-US = "Current Time"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_DATE]
+en-US = "Date"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_DATE]
+en-US = "Default date"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_EXPRESSION]
+en-US = "Expression"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_NUMBER]
+en-US = "Default number"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_TEXT]
+en-US = "Default text"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_DEFAULT_TIME]
+en-US = "Default time"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_DROP_DOWN]
+en-US = "Drop-Down Form Field"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_DATE]
+en-US = "Date format"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_NUMBER]
+en-US = "Number format"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_TEXT]
+en-US = "Text format"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_FORMAT_TIME]
+en-US = "Time format"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_NUMBER]
+en-US = "Number"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_REGULAR]
+en-US = "Regular"
+
+[RID_STR_WORD_ENUMERATION_FORM_FIELD_TEXT]
+en-US = "Text Form Field"
+
+[RID_STR_WORD_ENUMERATION_MAILMERGE_ASK]
+en-US = "Ask"
+
+[RID_STR_WORD_ENUMERATION_MAILMERGE_AUTO_NUMBER]
+en-US = "Auto Number"
+
+[RID_STR_WORD_ENUMERATION_MAILMERGE_AUTO_NUMBER_LEGAL]
+en-US = "Auto Number Legal"
+
+[RID_STR_WORD_ENUMERATION_MAILMERGE_AUTO_NUMBER_OUTLINE]
+en-US = "Auto Number Outline"
+
+[RID_STR_WORD_ENUMERATION_MAILMERGE_FIELD_NAME_NOT_KNOWN]
+en-US = "Field name not known"
+
+[RID_STR_WORD_ENUMERATION_MAILMERGE_FILL_IN]
+en-US = "Fill In"
+
+[RID_STR_WORD_ENUMERATION_MAILMERGE_MERGE_RECORDS]
+en-US = "Merge Records"
+
+[RID_STR_WORD_ENUMERATION_MAILMERGE_MERGE_FIELDS]
+en-US = "Merge Fields"
+
+[RID_STR_WORD_ENUMERATION_MAILMERGE_NEXT]
+en-US = "Next"
+
+[RID_STR_WORD_ENUMERATION_MAILMERGE_REVISION_NUMBER]
+en-US = "Revision Number"
+
+[RID_STR_WORD_ENUMERATION_MAILMERGE_SEQUENCE]
+en-US = "Sequence"
+
+[RID_STR_WORD_ENUMERATION_INDEX_TABLES_CLASSIC]
+en-US = "Classic"
+
+[RID_STR_WORD_ENUMERATION_INDEX_TABLES_DISTINCTIVE]
+en-US = "Distinctive"
+
+[RID_STR_WORD_ENUMERATION_INDEX_TABLES_FANCY]
+en-US = "Fancy"
+
+[RID_STR_WORD_ENUMERATION_INDEX_TABLES_FORMAL]
+en-US = "Formal"
+
+[RID_STR_WORD_ENUMERATION_INDEX_TABLES_MODERN]
+en-US = "Modern"
+
+[RID_STR_WORD_ENUMERATION_INDEX_TABLES_SIMPLE]
+en-US = "Simple"
+
+[RID_STR_WORD_ENUMERATION_INDEX_TABLES_FROM_TEMPLATE]
+en-US = "From Template"
+
+[RID_STR_WORD_ENUMERATION_INDEX_LEADER_DASHES]
+en-US = "Dashes"
+
+[RID_STR_WORD_ENUMERATION_INDEX_LEADER_DOTS]
+en-US = "Dots"
+
+[RID_STR_WORD_ENUMERATION_INDEX_LEADER_HEAVY]
+en-US = "Heavy"
+
+[RID_STR_WORD_ENUMERATION_INDEX_LEADER_LINES]
+en-US = "Lines"
+
+[RID_STR_WORD_ENUMERATION_INDEX_LEADER_MIDDLEDOT]
+en-US = "MiddleDot"
+
+[RID_STR_WORD_ENUMERATION_INDEX_LEADER_SPACES]
+en-US = "Spaces"
+
+[RID_STR_WORD_ENUMERATION_UNKNOWN]
+en-US = "Unknown"
+
+[RID_STR_WORD_FALSE]
+en-US = "False"
+
+[RID_STR_WORD_TRUE]
+en-US = "True"
+
+[RID_STR_WORD_ISSUE_FIELDS]
+en-US = "Fields"
+
+[RID_STR_WORD_ISSUE_INDEX_AND_REFERENCES]
+en-US = "Indexes and References"
+
+[RID_STR_WORD_ISSUE_OBJECTS_GRAPHICS_AND_FRAMES]
+en-US = "Objects, Graphics and Frames"
+
+[RID_STR_WORD_ISSUE_TABLES]
+en-US = "Tables"
+
+[RID_STR_WORD_NOTE_FORM_FIELD_ATTRIBUTES_LOST]
+en-US = "following attribute values lost"
+
+[RID_STR_WORD_NOTE_FORM_FIELD_TYPE_LOST]
+en-US = "Type lost, converted to plain text"
+
+[RID_STR_WORD_NOTE_NESTED_TABLE_WILL_BE_LOST]
+en-US = "The inner table will be lost on roundtrip."
+
+[RID_STR_WORD_NOTE_TOA_FIELD_LOST_ON_ROUNDTRIP]
+en-US = "Field will be lost on roundtrip"
+
+[RID_STR_WORD_NOTE_TOA_MIGRATE_AS_PLAIN_TEXT]
+en-US = "Table will migrate as plain text"
+
+[RID_STR_WORD_SUBISSUE_APPEARANCE]
+en-US = "Appearance"
+
+[RID_STR_WORD_SUBISSUE_COMMENT]
+en-US = "Comment"
+
+[RID_STR_WORD_SUBISSUE_CUSTOM_BULLET_LIST]
+en-US = "Custom bullet list"
+
+[RID_STR_WORD_SUBISSUE_FORM_FIELD]
+en-US = "Form Field"
+
+[RID_STR_WORD_SUBISSUE_MAILMERGE_DATASOURCE]
+en-US = "Mail Merge Datasource"
+
+[RID_STR_WORD_SUBISSUE_MAILMERGE_FIELD]
+en-US = "Mail Merge Field"
+
+[RID_STR_WORD_SUBISSUE_NESTED_TABLES]
+en-US = "Nested Tables"
+
+[RID_STR_WORD_SUBISSUE_OBJECT_IN_HEADER_FOOTER]
+en-US = "Object in Header Footer"
+
+[RID_STR_WORD_SUBISSUE_TABLE_OF_AUTHORITIES]
+en-US = "Table of Authorities"
+
+[RID_STR_WORD_SUBISSUE_TABLE_OF_AUTHORITIES_FIELD]
+en-US = "Table of Authorities Field"
+
+[RID_RESXLT_COST_CHART_Radar_AWF]
+en-US = "Radar chart, Radar with symbol"
+
+[RID_RESXLT_COST_CHART_Radar_Comment]
+en-US = "Although <PRODUCTNAME> Net charts appear similar to Excel Radar charts, but they are not equivalent. Radar charts are drawn clockwise whereas Net charts are drawn counter-clockwise."
+
+[RID_RESXLT_COST_CHART_Scattered_AWF]
+en-US = "Scattered chart"
+
+[RID_RESXLT_COST_CHART_Scattered_Comment]
+en-US = "The XY-Chart of <PRODUCTNAME> has the same appearance as the scattered chart in Excel."
+
+[RID_RESXLT_COST_CHART_Bubble_AWF]
+en-US = "Bubble chart"
+
+[RID_RESXLT_COST_CHART_Bubble_Comment]
+en-US = "XY-Chart has similar functionality to a Bubble chart in Excel but a completely different look."
+
+[RID_RESXLT_COST_CHART_BarOfPie_AWF]
+en-US = "Bar of Pie and Pie of Pie charts"
+
+[RID_RESXLT_COST_CHART_BarOfPie_Comment]
+en-US = "<PRODUCTNAME> imports these types of charts as Column charts, which look completely different."
+
+[RID_RESXLT_COST_CHART_FilledRadar_AWF]
+en-US = "Filled Radar chart"
+
+[RID_RESXLT_COST_CHART_FilledRadar_Comment]
+en-US = "This chart type does not have a <PRODUCTNAME> equivalent. Instead, the import filter in <PRODUCTNAME> converts a Filled Radar chart to a Column chart."
+
+[RID_RESXLT_COST_CHART_Surface_AWF]
+en-US = "Surface chart"
+
+[RID_RESXLT_COST_CHART_Surface_Comment]
+en-US = "This chart type does not have a <PRODUCTNAME> equivalent. The imported chart will look completely different than the original chart."
+
+[RID_RESXLT_COST_PIVOT_MultConsRanges_AWF]
+en-US = "Multiple Consolidation Ranges"
+
+[RID_RESXLT_COST_PIVOT_MultConsRanges_Comment]
+en-US = "A Pivot table from Excel can use data from multiple consolidation ranges, Calc does not support this."
+
+[RID_RESXLT_COST_PIVOT_PivotChart_Comment]
+en-US = "A pivot chart is created dynamically in Excel using a pivot table as it's datasource. <PRODUCTNAME> does not support generating charts from dynamically created tables."
+
+[RID_RESXLT_COST_PIVOT_ManSort_AWF]
+en-US = "Manual Sorting"
+
+[RID_RESXLT_COST_PIVOT_ManSort_Comment]
+en-US = "Pivot table users could sort the results manually. Excel preserves the sorting. Calc does not."
+
+[RID_RESXLT_COST_PIVOT_CalcVal_AWF]
+en-US = "Calculated Values"
+
+[RID_RESXLT_COST_PIVOT_CalcVal_Comment]
+en-US = "Excel users can create a formula that writes the results in a new column within the pivot table. Users can use the same type of formula to replace the content of an existing column. Calc does not support this."
+
+[RID_RESXLT_COST_PIVOT_ExternData_AWF]
+en-US = "External Data"
+
+[RID_RESXLT_COST_PIVOT_ExternData_Comment]
+en-US = "A Pivot table from Excel can use data from external sources. Calc does not support this."
+
+[RID_RESXLS_COST_IAR_Numbering_IssueType]
+en-US = "Numbering Order"
+
+[RID_RESXLS_COST_IAR_Numbering_Comment]
+en-US = "<PRODUCTNAME> first calculates numbering located in frames and then the numbering within the text. Word does not separate this."
+
+[RID_RESXLS_COST_IAR_Numbering_WorkAround]
+en-US = "Move the numberings from within the frames into the text body area."
+
+[RID_RESXLS_COST_WorkbookPartProtection_AWF]
+en-US = "Protection for Parts of Workbooks"
+
+[RID_RESXLS_COST_WorkbookPartProtection_Comment]
+en-US = "In Excel users can protect certain parts of workbooks. Workbooks, sheets, charts and ranges can all be individually protected. These do not all migrate to <PRODUCTNAME>."
+
+[RID_RESXLS_COST_WorkbookPartProtection_WorkAround]
+en-US = "Do not protect Excel workbooks"
+
+[RID_RESXLS_COST_FORMAT_TabStop_IssueType]
+en-US = "Tabstop"
+
+[RID_RESXLS_COST_FORMAT_TabStop_Comment]
+en-US = "The minimum tabstop distance in word is shorter than <PRODUCTNAME>. That means that if, in Word, the user tabs a distance shorter than <PRODUCTNAME>'s minimum, that after migration the text spacing will be pushed one tab further."
+
+[RID_RESXLS_COST_GraphicAnchorEndOfPage_IssueType]
+en-US = "Graphic Object Anchor - End of Page"
+
+[RID_RESXLS_COST_GraphicAnchorEndOfPage_Comment]
+en-US = "If a frame or graphic object (not including AutoShapes) is too close to the end of a page it will be pushed to the next page in <PRODUCTNAME>."
+
+[RID_RESXLS_COST_GraphicAnchorLostGraphic_IssueType]
+en-US = "Graphic Object Anchor - Lost Graphic Object"
+
+[RID_RESXLS_COST_GraphicAnchorLostGraphic_Comment]
+en-US = "If a graphic object is anchored off a paragraph (Format Autoshape | Layout | Advanced | Vertical Position = Paragraph) which contains just a blank carriage return, then this can lead to the graphic object being lost in <PRODUCTNAME>."
+
+[RID_RESXLS_COST_TABLE_Leading_IssueType]
+en-US = "Leading"
+
+[RID_RESXLS_COST_TABLE_Leading_Comment]
+en-US = "Leading can cause extra lines in tables. In a table, if the column width is very close to the text, it can lead to a single character being pushed to new line in <PRODUCTNAME>. This is caused by extra leading in <PRODUCTNAME>."
+
+[RID_RESXLS_COST_TABLE_Misplaced_IssueType]
+en-US = "Misplaced"
+
+[RID_RESXLS_COST_TABLE_Misplaced_Comment]
+en-US = "Text wrapping can cause misplaced tables."
+
+[RID_RESXLS_COST_TOC_HeadlinesWithoutNum_IssueType]
+en-US = "Headings Without Numbering"
+
+[RID_RESXLS_COST_TOC_HeadlinesWithoutNum_Comment]
+en-US = "Many users do not use automatic heading or section numbering. They type the numbers in front of the heading manually instead. Word displays the first TAB of the heading in the TOC. <PRODUCTNAME> does not. The TOC will look different."
+
+[RID_RESXLS_COST_TOC_HeadlinesWithoutNum_WorkAround]
+en-US = "Replace the manual numbering with automatic numbering or add spaces between the manual numbers and the text."
+
+[RID_RESXLS_COST_TABLE_AlignmentOfObjects_IssueType]
+en-US = "Horizontal Alignment of Objects"
+
+[RID_RESXLS_COST_TABLE_AlignmentOfObjects_Comment]
+en-US = "Graphics, WordArt or similar objects located in text tables get displayed in the wrong position when the absolute position of the horizontal alignment is defined instead of a relative position."
+
+[RID_RESXLS_COST_TABLE_AlignmentOfObjects_WorkAround]
+en-US = "Adjust the horizontal alignment manually."
+
+[RID_STR_WORD_ATTRIBUTE_COUNT]
+en-US = "Count"
+
+[RID_STR_EXCEL_NOTE_CELL_FUNCTIONS_DATEDIF]
+en-US = "<PRODUCTNAME> Calc does not have an equivalent 'DATEDIF' function."
+
+[RID_STR_EXCEL_NOTE_CELL_FUNCTIONS_PHONETIC]
+en-US = "<PRODUCTNAME> does not have an equivalent 'PHONETIC' function."
+
+[RID_STR_PP_SUBISSUE_BACKGROUND_NOTE]
+en-US = "Fill style background colors applied to shapes in PowerPoint might be lost after a round trip conversion in <PRODUCTNAME>."
+
+[RID_STR_PP_SUBISSUE_NUMBERING_NOTE]
+en-US = "Only the first paragraph in a numbered sequence can start with "1" in <PRODUCTNAME>. The numbering can only start with "2" or higher in subsequent paragraphs."
+
+[RID_STR_PP_SUBISSUE_HYPERLINK_NOTE]
+en-US = "Unlike PowerPoint, <PRODUCTNAME> does not support multiple text formats in hyperlink text. Instead, <PRODUCTNAME> creates a separate hyperlink for each formatting style in an imported hyperlink."
+
+[RID_STR_PP_SUBISSUE_HYPERLINK_SPLIT_NOTE]
+en-US = "PowerPoint splits the text representation of a hyperlink into several lines when the text box is not wide enough. <PRODUCTNAME> does not split hyperlinks so the hyperlink text might extend out of the text box."
+
+[RID_STR_PP_SUBISSUE_TEMPLATE_NOTE]
+en-US = "<PRODUCTNAME> does not support the PowerPoint 'Title Slide' layout. When you import this layout, most of the subtitle object attributes are converted to hard attributes. PowerPoint 97 users require the multiple master page patch from Microsoft to view 'Title Slide' layouts that are contained in round trip documents."
+
+[RID_STR_PP_SUBISSUE_TABSTOP_NOTE]
+en-US = "Unlike PowerPoint, <PRODUCTNAME> only supports one default tab stop in a document and not one for each text object. If a PowerPoint document uses more than one default tab stop for text objects, <PRODUCTNAME> assigns hard tab stops to these text objects to ensure an identical layout when you import the document. The default tab stops are not reinserted when you save the document in PowerPoint format."
+
+[RID_STR_PP_SUBISSUE_FONTS]
+en-US = "Embedded Fonts"
+
+[RID_STR_PP_SUBISSUE_FONTS_NOTE]
+en-US = "<PRODUCTNAME> doesn't support embedded fonts."
+
+[RID_STR_COMMON_SUBISSUE_TRANSPARENCY_NOTE]
+en-US = "Microsoft Office supports a color attribute that allows you to make a bitmap color transparent without modifying the orginal bitmap. When you import a document with such a bitmap, <PRODUCTNAME> changes the bitmap to match the transparent color. The transparent color attribute is lost."
+
+[RID_STR_COMMON_SUBISSUE_LINE_NOTE]
+en-US = "<PRODUCTNAME> does not support all of the line styles that you can apply to MS Office AutoShapes. As a result, <PRODUCTNAME> replaces double and triple line styles with a single line."
+
+[RID_STR_COMMON_SUBISSUE_GRADIENT_PRESET_NOTE]
+en-US = "<PRODUCTNAME> does not support preset gradient styles."
+
+[RID_STR_COMMON_SUBISSUE_GRADIENT_CORNER_NOTE]
+en-US = "<PRODUCTNAME> does not support the 'from center' gradient style."
+
+[RID_STR_COMMON_SUBISSUE_GRADIENT_CENTER_NOTE]
+en-US = "<PRODUCTNAME> does not support the 'from corner' gradient style."
+
+[RID_RESXLS_COST_DB_Query]
+en-US = "Database Query"
+
+[RID_RESXLS_COST_DB_Query_Comment]
+en-US = "Issue: <PRODUCTNAME> can not import the database query. "
+
+[RID_RESXLS_COST_LineStyle]
+en-US = "Line Style"
+
+[RID_RESXLS_COST_LineStyle_Comment]
+en-US = "Issue: Line style is not supported."
+
+[RID_RESXLS_COST_Numbering]
+en-US = "Numbering"
+
+[RID_RESXLS_COST_Numbering_Comment]
+en-US = "Issue: Text numbering starts with wrong number."
+
+[RID_RESXLS_COST_Template]
+en-US = "Layout 'Title Slide'"
+
+[RID_RESXLS_COST_Template_Comment]
+en-US = "Issue: 'Title Slide' layout is not supported."
+
+[RID_RESXLS_COST_DATEDIF_Note]
+en-US = "Use a date or time function that <PRODUCTNAME> Calc supports."
+
+[RID_RESXLS_COST_Tabstop]
+en-US = "Default Tabulator"
+
+[RID_RESXLS_COST_Tabstop_Comment]
+en-US = "Issue: Different default tabulators are not supported for text objects."
+
+[RID_RESXLS_COST_Transparent]
+en-US = "Transparent Color"
+
+[RID_RESXLS_COST_Transparent_Comment]
+en-US = "Issue: <PRODUCTNAME> does not support the transparent color attribute in bitmaps."
+
+[RID_RESXLS_COST_GradientStyle]
+en-US = "Gradient Style"
+
+[RID_RESXLS_COST_GradientStyle_Comment]
+en-US = "Issue: Unsupported gradient styles used."
+
+[RID_RESXLS_COST_GradientStyle_Note]
+en-US = "Replacing gradient styles by styles that are supported."
+
+[RID_RESXLS_COST_Hyperlink]
+en-US = "Textrange Hyperlinks"
+
+[RID_RESXLS_COST_Hyperlink_Comment]
+en-US = "Issue: Multiple text formatting is not supported in Hyperlinks."
+
+[RID_RESXLS_COST_HyperlinkSplit]
+en-US = "Split Hyperlinks"
+
+[RID_RESXLS_COST_HyperlinkSplit_Comment]
+en-US = "Issue: Hyperlink will not be split onto several lines."
+
+[RID_RESXLS_COST_Background]
+en-US = "Fill Type Background"
+
+[RID_RESXLS_COST_Background_Comment]
+en-US = "Issue: Fillstyle background is not supported."
+
diff --git a/migrationanalysis/src/driver_docs/makefile.mk b/migrationanalysis/src/driver_docs/makefile.mk new file mode 100644 index 000000000000..23b8d5f7b330 --- /dev/null +++ b/migrationanalysis/src/driver_docs/makefile.mk @@ -0,0 +1,127 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=..$/.. + +PRJNAME=migrationanalysis +TARGET=driverdocs + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + +# --- Files -------------------------------------------------------- + +PAW_DOCDEST:=$(BIN)$/ProAnalysisWizard$/Resources +PAW_DATDEST:=$(BIN)$/ProAnalysisWizard$/Resources$/lang + +PAW_DRIVER_DOCS:= \ + $(PAW_DOCDEST)$/_OOoDocAnalysisExcelDriver.xls \ + $(PAW_DOCDEST)$/_OOoDocAnalysisWordDriver.doc \ + $(PAW_DOCDEST)$/_OOoDocAnalysisPPTDriver.ppt + +PAW_DRIVER_DOCS_SRC:= \ + .$/PAW$/_OOoDocAnalysisExcelDriver.xls \ + .$/PAW$/_OOoDocAnalysisWordDriver.doc \ + .$/PAW$/_OOoDocAnalysisPPTDriver.ppt + +PAW_DAT_FILES= \ + $(foreach,i,$(alllangiso) $(PAW_DATDEST)$/$i.dat) + +DAT_DATA_FILE=allstrings.ulf +DAT_DON_FILE_PAW=$(MISC)$/$(DAT_DATA_FILE).paw + +ULFFILES=$(DAT_DATA_FILE) +.IF "$(WITH_LANG)"!="" +ULFDIR:=$(COMMONMISC)$/$(TARGET) +.ELSE # "$(WITH_LANG)"!="" +ULFDIR:=. +.ENDIF # "$(WITH_LANG)"!="" + +COMMON_SRC:= \ + .$/sources$/AnalysisDriver.bas \ + .$/sources$/CollectedFiles.cls \ + .$/sources$/CommonMigrationAnalyser.bas \ + .$/sources$/CommonPreparation.bas \ + .$/sources$/DocumentAnalysis.cls \ + .$/sources$/FileTypeAssociation.cls \ + .$/sources$/IssueInfo.cls \ + .$/sources$/LocalizeResults.bas \ + .$/sources$/PrepareInfo.cls \ + .$/sources$/StringDataManager.cls \ + .$/sources$/Stripped_OOoDocAnalysisExcelDriver.xls \ + .$/sources$/Stripped_OOoDocAnalysisPPTDriver.ppt \ + .$/sources$/Stripped_OOoDocAnalysisWordDriver.doc \ + .$/sources$/common_res.bas \ + .$/sources$/results_res.bas + +EXCEL_SRC:= \ + .$/sources$/excel$/ApplicationSpecific.bas \ + .$/sources$/excel$/MigrationAnalyser.cls \ + .$/sources$/excel$/Preparation.bas \ + .$/sources$/excel$/excel_res.bas + +PP_SRC:= \ + .$/sources$/powerpoint$/ApplicationSpecific.bas \ + .$/sources$/powerpoint$/MigrationAnalyser.cls \ + .$/sources$/powerpoint$/Preparation.bas \ + .$/sources$/powerpoint$/powerpoint_res.bas + +WORD_SRC:= \ + .$/sources$/word$/ApplicationSpecific.bas \ + .$/sources$/word$/MigrationAnalyser.cls \ + .$/sources$/word$/Preparation.bas \ + .$/sources$/word$/word_res.bas + +# --- Targets ------------------------------------------------------ + +.INCLUDE : target.mk + +ALLTAR : $(PAW_DRIVER_DOCS) $(DAT_DON_FILE_PAW) + +$(PAW_DRIVER_DOCS) : .$/PAW$/$$(@:f) + -$(MKDIRHIER) $(@:d) + $(COPY) .$/PAW$/$(@:f) $@ + +$(PAW_DAT_FILES) : $(ULFDIR)$/$(DAT_DATA_FILE) + -$(MKDIRHIER) $(@:d) + $(TOUCH) $@ + +$(DAT_DON_FILE_PAW) : $(PAW_DAT_FILES) + @echo -------------------------------- + @echo building $@ + -$(MKDIRHIER) $(@:d) + @echo making $(PAW_DAT_FILES) + $(PERL) ulf2dat.pl -i $(ULFDIR)$/$(DAT_DATA_FILE) $(PAW_DAT_FILES) && $(TOUCH) $@ + +.IF "$(VB6_LOCATION)" != "" +$(PAW_DRIVER_DOCS_SRC) : $(COMMON_SRC) $(EXCEL_SRC) $(PP_SRC) $(WORD_SRC) + @echo -------------------------------- + @echo create driver docs + cscript CreateDriverDocs.wsf +.ENDIF + diff --git a/migrationanalysis/src/driver_docs/sources/AnalysisDriver.bas b/migrationanalysis/src/driver_docs/sources/AnalysisDriver.bas new file mode 100644 index 000000000000..cb9f85b376c1 --- /dev/null +++ b/migrationanalysis/src/driver_docs/sources/AnalysisDriver.bas @@ -0,0 +1,3646 @@ +Attribute VB_Name = "AnalysisDriver"
+'/*************************************************************************
+' *
+' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +' +' Copyright 2000, 2010 Oracle and/or its affiliates. +' +' OpenOffice.org - a multi-platform office productivity suite +' +' This file is part of OpenOffice.org. +' +' OpenOffice.org is free software: you can redistribute it and/or modify +' it under the terms of the GNU Lesser General Public License version 3 +' only, as published by the Free Software Foundation. +' +' OpenOffice.org is distributed in the hope that it will be useful, +' but WITHOUT ANY WARRANTY; without even the implied warranty of +' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +' GNU Lesser General Public License version 3 for more details +' (a copy is included in the LICENSE file that accompanied this code). +' +' You should have received a copy of the GNU Lesser General Public License +' version 3 along with OpenOffice.org. If not, see +' <http://www.openoffice.org/license.html> +' for a copy of the LGPLv3 License. +' +' ************************************************************************/
+
+Option Explicit
+
+' Declare Public variables.
+Public Type ShortItemId
+ cb As Long
+ abID As Byte
+End Type
+
+Public Type ITEMIDLIST
+ mkid As ShortItemId
+End Type
+
+Public Declare Function FindWindow Lib "user32" Alias _
+ "FindWindowA" (ByVal lpClassName As String, _
+ ByVal lpWindowName As Long) As Long
+
+Private Declare Function GetTickCount Lib "kernel32" () As Long
+
+'This function saves the passed value to the file,
+'under the section and key names specified.
+'If the ini file, lpFileName, does not exist, it is created.
+'If the section, lpSectionName, does not exist, it is created.
+'If the key name, lpKeyName, does not exist, it is created.
+'If the key name exists, it's value, lpString, is replaced.
+Private Declare Function WritePrivateProfileString Lib "kernel32" _
+ Alias "WritePrivateProfileStringA" _
+ (ByVal lpSectionName As String, _
+ ByVal lpKeyName As Any, _
+ ByVal lpString As Any, _
+ ByVal lpFileName As String) As Long
+
+Private Declare Function GetPrivateProfileString Lib "kernel32" _
+ Alias "GetPrivateProfileStringA" _
+ (ByVal lpSectionName As String, _
+ ByVal lpKeyName As Any, _
+ ByVal lpDefault As String, _
+ ByVal lpReturnedString As String, _
+ ByVal nSize As Long, _
+ ByVal lpFileName As String) As Long
+
+Private Declare Function UrlEscape Lib "shlwapi" _
+ Alias "UrlEscapeA" _
+ (ByVal pszURL As String, _
+ ByVal pszEscaped As String, _
+ pcchEscaped As Long, _
+ ByVal dwFlags As Long) As Long
+
+Public Declare Function SHGetPathFromIDList Lib "shell32.dll" _
+ (ByVal pidl As Long, ByVal pszPath As String) As Long
+
+Public Declare Function SHGetSpecialFolderLocation Lib _
+ "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder _
+ As Long, pidl As ITEMIDLIST) As Long
+
+Public Const LOCALE_ILANGUAGE As Long = &H1 'language id
+Public Const LOCALE_SLANGUAGE As Long = &H2 'localized name of lang
+Public Const LOCALE_SENGLANGUAGE As Long = &H1001 'English name of lang
+Public Const LOCALE_SABBREVLANGNAME As Long = &H3 'abbreviated lang name
+Public Const LOCALE_SNATIVELANGNAME As Long = &H4 'native name of lang
+Public Const LOCALE_ICOUNTRY As Long = &H5 'country code
+Public Const LOCALE_SCOUNTRY As Long = &H6 'localized name of country
+Public Const LOCALE_SENGCOUNTRY As Long = &H1002 'English name of country
+Public Const LOCALE_SABBREVCTRYNAME As Long = &H7 'abbreviated country name
+Public Const LOCALE_SNATIVECTRYNAME As Long = &H8 'native name of country
+Public Const LOCALE_SINTLSYMBOL As Long = &H15 'intl monetary symbol
+Public Const LOCALE_IDEFAULTLANGUAGE As Long = &H9 'def language id
+Public Const LOCALE_IDEFAULTCOUNTRY As Long = &HA 'def country code
+Public Const LOCALE_IDEFAULTCODEPAGE As Long = &HB 'def oem code page
+Public Const LOCALE_IDEFAULTANSICODEPAGE As Long = &H1004 'def ansi code page
+Public Const LOCALE_IDEFAULTMACCODEPAGE As Long = &H1011 'def mac code page
+
+Public Const LOCALE_IMEASURE As Long = &HD '0 = metric, 1 = US
+Public Const LOCALE_SSHORTDATE As Long = &H1F 'short date format string
+
+'#if(WINVER >= &H0400)
+Public Const LOCALE_SISO639LANGNAME As Long = &H59 'ISO abbreviated language name
+Public Const LOCALE_SISO3166CTRYNAME As Long = &H5A 'ISO abbreviated country name
+'#endif /* WINVER >= as long = &H0400 */
+
+'#if(WINVER >= &H0500)
+Public Const LOCALE_SNATIVECURRNAME As Long = &H1008 'native name of currency
+Public Const LOCALE_IDEFAULTEBCDICCODEPAGE As Long = &H1012 'default ebcdic code page
+Public Const LOCALE_SSORTNAME As Long = &H1013 'sort name
+'#endif /* WINVER >= &H0500 */
+
+Public Declare Function GetSystemDefaultLangID Lib "kernel32" () As Long
+Public Declare Function GetUserDefaultLangID Lib "kernel32" () As Long
+
+Public Declare Function GetLocaleInfo Lib "kernel32" _
+ Alias "GetLocaleInfoA" _
+ (ByVal Locale As Long, _
+ ByVal LCType As Long, _
+ ByVal lpLCData As String, _
+ ByVal cchData As Long) As Long
+
+
+Public Const CWIZARD = "analysis"
+
+Const CROWOFFSET = 2
+Const CDOCPROP_PAW_ROWOFFSET = 3
+Private mDocPropRowOffset As Long
+
+Const CNUMBERDOC_ALL = "All"
+Const CTOTAL_DOCS_ANALYZED = "TotalDocsAnalysed"
+Const CNUMDAYS_IN_MONTH = 30
+Const CMAX_LIMIT = 10000
+
+Const CISSUE_DETDOCNAME = 1
+Const CISSUE_DETDOCAPPLICATION = CISSUE_DETDOCNAME + 1
+Const CISSUE_DETTYPE = CISSUE_DETDOCAPPLICATION + 1
+Const CISSUE_DETSUBTYPE = CISSUE_DETTYPE + 1
+Const CISSUE_DETLOCATION = CISSUE_DETSUBTYPE + 1
+Const CISSUE_DETSUBLOCATION = CISSUE_DETLOCATION + 1
+Const CISSUE_DETLINE = CISSUE_DETSUBLOCATION + 1
+Const CISSUE_DETCOLUMN = CISSUE_DETLINE + 1
+Const CISSUE_DETATTRIBUTES = CISSUE_DETCOLUMN + 1
+Const CISSUE_DETNAMEANDPATH = CISSUE_DETATTRIBUTES + 1
+
+Const CREF_DETDOCNAME = 1
+Const CREF_DETDOCAPPLICATION = CREF_DETDOCNAME + 1
+Const CREF_DETREFERENCE = CREF_DETDOCAPPLICATION + 1
+Const CREF_DETDESCRIPTION = CREF_DETREFERENCE + 1
+Const CREF_DETLOCATION = CREF_DETDESCRIPTION + 1
+Const CREF_DETATTRIBUTES = CREF_DETLOCATION + 1
+Const CREF_DETNAMEANDPATH = CREF_DETATTRIBUTES + 1
+
+Const CINPUT_DIR = "indir"
+Const COUTPUT_DIR = "outdir"
+Const CRESULTS_FILE = "resultsfile"
+Const CLOG_FILE = "logfile"
+Const CRESULTS_TEMPLATE = "resultstemplate"
+Const CRESULTS_EXIST = "resultsexist"
+Const COVERWRITE_FILE = "overwritefile"
+Const CNEW_RESULTS_FILE = "newresultsfile"
+Const CINCLUDE_SUBDIRS = "includesubdirs"
+Const CDEBUG_LEVEL = "debuglevel"
+Const COUTPUT_TYPE = "outputtype"
+Const COUTPUT_TYPE_XLS = "xls"
+Const COUTPUT_TYPE_XML = "xml"
+Const COUTPUT_TYPE_BOTH = "both"
+Const COVERVIEW_TITLE_LABEL = "OV_Document_Analysis_Overview_lbl"
+Const CDEFAULT_PASSWORD = "defaultpassword"
+Const CVERSION = "version"
+Const CTITLE = "title"
+Const CDOPREPARE = "prepare"
+Const CISSUES_LIMIT = "issuesmonthlimit"
+Const CSINGLE_FILE = "singlefile"
+Const CFILE_LIST = "filelist"
+Const CSTAT_FILE = "statfilename"
+Const C_ABORT_ANALYSIS = "abortanalysis"
+Const C_DOCS_LESS_3_MONTH = "DocumentsYoungerThan3Month"
+Const C_DOCS_LESS_6_MONTH = "DocumentsYoungerThan6Month"
+Const C_DOCS_LESS_12_MONTH = "DocumentsYoungerThan12Month"
+Const C_DOCS_MORE_12_MONTH = "DocumentsOlderThan12Month"
+
+Private Const C_ANALYSIS As String = "Analysis"
+Private Const C_LAST_CHECKPOINT As String = "LastCheckpoint"
+Private Const C_NEXT_FILE As String = "NextFile"
+Private Const C_MAX_CHECK_INI As String = "FilesBeforeSave"
+Private Const C_MAX_WAIT_BEFORE_WRITE_INI As String = "SecondsBeforeSave"
+Private Const C_MAX_RANGE_PROCESS_TIME_INI As String = "ExcelMaxRangeProcessTime"
+Private Const C_ERROR_HANDLING_DOC As String = "_ERROR_HANDLING_DOC_"
+Private Const C_MAX_CHECK As Long = 100
+Private Const C_MAX_WAIT_BEFORE_WRITE As Long = 300 ' sec
+Private Const C_MAX_RANGE_PROCESS_TIME As Integer = 30 'sec
+
+Private Const C_STAT_STARTING As Integer = 1
+Private Const C_STAT_DONE As Integer = 2
+Private Const C_STAT_FINISHED As Integer = 3
+
+Private Type DocumentCount
+ numDocsAnalyzed As Long
+ numDocsAnalyzedWithIssues As Long
+ numMinorIssues As Long
+ numComplexIssues As Long
+ numMacroIssues As Long
+ numPreparableIssues As Long
+ totalMacroCosts As Long
+ totalDocIssuesCosts As Long
+ totalPreparableIssuesCosts As Long
+End Type
+
+Private Type DocModificationDates
+ lessThanThreemonths As Long
+ threeToSixmonths As Long
+ sixToTwelvemonths As Long
+ greaterThanOneYear As Long
+End Type
+
+Private Type DocMacroClassifications
+ None As Long
+ Simple As Long
+ Medium As Long
+ complex As Long
+End Type
+
+Private Type DocIssueClassifications
+ None As Long
+ Minor As Long
+ complex As Long
+End Type
+
+Const CCOST_COL_OFFSET = -1
+
+Private mLogFilePath As String
+Private mDocIndex As String
+Private mDebugLevel As Long
+Private mIniFilePath As String
+Private mUserFormTypesDict As Scripting.Dictionary
+Private mIssuesDict As Scripting.Dictionary
+Private mMacroDict As Scripting.Dictionary
+Private mPreparedIssuesDict As Scripting.Dictionary
+Private mIssuesClassificationDict As Scripting.Dictionary
+Private mIssuesCostDict As Scripting.Dictionary
+Private mIssuesLimit As Date
+
+Public Const CWORD_DRIVER_FILE = "_OOoDocAnalysisWordDriver.doc"
+Public Const CEXCEL_DRIVER_FILE = "_OOoDocAnalysisExcelDriver.xls"
+Public Const CPP_DRIVER_FILE = "_OOoDocAnalysisPPTDriver.ppt"
+Public Const CWORD_DRIVER_FILE_TEMP = "~$OoDocAnalysisWordDriver.doc"
+Public Const CEXCEL_DRIVER_FILE_TEMP = "~$OoDocAnalysisExcelDriver.xls"
+Public Const CPP_DRIVER_FILE_TEMP = "~$OoDocAnalysisPPTDriver.ppt"
+
+'Doc Properties Offsets - used in WriteDocProperties and GetPreparableFilesFromDocProps
+Const CDOCINFONAME = 1
+Const CDOCINFOAPPLICATION = CDOCINFONAME + 1
+
+Const CDOCINFOISSUE_CLASS = CDOCINFOAPPLICATION + 1
+Const CDOCINFOCOMPLEXISSUES = CDOCINFOISSUE_CLASS + 1
+Const CDOCINFOMINORISSUES = CDOCINFOCOMPLEXISSUES + 1
+Const CDOCINFOPREPAREDISSUES = CDOCINFOMINORISSUES + 1
+
+Const CDOCINFOMACRO_CLASS = CDOCINFOPREPAREDISSUES + 1
+Const CDOCINFOMACRO_USERFORMS = CDOCINFOMACRO_CLASS + 1
+Const CDOCINFOMACRO_LINESOFCODE = CDOCINFOMACRO_USERFORMS + 1
+
+Const CDOCINFODOCISSUECOSTS = CDOCINFOMACRO_LINESOFCODE + 1
+Const CDOCINFOPREPARABLEISSUECOSTS = CDOCINFODOCISSUECOSTS + 1
+Const CDOCINFOMACROISSUECOSTS = CDOCINFOPREPARABLEISSUECOSTS + 1
+
+Const CDOCINFONUMBERPAGES = CDOCINFOMACROISSUECOSTS + 1
+Const CDOCINFOCREATED = CDOCINFONUMBERPAGES + 1
+Const CDOCINFOLASTMODIFIED = CDOCINFOCREATED + 1
+Const CDOCINFOLASTACCESSED = CDOCINFOLASTMODIFIED + 1
+Const CDOCINFOLASTPRINTED = CDOCINFOLASTACCESSED + 1
+Const CDOCINFOLASTSAVEDBY = CDOCINFOLASTPRINTED + 1
+Const CDOCINFOREVISION = CDOCINFOLASTSAVEDBY + 1
+Const CDOCINFOTEMPLATE = CDOCINFOREVISION + 1
+Const CDOCINFONAMEANDPATH = CDOCINFOTEMPLATE + 1
+
+'Overview shapes
+Const COV_DOC_MOD_DATES_CHART = "Chart 21"
+Const COV_DOC_MACRO_CHART = "Chart 22"
+Const COV_DOC_ANALYSIS_CHART = "Chart 23"
+
+Const COV_DOC_MOD_DATES_COMMENT_TXB = "Text Box 25"
+Const COV_DOC_MOD_DATES_LEGEND_TXB = "Text Box 12"
+
+Const COV_DOC_MACRO_COMMENT_TXB = "Text Box 26"
+Const COV_DOC_MACRO_LEGEND_TXB = "Text Box 16"
+
+Const COV_DOC_ANALYSIS_COMMENT_TXB = "Text Box 27"
+Const COV_DOC_ANALYSIS_LEGEND_DAW_TXB = "Text Box 28"
+Const COV_DOC_ANALYSIS_LEGEND_PAW_TXB = "Text Box 18"
+
+Const COV_HIGH_LEVEL_ANALYSIS_RANGE = "OV_High_Level_Analysis_Range"
+Const COV_COST_RANGE = "OV_Cost_Range"
+
+'Sheet labels
+Const COV_HIGH_LEVEL_ANALYSIS_LBL = "OV_High_level_analysis_lbl"
+Const COV_DP_PREPISSUES_COL_LBL = "DocProperties_PreparedIssues_Column"
+Const COV_COSTS_PREPISSUE_COUNT_COL_LBL = "Costs_PreparedIssueCount_Column"
+Const CDP_DAW_HIDDEN_COLS_LBL = "DP_DAW_HIDDEN_COLS_RANGE"
+Const CDP_DAW_HIDDEN_COLS2_LBL = "DP_DAW_HIDDEN_COLS_RANGE2"
+Const CDP_DAW_HIDDEN_ROW_LBL = "DP_DAW_HIDDEN_ROW_RANGE"
+
+Const COV_DAW_SETUP_SHEETS_RUN_LBL = "OV_DAW_SETUP_SHEETS_RUN"
+Const COV_PAW_SETUP_SHEETS_RUN_LBL = "OV_PAW_SETUP_SHEETS_RUN"
+Const COV_Internal_Attributes_Cols_LBL = "OV_Internal_Attributes_Cols"
+
+Const CR_STR = "<CR>"
+Const CR_TOPIC = "<TOPIC>"
+Const CR_PRODUCT = "<PRODUCT>"
+
+Const CLEGEND_FONT_SIZE = 8
+Const CCOMMENTS_FONT_SIZE = 10
+
+Dim mTstart As Single
+Dim mTend As Single
+Public gExcelMaxRangeProcessTime As Integer
+
+Sub AnalyseDirectory()
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "AnalyseDirectory"
+
+ Dim iniFilePath As String
+ Dim startDir As String
+ Dim fileList As String
+ Dim storeToDir As String
+ Dim resultsFile As String
+ Dim resultsTemplate As String
+ Dim statFileName As String
+ Dim bOverwriteResultsFile As Boolean
+ Dim bNewResultsFile As Boolean
+ Dim outputType As String
+ Dim singleFile As String
+ Dim nTimeNeeded As Long
+ Dim nIncrementFileCounter As Long
+ Dim nMaxWaitBeforeWrite As Long
+ Dim fso As Scripting.FileSystemObject
+ Set fso = New Scripting.FileSystemObject
+
+ SetAppToMinimized
+
+ If InDocPreparation Then
+ mDocPropRowOffset = CDOCPROP_PAW_ROWOFFSET
+ Else
+ mDocPropRowOffset = CROWOFFSET
+ End If
+
+ 'Get Wizard input variables
+ SetupWizardVariables fileList, storeToDir, resultsFile, _
+ mLogFilePath, resultsTemplate, bOverwriteResultsFile, bNewResultsFile, _
+ statFileName, mDebugLevel, outputType, singleFile
+
+ startDir = ProfileGetItem("Analysis", CINPUT_DIR, "", mIniFilePath)
+
+ nIncrementFileCounter = CLng(ProfileGetItem("Analysis", _
+ C_MAX_CHECK_INI, C_MAX_CHECK, mIniFilePath))
+ nMaxWaitBeforeWrite = CLng(ProfileGetItem("Analysis", _
+ C_MAX_WAIT_BEFORE_WRITE_INI, C_MAX_WAIT_BEFORE_WRITE, mIniFilePath))
+ gExcelMaxRangeProcessTime = CInt(ProfileGetItem("Analysis", _
+ C_MAX_RANGE_PROCESS_TIME_INI, C_MAX_RANGE_PROCESS_TIME, mIniFilePath))
+ LocalizeResources
+
+ 'Setup File List
+ 'For Prepare - get list from results spreadsheet with docs analysis found as preparable
+ 'If no results spreadsheet then just try to prepare all the docs - run over full analysis list
+ Dim myFiles As Collection
+ Set myFiles = New Collection
+ Dim sAnalysisOrPrep As String
+ If InDocPreparation And CheckDoPrepare Then
+ sAnalysisOrPrep = "Prepared"
+ If fso.FileExists(storeToDir & "\" & resultsFile) Then
+ If Not GetPrepareFilesToAnalyze(storeToDir & "\" & resultsFile, myFiles, fso) Then
+ SetPrepareToNone
+ WriteDebug currentFunctionName & ": No files to analyse!"
+ GoTo FinalExit 'No files to prepare - exit
+ End If
+ Else
+ If Not GetFilesToAnalyze(fileList, singleFile, myFiles) Then
+ SetPrepareToNone
+ WriteDebug currentFunctionName & ": No files to analyse! Filelist (" & fileList & ") empty?"
+ GoTo FinalExit 'No files to prepare - exit
+ End If
+ End If
+ Else
+ sAnalysisOrPrep = "Analyzed"
+ If Not GetFilesToAnalyze(fileList, singleFile, myFiles) Then
+ WriteDebug currentFunctionName & ": No files to analyse! Filelist (" & fileList & ") empty?"
+ GoTo FinalExit
+ End If
+ End If
+
+ Dim index As Long
+ Dim numFiles As Long
+ Dim nextSave As Long
+ Dim startIndex As Long
+ Dim bResultsWaiting As Boolean
+ Dim AnalysedDocs As Collection
+ Dim startDate As Date
+ Dim currentDate As Date
+
+ Set AnalysedDocs = New Collection
+ numFiles = myFiles.count
+ bResultsWaiting = False
+
+ If (singleFile <> "") Then
+ ' No recovery handling for single file analysis and the value in the
+ ' ini file should be used for bNewResultsFile
+ startIndex = 1
+ Else
+ bNewResultsFile = bNewResultsFile And GetIndexValues(startIndex, nextSave, myFiles)
+ End If
+
+ startDate = Now()
+
+ ' Analyse all files
+ For index = startIndex To numFiles
+ Set mIssuesClassificationDict = New Scripting.Dictionary
+ mIssuesClassificationDict.CompareMode = TextCompare
+ Set mIssuesCostDict = New Scripting.Dictionary
+ 'mIssuesCostDict.CompareMode = TextCompare
+
+ Set mUserFormTypesDict = New Scripting.Dictionary
+ Set mIssuesDict = New Scripting.Dictionary
+ Set mMacroDict = New Scripting.Dictionary
+ Set mPreparedIssuesDict = New Scripting.Dictionary
+
+ 'Write to Application log
+ Dim myAnalyser As MigrationAnalyser
+ Set myAnalyser = New MigrationAnalyser
+
+ If (CheckForAbort) Then GoTo FinalExit
+
+ 'Log Analysis
+ WriteToStatFile statFileName, C_STAT_STARTING, myFiles.item(index), fso
+ WriteToLog "Analyzing", myFiles.item(index)
+ WriteToIni C_NEXT_FILE, myFiles.item(index)
+ mDocIndex = index
+
+ 'Do Analysis
+ myAnalyser.DoAnalyse myFiles.item(index), mUserFormTypesDict, startDir, storeToDir, fso
+
+ AnalysedDocs.Add myAnalyser.Results
+ bResultsWaiting = True
+
+ WriteToLog sAnalysisOrPrep, index & "of" & numFiles & _
+ " " & getAppSpecificApplicationName & " Documents"
+ WriteToLog "Analyzing", "Done"
+ WriteToLog sAnalysisOrPrep & "Doc" & index, myFiles.item(index)
+ Set myAnalyser = Nothing
+
+ If (CheckForAbort) Then GoTo FinalExit
+
+ 'No need to output results spreadsheet, just doing prepare
+ If CheckDoPrepare Then GoTo CONTINUE_FOR
+
+ nTimeNeeded = val(DateDiff("s", startDate, Now()))
+ If ((nTimeNeeded > nMaxWaitBeforeWrite) Or _
+ (index >= nextSave)) Then
+ If WriteResults(storeToDir, resultsFile, resultsTemplate, _
+ bOverwriteResultsFile, bNewResultsFile, _
+ outputType, AnalysedDocs, fso) Then
+ nextSave = index + C_MAX_CHECK
+ bResultsWaiting = False
+ Set AnalysedDocs = New Collection
+ WriteToIni C_LAST_CHECKPOINT, myFiles.item(index)
+ startDate = Now()
+ Else
+ 'write error
+ End If
+ End If
+ WriteToStatFile statFileName, C_STAT_DONE, myFiles.item(index), fso
+CONTINUE_FOR:
+ Next index
+
+ If (bResultsWaiting) Then
+ If WriteResults(storeToDir, resultsFile, resultsTemplate, _
+ bOverwriteResultsFile, bNewResultsFile, _
+ outputType, AnalysedDocs, fso) Then
+ WriteToIni C_LAST_CHECKPOINT, myFiles.item(index - 1)
+ Else
+ 'write error
+ End If
+ End If
+ WriteToStatFile statFileName, C_STAT_FINISHED, "", fso
+
+FinalExit:
+
+ Set fso = Nothing
+ Set myFiles = Nothing
+ Set mIssuesClassificationDict = Nothing
+ Set mIssuesCostDict = Nothing
+ Set mUserFormTypesDict = Nothing
+ Set mIssuesDict = Nothing
+ Set mMacroDict = Nothing
+ Set mPreparedIssuesDict = Nothing
+
+ Set AnalysedDocs = Nothing
+
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Function WriteResults(storeToDir As String, resultsFile As String, resultsTemplate As String, _
+ bOverwriteResultsFile As Boolean, bNewResultsFile As Boolean, _
+ outputType As String, AnalysedDocs As Collection, _
+ fso As FileSystemObject) As Boolean
+
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteResults"
+
+ If InDocPreparation Then
+ If outputType = COUTPUT_TYPE_XML Or outputType = COUTPUT_TYPE_BOTH Then
+ WriteXMLOutput storeToDir, resultsFile, _
+ bOverwriteResultsFile, bNewResultsFile, AnalysedDocs, fso
+ End If
+ End If
+
+ If outputType = COUTPUT_TYPE_XLS Or outputType = COUTPUT_TYPE_BOTH Then
+ WriteXLSOutput storeToDir, resultsFile, fso.GetAbsolutePathName(resultsTemplate), _
+ bOverwriteResultsFile, bNewResultsFile, AnalysedDocs, fso
+ End If
+
+ WriteResults = True
+ bNewResultsFile = False
+
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteResults = False
+ WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Function GetFilesToAnalyze_old(startDir As String, bIncludeSubdirs As Boolean, _
+ myFiles As Collection) As Boolean
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "GetFilesToAnalyze"
+ Dim fso As New FileSystemObject
+ Dim theResultsFile As String
+ theResultsFile = ProfileGetItem("Analysis", CINPUT_DIR, "c:\", mIniFilePath) & "\" & ProfileGetItem("Analysis", CRESULTS_FILE, "", mIniFilePath)
+
+ GetFilesToAnalyze = False
+
+ Dim searchTypes As Collection
+ Set searchTypes = New Collection
+ SetupSearchTypes searchTypes
+ If searchTypes.count = 0 Then
+ GoTo FinalExit
+ End If
+
+ Dim myDocFiles As CollectedFiles
+ Set myDocFiles = New CollectedFiles
+ With myDocFiles
+ .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CWORD_DRIVER_FILE)
+ .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CEXCEL_DRIVER_FILE)
+ .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CPP_DRIVER_FILE)
+ .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CWORD_DRIVER_FILE_TEMP)
+ .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CEXCEL_DRIVER_FILE_TEMP)
+ .BannedList.Add fso.GetAbsolutePathName(getAppSpecificPath & "\" & CPP_DRIVER_FILE_TEMP)
+ .BannedList.Add theResultsFile
+ End With
+ myDocFiles.Search rootDir:=startDir, FileSpecs:=searchTypes, _
+ IncludeSubdirs:=bIncludeSubdirs
+
+ If getAppSpecificApplicationName = CAPPNAME_WORD Then
+ Set myFiles = myDocFiles.WordFiles
+ ElseIf getAppSpecificApplicationName = CAPPNAME_EXCEL Then
+ Set myFiles = myDocFiles.ExcelFiles
+ ElseIf getAppSpecificApplicationName = CAPPNAME_POWERPOINT Then
+ Set myFiles = myDocFiles.PowerPointFiles
+ Else
+ WriteDebug currentFunctionName & " : invalid application " & getAppSpecificApplicationName
+ GoTo FinalExit
+ End If
+
+ GetFilesToAnalyze = True
+
+FinalExit:
+ Set searchTypes = Nothing
+ Set myDocFiles = Nothing
+
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Function GetFilesToAnalyze(fileList As String, startFile As String, _
+ myFiles As Collection) As Boolean
+
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "GetFilesToAnalyze"
+
+ Dim fso As New FileSystemObject
+ Dim fileContent As TextStream
+ Dim fileName As String
+
+ GetFilesToAnalyze = False
+
+ If (startFile = "") Then
+ If (fso.FileExists(fileList)) Then
+ Set fileContent = fso.OpenTextFile(fileList, ForReading, False, TristateTrue)
+ While (Not fileContent.AtEndOfStream)
+ fileName = fileContent.ReadLine
+ fileName = Trim(fileName)
+ If (fileName <> "") Then
+ myFiles.Add (fileName)
+ End If
+ Wend
+ fileContent.Close
+ End If
+ Else
+ myFiles.Add (startFile)
+ End If
+
+ If (myFiles.count <> 0) Then GetFilesToAnalyze = True
+
+FinalExit:
+ Set fileContent = Nothing
+ Set fso = Nothing
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Function GetPrepareFilesToAnalyze(resultsFilePath As String, myFiles As Collection, _
+ fso As FileSystemObject) As Boolean
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "GetPrepareFilesToAnalyze"
+
+ GetPrepareFilesToAnalyze = False
+
+ If Not fso.FileExists(resultsFilePath) Then
+ WriteDebug currentFunctionName & ": results file does not exist : " & resultsFilePath
+ GoTo FinalExit
+ End If
+
+ 'Open results spreadsheet
+ Dim xl As Excel.Application
+ If getAppSpecificApplicationName = CAPPNAME_EXCEL Then
+ Set xl = Application
+ xl.Visible = True
+ Else
+ Set xl = GetExcelInstance
+ xl.Visible = False
+ End If
+ Dim logWb As WorkBook
+ Set logWb = xl.Workbooks.Open(resultsFilePath)
+
+ Dim wsDocProp As Worksheet
+ Set wsDocProp = logWb.Sheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCPROP)
+
+ Dim startRow As Long
+ Dim endRow As Long
+ startRow = mDocPropRowOffset + 1
+ endRow = GetWorkbookNameValueAsLong(logWb, CTOTAL_DOCS_ANALYZED) + mDocPropRowOffset
+
+ GetPreparableFilesFromDocProps wsDocProp, startRow, endRow, fso, myFiles
+
+ GetPrepareFilesToAnalyze = (myFiles.count > 0)
+
+FinalExit:
+ Set wsDocProp = Nothing
+ If Not logWb Is Nothing Then logWb.Close
+ Set logWb = Nothing
+
+ If getAppSpecificApplicationName <> CAPPNAME_EXCEL Then
+ If Not xl Is Nothing Then
+ If xl.Workbooks.count = 0 Then
+ xl.Quit
+ End If
+ End If
+ End If
+ Set xl = Nothing
+
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Function GetPreparableFilesFromDocProps(wsDocProp As Worksheet, startRow As Long, _
+ endRow As Long, fso As FileSystemObject, myFiles As Collection) As Boolean
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "GetPreparableFilesFromDocProps"
+ GetPreparableFilesFromDocProps = False
+
+ Dim index As Long
+ Dim fileName As String
+ Dim fileExt As String
+ Dim docExt As String
+ Dim templateExt As String
+
+ docExt = getAppSpecificDocExt
+ templateExt = getAppSpecificTemplateExt
+
+ For index = startRow To endRow
+ If GetWorksheetCellValueAsLong(wsDocProp, index, CDOCINFOPREPAREDISSUES) > 0 Then
+ fileName = GetWorksheetCellValueAsString(wsDocProp, index, CDOCINFONAME)
+ fileExt = "." & fso.GetExtensionName(fileName)
+ 'Don't have to worry about search types - just looking at existing results
+ 'so just check both legal extensions for this application
+ If fileExt = docExt Or fileExt = templateExt Then
+ myFiles.Add GetWorksheetCellValueAsString(wsDocProp, index, CDOCINFONAMEANDPATH)
+ End If
+ End If
+ Next index
+
+ GetPreparableFilesFromDocProps = myFiles.count > 0
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ GetPreparableFilesFromDocProps = False
+ WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Sub OpenXLSResultFile(resultsFile As String, _
+ resultsTemplate As String, _
+ bNewResultsFile As Boolean, _
+ excelApp As Excel.Application, _
+ resultSheet As Excel.WorkBook)
+
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "OpenXLSResultFile"
+
+ If getAppSpecificApplicationName = CAPPNAME_EXCEL Then
+ Set excelApp = Application
+ excelApp.Visible = True
+ Else
+ Set excelApp = GetExcelInstance
+ excelApp.Visible = False
+ End If
+
+ If bNewResultsFile Then
+ Set resultSheet = excelApp.Workbooks.Add(Template:=resultsTemplate)
+ Localize_WorkBook resultSheet
+ Else
+ Set resultSheet = excelApp.Workbooks.Open(resultsFile)
+ End If
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ excelApp.DisplayAlerts = False
+ WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub CloseXLSResultFile(excelApp As Excel.Application, _
+ resultSheet As Excel.WorkBook)
+
+ On Error Resume Next
+
+ If Not resultSheet Is Nothing Then resultSheet.Close
+ Set resultSheet = Nothing
+
+ If getAppSpecificApplicationName <> CAPPNAME_EXCEL Then
+ If Not excelApp Is Nothing Then
+ excelApp.Visible = True
+ If excelApp.Workbooks.count = 0 Then
+ excelApp.Quit
+ End If
+ End If
+ End If
+ Set excelApp = Nothing
+
+ Exit Sub
+End Sub
+
+Sub WriteXLSOutput(storeToDir As String, resultsFile As String, resultsTemplate As String, _
+ bOverwriteResultsFile As Boolean, bNewResultsFile As Boolean, AnalysedDocs As Collection, _
+ fso As Scripting.FileSystemObject)
+
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteXLSOutput"
+
+ Dim offsetDocPropRow As Long
+ Dim offsetDocIssuesRow As Long
+ Dim offsetDocIssueDetailsRow As Long
+ Dim offsetDocRefDetailsRow As Long
+
+ Const COVERVIEW_SHEET_IDX = 1
+ Const CDOCLIST_SHEET_IDX = 2
+ Const CISSUES_ANALYSED_SHEET = 3
+ Const CISSUE_DETAILS_SHEET = 4
+ Const CWORD_ISSUES_SHEET = 5
+ Const CEXCEL_ISSUES_SHEET = 6
+ Const CPOWERPOINT_ISSUES_SHEET = 7
+ Const CREFERENCE_ISSUES_SHEET = 8
+
+ 'Begin writing stats to excel
+ Dim xl As Excel.Application
+ If getAppSpecificApplicationName = CAPPNAME_EXCEL Then
+ Set xl = Application
+ xl.Visible = True
+ Else
+ Set xl = GetExcelInstance
+ xl.Visible = False
+ End If
+
+ Dim logWb As WorkBook
+
+ If bNewResultsFile Then
+ Set logWb = xl.Workbooks.Add(Template:=resultsTemplate)
+ Localize_WorkBook logWb
+ Else
+ Set logWb = xl.Workbooks.Open(storeToDir & "\" & resultsFile)
+ End If
+
+ SetupAnalysisResultsVariables logWb, offsetDocPropRow, _
+ offsetDocIssuesRow, offsetDocIssueDetailsRow, offsetDocRefDetailsRow
+
+ ' Iterate through results and write info
+ Dim aAnalysis As DocumentAnalysis
+ Dim row As Long
+ Dim docCounts As DocumentCount
+ Dim templateCounts As DocumentCount
+
+ Dim issuesRow As Long
+ Dim issueDetailsRow As Long
+ Dim refDetailsRow As Long
+
+ Dim wsOverview As Worksheet
+ Dim wsCosts As Worksheet
+ Dim wsPgStats As Worksheet
+ Dim wsIssues As Worksheet
+ Dim wsIssueDetails As Worksheet
+ Dim wsRefDetails As Worksheet
+
+ Set wsOverview = logWb.Sheets(COVERVIEW_SHEET_IDX)
+ Set wsPgStats = logWb.Sheets(CDOCLIST_SHEET_IDX)
+
+ 'Some localized names might be longer than 31 chars, excel doesn't
+ 'allow such names!
+ On Error Resume Next
+ wsOverview.name = RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW
+ wsPgStats.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCPROP
+ On Error GoTo HandleErrors
+
+ If InDocPreparation Then
+ Set wsCosts = logWb.Sheets(CISSUES_ANALYSED_SHEET)
+ Dim appName As String
+ appName = getAppSpecificApplicationName
+ Select Case appName
+ Case "Word"
+ Set wsIssues = logWb.Worksheets(CWORD_ISSUES_SHEET)
+ Case "Excel"
+ Set wsIssues = logWb.Worksheets(CEXCEL_ISSUES_SHEET)
+ Case "PowerPoint"
+ Set wsIssues = logWb.Worksheets(CPOWERPOINT_ISSUES_SHEET)
+ Case Default
+ Err.Raise Number:=-1, Description:="BadAppName"
+ End Select
+ Set wsIssueDetails = logWb.Sheets(CISSUE_DETAILS_SHEET)
+ Set wsRefDetails = logWb.Sheets(CREFERENCE_ISSUES_SHEET)
+ issuesRow = 1 + CROWOFFSET + offsetDocIssuesRow
+ issueDetailsRow = 1 + CROWOFFSET + offsetDocIssueDetailsRow
+ refDetailsRow = 1 + CROWOFFSET + offsetDocRefDetailsRow
+ ' localize PAW worksheets
+ Dim wsWordIssues As Worksheet
+ Dim wsExcelIssues As Worksheet
+ Dim wsPowerPointIssues As Worksheet
+ Set wsWordIssues = logWb.Worksheets(CWORD_ISSUES_SHEET)
+ Set wsExcelIssues = logWb.Worksheets(CEXCEL_ISSUES_SHEET)
+ Set wsPowerPointIssues = logWb.Worksheets(CPOWERPOINT_ISSUES_SHEET)
+
+ On Error Resume Next
+ wsCosts.name = RID_STR_COMMON_RESULTS_SHEET_NAME_COSTS
+ wsIssueDetails.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUE_DETAILS
+ wsRefDetails.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCREF_DETAILS
+ wsWordIssues.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_WORD
+ wsExcelIssues.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_EXCEL
+ wsPowerPointIssues.name = RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_POWERPOINT
+ On Error GoTo HandleErrors
+ End If
+
+ Dim fileName As String
+ Dim macroClasses As DocMacroClassifications
+ Dim issueClasses As DocIssueClassifications
+
+ For row = 1 To AnalysedDocs.count 'Need Row count - so not using Eor Each
+ Set aAnalysis = AnalysedDocs.item(row)
+ fileName = fso.GetFileName(aAnalysis.name)
+
+ If InDocPreparation Then
+ issuesRow = WriteDocIssues(wsIssues, issuesRow, aAnalysis, fileName)
+ issueDetailsRow = _
+ ProcessIssuesAndWriteDocIssueDetails(logWb, wsIssueDetails, issueDetailsRow, aAnalysis, fileName)
+ refDetailsRow = _
+ WriteDocRefDetails(wsRefDetails, refDetailsRow, aAnalysis, fileName)
+ aAnalysis.MacroCosts = getMacroIssueCosts(logWb, aAnalysis)
+ WriteDocProperties wsPgStats, row + offsetDocPropRow, aAnalysis, fileName
+ Else
+ ProcessIssuesForDAW logWb, aAnalysis, fileName
+ WriteDocProperties wsPgStats, row + offsetDocPropRow, aAnalysis, fileName
+ End If
+
+ UpdateAllCounts aAnalysis, docCounts, templateCounts, macroClasses, issueClasses, fso
+
+ Set aAnalysis = Nothing
+ Next row
+
+ ' We change the font used for text box shapes here for the japanese
+ ' version, because office 2000 sometimes displays squares instead of
+ ' chars
+ Dim langStr As String
+ Dim userLCID As Long
+ Dim textSize As Long
+ Dim fontName As String
+
+ userLCID = GetUserDefaultLangID()
+ langStr = GetUserLocaleInfo(userLCID, LOCALE_SISO639LANGNAME)
+
+ If (langStr = "ja") Then
+ WriteDebug currentFunctionName & " : Setting font to MS PGothic for 'ja' locale"
+ fontName = "MS PGothic"
+ textSize = 10
+ Else
+ fontName = "Arial"
+ textSize = CLEGEND_FONT_SIZE
+ End If
+
+ 'DAW - PAW switches
+ If InDocPreparation Then
+ SaveAnalysisResultsVariables logWb, issueDetailsRow - (1 + CROWOFFSET), _
+ refDetailsRow - (1 + CROWOFFSET)
+
+ WriteOverview logWb, docCounts, templateCounts, macroClasses, issueClasses
+
+ SetupPAWResultsSpreadsheet logWb, fontName, textSize
+ WriteIssueCounts logWb
+ Else
+ WriteOverview logWb, docCounts, templateCounts, macroClasses, issueClasses
+
+ 'StartTiming
+ SetupDAWResultsSpreadsheet logWb, fontName, textSize
+ 'EndTiming "SetupDAWResultsSpreadsheet"
+ End If
+
+ SetupPrintRanges logWb, row, issuesRow, issueDetailsRow, refDetailsRow
+
+ If resultsFile <> "" Then
+ 'Overwrite existing results file without prompting
+ If bOverwriteResultsFile Or (Not bNewResultsFile) Then
+ xl.DisplayAlerts = False
+ End If
+
+ logWb.SaveAs fileName:=storeToDir & "\" & resultsFile
+ xl.DisplayAlerts = True
+ End If
+
+FinalExit:
+ If Not xl Is Nothing Then
+ xl.Visible = True
+ End If
+
+ Set wsOverview = Nothing
+ Set wsPgStats = Nothing
+
+ If InDocPreparation Then
+ Set wsCosts = Nothing
+ Set wsIssues = Nothing
+ Set wsIssueDetails = Nothing
+ Set wsRefDetails = Nothing
+ End If
+
+ If Not logWb Is Nothing Then logWb.Close
+ Set logWb = Nothing
+
+ If getAppSpecificApplicationName <> CAPPNAME_EXCEL Then
+ If Not xl Is Nothing Then
+ If xl.Workbooks.count = 0 Then
+ xl.Quit
+ End If
+ End If
+ End If
+ Set xl = Nothing
+
+ Exit Sub
+
+HandleErrors:
+ xl.DisplayAlerts = False
+
+ WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Public Sub StartTiming()
+ mTstart = 0
+ mTend = 0
+ mTstart = GetTickCount()
+End Sub
+Public Sub EndTiming(what As String)
+ mTend = GetTickCount()
+ WriteDebug "Timing: " & what & ": " & (FormatNumber((mTend - mTstart) / 1000, 0) & " seconds")
+ mTstart = 0
+ mTend = 0
+End Sub
+Sub WriteIssueCounts(logWb As WorkBook)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteIssueCounts"
+
+ Dim Str As String
+ Dim str1 As String
+ Dim val1 As Long
+ Dim count As Long
+ Dim vKeyArray As Variant
+ Dim vItemArray As Variant
+ Dim vPrepKeyArray As Variant
+ Dim vPrepItemArray As Variant
+
+ vKeyArray = mIssuesDict.Keys
+ vItemArray = mIssuesDict.Items
+
+ vPrepKeyArray = mPreparedIssuesDict.Keys
+ vPrepItemArray = mPreparedIssuesDict.Items
+
+ 'Write Issue Counts across all Documents
+ For count = 0 To mIssuesDict.count - 1
+ str1 = vKeyArray(count)
+ val1 = CInt(vItemArray(count))
+ logWb.Names(str1).RefersToRange.Cells(1, 1) = _
+ logWb.Names(str1).RefersToRange.Cells(1, 1).value + vItemArray(count)
+ 'DEBUG: str = str & "Key: " & str1 & " Value: " & val1 & vbLf
+ Next count
+
+ 'Write Prepared Issues Counts across all Documents
+ For count = 0 To mPreparedIssuesDict.count - 1
+ str1 = vPrepKeyArray(count)
+ val1 = CInt(vPrepItemArray(count))
+ AddVariantToWorkbookNameValue logWb, str1, vPrepItemArray(count)
+ 'DEBUG: str = str & "Key: " & str1 & " Value: " & val1 & vbLf
+ Next count
+
+ 'User Form control type count across all analyzed documents of this type
+ str1 = getAppSpecificApplicationName & "_" & _
+ CSTR_ISSUE_VBA_MACROS & "_" & _
+ CSTR_SUBISSUE_PROPERTIES & "_" & _
+ CSTR_SUBISSUE_VBA_MACROS_USERFORMS_CONTROLTYPE_COUNT
+ SetWorkbookNameValueToLong logWb, str1, mUserFormTypesDict.count
+
+ 'Add list of User Form controls and counts to ...USERFORMS_CONTROLTYPE_COUNT field
+ If mUserFormTypesDict.count > 0 Then
+ vKeyArray = mUserFormTypesDict.Keys
+ vItemArray = mUserFormTypesDict.Items
+
+ Str = RID_STR_COMMON_ATTRIBUTE_CONTROLS & ": "
+ For count = 0 To mUserFormTypesDict.count - 1
+ Str = Str & vbLf & vKeyArray(count) & " " & vItemArray(count)
+ Next count
+ WriteUserFromControlTypesComment logWb, str1, Str
+ End If
+ 'DEBUG: MsgBox str & vbLf & mIssuesDict.count
+
+ WriteUniqueModuleCount logWb
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : logging costs : " & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+Sub WriteUniqueModuleCount(logWb As WorkBook)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteUniqueModuleCount"
+
+ Dim strLabel As String
+ Dim uniqueLineCount As Long
+ Dim uniqueModuleCount As Long
+ Dim count As Long
+ Dim vItemArray As Variant
+
+ vItemArray = mMacroDict.Items
+
+ 'Write Issues Costs
+ uniqueLineCount = 0
+ For count = 0 To mMacroDict.count - 1
+ uniqueLineCount = uniqueLineCount + CInt(vItemArray(count))
+ Next count
+ uniqueModuleCount = mMacroDict.count
+
+
+ strLabel = getAppSpecificApplicationName & "_" & _
+ CSTR_ISSUE_VBA_MACROS & "_" & _
+ CSTR_SUBISSUE_PROPERTIES & "_" & _
+ CSTR_SUBISSUE_VBA_MACROS_UNIQUE_MODULE_COUNT
+ SetWorkbookNameValueToLong logWb, strLabel, uniqueModuleCount
+
+ strLabel = getAppSpecificApplicationName & "_" & _
+ CSTR_ISSUE_VBA_MACROS & "_" & _
+ CSTR_SUBISSUE_PROPERTIES & "_" & _
+ CSTR_SUBISSUE_VBA_MACROS_UNIQUE_LINE_COUNT
+ SetWorkbookNameValueToLong logWb, strLabel, uniqueLineCount
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : logging Unique Module/ Line Counts : " & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub WriteUserFromControlTypesComment(logWb As WorkBook, name As String, comment As String)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteUserFromControlTypesComment"
+
+ On Error Resume Next 'Ignore error if trying to add comment again - would happen on append to results
+ logWb.Names(name).RefersToRange.Cells(1, 1).AddComment
+
+ On Error GoTo HandleErrors
+ logWb.Names(name).RefersToRange.Cells(1, 1).comment.Text Text:=comment
+ 'Autosize not supported - Office 2000
+ 'logWb.Names(name).RefersToRange.Cells(1, 1).comment.AutoSize = True
+ logWb.Names(name).RefersToRange.Cells(1, 1).comment.Visible = False
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : name : " & name & _
+ " : comment : " & comment & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub UpdateAllCounts(aAnalysis As DocumentAnalysis, counts As DocumentCount, templateCounts As DocumentCount, _
+ macroClasses As DocMacroClassifications, issueClasses As DocIssueClassifications, _
+ fso As FileSystemObject)
+ Const CMODDATE_LESS3MONTHS = 91
+ Const CMODDATE_LESS6MONTHS = 182
+ Const CMODDATE_LESS12MONTHS = 365
+
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "UpdateAllCounts"
+ 'DocIssue Classification occurs in setDocOverallIssueClassification under
+ ' ProcessIssuesAndWriteDocIssueDetails when all DocIssues are being traversed.
+ 'MacroClass for the Doc is setup at the end of the Analyze_Macros in DoAnalysis
+ 'Mod Dates are determined in SetDocProperties in DoAnalysis
+
+ 'DocMacroClassifications
+ Select Case aAnalysis.MacroOverallClass
+ Case enMacroComplex
+ macroClasses.complex = macroClasses.complex + 1
+ Case enMacroMedium
+ macroClasses.Medium = macroClasses.Medium + 1
+ Case enMacroSimple
+ macroClasses.Simple = macroClasses.Simple + 1
+ Case Else
+ macroClasses.None = macroClasses.None + 1
+ End Select
+
+ 'DocIssueClassifications
+ aAnalysis.BelowIssuesLimit = True
+ Select Case aAnalysis.DocOverallIssueClass
+ Case enComplex
+ issueClasses.complex = issueClasses.complex + 1
+ Case enMinor
+ issueClasses.Minor = issueClasses.Minor + 1
+ Case Else
+ issueClasses.None = issueClasses.None + 1
+ End Select
+
+ 'DocumentCounts
+ Dim extStr As String
+ extStr = "." & LCase(fso.GetExtensionName(aAnalysis.name))
+ If extStr = getAppSpecificDocExt Then
+ UpdateDocCounts counts, aAnalysis
+ ElseIf extStr = getAppSpecificTemplateExt Then
+ UpdateDocCounts templateCounts, aAnalysis
+ Else
+ WriteDebug currentFunctionName & " : path " & aAnalysis.name & _
+ ": unhandled file extesnion " & extStr & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ End If
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+Sub UpdateDocCounts(counts As DocumentCount, aAnalysis As DocumentAnalysis)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "UpdateDocCounts"
+
+ counts.numDocsAnalyzed = counts.numDocsAnalyzed + 1
+ If aAnalysis.IssuesCount > 0 Then 'During Analysis incremented
+ counts.numDocsAnalyzedWithIssues = counts.numDocsAnalyzedWithIssues + 1
+
+ If aAnalysis.BelowIssuesLimit Then
+ counts.numMinorIssues = _
+ counts.numMinorIssues + aAnalysis.MinorIssuesCount
+ 'MinorIssuesCount incemented as all DocIssues are being traversed are being written out - ProcessIssuesAndWriteDocIssueDetails
+ counts.numComplexIssues = counts.numComplexIssues + aAnalysis.ComplexIssuesCount 'Calculated
+ counts.totalDocIssuesCosts = counts.totalDocIssuesCosts + _
+ aAnalysis.DocIssuesCosts
+ counts.totalPreparableIssuesCosts = counts.totalPreparableIssuesCosts + _
+ aAnalysis.PreparableIssuesCosts
+ End If
+
+ counts.numMacroIssues = counts.numMacroIssues + aAnalysis.MacroIssuesCount 'During Analysis incremented
+ counts.totalMacroCosts = counts.totalMacroCosts + aAnalysis.MacroCosts
+ End If
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+
+Sub WriteDocProperties(wsPgStats As Worksheet, row As Long, aAnalysis As DocumentAnalysis, _
+ fileName As String)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteDocProperties"
+
+ Dim rowIndex As Long
+ rowIndex = row + mDocPropRowOffset
+
+ If aAnalysis.Application = RID_STR_COMMON_CANNOT_OPEN Then
+ SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAME, fileName
+ SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOAPPLICATION, aAnalysis.Application
+ SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAMEANDPATH, aAnalysis.name
+
+ GoTo FinalExit
+ End If
+
+ If InDocPreparation Then
+ SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAME, fileName
+ SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOAPPLICATION, aAnalysis.Application
+
+ SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFODOCISSUECOSTS, aAnalysis.DocIssuesCosts
+ SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOPREPARABLEISSUECOSTS, aAnalysis.PreparableIssuesCosts
+ SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOMACROISSUECOSTS, aAnalysis.MacroCosts
+
+ SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOISSUE_CLASS, _
+ getDocOverallIssueClassificationAsString(aAnalysis.DocOverallIssueClass)
+ SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOCOMPLEXISSUES, aAnalysis.ComplexIssuesCount
+ SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOMINORISSUES, aAnalysis.MinorIssuesCount
+ SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOPREPAREDISSUES, aAnalysis.PreparableIssuesCount
+
+ SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOMACRO_CLASS, _
+ getDocOverallMacroClassAsString(aAnalysis.MacroOverallClass)
+ SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOMACRO_USERFORMS, aAnalysis.MacroNumUserForms
+ SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFOMACRO_LINESOFCODE, aAnalysis.MacroTotalNumLines
+
+ SetWorksheetCellValueToLong wsPgStats, rowIndex, CDOCINFONUMBERPAGES, aAnalysis.PageCount
+ SetWorksheetCellValueToVariant wsPgStats, rowIndex, CDOCINFOCREATED, CheckDate(aAnalysis.Created)
+ SetWorksheetCellValueToVariant wsPgStats, rowIndex, CDOCINFOLASTMODIFIED, CheckDate(aAnalysis.Modified)
+ SetWorksheetCellValueToVariant wsPgStats, rowIndex, CDOCINFOLASTACCESSED, CheckDate(aAnalysis.Accessed)
+ SetWorksheetCellValueToVariant wsPgStats, rowIndex, CDOCINFOLASTPRINTED, CheckDate(aAnalysis.Printed)
+
+ SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOLASTSAVEDBY, aAnalysis.SavedBy
+ SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOREVISION, aAnalysis.Revision
+ SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOTEMPLATE, aAnalysis.Template
+ SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAMEANDPATH, aAnalysis.name
+ Else
+ SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAME, fileName
+ SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOAPPLICATION, aAnalysis.Application
+ SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOISSUE_CLASS, _
+ getDocOverallIssueClassificationAsString(aAnalysis.DocOverallIssueClass)
+ SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFOMACRO_CLASS, _
+ getDocOverallMacroClassAsString(aAnalysis.MacroOverallClass)
+ SetWorksheetCellValueToVariant wsPgStats, rowIndex, CDOCINFOLASTMODIFIED, CheckDate(aAnalysis.Modified)
+ SetWorksheetCellValueToString wsPgStats, rowIndex, CDOCINFONAMEANDPATH, aAnalysis.name
+ End If
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : path " & aAnalysis.name & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+Function CheckDate(myDate As Date) As Variant
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "CheckDate"
+
+ Dim lowerNTDateLimit As Date
+ If Not IsDate(myDate) Then
+ CheckDate = RID_STR_COMMON_NA
+ Exit Function
+ End If
+
+ lowerNTDateLimit = DateSerial(1980, 1, 1)
+ CheckDate = IIf(myDate < lowerNTDateLimit, RID_STR_COMMON_NA, myDate)
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : date " & myDate & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Function WriteDocIssues(wsIssues As Worksheet, row As Long, _
+ aAnalysis As DocumentAnalysis, fileName As String) As Long
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteDocIssues"
+
+ Const CNAME = 1
+ Const CAPPLICATION = CNAME + 1
+ Const CISSUE_COLUMNOFFSET = CAPPLICATION
+
+ If aAnalysis.IssuesCount = 0 Then
+ WriteDocIssues = row
+ Exit Function
+ End If
+ SetWorksheetCellValueToString wsIssues, row, CNAME, fileName
+ SetWorksheetCellValueToString wsIssues, row, CAPPLICATION, aAnalysis.Application
+
+ Dim index As Integer
+ For index = 1 To aAnalysis.TotalIssueTypes
+ If aAnalysis.IssuesCountArray(index) > 0 Then
+ SetWorksheetCellValueToString wsIssues, row, CISSUE_COLUMNOFFSET + index, aAnalysis.IssuesCountArray(index)
+ End If
+ Next index
+ SetWorksheetCellValueToString wsIssues, row, CISSUE_COLUMNOFFSET + aAnalysis.TotalIssueTypes + 1, aAnalysis.name
+
+ WriteDocIssues = row + 1
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : path " & aAnalysis.name & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+Sub ProcessIssuesForDAW(logWb As WorkBook, aAnalysis As DocumentAnalysis, fileName As String)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "ProcessIssuesForDAW"
+
+ Dim myIssue As IssueInfo
+ Dim issueClass As EnumDocOverallIssueClass
+
+ Dim index As Integer
+ For index = 1 To aAnalysis.Issues.count
+ Set myIssue = aAnalysis.Issues(index)
+
+ If Not isMacroIssue(myIssue) Then
+ issueClass = getDocIssueClassification(logWb, myIssue)
+ CountDocIssuesForDoc issueClass, aAnalysis
+ SetOverallDocIssueClassification issueClass, aAnalysis
+ End If
+
+ Set myIssue = Nothing
+ Next index
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Function ProcessIssuesAndWriteDocIssueDetails(logWb As WorkBook, wsIssueDetails As Worksheet, DetailsRow As Long, _
+ aAnalysis As DocumentAnalysis, fileName As String) As Long
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "ProcessIssueAndWriteDocIssueDetails"
+
+ Dim myIssue As IssueInfo
+ Dim rowIndex As Long
+ Dim issueClass As EnumDocOverallIssueClass
+ Dim issueCost As Long
+
+ rowIndex = DetailsRow
+
+ Dim index As Integer
+ For index = 1 To aAnalysis.Issues.count
+ Set myIssue = aAnalysis.Issues(index)
+
+ ' Process Document Issues and Costs for the Document
+ ' Will be output to List of Documents sheet by WriteDocProperties( )
+ If Not isMacroIssue(myIssue) Then
+ issueClass = getDocIssueClassification(logWb, myIssue)
+ CountDocIssuesForDoc issueClass, aAnalysis
+ SetOverallDocIssueClassification issueClass, aAnalysis
+ issueCost = getDocIssueCost(logWb, aAnalysis, myIssue)
+ aAnalysis.DocIssuesCosts = aAnalysis.DocIssuesCosts + issueCost
+ If myIssue.Preparable Then
+ aAnalysis.PreparableIssuesCosts = aAnalysis.PreparableIssuesCosts + issueCost
+ End If
+ End If
+
+ 'Collate Issue and Factor counts across all Documents
+ 'Will be output to the Issues Analyzed sheet by WriteIssueCounts( )
+ CollateIssueAndFactorCountsAcrossAllDocs aAnalysis, myIssue, fileName
+
+ OutputCommonIssueDetails wsIssueDetails, rowIndex, aAnalysis, myIssue, fileName
+ OutputCommonIssueAttributes wsIssueDetails, rowIndex, myIssue
+ rowIndex = rowIndex + 1
+ Set myIssue = Nothing
+ Next index
+
+ ProcessIssuesAndWriteDocIssueDetails = rowIndex
+
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Function getDocIssueCost(logWb As WorkBook, aAnalysis As DocumentAnalysis, myIssue As IssueInfo) As Long
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "getDocIssueCost"
+
+ Dim issueKey As String
+ Dim ret As Long
+ ret = 0
+
+ issueKey = getAppSpecificApplicationName & "_" & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML
+
+ ret = getIssueValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, issueKey, 1, CCOST_COL_OFFSET)
+
+FinalExit:
+ getDocIssueCost = ret
+ Exit Function
+
+HandleErrors:
+ ret = 0
+ WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+Function getMacroIssueCosts(logWb As WorkBook, aAnalysis As DocumentAnalysis) As Long
+ 'Error handling not required
+ getMacroIssueCosts = getVBAMacroIssueCost(logWb, aAnalysis) '+ getMacroExtRefIssueCost(logWb, aAnalysis)
+ 'NOTE: Currently not counting External Refs as Macro Cost
+ 'could be added if porting off Windows
+
+End Function
+
+Function getVBAMacroIssueCost(logWb As WorkBook, aAnalysis As DocumentAnalysis) As Long
+ Const CMACRO_ROW_OFFSET_UNIQUE_LINES_COST = 4
+ Const CMACRO_ROW_OFFSET_USER_FORMS_COUNT_COST = 5
+ Const CMACRO_ROW_OFFSET_USER_FORMS_CONTROL_COUNT_COST = 6
+ Const CMACRO_ROW_OFFSET_USER_FORMS_CONTROL_TYPE_COUNT_COST = 7
+
+ Const CMACRO_NUM_OF_LINES_FACTOR_KEY = "_UniqueLineCount"
+ Const CMACRO_USER_FORMS_COUNT_FACTOR_KEY = "_UserFormsCount"
+ Const CMACRO_USER_FORMS_CONTROL_COUNT_FACTOR_KEY = "_UserFormsControlCount"
+ Const CMACRO_USER_FORMS_CONTROL_TYPE_COUNT_FACTOR_KEY = "_UserFormsControlTypeCount"
+
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "getVBAMacroIssueCost"
+
+ Dim baseIssueKey As String
+ Dim ret As Long
+ ret = 0
+
+ If Not aAnalysis.HasMacros Then GoTo FinalExit
+
+ 'Fetch VBA Macro Cost Factors - if required
+ baseIssueKey = getAppSpecificApplicationName & "_" & CSTR_ISSUE_VBA_MACROS & "_" & CSTR_SUBISSUE_PROPERTIES
+
+ 'Num Lines - Costing taken from "Lines in Unique Modules"
+ If aAnalysis.MacroTotalNumLines > 0 Then
+ ret = ret + aAnalysis.MacroTotalNumLines * _
+ getValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, _
+ baseIssueKey & CMACRO_NUM_OF_LINES_FACTOR_KEY, baseIssueKey, _
+ CMACRO_ROW_OFFSET_UNIQUE_LINES_COST, CCOST_COL_OFFSET)
+ End If
+ 'User Forms Count
+ If aAnalysis.MacroNumUserForms > 0 Then
+ ret = ret + aAnalysis.MacroNumUserForms * _
+ getValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, _
+ baseIssueKey & CMACRO_USER_FORMS_COUNT_FACTOR_KEY, baseIssueKey, _
+ CMACRO_ROW_OFFSET_USER_FORMS_COUNT_COST, CCOST_COL_OFFSET)
+ End If
+ 'User Forms Control Count
+ If aAnalysis.MacroNumUserFormControls > 0 Then
+ ret = ret + aAnalysis.MacroNumUserFormControls * _
+ getValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, _
+ baseIssueKey & CMACRO_USER_FORMS_CONTROL_COUNT_FACTOR_KEY, baseIssueKey, _
+ CMACRO_ROW_OFFSET_USER_FORMS_CONTROL_COUNT_COST, CCOST_COL_OFFSET)
+ End If
+ 'User Forms Control Type Count
+ If aAnalysis.MacroNumUserFormControlTypes > 0 Then
+ ret = ret + aAnalysis.MacroNumUserFormControlTypes * getValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, _
+ baseIssueKey & CMACRO_USER_FORMS_CONTROL_TYPE_COUNT_FACTOR_KEY, baseIssueKey, CMACRO_ROW_OFFSET_USER_FORMS_CONTROL_TYPE_COUNT_COST, CCOST_COL_OFFSET)
+ End If
+
+
+FinalExit:
+ getVBAMacroIssueCost = ret
+ Exit Function
+
+HandleErrors:
+ ret = 0
+ WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+Function getMacroExtRefIssueCost(logWb As WorkBook, aAnalysis As DocumentAnalysis) As Long
+ Const CMACRO_ROW_OFFSET_NUM_EXTERNAL_REFS_COST = 2
+ Const CMACRO_NUM_EXTERNAL_REFS_FACTOR_KEY = "_ExternalRefs"
+
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "getMacroExtRefIssueCost"
+ Dim baseIssueKey As String
+ Dim ret As Long
+ ret = 0
+
+ If aAnalysis.MacroNumExternalRefs <= 0 Then GoTo FinalExit
+
+ 'Fetch External Ref Cost Factors
+ baseIssueKey = getAppSpecificApplicationName & "_" & CSTR_ISSUE_PORTABILITY & "_" & _
+ CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO
+ ret = ret + aAnalysis.MacroNumExternalRefs * _
+ getValueFromXLSorDict(logWb, aAnalysis, mIssuesCostDict, _
+ baseIssueKey & CMACRO_NUM_EXTERNAL_REFS_FACTOR_KEY, baseIssueKey, _
+ CMACRO_ROW_OFFSET_NUM_EXTERNAL_REFS_COST, CCOST_COL_OFFSET)
+
+FinalExit:
+ getMacroExtRefIssueCost = ret
+ Exit Function
+
+HandleErrors:
+ ret = 0
+ WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+Function getIssueValueFromXLSorDict(logWb As WorkBook, aAnalysis As DocumentAnalysis, dict As Scripting.Dictionary, _
+ key As String, row As Long, column As Long) As Long
+ 'Error handling not required
+ getIssueValueFromXLSorDict = getValueFromXLSorDict(logWb, aAnalysis, dict, key, key, row, column)
+End Function
+
+Function getValueFromXLSorDict(logWb As WorkBook, aAnalysis As DocumentAnalysis, dict As Scripting.Dictionary, _
+ dictKey As String, xlsKey As String, row As Long, column As Long) As Long
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "getValueFromXLSorDict"
+
+ Dim ret As Long
+ ret = 0
+
+ If dict.Exists(dictKey) Then
+ ret = dict.item(dictKey)
+ Else
+ On Error Resume Next
+ ret = logWb.Names(xlsKey).RefersToRange.Cells(row, column).value
+ 'Log as error missing key
+ If Err.Number <> 0 Then
+ WriteDebug currentFunctionName & _
+ " : Issue Cost Key - " & xlsKey & ": label missing from results.xlt Costs sheet, check sheet and add/ check spelling label" & Err.Number & " " & Err.Description & " " & Err.Source
+ WriteDebug currentFunctionName & " : dictKey " & dictKey & " : xlsKey " & xlsKey & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ ret = 0
+ End If
+ On Error GoTo HandleErrors
+ dict.Add dictKey, ret
+ End If
+
+FinalExit:
+ getValueFromXLSorDict = ret
+ Exit Function
+
+HandleErrors:
+ ret = 0
+ WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+Function isMacroIssue(myIssue As IssueInfo)
+ 'Error handling not required
+ isMacroIssue = False
+
+ If myIssue.IssueTypeXML = CSTR_ISSUE_VBA_MACROS Or _
+ (myIssue.IssueTypeXML = CSTR_ISSUE_PORTABILITY And _
+ myIssue.SubTypeXML = CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO) Then
+ isMacroIssue = True
+ End If
+End Function
+Sub CountDocIssuesForDoc(issueClass As EnumDocOverallIssueClass, aAnalysis As DocumentAnalysis)
+ 'Error handling not required
+
+ If issueClass = enMinor Then
+ aAnalysis.MinorIssuesCount = aAnalysis.MinorIssuesCount + 1
+ End If
+ ' Macro issues are counted during analysis
+ ' Complex issues is calculated from: mIssues.count - mMinorIssuesCount - mMacroIssuesCount
+End Sub
+Sub SetOverallDocIssueClassification(issueClass As EnumDocOverallIssueClass, aAnalysis As DocumentAnalysis)
+ 'Error handling not required
+
+ If aAnalysis.DocOverallIssueClass = enComplex Then Exit Sub
+
+ If issueClass = enComplex Then
+ aAnalysis.DocOverallIssueClass = enComplex
+ Else
+ aAnalysis.DocOverallIssueClass = enMinor
+ End If
+End Sub
+Function getDocIssueClassification(logWb As WorkBook, myIssue As IssueInfo) As EnumDocOverallIssueClass
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "getDocIssueClassification"
+ Dim issueKey As String
+ Dim bRet As Boolean
+ bRet = False
+ getDocIssueClassification = enMinor
+
+ issueKey = getAppSpecificApplicationName & "_" & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML
+ If mIssuesClassificationDict.Exists(issueKey) Then
+ bRet = mIssuesClassificationDict.item(issueKey)
+ Else
+ On Error Resume Next
+ bRet = logWb.Names(issueKey).RefersToRange.Cells(1, 0).value
+ 'Log as error missing key
+ If Err.Number <> 0 Then
+ WriteDebug currentFunctionName & _
+ " : Issue Cost Key - " & issueKey & ": label missing from results.xlt Costs sheet, check sheet and add/ check spelling label" & Err.Number & " " & Err.Description & " " & Err.Source
+ bRet = False
+ End If
+ On Error GoTo HandleErrors
+ mIssuesClassificationDict.Add issueKey, bRet
+ End If
+
+
+FinalExit:
+ If bRet Then
+ getDocIssueClassification = enComplex
+ End If
+ Exit Function
+
+HandleErrors:
+ bRet = False
+ WriteDebug currentFunctionName & " : issueKey " & issueKey & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Function getDocOverallIssueClassificationAsString(docIssueClass As EnumDocOverallIssueClass) As String
+ Dim Str As String
+ 'Error handling not required
+
+ Select Case docIssueClass
+ Case enComplex
+ Str = RID_STR_COMMON_ISSUE_CLASS_COMPLEX
+ Case enMinor
+ Str = RID_STR_COMMON_ISSUE_CLASS_MINOR
+ Case Else
+ Str = RID_STR_COMMON_ISSUE_CLASS_NONE
+ End Select
+
+ getDocOverallIssueClassificationAsString = Str
+End Function
+
+Public Function getDocOverallMacroClassAsString(docMacroClass As EnumDocOverallMacroClass) As String
+ Dim Str As String
+ 'Error handling not required
+
+ Select Case docMacroClass
+ Case enMacroComplex
+ Str = RID_STR_COMMON_MACRO_CLASS_COMPLEX
+ Case enMacroMedium
+ Str = RID_STR_COMMON_MACRO_CLASS_MEDIUM
+ Case enMacroSimple
+ Str = RID_STR_COMMON_MACRO_CLASS_SIMPLE
+ Case Else
+ Str = RID_STR_COMMON_MACRO_CLASS_NONE
+ End Select
+
+ getDocOverallMacroClassAsString = Str
+End Function
+
+Function WriteDocRefDetails(wsRefDetails As Worksheet, DetailsRow As Long, _
+ aAnalysis As DocumentAnalysis, fileName As String) As Long
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteDocRefDetails"
+
+ Dim myIssue As IssueInfo
+ Dim rowIndex As Long
+ rowIndex = DetailsRow
+
+ Dim index As Integer
+
+ 'Output References for Docs with Macros
+ If aAnalysis.HasMacros And (aAnalysis.References.count > 0) Then
+ For index = 1 To aAnalysis.References.count
+ Set myIssue = aAnalysis.References(index)
+ OutputReferenceAttributes wsRefDetails, rowIndex, aAnalysis, myIssue, fileName
+ rowIndex = rowIndex + 1
+ Set myIssue = Nothing
+ Next index
+ End If
+
+ WriteDocRefDetails = rowIndex
+
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : path " & aAnalysis.name & ": " & _
+ " : row " & DetailsRow & ": " & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+Sub OutputReferenceAttributes(wsIssueDetails As Worksheet, rowIndex As Long, _
+ aAnalysis As DocumentAnalysis, myIssue As IssueInfo, fileName As String)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "OutputReferenceAttributes"
+
+ Dim strAttributes As String
+
+ With myIssue
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETDOCNAME, fileName
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETDOCAPPLICATION, aAnalysis.Application
+
+ strAttributes = .Values(RID_STR_COMMON_ATTRIBUTE_MAJOR) & "." & .Values(RID_STR_COMMON_ATTRIBUTE_MINOR)
+ strAttributes = IIf(strAttributes = "0.0" Or strAttributes = ".", .Values(RID_STR_COMMON_ATTRIBUTE_NAME), _
+ .Values(RID_STR_COMMON_ATTRIBUTE_NAME) & " " & .Values(RID_STR_COMMON_ATTRIBUTE_MAJOR) & _
+ "." & .Values(RID_STR_COMMON_ATTRIBUTE_MINOR))
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETREFERENCE, strAttributes
+
+ If .Values(RID_STR_COMMON_ATTRIBUTE_TYPE) = RID_STR_COMMON_ATTRIBUTE_PROJECT Then
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETDESCRIPTION, RID_STR_COMMON_ATTRIBUTE_PROJECT
+ Else
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETDESCRIPTION, _
+ IIf(.Values(RID_STR_COMMON_ATTRIBUTE_DESCRIPTION) <> "", .Values(RID_STR_COMMON_ATTRIBUTE_DESCRIPTION), RID_STR_COMMON_NA)
+ End If
+
+
+ If .Values(RID_STR_COMMON_ATTRIBUTE_ISBROKEN) <> RID_STR_COMMON_ATTRIBUTE_BROKEN Then
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETLOCATION, _
+ .Values(RID_STR_COMMON_ATTRIBUTE_FILE)
+ Else
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETLOCATION, _
+ RID_STR_COMMON_NA
+ End If
+
+ 'Reference Details
+ strAttributes = RID_STR_COMMON_ATTRIBUTE_TYPE & ": " & .Values(RID_STR_COMMON_ATTRIBUTE_TYPE) & vbLf
+ strAttributes = strAttributes & RID_STR_COMMON_ATTRIBUTE_PROPERTIES & ": " & _
+ .Values(RID_STR_COMMON_ATTRIBUTE_BUILTIN) & " " & .Values(RID_STR_COMMON_ATTRIBUTE_ISBROKEN)
+ strAttributes = IIf(.Values(RID_STR_COMMON_ATTRIBUTE_GUID) <> "", _
+ strAttributes & vbLf & RID_STR_COMMON_ATTRIBUTE_GUID & ": " & .Values(RID_STR_COMMON_ATTRIBUTE_GUID), _
+ strAttributes)
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETATTRIBUTES, strAttributes
+
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CREF_DETNAMEANDPATH, aAnalysis.name
+ End With
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : path " & aAnalysis.name & ": " & _
+ " : rowIndex " & rowIndex & ": " & _
+ " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+Sub OutputCommonIssueAttributes(wsIssueDetails As Worksheet, rowIndex As Long, _
+ myIssue As IssueInfo)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "OutputCommonIssueAttributes"
+
+ Dim index As Integer
+ Dim strAttributes As String
+
+ strAttributes = ""
+ For index = 1 To myIssue.Attributes.count
+ strAttributes = strAttributes & myIssue.Attributes(index) & " - " & _
+ myIssue.Values(index)
+ strAttributes = strAttributes & IIf(index <> myIssue.Attributes.count, vbLf, "")
+
+ Next index
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETATTRIBUTES, strAttributes
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : rowIndex " & rowIndex & ": " & _
+ " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+'Store issue cost and factor costs across all documents
+Sub CollateIssueAndFactorCountsAcrossAllDocs(aAnalysis As DocumentAnalysis, myIssue As IssueInfo, fileName As String)
+ Const CSTR_USER_FORM = "User Form"
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "CollateIssueAndFactorCountsAcrossAllDocs"
+
+ 'Don't want to cost ISSUE_INFORMATION issues
+ If myIssue.IssueTypeXML = CSTR_ISSUE_INFORMATION Then Exit Sub
+
+ Dim issueKey As String
+ issueKey = getAppSpecificApplicationName & "_" & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML
+
+ 'Store costing metrics for Issue
+ AddIssueAndOneToDict issueKey
+
+ 'Store prepeared issue for costing metrics
+ If myIssue.Preparable Then
+ AddPreparedIssueAndOneToDict issueKey & "_Prepared"
+ End If
+
+ 'Additional costing Factors output for VB macros
+ If (myIssue.IssueTypeXML = CSTR_ISSUE_VBA_MACROS) And _
+ (myIssue.SubTypeXML <> CSTR_SUBISSUE_MACRO_PASSWORD_PROTECTION) Then
+
+ 'Unique Macro Module and Line count
+ AddMacroModuleHashToMacroDict myIssue
+
+ 'Line count
+ AddIssueAndValToDict issueKey & "_" & CSTR_SUBISSUE_VBA_MACROS_NUMLINES, myIssue, _
+ RID_STR_COMMON_ATTRIBUTE_NUMBER_OF_LINES
+
+ 'User From info
+ If myIssue.SubLocation = CSTR_USER_FORM Then
+ AddIssueAndOneToDict issueKey & "_" & CSTR_SUBISSUE_VBA_MACROS_USERFORMS_COUNT
+
+ AddIssueAndValToDict issueKey & "_" & CSTR_SUBISSUE_VBA_MACROS_USERFORMS_CONTROL_COUNT, myIssue, _
+ RID_STR_COMMON_ATTRIBUTE_CONTROLS
+ End If
+ 'Additional costing Factors output for External References
+ ElseIf (myIssue.IssueTypeXML = CSTR_ISSUE_PORTABILITY And _
+ myIssue.SubTypeXML = CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO) Then
+
+ AddIssueAndValToDict issueKey & "_" & CSTR_SUBISSUE_EXTERNAL_REFERENCES_IN_MACRO_COUNT, myIssue, _
+ RID_STR_COMMON_ATTRIBUTE_NON_PORTABLE_EXTERNAL_REFERENCES_COUNT
+ End If
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : path " & aAnalysis.name & ": " & _
+ " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub OutputCommonIssueDetails(wsIssueDetails As Worksheet, rowIndex As Long, _
+ aAnalysis As DocumentAnalysis, myIssue As IssueInfo, fileName As String)
+ Const CSTR_USER_FORM = "User Form"
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "OutputCommonIssueDetails"
+
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETDOCNAME, fileName
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETDOCAPPLICATION, aAnalysis.Application
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETTYPE, myIssue.IssueType
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETSUBTYPE, myIssue.SubType
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETLOCATION, myIssue.Location
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETSUBLOCATION, _
+ IIf(myIssue.SubLocation = "", RID_STR_COMMON_NA, myIssue.SubLocation)
+ SetWorksheetCellValueToVariant wsIssueDetails, rowIndex, CISSUE_DETLINE, _
+ IIf(myIssue.Line = -1, RID_STR_COMMON_NA, myIssue.Line)
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETCOLUMN, _
+ IIf(myIssue.column = "", RID_STR_COMMON_NA, myIssue.column)
+ SetWorksheetCellValueToString wsIssueDetails, rowIndex, CISSUE_DETNAMEANDPATH, aAnalysis.name
+
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : path " & aAnalysis.name & ": " & _
+ " : rowIndex " & rowIndex & ": " & _
+ " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub AddIssueAndBoolValToDict(issueKey As String, issue As IssueInfo, valKey As String)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "AddIssueAndBoolValToDict"
+
+ If mIssuesDict.Exists(issueKey) Then
+ mIssuesDict.item(issueKey) = mIssuesDict.item(issueKey) + _
+ IIf(issue.Values(valKey) > 0, 1, 0)
+ Else
+ mIssuesDict.Add issueKey, IIf(issue.Values(valKey) > 0, 1, 0)
+ End If
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : issueKey " & issueKey & ": " & _
+ " : valKey " & valKey & ": " & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+Sub AddIssueAndValToDict(issueKey As String, issue As IssueInfo, valKey As String)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "AddIssueAndValToDict"
+
+ If mIssuesDict.Exists(issueKey) Then
+ mIssuesDict.item(issueKey) = mIssuesDict.item(issueKey) + issue.Values(valKey)
+ Else
+ mIssuesDict.Add issueKey, issue.Values(valKey)
+ End If
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : issueKey " & issueKey & ": " & _
+ " : valKey " & valKey & ": " & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub AddMacroModuleHashToMacroDict(issue As IssueInfo)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ Dim issueKey As String
+ Dim issueVal As String
+ currentFunctionName = "AddMacroModuleHashToMacroDict"
+
+ issueKey = issue.Values(RID_STR_COMMON_ATTRIBUTE_SIGNATURE)
+ If issueKey = RID_STR_COMMON_NA Then Exit Sub
+
+ If Not mMacroDict.Exists(issueKey) Then
+ mMacroDict.Add issueKey, issue.Values(RID_STR_COMMON_ATTRIBUTE_NUMBER_OF_LINES)
+ End If
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : issueKey " & issueKey & ": " & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub AddIssueAndOneToDict(key As String)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "AddIssueAndOneToDict"
+
+ If mIssuesDict.Exists(key) Then
+ mIssuesDict.item(key) = mIssuesDict.item(key) + 1
+ Else
+ mIssuesDict.Add key, 1
+ End If
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : key " & key & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub AddPreparedIssueAndOneToDict(key As String)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "AddPreparedIssueAndOneToDict"
+
+ If mPreparedIssuesDict.Exists(key) Then
+ mPreparedIssuesDict.item(key) = mPreparedIssuesDict.item(key) + 1
+ Else
+ mPreparedIssuesDict.Add key, 1
+ End If
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : key " & key & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Function GetExcelInstance() As Excel.Application
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "GetExcelInstance"
+
+ Dim xl As Excel.Application
+ On Error Resume Next
+ 'Try and get an existing instance
+ Set xl = GetObject(, "Excel.Application")
+ If Err.Number = 429 Then
+ Set xl = CreateObject("Excel.Application")
+ ElseIf Err.Number <> 0 Then
+ Set xl = Nothing
+ MsgBox "Error: " & Err.Description
+ Exit Function
+ End If
+ Set GetExcelInstance = xl
+ Set xl = Nothing
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Sub WriteOverview(logWb As WorkBook, DocCount As DocumentCount, templateCount As DocumentCount, _
+ macroClasses As DocMacroClassifications, issueClasses As DocIssueClassifications)
+ Const COV_ISSUECLASS_COMPLEX = "MAW_ISSUECLASS_COMPLEX"
+ Const COV_ISSUECLASS_MINOR = "MAW_ISSUECLASS_MINOR"
+ Const COV_ISSUECLASS_NONE = "MAW_ISSUECLASS_NONE"
+
+ Const COV_MACROCLASS_COMPLEX = "MAW_MACROCLASS_COMPLEX"
+ Const COV_MACROCLASS_MEDIUM = "MAW_MACROCLASS_MEDIUM"
+ Const COV_MACROCLASS_SIMPLE = "MAW_MACROCLASS_SIMPLE"
+ Const COV_MACROCLASS_NONE = "MAW_MACROCLASS_NONE"
+
+ Const COV_ISSUECOUNT_COMPLEX = "MAW_ISSUECOUNT_COMPLEX"
+ Const COV_ISSUECOUNT_MINOR = "MAW_ISSUECOUNT_MINOR"
+
+ Const COV_MODDATES_LESS3MONTHS = "MAW_MODDATES_LESS3MONTHS"
+ Const COV_MODDATES_3TO6MONTHS = "MAW_MODDATES_3TO6MONTHS"
+ Const COV_MODDATES_6TO12MONTHS = "MAW_MODDATES_6TO12MONTHS"
+ Const COV_MODDATES_MORE12MONTHS = "MAW_MODDATES_MORE12MONTHS"
+
+ Const COV_DOC_MIGRATION_COSTS = "Document_Migration_Costs"
+ Const COV_DOC_PREPARABLE_COSTS = "Document_Migration_Preparable_Costs"
+ Const COV_MACRO_MIGRATION_COSTS = "Macro_Migration_Costs"
+
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteOverview"
+
+ Dim appName As String
+ appName = getAppSpecificApplicationName
+
+ 'OV - Title
+ SetWorkbookNameValueToString logWb, COVERVIEW_TITLE_LABEL, GetTitle
+ SetWorkbookNameValueToVariant logWb, "AnalysisDate", Now
+ SetWorkbookNameValueToString logWb, "AnalysisVersion", _
+ RID_STR_COMMON_OV_VERSION_STR & ": " & GetTitle & " " & GetVersion
+
+ 'OV - Number of Documents Analyzed
+ AddLongToWorkbookNameValue logWb, CNUMBERDOC_ALL & getAppSpecificDocExt, DocCount.numDocsAnalyzed
+ AddLongToWorkbookNameValue logWb, CNUMBERDOC_ALL & getAppSpecificTemplateExt, templateCount.numDocsAnalyzed
+
+ 'OV - Documents with Document Migration Issues (excludes macro issues)
+ AddLongToWorkbookNameValue logWb, appName & "_" & COV_ISSUECLASS_COMPLEX, issueClasses.complex
+ AddLongToWorkbookNameValue logWb, appName & "_" & COV_ISSUECLASS_MINOR, issueClasses.Minor
+ AddLongToWorkbookNameValue logWb, appName & "_" & COV_ISSUECLASS_NONE, issueClasses.None
+
+ 'OV - Documents with Macro Migration Issues
+ AddLongToWorkbookNameValue logWb, appName & "_" & COV_MACROCLASS_COMPLEX, macroClasses.complex
+ AddLongToWorkbookNameValue logWb, appName & "_" & COV_MACROCLASS_MEDIUM, macroClasses.Medium
+ AddLongToWorkbookNameValue logWb, appName & "_" & COV_MACROCLASS_SIMPLE, macroClasses.Simple
+ AddLongToWorkbookNameValue logWb, appName & "_" & COV_MACROCLASS_NONE, macroClasses.None
+
+ 'OV - Document Modification Dates
+ Dim modDates As DocModificationDates
+ Call GetDocModificationDates(modDates)
+
+ SetWorkbookNameValueToLong logWb, COV_MODDATES_LESS3MONTHS, modDates.lessThanThreemonths
+ SetWorkbookNameValueToLong logWb, COV_MODDATES_3TO6MONTHS, modDates.threeToSixmonths
+ SetWorkbookNameValueToLong logWb, COV_MODDATES_6TO12MONTHS, modDates.sixToTwelvemonths
+ SetWorkbookNameValueToLong logWb, COV_MODDATES_MORE12MONTHS, modDates.greaterThanOneYear
+
+
+ If InDocPreparation Then
+ 'OV - Document Migration Issues(excludes macro issues)
+ AddLongToWorkbookNameValue logWb, appName & "_" & COV_ISSUECOUNT_COMPLEX, _
+ DocCount.numComplexIssues + templateCount.numComplexIssues
+ AddLongToWorkbookNameValue logWb, appName & "_" & COV_ISSUECOUNT_MINOR, _
+ DocCount.numMinorIssues + templateCount.numMinorIssues
+
+ 'OV - Document Migration Costs
+ AddLongToWorkbookNameValue logWb, appName & "_" & COV_DOC_MIGRATION_COSTS, _
+ DocCount.totalDocIssuesCosts + templateCount.totalDocIssuesCosts
+
+ 'OV - Document Migration Preparable Costs
+ AddLongToWorkbookNameValue logWb, COV_DOC_PREPARABLE_COSTS, _
+ DocCount.totalPreparableIssuesCosts + templateCount.totalPreparableIssuesCosts
+
+ 'OV - Macro Migration Costs
+ AddLongToWorkbookNameValue logWb, appName & "_" & COV_MACRO_MIGRATION_COSTS, _
+ DocCount.totalMacroCosts + templateCount.totalMacroCosts
+ End If
+
+ 'OV - Internal Attributes
+ AddLongToWorkbookNameValue logWb, appName & "_" & "TotalDocsAnalysedWithIssues", _
+ DocCount.numDocsAnalyzedWithIssues + templateCount.numDocsAnalyzedWithIssues
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : Problem writing overview: " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub SetupDAWResultsSpreadsheet(logWb As WorkBook, fontName As String, fontSize As Long)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetupDAWResultsSpreadsheet"
+ Dim bSetupRun As Boolean
+ bSetupRun = CBool(GetWorkbookNameValueAsLong(logWb, COV_DAW_SETUP_SHEETS_RUN_LBL))
+
+ If bSetupRun Then Exit Sub
+
+ 'Setup Text Boxes
+ SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MOD_DATES_COMMENT_TXB, _
+ RID_STR_COMMON_OV_DOC_MOD_DATES_COMMENT_TITLE, RID_STR_COMMON_OV_DOC_MOD_DATES_COMMENT_BODY, _
+ CCOMMENTS_FONT_SIZE, fontName
+ SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MOD_DATES_LEGEND_TXB, _
+ RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_MOD_DATES_LEGEND_BODY, fontSize, fontName
+ SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MACRO_COMMENT_TXB, _
+ RID_STR_COMMON_OV_DOC_MACRO_COMMENT_TITLE, RID_STR_COMMON_OV_DOC_MACRO_COMMENT_BODY, _
+ CCOMMENTS_FONT_SIZE, fontName
+ SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MACRO_LEGEND_TXB, _
+ RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_MACRO_LEGEND_BODY, fontSize, fontName
+ Dim monthLimit As Long
+ monthLimit = GetIssuesLimitInDays / CNUMDAYS_IN_MONTH
+ SetWorkbookNameValueToString logWb, COV_HIGH_LEVEL_ANALYSIS_LBL, _
+ IIf(monthLimit <> CMAX_LIMIT, _
+ ReplaceTopicTokens(RID_STR_COMMON_OV_HIGH_LEVEL_ANALYSIS_DAW, CR_TOPIC, CStr(monthLimit)), _
+ RID_STR_COMMON_OV_HIGH_LEVEL_ANALYSIS_PAW_NO_LIMIT)
+
+ SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_ANALYSIS_COMMENT_TXB, _
+ RID_STR_COMMON_OV_DOC_ANALYSIS_COMMENT_TITLE, RID_STR_COMMON_OV_DOC_ANALYSIS_COMMENT_BODY, _
+ CCOMMENTS_FONT_SIZE, fontName
+ SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_ANALYSIS_LEGEND_DAW_TXB, _
+ RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_ANALYSIS_DAW_LEGEND_BODY, fontSize, fontName
+
+ 'Setup Chart Titles
+ SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MOD_DATES_CHART, _
+ RID_STR_COMMON_OV_DOC_MOD_DATES_CHART_TITLE
+ SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MACRO_CHART, _
+ RID_STR_COMMON_OV_DOC_MACRO_CHART_TITLE
+ SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_ANALYSIS_CHART, _
+ RID_STR_COMMON_OV_DOC_ANALYSIS_CHART_TITLE
+
+ 'Set selection to top cell of Overview
+ logWb.Sheets(RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW).Range("A1").Select
+
+ bSetupRun = True
+ SetWorkbookNameValueToBoolean logWb, COV_DAW_SETUP_SHEETS_RUN_LBL, bSetupRun
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : Problem setting up spreadsheet for DAW: " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub SetupPAWResultsSpreadsheet(logWb As WorkBook, fontName As String, fontSize As Long)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetupPAWResultsSpreadsheet"
+ Dim bSetupRun As Boolean
+ bSetupRun = CBool(GetWorkbookNameValueAsLong(logWb, COV_PAW_SETUP_SHEETS_RUN_LBL))
+
+ If bSetupRun Then Exit Sub
+
+ 'Costs
+ logWb.Names(COV_COSTS_PREPISSUE_COUNT_COL_LBL).RefersToRange.EntireColumn.Hidden = False
+
+ 'Setup Text Boxes
+ SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MOD_DATES_LEGEND_TXB, _
+ RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_MOD_DATES_LEGEND_BODY, fontSize, fontName
+ SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MACRO_LEGEND_TXB, _
+ RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_MACRO_LEGEND_BODY, fontSize, fontName
+ SetWorkbookNameValueToString logWb, COV_HIGH_LEVEL_ANALYSIS_LBL, _
+ RID_STR_COMMON_OV_HIGH_LEVEL_ANALYSIS_PAW_NO_LIMIT
+ SetupSheetTextBox logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_ANALYSIS_LEGEND_PAW_TXB, _
+ RID_STR_COMMON_OV_LEGEND_TITLE, RID_STR_COMMON_OV_DOC_ANALYSIS_PAW_LEGEND_BODY, fontSize, fontName
+
+ 'Setup Chart Titles
+ SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MOD_DATES_CHART, _
+ RID_STR_COMMON_OV_DOC_MOD_DATES_CHART_TITLE
+ SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_MACRO_CHART, _
+ RID_STR_COMMON_OV_DOC_MACRO_CHART_TITLE
+ SetupSheetChartTitles logWb, RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW, COV_DOC_ANALYSIS_CHART, _
+ RID_STR_COMMON_OV_DOC_ANALYSIS_CHART_TITLE
+
+ 'Set selection to top cell of Overview
+ logWb.Sheets(RID_STR_COMMON_RESULTS_SHEET_NAME_OVERVIEW).Range("A1").Select
+
+ bSetupRun = True
+ SetWorkbookNameValueToBoolean logWb, COV_PAW_SETUP_SHEETS_RUN_LBL, bSetupRun
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : Problem setting up spreadsheet for PAW: " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub SetupPrintRanges(logWb As WorkBook, docPropRow As Long, appIssuesRow As Long, issueDetailsRow As Long, _
+ refDetailsRow As Long)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetupPrintRanges"
+
+ 'Set Print Ranges
+ If InDocPreparation Then
+
+ logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCPROP).PageSetup.PrintArea = "$A1:$U" & (docPropRow + mDocPropRowOffset)
+ logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUE_DETAILS).PageSetup.PrintArea = "$A1:$J" & issueDetailsRow
+ logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCREF_DETAILS).PageSetup.PrintArea = "$A1:$G" & refDetailsRow
+ If getAppSpecificApplicationName = CAPPNAME_WORD Then
+ logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_WORD).PageSetup.PrintArea = _
+ "$A1:$N" & appIssuesRow
+ ElseIf getAppSpecificApplicationName = CAPPNAME_EXCEL Then
+ logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_EXCEL).PageSetup.PrintArea = _
+ "$A1:$M" & appIssuesRow
+ Else
+ logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCISSUES_POWERPOINT).PageSetup.PrintArea = _
+ "$A1:$K" & appIssuesRow
+ End If
+ Else
+ logWb.Worksheets(RID_STR_COMMON_RESULTS_SHEET_NAME_DOCPROP).PageSetup.PrintArea = "$A1:$U" & (docPropRow + mDocPropRowOffset)
+ End If
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : Problem setting print ranges: " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub SetupSheetChartTitles(logWb As WorkBook, namedWorksheet As String, namedChart As String, _
+ chartTitle As String)
+ Const CCHART_TITLE_FONT_SIZE = 11
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetupSheetChartTitles"
+
+ With logWb.Sheets(namedWorksheet).ChartObjects(namedChart).Chart
+ .HasTitle = True
+ .chartTitle.Characters.Text = chartTitle
+ .chartTitle.Font.Size = CCHART_TITLE_FONT_SIZE
+ End With
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " namedWorkSheet: " & namedWorksheet & _
+ " namedChart: " & namedChart & _
+ " chartTitle: " & chartTitle & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub SetupSheetTextBox(logWb As WorkBook, namedWorksheet As String, _
+ textBoxName As String, textBoxTitle As String, textBoxBody As String, _
+ textSize As Long, fontName As String)
+
+ Const CMAX_INSERTABLE_STRING_LEN = 255
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetupSheetTextBox"
+
+ Dim strTextBody As String
+ Dim allText As String
+ strTextBody = ReplaceTopic2Tokens(textBoxBody, CR_STR, Chr(10), CR_PRODUCT, RID_STR_COMMON_OV_PRODUCT_STR)
+
+ 'Setup Text Boxes
+ logWb.Sheets(namedWorksheet).Activate
+ logWb.Sheets(namedWorksheet).Shapes(textBoxName).Select
+
+ '*** Workaround Excel bug: 213841 XL: Passed Strings Longer Than 255 Characters Are Truncated
+ Dim I As Long
+ logWb.Application.Selection.Text = ""
+
+ logWb.Application.Selection.Characters.Text = textBoxTitle & Chr(10)
+
+ With logWb.Application.Selection
+ For I = 0 To Int(Len(strTextBody) / CMAX_INSERTABLE_STRING_LEN)
+ .Characters(.Characters.count + 1).Text = Mid(strTextBody, _
+ (I * CMAX_INSERTABLE_STRING_LEN) + 1, CMAX_INSERTABLE_STRING_LEN)
+ Next
+ End With
+
+ 'Highlight title only
+ With logWb.Application.Selection.Characters(start:=1, Length:=Len(textBoxTitle)).Font
+ .name = fontName
+ .FontStyle = "Bold"
+ .Size = textSize
+ End With
+ With logWb.Application.Selection.Characters(start:=Len(textBoxTitle) + 1, _
+ Length:=Len(strTextBody) + 1).Font
+ .name = fontName
+ .FontStyle = "Regular"
+ .Size = textSize
+ End With
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " namedWorkSheet: " & namedWorksheet & _
+ " textBoxName: " & textBoxName & _
+ " textBoxTitle: " & textBoxTitle & _
+ " textBoxBody: " & textBoxBody & _
+ " textSize: " & textSize & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+Function GetWorkbookNameValueAsLong(logWb As WorkBook, name As String) As Long
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "GetWorkbookNameValueAsLong"
+
+ GetWorkbookNameValueAsLong = logWb.Names(name).RefersToRange.Cells(1, 1).value
+
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ GetWorkbookNameValueAsLong = 0
+ WriteDebug currentFunctionName & " : name " & name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Function GetWorksheetCellValueAsLong(logWs As Worksheet, row As Long, col As Long) As Long
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "GetWorksheetCellValueAsLong"
+
+ GetWorksheetCellValueAsLong = logWs.Cells(row, col).value
+
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : row " & row & _
+ " : col " & col & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Function GetWorksheetCellValueAsString(logWs As Worksheet, row As Long, col As Long) As String
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "GetWorksheetCellValueToString"
+
+ GetWorksheetCellValueAsString = logWs.Cells(row, col).value
+
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ GetWorksheetCellValueAsString = ""
+
+ WriteDebug currentFunctionName & _
+ " : row " & row & _
+ " : col " & col & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Sub SetWorksheetCellValueToLong(logWs As Worksheet, row As Long, col As Long, val As Long)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetWorksheetCellValueToLong"
+
+ logWs.Cells(row, col) = val
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : row " & row & _
+ " : col " & col & _
+ " : val " & val & ": " & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+Sub SetWorksheetCellValueToInteger(logWs As Worksheet, row As Long, col As Long, intVal As Integer)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetWorksheetCellValueToInteger"
+
+ logWs.Cells(row, col) = intVal
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : row " & row & _
+ " : col " & col & _
+ " : intVal " & intVal & ": " & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub SetWorksheetCellValueToVariant(logWs As Worksheet, row As Long, col As Long, varVal As Variant)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetWorksheetCellValueToInteger"
+
+ logWs.Cells(row, col) = varVal
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : row " & row & _
+ " : col " & col & _
+ " : varVal " & varVal & ": " & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub SetWorksheetCellValueToString(logWs As Worksheet, row As Long, col As Long, strVal As String)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetWorksheetCellValueToString"
+
+ logWs.Cells(row, col) = strVal
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : row " & row & _
+ " : col " & col & _
+ " : strVal " & strVal & ": " & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub SetWorkbookNameValueToBoolean(logWb As WorkBook, name As String, bVal As Boolean)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetWorkbookNameValueToBoolean"
+
+ logWb.Names(name).RefersToRange.Cells(1, 1) = bVal
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : name " & name & " : boolean value " & bVal & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub SetWorkbookNameValueToString(logWb As WorkBook, name As String, val As String)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetWorkbookNameValueToString"
+
+ logWb.Names(name).RefersToRange.Cells(1, 1) = val
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : name " & name & " : value " & val & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub SetWorkbookNameValueToLong(logWb As WorkBook, name As String, val As Long)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetWorkbookNameValueToLong"
+
+ logWb.Names(name).RefersToRange.Cells(1, 1) = val
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : name " & name & " : value " & val & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub SetWorkbookNameValueToVariant(logWb As WorkBook, name As String, val As Variant)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetWorkbookNameValueToVariant"
+
+ logWb.Names(name).RefersToRange.Cells(1, 1) = val
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : name " & name & " : value " & val & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub AddLongToWorkbookNameValue(logWb As WorkBook, name As String, val As Long)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "AddLongToWorkbookNameValue"
+
+ logWb.Names(name).RefersToRange.Cells(1, 1) = logWb.Names(name).RefersToRange.Cells(1, 1).value + val
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : name " & name & " : value " & val & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+Sub AddVariantToWorkbookNameValue(logWb As WorkBook, name As String, varVal As Variant)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "AddVariantToWorkbookNameValue"
+
+ logWb.Names(name).RefersToRange.Cells(1, 1) = logWb.Names(name).RefersToRange.Cells(1, 1).value + varVal
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : name " & name & " : value " & varVal & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub SaveAnalysisResultsVariables(logWb As WorkBook, offsetDocIssueDetailsRow As Long, _
+ offsetDocRefDetailsRow As Long)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SaveAnalysisResultsVariables"
+
+ 'OV - Internal Attributes
+ SetWorkbookNameValueToLong logWb, "TotalIssuesAnalysed", offsetDocIssueDetailsRow
+ SetWorkbookNameValueToLong logWb, "TotalRefsAnalysed", offsetDocRefDetailsRow
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : offsetDocIssueDetailsRow " & offsetDocIssueDetailsRow & _
+ " : offsetDocRefDetailsRow " & offsetDocRefDetailsRow & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub SetupAnalysisResultsVariables(logWb As WorkBook, _
+ offsetDocPropRow As Long, offsetDocIssuesRow As Long, _
+ offsetDocIssueDetailsRow As Long, offsetDocRefDetailsRow As Long)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetupAnalysisResultsVariables"
+
+ offsetDocPropRow = GetWorkbookNameValueAsLong(logWb, CTOTAL_DOCS_ANALYZED)
+ offsetDocIssueDetailsRow = GetWorkbookNameValueAsLong(logWb, "TotalIssuesAnalysed")
+ offsetDocRefDetailsRow = GetWorkbookNameValueAsLong(logWb, "TotalRefsAnalysed")
+ offsetDocIssuesRow = GetWorkbookNameValueAsLong(logWb, getAppSpecificApplicationName & "_" & "TotalDocsAnalysedWithIssues")
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : offsetDocPropRow " & offsetDocPropRow & _
+ " : offsetDocIssueDetailsRow " & offsetDocIssueDetailsRow & _
+ " : offsetDocRefDetailsRow " & offsetDocRefDetailsRow & _
+ " : offsetDocIssuesRow " & offsetDocIssuesRow & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub WriteToIni(key As String, value As String)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteToIni"
+
+ If mIniFilePath = "" Then Exit Sub
+
+ Call WritePrivateProfileString("Analysis", key, value, mIniFilePath)
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : key " & key & " : value " & value & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub WriteToLog(key As String, value As String)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteToLog"
+
+ If mLogFilePath = "" Then Exit Sub
+
+ Dim sSection As String
+ sSection = getAppSpecificApplicationName
+
+ Call WritePrivateProfileString(sSection, key, value, mLogFilePath)
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : key " & key & " : value " & value & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+Sub WriteDebug(value As String)
+ On Error Resume Next 'Ignore errors in our error writing routines - could get circular dependency otherwise
+ Static ErrCount As Long
+
+ If mLogFilePath = "" Then Exit Sub
+
+ Dim sSection As String
+ sSection = getAppSpecificApplicationName & "Debug"
+
+ If mDebugLevel > 0 Then
+ Call WritePrivateProfileString(sSection, "Doc" & mDocIndex & "_debug" & ErrCount, value, mLogFilePath)
+ ErrCount = ErrCount + 1
+ Else
+ Debug.Print
+ End If
+End Sub
+Sub WriteDebugLevelTwo(value As String)
+ On Error Resume Next 'Ignore errors in our error writing routines - could get circular dependency otherwise
+ Static ErrCountTwo As Long
+
+ If mLogFilePath = "" Then Exit Sub
+
+ Dim sSection As String
+ sSection = getAppSpecificApplicationName & "Debug"
+
+ If mDebugLevel > 1 Then
+ Call WritePrivateProfileString(sSection, "Doc" & mDocIndex & "_debug" & ErrCountTwo, "Level2: " & value, mLogFilePath)
+ ErrCountTwo = ErrCountTwo + 1
+ Else
+ Debug.Print
+ End If
+End Sub
+
+Public Function ProfileLoadDict(dict As Scripting.Dictionary, _
+ lpSectionName As String, _
+ inifile As String) As Long
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "ProfileLoadDict"
+ Dim success As Long
+ Dim c As Long
+ Dim nSize As Long
+ Dim KeyData As String
+ Dim lpKeyName As String
+ Dim ret As String
+
+ ret = Space$(2048)
+ nSize = Len(ret)
+ success = GetPrivateProfileString( _
+ lpSectionName, vbNullString, "", ret, nSize, inifile)
+
+ If success Then
+ ret = Left$(ret, success)
+
+ Do Until ret = ""
+ lpKeyName = StripNulls(ret)
+ KeyData = ProfileGetItem( _
+ lpSectionName, lpKeyName, "", inifile)
+ dict.Add lpKeyName, KeyData
+ Loop
+ End If
+ ProfileLoadDict = dict.count
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : dict.Count " & dict.count & _
+ " : lpSectionName " & lpSectionName & _
+ " : inifile " & inifile & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+Private Function StripNulls(startStrg As String) As String
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "StripNulls"
+ Dim pos As Long
+ Dim item As String
+
+ pos = InStr(1, startStrg, Chr$(0))
+
+ If pos Then
+
+ item = Mid$(startStrg, 1, pos - 1)
+ startStrg = Mid$(startStrg, pos + 1, Len(startStrg))
+ StripNulls = item
+
+ End If
+
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : startStrg " & startStrg & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Public Function ProfileGetItem(lpSectionName As String, _
+ lpKeyName As String, _
+ defaultValue As String, _
+ inifile As String) As String
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "ProfileGetItem"
+
+ Dim success As Long
+ Dim nSize As Long
+ Dim ret As String
+ ret = Space$(2048)
+ nSize = Len(ret)
+ success = GetPrivateProfileString(lpSectionName, _
+ lpKeyName, _
+ defaultValue, _
+ ret, _
+ nSize, _
+ inifile)
+ If success Then
+ ProfileGetItem = Left$(ret, success)
+ Else
+ ProfileGetItem = defaultValue
+ End If
+
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ " : lpSectionName " & lpSectionName & _
+ " : lpKeyName " & lpKeyName & _
+ " : defaultValue " & defaultValue & _
+ " : inifile " & inifile & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Public Function GetDefaultPassword() As String
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "GetDefaultPassword"
+
+ Static myPassword As String
+
+ If myPassword = "" Then
+ myPassword = ProfileGetItem("Analysis", CDEFAULT_PASSWORD, "", mIniFilePath)
+ End If
+
+ GetDefaultPassword = myPassword
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Public Function GetVersion() As String
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "GetVersion"
+
+ Static myVersion As String
+
+ If myVersion = "" Then
+ myVersion = ProfileGetItem("Analysis", CVERSION, "", mIniFilePath)
+ End If
+
+ GetVersion = myVersion
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+Public Function GetTitle() As String
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "GetTitle"
+
+ Static myTitle As String
+
+ If myTitle = "" Then
+ myTitle = ProfileGetItem("Analysis", CTITLE, RID_STR_COMMON_ANALYSIS_STR, mIniFilePath)
+ End If
+
+ GetTitle = myTitle
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Sub SetPrepareToNone()
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetPrepareToNone"
+
+ Call WritePrivateProfileString("Analysis", CDOPREPARE, CStr(0), mIniFilePath)
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Function CheckForAbort() As Boolean
+ Dim currentFunctionName As String
+ Dim bAbort As Boolean
+
+ currentFunctionName = "CheckForAbort"
+ bAbort = False
+
+ On Error GoTo HandleErrors
+
+ bAbort = CBool(ProfileGetItem("Analysis", C_ABORT_ANALYSIS, "false", mIniFilePath))
+
+ 'reset the flag
+ If (bAbort) Then Call WriteToIni(C_ABORT_ANALYSIS, "false")
+
+FinalExit:
+ CheckForAbort = bAbort
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Function CheckDoPrepare() As Boolean
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "CheckDoPrepare"
+
+ Static bDoPrepare As Boolean
+ Static myDoPrepare As String
+
+ If myDoPrepare = "" Then
+ bDoPrepare = CBool(ProfileGetItem("Analysis", _
+ CDOPREPARE, "False", mIniFilePath))
+ myDoPrepare = "OK"
+ End If
+
+ CheckDoPrepare = bDoPrepare
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Function GetIssuesLimitInDays() As Long
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+
+ currentFunctionName = "GetIssuesLimitInDays"
+
+ Static issuesLimit As Long
+ Static myDoPrepare As String
+
+ If issuesLimit = 0 Then
+ issuesLimit = CLng(ProfileGetItem("Analysis", _
+ CISSUES_LIMIT, CMAX_LIMIT, mIniFilePath)) * CNUMDAYS_IN_MONTH
+ End If
+
+ GetIssuesLimitInDays = issuesLimit
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Public Sub AddIssueDetailsNote(myIssue As IssueInfo, noteNum As Long, noteStr As String, _
+ Optional preStr As String)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "AddIssueDetailsNote"
+
+ If IsMissing(preStr) Then
+ preStr = RID_STR_COMMON_NOTE_PRE
+ End If
+ myIssue.Attributes.Add preStr & "[" & noteNum & "]"
+ myIssue.Values.Add noteStr
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : noteNum " & noteNum & " : noteStr " & noteStr & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Public Sub SetupWizardVariables( _
+ fileList As String, storeToDir As String, resultsFile As String, _
+ logFile As String, resultsTemplate As String, bOverwriteFile As Boolean, _
+ bNewResultsFile As Boolean, statFileName As String, debugLevel As Long, _
+ outputType As String, singleFile As String)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetupWizardVariables"
+
+ If mIniFilePath = "" Then
+ mIniFilePath = GetAppDataFolder & "\Sun\AnalysisWizard\" & CWIZARD & ".ini"
+ End If
+
+ statFileName = ProfileGetItem("Analysis", CSTAT_FILE, "", mIniFilePath)
+ fileList = ProfileGetItem("Analysis", CFILE_LIST, "", mIniFilePath)
+ storeToDir = ProfileGetItem("Analysis", COUTPUT_DIR, "", mIniFilePath)
+ resultsFile = ProfileGetItem("Analysis", CRESULTS_FILE, "", mIniFilePath)
+ logFile = ProfileGetItem("Analysis", CLOG_FILE, "", mIniFilePath)
+ resultsTemplate = ProfileGetItem("Analysis", CRESULTS_TEMPLATE, "", mIniFilePath)
+ bOverwriteFile = IIf(ProfileGetItem("Analysis", CRESULTS_EXIST, COVERWRITE_FILE, mIniFilePath) = COVERWRITE_FILE, _
+ True, False)
+ bNewResultsFile = CBool(ProfileGetItem("Analysis", CNEW_RESULTS_FILE, "True", mIniFilePath))
+ debugLevel = CLng(ProfileGetItem("Analysis", CDEBUG_LEVEL, "1", mIniFilePath))
+ outputType = ProfileGetItem("Analysis", COUTPUT_TYPE, COUTPUT_TYPE_XLS, mIniFilePath)
+ singleFile = ProfileGetItem("Analysis", CSINGLE_FILE, "", mIniFilePath)
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & _
+ ": mIniFilePath " & mIniFilePath & ": " & _
+ Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Public Sub SetupSearchTypes(searchTypes As Collection)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SetupSearchTypes"
+
+ Dim bDocument As Boolean
+ Dim bTemplate As Boolean
+
+ bDocument = CBool(ProfileGetItem("Analysis", LCase("type" & getAppSpecificApplicationName & "doc"), "False", mIniFilePath))
+ bTemplate = CBool(ProfileGetItem("Analysis", LCase("type" & getAppSpecificApplicationName & "dot"), "False", mIniFilePath))
+ If bDocument = True Then searchTypes.Add "*" & getAppSpecificDocExt
+ If bTemplate = True Then searchTypes.Add "*" & getAppSpecificTemplateExt
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & ": searchTypes.Count " & searchTypes.count & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub WriteXMLHeader(out As TextStream)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteXMLHeader"
+
+ out.WriteLine "<?xml version=""1.0"" encoding=""ISO-8859-1""?>"
+ out.WriteLine "<!DOCTYPE results SYSTEM 'analysis.dtd'>"
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+Sub WriteXMLResultsStartTag(out As TextStream)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteXMLResultsStartTag"
+
+ out.WriteLine "<results generated-by=""" & IIf(InDocPreparation, "documentanalysis_preparation", "documentanalysis") & """"
+ out.WriteLine " version=""" & GetVersion & """ timestamp=""" & Now & """"
+ out.WriteLine " type=""" & getAppSpecificApplicationName & """ >"
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+Sub WriteXMLResultsEndTag(out As TextStream)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteXMLResultsEndTag"
+
+ out.WriteLine "</results>"
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub WriteXMLDocProperties(out As TextStream, aAnalysis As DocumentAnalysis)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteXMLDocProperties"
+
+ out.WriteLine "<document location=""" & EncodeXML(aAnalysis.name) & """"
+ out.WriteLine " application=""" & aAnalysis.Application & """"
+ out.WriteLine " issues-count=""" & (aAnalysis.IssuesCount) & """"
+ out.WriteLine " pages=""" & aAnalysis.PageCount & """"
+ out.WriteLine " created=""" & CheckDate(aAnalysis.Created) & """"
+ out.WriteLine " modified=""" & CheckDate(aAnalysis.Modified) & """"
+ out.WriteLine " accessed=""" & CheckDate(aAnalysis.Accessed) & """"
+ out.WriteLine " printed=""" & CheckDate(aAnalysis.Printed) & """"
+ out.WriteLine " last-save-by=""" & aAnalysis.SavedBy & """"
+ out.WriteLine " revision=""" & aAnalysis.Revision & """"
+ out.WriteLine " based-on-template=""" & EncodeXML(aAnalysis.Template) & """"
+ out.WriteLine ">"
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub WriteXMLDocPropertiesEndTag(out As TextStream)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteXMLDocPropertiesEndTag"
+
+ out.WriteLine "</document>"
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub WriteXMLDocRefDetails(out As TextStream, aAnalysis As DocumentAnalysis)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteXMLDocRefDetails"
+ Dim myIssue As IssueInfo
+
+ 'Output References for Docs with Macros
+ If aAnalysis.HasMacros And (aAnalysis.References.count > 0) Then
+ out.WriteLine "<references>"
+ For Each myIssue In aAnalysis.References
+ OutputXMLReferenceAttributes out, aAnalysis, myIssue
+ Next myIssue
+ out.WriteLine "</references>"
+ End If
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub OutputXMLReferenceAttributes(out As TextStream, aAnalysis As DocumentAnalysis, myIssue As IssueInfo)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "OutputXMLReferenceAttributes"
+ Dim strAttributes As String
+
+ With myIssue
+ out.WriteLine "<reference"
+
+ strAttributes = .Values("Major") & "." & .Values("Minor")
+ strAttributes = IIf(strAttributes = "0.0" Or strAttributes = ".", .Values("Name"), _
+ .Values("Name") & " " & .Values("Major") & "." & .Values("Minor"))
+ out.WriteLine " name=""" & EncodeXML(strAttributes) & """"
+
+ If .Values("Type") = "Project" Then
+ strAttributes = "Project reference"
+ Else
+ strAttributes = IIf(.Values("Description") <> "", .Values("Description"), RID_STR_COMMON_NA)
+ End If
+ out.WriteLine " description=""" & EncodeXML(strAttributes) & """"
+ If .Values("IsBroken") <> RID_STR_COMMON_ATTRIBUTE_BROKEN Then
+ out.WriteLine " location=""" & .Values("File") & """"
+ End If
+ out.WriteLine " type=""" & .Values("Type") & """"
+ strAttributes = IIf(.Values("GUID") <> "", .Values("GUID"), RID_STR_COMMON_NA)
+ out.WriteLine " GUID=""" & strAttributes & """"
+ out.WriteLine " is-broken=""" & .Values("IsBroken") & """"
+ out.WriteLine " builtin=""" & .Values("BuiltIn") & """"
+
+ out.WriteLine " />"
+ End With
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : path " & aAnalysis.name & " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub WriteXMLDocIssueDetails(out As TextStream, aAnalysis As DocumentAnalysis)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteXMLDocIssueDetails"
+
+ Dim myIssue As IssueInfo
+
+ If aAnalysis.Issues.count = 0 Then Exit Sub
+
+ out.WriteLine "<issues>"
+ For Each myIssue In aAnalysis.Issues
+ OutputXMLCommonIssueDetails out, aAnalysis, myIssue
+ OutputXMLCommonIssueAttributes out, myIssue
+ out.WriteLine "</issue>"
+ Next myIssue
+ out.WriteLine "</issues>"
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : path " & aAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub OutputXMLCommonIssueDetails(out As TextStream, aAnalysis As DocumentAnalysis, myIssue As IssueInfo)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "OutputXMLCommonIssueDetails"
+
+ out.WriteLine "<issue category=""" & myIssue.IssueTypeXML & """"
+ out.WriteLine " type=""" & myIssue.SubTypeXML & """"
+
+ 'NOTE: Dropping severity - now stored in results.xlt, do not want to open it to fetch this data
+ 'out.WriteLine " severity=""" & IIf(CheckForMinorIssue(aAnalysis, myIssue), "Minor", "Major") & """"
+ out.WriteLine " prepared=""" & IIf((myIssue.Preparable), "True", "False") & """ >"
+
+ out.WriteLine "<location type=""" & myIssue.locationXML & """ >"
+
+ If myIssue.SubLocation <> "" Then
+ out.WriteLine "<property name=""sublocation"" value=""" & myIssue.SubLocation & """ />"
+ End If
+ If myIssue.Line <> -1 Then
+ out.WriteLine "<property name=""line"" value=""" & myIssue.Line & """ />"
+ End If
+ If myIssue.column <> "" Then
+ out.WriteLine "<property name=""column"" value=""" & myIssue.column & """ />"
+ End If
+ out.WriteLine "</location>"
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : path " & aAnalysis.name & " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Sub OutputXMLCommonIssueAttributes(out As TextStream, myIssue As IssueInfo)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "OutputXMLCommonIssueAttributes"
+
+ Dim index As Integer
+ Dim valStr As String
+ Dim attStr As String
+
+ If myIssue.Attributes.count = 0 Then Exit Sub
+
+ out.WriteLine "<details>"
+ For index = 1 To myIssue.Attributes.count
+ attStr = myIssue.Attributes(index)
+ If InStr(attStr, RID_STR_COMMON_NOTE_PRE & "[") = 1 Then
+ attStr = Right$(attStr, Len(attStr) - Len(RID_STR_COMMON_NOTE_PRE & "["))
+ attStr = Left$(attStr, Len(attStr) - 1)
+ out.WriteLine "<note index=""" & attStr & """ value=""" & EncodeXML(myIssue.Values(index)) & """ />"
+ Else
+ out.WriteLine "<property name=""" & EncodeXML(myIssue.Attributes(index)) & """ value=""" & EncodeXML(myIssue.Values(index)) & """ />"
+ End If
+ Next index
+
+ out.WriteLine "</details>"
+
+FinalExit:
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : myIssue " & myIssue.IssueTypeXML & "_" & myIssue.SubTypeXML & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+
+Sub WriteXMLOutput(storeToDir As String, resultsFile As String, _
+ bOverwriteResultsFile As Boolean, bNewResultsFile As Boolean, AnalysedDocs As Collection, _
+ fso As Scripting.FileSystemObject)
+
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "WriteXMLOutput"
+
+ Dim xmlOutput As TextStream
+ Dim xmlOrigOutput As TextStream
+ Dim origOutput As String
+ Dim analysis As DocumentAnalysis
+ Dim outFilePath As String
+
+ outFilePath = storeToDir & "\" & fso.GetBaseName(resultsFile) & "_" & _
+ getAppSpecificApplicationName & ".xml"
+
+ Set xmlOutput = fso.CreateTextFile(outFilePath, True)
+ WriteXMLHeader xmlOutput
+
+ 'Set xmlOrigOutput = fso.OpenTextFile(outFilePath, ForReading)
+ 'Set xmlOutput = fso.OpenTextFile(outFilePath, ForWriting)
+
+ WriteXMLResultsStartTag xmlOutput
+ For Each analysis In AnalysedDocs
+ WriteXMLDocProperties xmlOutput, analysis
+ WriteXMLDocRefDetails xmlOutput, analysis
+ WriteXMLDocIssueDetails xmlOutput, analysis
+ WriteXMLDocPropertiesEndTag xmlOutput
+ Next analysis
+ WriteXMLResultsEndTag xmlOutput
+
+FinalExit:
+ xmlOutput.Close
+ Set xmlOutput = Nothing
+ Exit Sub
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : path " & outFilePath & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
+
+Private Function EncodeUrl(ByVal sUrl As String) As String
+ Const MAX_PATH As Long = 260
+ Const ERROR_SUCCESS As Long = 0
+ Const URL_DONT_SIMPLIFY As Long = &H8000000
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "EncodeUrl"
+
+ Dim sUrlEsc As String
+ Dim dwSize As Long
+ Dim dwFlags As Long
+
+ If Len(sUrl) > 0 Then
+
+ sUrlEsc = Space$(MAX_PATH)
+ dwSize = Len(sUrlEsc)
+ dwFlags = URL_DONT_SIMPLIFY
+
+ If UrlEscape(sUrl, _
+ sUrlEsc, _
+ dwSize, _
+ dwFlags) = ERROR_SUCCESS Then
+
+ EncodeUrl = Left$(sUrlEsc, dwSize)
+
+ End If 'If UrlEscape
+ End If 'If Len(sUrl) > 0
+
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : sUrl " & sUrl & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Private Function EncodeXML(Str As String) As String
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "EncodeXML"
+
+ Str = Replace(Str, "^", "^")
+ Str = Replace(Str, "&", "&")
+ Str = Replace(Str, "`", "'")
+ Str = Replace(Str, "{", "{")
+ Str = Replace(Str, "}", "}")
+ Str = Replace(Str, "|", "|")
+ Str = Replace(Str, "]", "]")
+ Str = Replace(Str, "[", "[")
+ Str = Replace(Str, """", """)
+ Str = Replace(Str, "<", "<")
+ Str = Replace(Str, ">", ">")
+
+ 'str = Replace(str, "\", "\")
+ 'str = Replace(str, "#", "#")
+ 'str = Replace(str, "?", "?")
+ 'str = Replace(str, "/", "/")
+
+ EncodeXML = Str
+
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : string " & Str & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+
+Function ReplaceTopicTokens(sString As String, _
+ sToken As String, _
+ sReplacement As String) As String
+ On Error Resume Next
+
+ Dim p As Integer
+ Dim sTmp As String
+
+ sTmp = sString
+ Do
+ p = InStr(sTmp, sToken)
+ If p Then
+ sTmp = Left(sTmp, p - 1) + sReplacement + Mid(sTmp, p + Len(sToken))
+ End If
+ Loop While p > 0
+
+
+ ReplaceTopicTokens = sTmp
+
+End Function
+
+Function ReplaceTopic2Tokens(sString As String, _
+ sToken1 As String, _
+ sReplacement1 As String, _
+ sToken2 As String, _
+ sReplacement2 As String) As String
+ On Error Resume Next
+
+ ReplaceTopic2Tokens = _
+ ReplaceTopicTokens(ReplaceTopicTokens(sString, sToken1, sReplacement1), _
+ sToken2, sReplacement2)
+End Function
+
+'Language setting functions
+Function GetResourceDataFileName(thisDir As String) As String
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "GetResourceDataFileName"
+
+ Dim fso As FileSystemObject
+ Set fso = New FileSystemObject
+
+ 'A debug method - if a file called debug.dat exists load it.
+ If fso.FileExists(fso.GetAbsolutePathName(thisDir & "\debug.dat")) Then
+ GetResourceDataFileName = fso.GetAbsolutePathName(thisDir & "\debug.dat")
+ GoTo FinalExit
+ End If
+
+ Dim isoLangStr As String
+ Dim isoCountryStr As String
+ Dim langDir As String
+
+ langDir = thisDir & "\" & "lang"
+
+ Dim userLCID As Long
+ userLCID = GetUserDefaultLangID()
+ Dim sysLCID As Long
+ sysLCID = GetSystemDefaultLangID()
+
+ isoLangStr = GetUserLocaleInfo(userLCID, LOCALE_SISO639LANGNAME)
+ isoCountryStr = GetUserLocaleInfo(userLCID, LOCALE_SISO3166CTRYNAME)
+
+ 'check for locale data in following order:
+ ' user language
+ ' isoLangStr & "_" & isoCountryStr & ".dat"
+ ' isoLangStr & ".dat"
+ ' system language
+ ' isoLangStr & "_" & isoCountryStr & ".dat"
+ ' isoLangStr & ".dat"
+ ' "en_US" & ".dat"
+
+ If fso.FileExists(fso.GetAbsolutePathName(langDir & "\" & isoLangStr & "-" & isoCountryStr & ".dat")) Then
+ GetResourceDataFileName = fso.GetAbsolutePathName(langDir & "\" & isoLangStr & "-" & isoCountryStr & ".dat")
+ ElseIf fso.FileExists(fso.GetAbsolutePathName(langDir & "\" & isoLangStr & ".dat")) Then
+ GetResourceDataFileName = fso.GetAbsolutePathName(langDir & "\" & isoLangStr & ".dat")
+ Else
+ isoLangStr = GetUserLocaleInfo(sysLCID, LOCALE_SISO639LANGNAME)
+ isoCountryStr = GetUserLocaleInfo(sysLCID, LOCALE_SISO3166CTRYNAME)
+
+ If fso.FileExists(fso.GetAbsolutePathName(langDir & "\" & isoLangStr & "-" & isoCountryStr & ".dat")) Then
+ GetResourceDataFileName = fso.GetAbsolutePathName(langDir & "\" & isoLangStr & "-" & isoCountryStr & ".dat")
+ ElseIf fso.FileExists(fso.GetAbsolutePathName(langDir & "\" & isoLangStr & ".dat")) Then
+ GetResourceDataFileName = fso.GetAbsolutePathName(langDir & "\" & isoLangStr & ".dat")
+ Else
+ GetResourceDataFileName = fso.GetAbsolutePathName(langDir & "\" & "en-US.dat")
+ End If
+ End If
+FinalExit:
+ Set fso = Nothing
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+Public Function GetUserLocaleInfo(ByVal dwLocaleID As Long, ByVal dwLCType As Long) As String
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "GetUserLocaleInfo"
+ Dim sReturn As String
+ Dim r As Long
+
+ 'call the function passing the Locale type
+ 'variable to retrieve the required size of
+ 'the string buffer needed
+ r = GetLocaleInfo(dwLocaleID, dwLCType, sReturn, Len(sReturn))
+
+ 'if successful..
+ If r Then
+ 'pad the buffer with spaces
+ sReturn = Space$(r)
+
+ 'and call again passing the buffer
+ r = GetLocaleInfo(dwLocaleID, dwLCType, sReturn, Len(sReturn))
+
+ 'if successful (r > 0)
+ If r Then
+ 'r holds the size of the string
+ 'including the terminating null
+ GetUserLocaleInfo = Left$(sReturn, r - 1)
+ End If
+ End If
+
+FinalExit:
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & ": " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+
+' This function returns the Application Data Folder Path
+Function GetAppDataFolder() As String
+ Dim idlstr As Long
+ Dim sPath As String
+ Dim IDL As ITEMIDLIST
+ Const NOERROR = 0
+ Const MAX_LENGTH = 260
+ Const CSIDL_APPDATA = &H1A
+
+ On Error GoTo Err_GetFolder
+
+ ' Fill the idl structure with the specified folder item.
+ idlstr = SHGetSpecialFolderLocation(0, CSIDL_APPDATA, IDL)
+
+ If idlstr = NOERROR Then
+ ' Get the path from the idl list, and return
+ ' the folder with a slash at the end.
+ sPath = Space$(MAX_LENGTH)
+ idlstr = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal sPath)
+ If idlstr Then
+ GetAppDataFolder = Left$(sPath, InStr(sPath, Chr$(0)) - 1)
+ End If
+ End If
+
+Exit_GetFolder:
+ Exit Function
+
+Err_GetFolder:
+ MsgBox "An Error was Encountered" & Chr(13) & Err.Description, _
+ vbCritical Or vbOKOnly
+ Resume Exit_GetFolder
+
+End Function
+
+Sub WriteToStatFile(statFileName As String, statValue As Integer, _
+ currDocument As String, fso As Scripting.FileSystemObject)
+
+ On Error Resume Next
+
+ Dim fileCont As TextStream
+
+ Set fileCont = fso.OpenTextFile(statFileName, ForWriting, True, TristateTrue)
+ If (statValue = C_STAT_STARTING) Then
+ fileCont.WriteLine ("analysing=" & currDocument)
+ ElseIf (statValue = C_STAT_DONE) Then
+ fileCont.WriteLine ("analysed=" & currDocument)
+ ElseIf (statValue = C_STAT_FINISHED) Then
+ fileCont.WriteLine ("finished")
+ End If
+
+ fileCont.Close
+End Sub
+
+' The function FindIndex looks for a document in the given document list
+' starting at the position lastIndex in that list. If the document could
+' not be found, the function starts searching from the beginning
+
+Function FindIndex(myDocument As String, _
+ myDocList As Collection, _
+ lastIndex As Long) As Long
+
+ Dim lastEntry As Long
+ Dim curIndex As Long
+ Dim curEntry As String
+ Dim entryFound As Boolean
+
+ entryFound = False
+ lastEntry = myDocList.count
+
+ If (lastIndex > lastEntry) Then lastIndex = lastEntry
+
+ If (lastIndex > 1) Then
+ curIndex = lastIndex
+ Else
+ curIndex = 1
+ End If
+
+ While Not entryFound And curIndex <= lastEntry
+ curEntry = myDocList.item(curIndex)
+ If (curEntry = myDocument) Then
+ entryFound = True
+ Else
+ curIndex = curIndex + 1
+ End If
+ Wend
+
+ If (Not entryFound) Then
+ curIndex = 1
+ While Not entryFound And curIndex < lastIndex
+ curEntry = myDocList.item(curIndex)
+ If (curEntry = myDocument) Then
+ entryFound = True
+ Else
+ curIndex = curIndex + 1
+ End If
+ Wend
+ End If
+
+ If entryFound Then
+ FindIndex = curIndex
+ Else
+ FindIndex = 0
+ End If
+
+End Function
+
+' The sub GetIndexValues calulates the start index of the analysis and the index
+' of the file after which the next intermediate reult will be written
+Function GetIndexValues(startIndex As Long, nextCheck As Long, _
+ myFiles As Collection) As Boolean
+
+ Dim lastCheckpoint As String
+ Dim nextFile As String
+ Dim newResultsFile As Boolean
+
+ lastCheckpoint = ProfileGetItem(C_ANALYSIS, C_LAST_CHECKPOINT, "", mIniFilePath)
+ nextFile = ProfileGetItem(C_ANALYSIS, C_NEXT_FILE, "", mIniFilePath)
+ newResultsFile = True
+
+ If (nextFile = "") Then
+ ' No Analysis done yet
+ startIndex = 1
+ nextCheck = C_MAX_CHECK
+ Else
+ If (lastCheckpoint = "") Then
+ startIndex = 1
+ Else
+ startIndex = FindIndex(lastCheckpoint, myFiles, 1) + 1
+ If (startIndex > 0) Then newResultsFile = False
+ End If
+
+ nextCheck = FindIndex(nextFile, myFiles, startIndex - 1)
+
+ If (nextCheck = 0) Then ' Next file not in file list, restarting
+ startIndex = 1
+ nextCheck = C_MAX_CHECK
+ newResultsFile = True
+ ElseIf (nextCheck < startIndex) Then 'we are done?
+ nextCheck = startIndex + C_MAX_CHECK
+ ElseIf (nextCheck = startIndex) Then 'skip this one
+ WriteToLog C_ERROR_HANDLING_DOC & nextCheck, nextFile
+ startIndex = startIndex + 1
+ nextCheck = startIndex + C_MAX_CHECK
+ Else 'last time an error occured with that file, write before analysing
+ nextCheck = nextCheck - 1
+ End If
+ End If
+ GetIndexValues = newResultsFile
+End Function
+
+Private Sub GetDocModificationDates(docCounts As DocModificationDates)
+
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "GetDocModificationDates"
+
+ docCounts.lessThanThreemonths = CLng(ProfileGetItem("Analysis", C_DOCS_LESS_3_MONTH, "0", mIniFilePath))
+ docCounts.threeToSixmonths = CLng(ProfileGetItem("Analysis", C_DOCS_LESS_6_MONTH, "0", mIniFilePath))
+ docCounts.sixToTwelvemonths = CLng(ProfileGetItem("Analysis", C_DOCS_LESS_12_MONTH, "0", mIniFilePath))
+ docCounts.greaterThanOneYear = CLng(ProfileGetItem("Analysis", C_DOCS_MORE_12_MONTH, "0", mIniFilePath))
+
+FinalExit:
+ Exit Sub
+HandleErrors:
+ WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Sub
diff --git a/migrationanalysis/src/driver_docs/sources/CollectedFiles.cls b/migrationanalysis/src/driver_docs/sources/CollectedFiles.cls new file mode 100644 index 000000000000..de81fc9261f0 --- /dev/null +++ b/migrationanalysis/src/driver_docs/sources/CollectedFiles.cls @@ -0,0 +1,378 @@ +VERSION 1.0 CLASS
+BEGIN
+ MultiUse = -1 'True
+END
+Attribute VB_Name = "CollectedFiles"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = False
+Attribute VB_Exposed = False
+'/*************************************************************************
+' *
+' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +' +' Copyright 2000, 2010 Oracle and/or its affiliates. +' +' OpenOffice.org - a multi-platform office productivity suite +' +' This file is part of OpenOffice.org. +' +' OpenOffice.org is free software: you can redistribute it and/or modify +' it under the terms of the GNU Lesser General Public License version 3 +' only, as published by the Free Software Foundation. +' +' OpenOffice.org is distributed in the hope that it will be useful, +' but WITHOUT ANY WARRANTY; without even the implied warranty of +' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +' GNU Lesser General Public License version 3 for more details +' (a copy is included in the LICENSE file that accompanied this code). +' +' You should have received a copy of the GNU Lesser General Public License +' version 3 along with OpenOffice.org. If not, see +' <http://www.openoffice.org/license.html> +' for a copy of the LGPLv3 License. +' +' ************************************************************************/
+Option Explicit
+
+Private Const vbDot = 46
+Private Const MAX_PATH = 260
+Private Const INVALID_HANDLE_VALUE = -1
+Private Const vbBackslash = "\"
+Private Const ALL_FILES = "*.*"
+
+Private Type FILETIME
+ dwLowDateTime As Long
+ dwHighDateTime As Long
+End Type
+
+Private Type WIN32_FIND_DATA
+ dwFileAttributes As Long
+ ftCreationTime As FILETIME
+ ftLastAccessTime As FILETIME
+ ftLastWriteTime As FILETIME
+ nFileSizeHigh As Long
+ nFileSizeLow As Long
+ dwReserved0 As Long
+ dwReserved1 As Long
+ cFileName As String * MAX_PATH
+ cAlternate As String * 14
+End Type
+
+Private Type FILE_PARAMS
+ bRecurse As Boolean
+ nSearched As Long
+ sFileNameExt As String
+ sFileRoot As String
+End Type
+
+Private Declare Function FindClose Lib "kernel32" _
+ (ByVal hFindFile As Long) As Long
+
+Private Declare Function FindFirstFile Lib "kernel32" _
+ Alias "FindFirstFileA" _
+ (ByVal lpFileName As String, _
+ lpFindFileData As WIN32_FIND_DATA) As Long
+
+Private Declare Function FindNextFile Lib "kernel32" _
+ Alias "FindNextFileA" _
+ (ByVal hFindFile As Long, _
+ lpFindFileData As WIN32_FIND_DATA) As Long
+
+Private Declare Function GetTickCount Lib "kernel32" () As Long
+
+Private Declare Function lstrlen Lib "kernel32" _
+ Alias "lstrlenW" (ByVal lpString As Long) As Long
+
+Private Declare Function PathMatchSpec Lib "shlwapi" _
+ Alias "PathMatchSpecW" _
+ (ByVal pszFileParam As Long, _
+ ByVal pszSpec As Long) As Long
+
+Private fp As FILE_PARAMS 'holds search parameters
+
+Private mWordFilesCol As Collection
+Private mExcelFilesCol As Collection
+Private mPPFilesCol As Collection
+
+Private mDocCount As Long
+Private mDotCount As Long
+Private mXlsCount As Long
+Private mXltCount As Long
+Private mPptCount As Long
+Private mPotCount As Long
+Private mbDocSearch As Boolean
+Private mbDotSearch As Boolean
+Private mbXlsSearch As Boolean
+Private mbXltSearch As Boolean
+Private mbPptSearch As Boolean
+Private mbPotSearch As Boolean
+
+Private mBannedList As Collection
+
+Private Sub Class_Initialize()
+ Set mWordFilesCol = New Collection
+ Set mExcelFilesCol = New Collection
+ Set mPPFilesCol = New Collection
+ Set mBannedList = New Collection
+End Sub
+Private Sub Class_Terminate()
+ Set mWordFilesCol = Nothing
+ Set mExcelFilesCol = Nothing
+ Set mPPFilesCol = Nothing
+ Set mBannedList = Nothing
+End Sub
+
+Public Property Get BannedList() As Collection
+ Set BannedList = mBannedList
+End Property
+Public Property Let BannedList(ByVal theList As Collection)
+ Set mBannedList = theList
+End Property
+
+Public Property Get DocCount() As Long
+ DocCount = mDocCount
+End Property
+Public Property Get DotCount() As Long
+ DotCount = mDotCount
+End Property
+Public Property Get XlsCount() As Long
+ XlsCount = mXlsCount
+End Property
+Public Property Get XltCount() As Long
+ XltCount = mXltCount
+End Property
+Public Property Get PptCount() As Long
+ PptCount = mPptCount
+End Property
+Public Property Get PotCount() As Long
+ PotCount = mPotCount
+End Property
+
+Public Property Get WordFiles() As Collection
+ Set WordFiles = mWordFilesCol
+End Property
+Public Property Get ExcelFiles() As Collection
+ Set ExcelFiles = mExcelFilesCol
+End Property
+Public Property Get PowerPointFiles() As Collection
+ Set PowerPointFiles = mPPFilesCol
+End Property
+
+Public Function count() As Long
+ count = mWordFilesCol.count + mExcelFilesCol.count + mPPFilesCol.count
+End Function
+
+
+Public Function Search(rootDir As String, _
+ FileSpecs As Collection, IncludeSubdirs As Boolean)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "Search"
+
+ Dim tstart As Single 'timer var for this routine only
+ Dim tend As Single 'timer var for this routine only
+ Dim spec As Variant
+ Dim allSpecs As String
+ Dim fso As New FileSystemObject
+
+ If FileSpecs.count = 0 Then Exit Function
+
+ If FileSpecs.count > 1 Then
+ For Each spec In FileSpecs
+ allSpecs = allSpecs & "; " & spec
+ SetSearchBoolean CStr(spec)
+ Next
+ Else
+ allSpecs = FileSpecs(1)
+ SetSearchBoolean CStr(FileSpecs(1))
+ End If
+
+ With fp
+ .sFileRoot = QualifyPath(rootDir)
+ .sFileNameExt = allSpecs
+ .bRecurse = IncludeSubdirs
+ .nSearched = 0
+ End With
+
+ tstart = GetTickCount()
+ Call SearchForFiles(fp.sFileRoot)
+ tend = GetTickCount()
+
+ 'Debug:
+ 'MsgBox "Specs " & allSpecs & vbLf & _
+ ' Format$(fp.nSearched, "###,###,###,##0") & vbLf & _
+ ' Format$(count, "###,###,###,##0") & vbLf & _
+ ' FormatNumber((tend - tstart) / 1000, 2) & " seconds"
+
+FinalExit:
+ Set fso = Nothing
+ Exit Function
+
+HandleErrors:
+ WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source
+ Resume FinalExit
+End Function
+Function isBannedFile(thePath As String) As Boolean
+
+ Dim aPath As Variant
+ Dim theResult As Boolean
+ theResult = False
+ For Each aPath In mBannedList
+ If aPath = thePath Then
+ theResult = True
+ GoTo FinalExit
+ End If
+ Next
+
+FinalExit:
+ isBannedFile = theResult
+End Function
+Sub SetSearchBoolean(spec As String)
+
+ If spec = "*.doc" Then
+ mbDocSearch = True
+ End If
+ If spec = "*.dot" Then
+ mbDotSearch = True
+ End If
+ If spec = "*.xls" Then
+ mbXlsSearch = True
+ End If
+ If spec = "*.xlt" Then
+ mbXltSearch = True
+ End If
+ If spec = "*.ppt" Then
+ mbPptSearch = True
+ End If
+ If spec = "*.pot" Then
+ mbPotSearch = True
+ End If
+
+End Sub
+
+Private Sub SearchForFiles(sRoot As String)
+ On Error GoTo HandleErrors
+ Dim currentFunctionName As String
+ currentFunctionName = "SearchForFiles"
+
+ Dim WFD As WIN32_FIND_DATA
+ Dim hFile As Long
+ Dim path As String
+ Dim WordDriverPathTemp As String
+ Dim ExcelDriverPathTemp As String
+ Dim PPDriverPathTemp As String
+
+ hFile = FindFirstFile(sRoot & ALL_FILES, WFD)
+
+ If hFile = INVALID_HANDLE_VALUE Then GoTo FinalExit
+
+ Do
+ 'if a folder, and recurse specified, call
+ 'method again
+ If (WFD.dwFileAttributes And vbDirectory) Then
+ If Asc(WFD.cFileName) <> vbDot Then
+ If fp.bRecurse Then
+ SearchForFiles sRoot & TrimNull(WFD.cFileName) & vbBackslash
+ End If
+ End If
+ Else
+ 'must be a file..
+ If mbDocSearch Then
+ If MatchSpec(WFD.cFileName, "*.doc") Then
+ path = sRoot & TrimNull(WFD.cFileName)
+ 'If StrComp(path, mWordDriverPath, vbTextCompare) <> 0 Then
+ If Not isBannedFile(path) Then
+ mDocCount = mDocCount + 1
+ mWordFilesCol.Add path
+ GoTo CONTINUE_LOOP
+ End If
+ End If
+ End If
+ If mbDotSearch Then
+ If MatchSpec(WFD.cFileName, "*.dot") Then
+ mDotCount = mDotCount + 1
+ mWordFilesCol.Add sRoot & TrimNull(WFD.cFileName)
+ GoTo CONTINUE_LOOP
+ End If
+ End If
+ If mbXlsSearch Then
+ If MatchSpec(WFD.cFileName, "*.xls") Then
+ path = sRoot & TrimNull(WFD.cFileName)
+ 'If StrComp(TrimNull(WFD.cFileName), CEXCEL_DRIVER_FILE, vbTextCompare) <> 0 Then
+ If Not isBannedFile(path) Then
+ mXlsCount = mXlsCount + 1
+ mExcelFilesCol.Add sRoot & TrimNull(WFD.cFileName)
+ GoTo CONTINUE_LOOP
+ End If
+ End If
+ End If
+ If mbXltSearch Then
+ If MatchSpec(WFD.cFileName, "*.xlt") Then
+ mXltCount = mXltCount + 1
+ mExcelFilesCol.Add sRoot & TrimNull(WFD.cFileName)
+ GoTo CONTINUE_LOOP
+ End If
+ End If
+ If mbPptSearch Then
+ If MatchSpec(WFD.cFileName, "*.ppt") Then
+ path = sRoot & TrimNull(WFD.cFileName)
+ 'If StrComp(path, mPPDriverPath, vbTextCompare) <> 0 Then
+ If Not isBannedFile(path) Then
+ mPptCount = mPptCount + 1
+ mPPFilesCol.Add path
+ GoTo CONTINUE_LOOP
+ End If
+ End If
+ End If
+ If mbPotSearch Then
+ If MatchSpec(WFD.cFileName, "*.pot") Then
+ mPotCount = mPotCount + 1
+ mPPFilesCol.Add sRoot & TrimNull(WFD.cFileName)
+ GoTo CONTINUE_LOOP
+ End If
+ End If
+
+ End If 'If WFD.dwFileAttributes
+
+CONTINUE_LOOP:
+ fp.nSearched = fp.nSearched + 1
+
+ Loop While FindNextFile(hFile, WFD)
+
|