From 7811143fa3d5eecc909335d1305588ced6078c8d Mon Sep 17 00:00:00 2001 From: Daniel Quathamer Date: Wed, 24 Aug 2022 10:39:40 +0200 Subject: [PATCH] =?UTF-8?q?Berichtsassistent=20Patch=20erzeugt,=20Oberfl?= =?UTF-8?q?=C3=A4che=20angepa=C3=9Ft=20#1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/superx/servlet/SuperXmlTabelle.java | 10 +- .../conf/edustore/db/install/MODULINFO | 2 +- .../WEB-INF/conf/edustore/db/install/VERSION | 2 +- .../dbconv/sch.eduetl/sx_stylesheet_param.tab | 22 + .../his1/dbconv/sch.eduetl/sx_stylesheets.tab | 14 +- .../edustore_kern_drop_pg.xml | 3 + .../edustore_kern_integrate_pg.sql | 8 +- .../edustore_kern_upgrade2_pg.xml | 2 +- .../edustore_update/edustore_kern_load_pg.xml | 6 +- .../conf/edustore/db/install/conf/kern.html | 78 +- .../edustore/db/install/conf/kern_cubes.xml | 2 +- .../edustore/db/install/conf/kern_load.html | 2 +- .../install/conf/module_alter_table_schema.x | 1 + .../edustore/db/install/conf/module_grant.x | 7 + .../edustore/db/install/conf/module_revoke.x | 7 + .../db/install/conf/sx_fields_fuellen.sql | 245 ++ .../db/install/conf/sx_fields_loeschen.sql | 60 + .../db/install/conf/sx_tables_fuellen.sql | 12 + .../conf/edustore/db/install/kern_backup.x | 3 +- .../conf/edustore/db/install/kern_drop_pg.sql | 1 + .../edustore/db/install/kern_indexes_drop.sql | 4 +- .../edustore/db/install/kern_install_pg.sql | 55 +- .../conf/edustore/db/install/kern_restore.x | 1 + .../sx_stylesheet_tabelle_jrxml_einfuegen.sql | 178 ++ .../db/install/upgrade/kern49_patch_jr.sql | 37 +- .../upgrade/kern_upgrade_fields_pg.sql | 101 + .../upgrade/kern_upgrade_indexes_pg.sql | 1 + .../db/install/upgrade/kern_upgrade_pg.sql | 6 +- .../upgrade/kern_upgrade_tables_pg.sql | 56 + superx/WEB-INF/kern_dbforms-config_pg.xml | 2572 +++++++++++++++++ superx/WEB-INF/lib/superx4.9.jar | Bin 2133433 -> 2133751 bytes .../patch_2022-07-11_bash_var.sh | 40 + .../patch_archive/patch_2022-07-11_readme.htm | 116 + .../patch_2022-08-23_bash_var.sh | 40 + .../patch_archive/patch_2022-08-23_readme.htm | 116 + superx/WEB-INF/patch/xml/patch_2022-07-11.xml | 62 + superx/WEB-INF/patch/xml/patch_2022-08-23.xml | 62 + superx/edit/kern/data_upload_edit.jsp | 295 ++ superx/edit/kern/dbconnections_edit.jsp | 186 ++ superx/edit/kern/dbconnections_list.jsp | 113 + superx/edit/kern/felderinfo_edit.jsp | 244 ++ superx/edit/kern/fm_templates_edit.jsp | 161 ++ superx/edit/kern/fm_templates_list.jsp | 110 + superx/edit/kern/group_field_pref_edit.jsp | 141 + superx/edit/kern/group_field_pref_list.jsp | 110 + superx/edit/kern/group_masken_bez_edit.jsp | 122 + superx/edit/kern/group_sachgeb_bez_edit.jsp | 122 + superx/edit/kern/group_sichtarten_edit.jsp | 114 + superx/edit/kern/group_sichten_edit.jsp | 113 + superx/edit/kern/groupinfo_edit.jsp | 244 ++ superx/edit/kern/hochschulinfo_edit.jsp | 162 ++ superx/edit/kern/konstante_edit.jsp | 166 ++ superx/edit/kern/konstanten_edit.jsp | 141 + superx/edit/kern/macro_masken_bez_edit.jsp | 212 ++ superx/edit/kern/macro_masken_bez_list.jsp | 129 + superx/edit/kern/maske_system_bez_edit.jsp | 122 + superx/edit/kern/masken_felder_bez_edit.jsp | 122 + superx/edit/kern/maskeninfo_edit.jsp | 250 ++ superx/edit/kern/maskeninfo_style.jsp | 158 + superx/edit/kern/organigramm_edit.jsp | 247 ++ .../edit/kern/organigramm_editnodeattrib.jsp | 202 ++ superx/edit/kern/organigramm_list.jsp | 102 + superx/edit/kern/portlets_edit.jsp | 194 ++ superx/edit/kern/portlets_list.jsp | 129 + superx/edit/kern/sachgeb_maske_bez_edit.jsp | 122 + superx/edit/kern/sachgeb_sichtarten_edit.jsp | 105 + superx/edit/kern/sachgeb_sichten_edit.jsp | 104 + superx/edit/kern/sachgebiete_edit.jsp | 124 + .../edit/kern/sichtart_rechttabelle_edit.jsp | 165 ++ .../edit/kern/sichtart_rechttabelle_list.jsp | 113 + superx/edit/kern/sichten_edit.jsp | 372 +++ superx/edit/kern/stylesheet_field_edit.jsp | 142 + superx/edit/kern/stylesheet_field_list.jsp | 121 + superx/edit/kern/sx_captions_edit.jsp | 208 ++ superx/edit/kern/sx_downloads_edit.jsp | 211 ++ superx/edit/kern/sx_jobs_edit.jsp | 194 ++ superx/edit/kern/sx_jobs_list.jsp | 114 + superx/edit/kern/sx_keywords_edit.jsp | 132 + superx/edit/kern/sx_repository_edit.jsp | 233 ++ superx/edit/kern/sx_repository_list.jsp | 122 + superx/edit/kern/sx_stylesheet_param_edit.jsp | 162 ++ superx/edit/kern/sx_stylesheet_param_list.jsp | 121 + superx/edit/kern/sx_stylesheets_edit.jsp | 219 ++ superx/edit/kern/systeminfo_edit.jsp | 127 + superx/edit/kern/themenbaum_edit.jsp | 208 ++ superx/edit/kern/trans_inst_edit.jsp | 183 ++ superx/edit/kern/trans_inst_list.jsp | 121 + superx/edit/kern/unload_params_edit.jsp | 145 + superx/edit/kern/user_group_bez_edit.jsp | 124 + superx/edit/kern/user_institution_edit.jsp | 131 + superx/edit/kern/user_masken_bez_edit.jsp | 124 + superx/edit/kern/user_sachgeb_bez_edit.jsp | 124 + superx/edit/kern/user_sichtarten_edit.jsp | 114 + superx/edit/kern/user_sichten_edit.jsp | 115 + superx/edit/kern/userinfo_edit.jsp | 161 ++ superx/xml/jr_templates.xsl | 4 +- superx/xml/viz_rpt_assistent.xsl | 46 +- 97 files changed, 13129 insertions(+), 27 deletions(-) create mode 100644 superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/sx_stylesheet_param.tab create mode 100755 superx/WEB-INF/conf/edustore/db/install/schluesseltabellen/sx_stylesheet_tabelle_jrxml_einfuegen.sql create mode 100644 superx/WEB-INF/kern_dbforms-config_pg.xml create mode 100755 superx/WEB-INF/patch/patch_archive/patch_2022-07-11_bash_var.sh create mode 100644 superx/WEB-INF/patch/patch_archive/patch_2022-07-11_readme.htm create mode 100755 superx/WEB-INF/patch/patch_archive/patch_2022-08-23_bash_var.sh create mode 100644 superx/WEB-INF/patch/patch_archive/patch_2022-08-23_readme.htm create mode 100644 superx/WEB-INF/patch/xml/patch_2022-07-11.xml create mode 100644 superx/WEB-INF/patch/xml/patch_2022-08-23.xml create mode 100644 superx/edit/kern/data_upload_edit.jsp create mode 100644 superx/edit/kern/dbconnections_edit.jsp create mode 100644 superx/edit/kern/dbconnections_list.jsp create mode 100644 superx/edit/kern/felderinfo_edit.jsp create mode 100644 superx/edit/kern/fm_templates_edit.jsp create mode 100644 superx/edit/kern/fm_templates_list.jsp create mode 100644 superx/edit/kern/group_field_pref_edit.jsp create mode 100644 superx/edit/kern/group_field_pref_list.jsp create mode 100644 superx/edit/kern/group_masken_bez_edit.jsp create mode 100644 superx/edit/kern/group_sachgeb_bez_edit.jsp create mode 100644 superx/edit/kern/group_sichtarten_edit.jsp create mode 100644 superx/edit/kern/group_sichten_edit.jsp create mode 100644 superx/edit/kern/groupinfo_edit.jsp create mode 100644 superx/edit/kern/hochschulinfo_edit.jsp create mode 100644 superx/edit/kern/konstante_edit.jsp create mode 100644 superx/edit/kern/konstanten_edit.jsp create mode 100644 superx/edit/kern/macro_masken_bez_edit.jsp create mode 100644 superx/edit/kern/macro_masken_bez_list.jsp create mode 100644 superx/edit/kern/maske_system_bez_edit.jsp create mode 100644 superx/edit/kern/masken_felder_bez_edit.jsp create mode 100644 superx/edit/kern/maskeninfo_edit.jsp create mode 100644 superx/edit/kern/maskeninfo_style.jsp create mode 100644 superx/edit/kern/organigramm_edit.jsp create mode 100644 superx/edit/kern/organigramm_editnodeattrib.jsp create mode 100644 superx/edit/kern/organigramm_list.jsp create mode 100644 superx/edit/kern/portlets_edit.jsp create mode 100644 superx/edit/kern/portlets_list.jsp create mode 100644 superx/edit/kern/sachgeb_maske_bez_edit.jsp create mode 100644 superx/edit/kern/sachgeb_sichtarten_edit.jsp create mode 100644 superx/edit/kern/sachgeb_sichten_edit.jsp create mode 100644 superx/edit/kern/sachgebiete_edit.jsp create mode 100644 superx/edit/kern/sichtart_rechttabelle_edit.jsp create mode 100644 superx/edit/kern/sichtart_rechttabelle_list.jsp create mode 100644 superx/edit/kern/sichten_edit.jsp create mode 100644 superx/edit/kern/stylesheet_field_edit.jsp create mode 100644 superx/edit/kern/stylesheet_field_list.jsp create mode 100644 superx/edit/kern/sx_captions_edit.jsp create mode 100644 superx/edit/kern/sx_downloads_edit.jsp create mode 100644 superx/edit/kern/sx_jobs_edit.jsp create mode 100644 superx/edit/kern/sx_jobs_list.jsp create mode 100644 superx/edit/kern/sx_keywords_edit.jsp create mode 100644 superx/edit/kern/sx_repository_edit.jsp create mode 100644 superx/edit/kern/sx_repository_list.jsp create mode 100644 superx/edit/kern/sx_stylesheet_param_edit.jsp create mode 100644 superx/edit/kern/sx_stylesheet_param_list.jsp create mode 100644 superx/edit/kern/sx_stylesheets_edit.jsp create mode 100644 superx/edit/kern/systeminfo_edit.jsp create mode 100644 superx/edit/kern/themenbaum_edit.jsp create mode 100644 superx/edit/kern/trans_inst_edit.jsp create mode 100644 superx/edit/kern/trans_inst_list.jsp create mode 100644 superx/edit/kern/unload_params_edit.jsp create mode 100644 superx/edit/kern/user_group_bez_edit.jsp create mode 100644 superx/edit/kern/user_institution_edit.jsp create mode 100644 superx/edit/kern/user_masken_bez_edit.jsp create mode 100644 superx/edit/kern/user_sachgeb_bez_edit.jsp create mode 100644 superx/edit/kern/user_sichtarten_edit.jsp create mode 100644 superx/edit/kern/user_sichten_edit.jsp create mode 100644 superx/edit/kern/userinfo_edit.jsp diff --git a/src/de/superx/servlet/SuperXmlTabelle.java b/src/de/superx/servlet/SuperXmlTabelle.java index 703e896..603450d 100644 --- a/src/de/superx/servlet/SuperXmlTabelle.java +++ b/src/de/superx/servlet/SuperXmlTabelle.java @@ -50,6 +50,7 @@ import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; import javax.xml.parsers.FactoryConfigurationError; import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; @@ -100,6 +101,7 @@ import de.superx.common.ObligatoryFieldEmptyException; import de.superx.common.SichtException; import de.superx.common.Stylesheet; import de.superx.common.SxUser; +import de.superx.common.TransletCache; import de.superx.common.UngueltigeEingabeException; import de.superx.stat.StatisticExport; import de.superx.stat.StatisticExport.ExportFormat; @@ -1794,9 +1796,13 @@ public class SuperXmlTabelle extends AbstractSuperXServlet { String xslFilePath=getServletConfig().getServletContext().getRealPath("/")+"xml"+File.separator+xslStylesheetFile; FileWriter myFilewriter=new FileWriter(jrxmlFilePath); PrintWriter myOutwriter = new PrintWriter(new BufferedWriter(myFilewriter)); - javax.xml.transform.TransformerFactory tFactory = javax.xml.transform.TransformerFactory.newInstance(); + + Logger.getLogger("superx_" + mandantenid + "_xml").log(Level.INFO, - javax.xml.transform.Transformer transformer = tFactory.newTransformer(new javax.xml.transform.stream.StreamSource(xslFilePath)); + " Translet für Ergebnisvorbereitung:" + xslFilePath); + Transformer transformer = TransletCache.getTransformer(mandantenid, xslFilePath); + + StringReader s1 = new StringReader(currentXml); transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, SqlStringUtils.getEncoding()); transformer.setOutputProperty(javax.xml.transform.OutputKeys.METHOD, "xml"); diff --git a/superx/WEB-INF/conf/edustore/db/install/MODULINFO b/superx/WEB-INF/conf/edustore/db/install/MODULINFO index 0ecf8bf..162d637 100644 --- a/superx/WEB-INF/conf/edustore/db/install/MODULINFO +++ b/superx/WEB-INF/conf/edustore/db/install/MODULINFO @@ -1,6 +1,6 @@ #!/bin/bash -export MODUL_VERSION=4.9 +export MODUL_VERSION=5.0b export MODULNAME=kern export SACHGEBIETID=0 export SACHGEBIET=Administration diff --git a/superx/WEB-INF/conf/edustore/db/install/VERSION b/superx/WEB-INF/conf/edustore/db/install/VERSION index 86a9588..2eca894 100644 --- a/superx/WEB-INF/conf/edustore/db/install/VERSION +++ b/superx/WEB-INF/conf/edustore/db/install/VERSION @@ -1 +1 @@ -4.9 +5.0b diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/sx_stylesheet_param.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/sx_stylesheet_param.tab new file mode 100644 index 0000000..fc3b1ab --- /dev/null +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/sx_stylesheet_param.tab @@ -0,0 +1,22 @@ +{### sx_stylesheet_param - automatisch generiert #########} +create table sx_stylesheet_param( + tid SERIAL not null, +stylesheet_id INTEGER not null, +param_name NVARCHAR(255) not null, +default_val NVARCHAR(255) , +description NVARCHAR(255) , +wertebereich NVARCHAR(255) +); + +comment on column sx_stylesheet_param.tid is 'Laufnummer'; + +comment on column sx_stylesheet_param.stylesheet_id is 'Tid des Stylesheets'; + +comment on column sx_stylesheet_param.param_name is 'Name des Paramaters'; + +comment on column sx_stylesheet_param.default_val is 'Default-Wert der Variable'; + +comment on column sx_stylesheet_param.description is 'Beschreibung der Variable'; + +comment on column sx_stylesheet_param.wertebereich is 'Wertebereich'; + \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/sx_stylesheets.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/sx_stylesheets.tab index ef92af4..942e521 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/sx_stylesheets.tab +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/sx_stylesheets.tab @@ -7,7 +7,11 @@ description NCHAR(255) , relation CHAR(10) , useragent NCHAR(255) , contenttype NCHAR(200) , -is_generic SMALLINT default 0 +is_generic SMALLINT default 0 , +toolbar_icon_filepath NVARCHAR(255) , +usage_resultset_data CHAR(10) default 'T' , +stylesheet_type CHAR(10) default 'XSL' , +jr_datasource CHAR(10) ); comment on column sx_stylesheets.tid is 'Laufnummer'; @@ -25,4 +29,12 @@ comment on column sx_stylesheets.useragent is 'Webbrowser'; comment on column sx_stylesheets.contenttype is 'Dateityp'; comment on column sx_stylesheets.is_generic is 'Generisches Stylesheet'; + +comment on column sx_stylesheets.toolbar_icon_filepath is 'Icon in der Symbolleiste'; + +comment on column sx_stylesheets.usage_resultset_data is 'Nutzung der Ergebnisdaten'; + +comment on column sx_stylesheets.stylesheet_type is 'Art des Stylesheets'; + +comment on column sx_stylesheets.jr_datasource is 'Datenquelle [JR]'; \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_drop_pg.xml b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_drop_pg.xml index dc5f11b..439cda7 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_drop_pg.xml +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_drop_pg.xml @@ -388,6 +388,9 @@ eduetl:drop table sx_mask_style cascade; + +eduetl:drop table sx_stylesheet_param cascade; + eduetl:drop table sx_captions cascade; diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_integrate_pg.sql b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_integrate_pg.sql index 5541e20..3f37392 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_integrate_pg.sql +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_integrate_pg.sql @@ -7,7 +7,7 @@ -- Fülle db_version delete from db_version where his_system='kern'; -insert into db_version (his_system,version) values('kern','4.9'); +insert into db_version (his_system,version) values('kern','5.0b'); @@ -118,6 +118,8 @@ delete from db_tabellen where name='sx_stylesheets'; insert into db_tabellen (name,protokollierung) values('sx_stylesheets',0); delete from db_tabellen where name='sx_mask_style'; insert into db_tabellen (name,protokollierung) values('sx_mask_style',0); +delete from db_tabellen where name='sx_stylesheet_param'; +insert into db_tabellen (name,protokollierung) values('sx_stylesheet_param',0); delete from db_tabellen where name='sx_captions'; insert into db_tabellen (name,protokollierung) values('sx_captions',0); delete from db_tabellen where name='fm_templates'; @@ -749,6 +751,10 @@ insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('sx_jobs_list','sx_jobs','/edit/kern/sx_jobs_list.jsp','Ladejobs verwalten','In diesem Formular können Sie Ladejobs verwalten'); insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('organigramm_list','organigramm','/edit/kern/organigramm_list.jsp','Organigramm','In diesem Formular können Sie das Organigramm aufrufen'); +insert into tmp_db_forms (name, tablename,form_path,caption,description) +values ('sx_stylesheet_param_edit','sx_stylesheet_param','/edit/kern/sx_stylesheet_param_edit.jsp','Stylesheet-Parameter','In diesem Formular können Sie Stylesheet-Parameter bearbeiten.'); +insert into tmp_db_forms (name, tablename,form_path,caption,description) +values ('sx_stylesheet_param_list','sx_stylesheet_param','/edit/kern/sx_stylesheet_param_list.jsp','Stylesheet-Parameter','In diesem Formular können Sie Stylesheet-Parameter bearbeiten.'); create temp table tmp_hilf(tid integer); insert into tmp_hilf select max(tid) from db_forms; diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_upgrade2_pg.xml b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_upgrade2_pg.xml index 0116174..df59d35 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_upgrade2_pg.xml +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_upgrade2_pg.xml @@ -170,7 +170,7 @@ -eduetl:UPDATE db_version SET version = '4.9' +eduetl:UPDATE db_version SET version = '5.0b' WHERE his_system = 'kern'; eduetl:select setval('themenbaum_tid_seq',(select max(tid)+1 from themenbaum)); diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_update/edustore_kern_load_pg.xml b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_update/edustore_kern_load_pg.xml index 5acd2ef..55d5cb7 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_update/edustore_kern_load_pg.xml +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_update/edustore_kern_load_pg.xml @@ -1,5 +1,5 @@ -eduetl:CREATE TABLE tmp_userinfo (tid integer, benutzer char(30), kennwort char(16), name char(50), max_versuch smallint, akt_versuch smallint, email char(255), administration smallint, archiv_recht smallint, passwd_sha char(40), info char(255), extern_account_id varchar(255), extern_person_id varchar(255),sieht_projekte SMALLINT); +eduetl:CREATE TABLE tmp_userinfo (tid integer, benutzer char(30), kennwort char(16), name char(50), max_versuch smallint, akt_versuch smallint, email char(255), administration smallint, archiv_recht smallint, passwd_sha char(40), info char(255), extern_account_id varchar(255), extern_person_id varchar(255),sieht_projekte SMALLINT); eduetl:CREATE TABLE tmp_user_group_bez (userinfo_id integer, groupinfo_id integer, external_entry smallint); @@ -71,7 +71,7 @@ eduetl:CREATE TABLE tmp_kenn_zahl_wert (tid integer, hs_nr integer, kenn_zahl char(40), jahr smallint, sem smallint, ch110_institut char(10), stugkey char(20), bund_fachgebiet char(10), wert numeric(14,2), titel char(10), wert_str varchar(255), geschlecht SMALLINT , ca12_staat SMALLINT); - + eduetl:truncate table tmp_hochschulinfo cascade; eduetl:truncate table tmp_userinfo cascade; @@ -324,7 +324,7 @@ - + diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/kern.html b/superx/WEB-INF/conf/edustore/db/install/conf/kern.html index eabb45c..5346158 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/kern.html +++ b/superx/WEB-INF/conf/edustore/db/install/conf/kern.html @@ -91,7 +91,7 @@ font-style:italic: SuperX-Version2 -Modulversion4.9 +Modulversion5.0b SachgebietAdministration id 0 @@ -337,6 +337,9 @@ font-style:italic: sx_repository
  • +sx_stylesheet_param +
  • +
  • sx_stylesheets
  • @@ -706,6 +709,9 @@ font-style:italic: sx_repository
  • +sx_stylesheet_param +
  • +
  • sx_stylesheets
  • @@ -1000,6 +1006,9 @@ font-style:italic: sx_repository
  • +sx_stylesheet_param +
  • +
  • sx_stylesheets
  • @@ -1340,6 +1349,9 @@ font-style:italic: sx_repository
  • +sx_stylesheet_param +
  • +
  • sx_stylesheets
  • @@ -4695,6 +4707,44 @@ gueltig_bis );
      Wird benutzt in folgenden Masken:
    +Tabelle sx_stylesheet_param +
    +

    +

    Typ: Schlüsseltabelle, Themenbereich: Administration

    + + + + + + + + + + + + + + + + + + + + + + +
    FeldnameFeldtypGrößeDefaultNot NullBeschreibungKommentarFremdschlüssel
    tidSERIAL4trueLaufnummer
    stylesheet_idINTEGER4trueTid des Stylesheetssx_stylesheets : tid +
    +
    param_nameVARCHAR255trueName des Paramaters
    default_valVARCHAR255falseDefault-Wert der Variable
    descriptionVARCHAR255falseBeschreibung der Variable
    wertebereichVARCHAR255falseWertebereich
    +

    Primärschlüssel c_stylesheet_param +

    +
      +
    1. tid
    2. +
    +
      +
        Wird benutzt in folgenden Masken: +
      +
      Tabelle sx_stylesheets

      @@ -4733,11 +4783,35 @@ useragent
      contenttypeCHAR200falseDateitypz.B.: text/html; charset=ISO-8859-1. Bei XSL Stylesheets ist dies das Ausgabeformat, bei JasperReports Templates ist dies - das default Ausgabeformat + das default Ausgabeformatmenu_element : element +
      element_value : +contenttype
      + is_genericSMALLINT20falseGenerisches StylesheetWird nur für Ergebnistabellen ausgewertet, nicht für Masken-Stylesheets. Wenn 1, dann ist das Stylesheet für alle Ergebnistabellen nutzbar + +toolbar_icon_filepathVARCHAR255falseIcon in der SymbolleistePfad relativ zu webapps/superx + + +usage_resultset_dataCHAR10TfalseNutzung der ErgebnisdatenWelche Ergebniszeilen soll das Stylesheet verarbeiten. S=Nur Schema, T=Aktuelle Baumstruktur,A=Alle Datenmenu_element : element +
      element_value : +usage_resultset_data
      + + + +stylesheet_typeCHAR10XSLfalseArt des StylesheetsXSL,JRXML,XSL_JRXML,XSL_FO,XML,NATIVE,XLSXmenu_element : element +
      element_value : +stylesheet_type
      + + + +jr_datasourceCHAR10falseDatenquelle (JR)Wird nur bei JR ausgewertet. Mögliche Werte: RS,XMLSOURCEmenu_element : element +
      element_value : +jr_datasource
      + +

      Primärschlüssel c_stylesheets

      diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/kern_cubes.xml b/superx/WEB-INF/conf/edustore/db/install/conf/kern_cubes.xml index 5ae11c8..7a3b9ea 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/kern_cubes.xml +++ b/superx/WEB-INF/conf/edustore/db/install/conf/kern_cubes.xml @@ -1,5 +1,5 @@ - diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/kern_load.html b/superx/WEB-INF/conf/edustore/db/install/conf/kern_load.html index 2dc8279..a5ba8c3 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/kern_load.html +++ b/superx/WEB-INF/conf/edustore/db/install/conf/kern_load.html @@ -92,7 +92,7 @@ font-style:italic: SuperX-Version2 -Modulversion4.9 +Modulversion5.0b SachgebietAdministration id 0 diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/module_alter_table_schema.x b/superx/WEB-INF/conf/edustore/db/install/conf/module_alter_table_schema.x index c6d0b65..357aee4 100755 --- a/superx/WEB-INF/conf/edustore/db/install/conf/module_alter_table_schema.x +++ b/superx/WEB-INF/conf/edustore/db/install/conf/module_alter_table_schema.x @@ -63,6 +63,7 @@ DOQUERY "alter table konstanten SET SCHEMA $SCHEMA;" DOQUERY "alter table lehreinheit_inst SET SCHEMA $SCHEMA;" DOQUERY "alter table sx_stylesheets SET SCHEMA $SCHEMA;" DOQUERY "alter table sx_mask_style SET SCHEMA $SCHEMA;" +DOQUERY "alter table sx_stylesheet_param SET SCHEMA $SCHEMA;" DOQUERY "alter table sx_captions SET SCHEMA $SCHEMA;" DOQUERY "alter table fm_templates SET SCHEMA $SCHEMA;" DOQUERY "alter table user_sichten SET SCHEMA $SCHEMA;" diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/module_grant.x b/superx/WEB-INF/conf/edustore/db/install/conf/module_grant.x index 8370336..3ffbe62 100755 --- a/superx/WEB-INF/conf/edustore/db/install/conf/module_grant.x +++ b/superx/WEB-INF/conf/edustore/db/install/conf/module_grant.x @@ -129,6 +129,13 @@ if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] DOQUERY "grant update on sx_mask_style_tid_seq to $GRANTEE;" fi +DOQUERY "grant $RIGHT on sx_stylesheet_param to $GRANTEE;" + +if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] + then +DOQUERY "grant update on sx_stylesheet_param_tid_seq to $GRANTEE;" +fi + DOQUERY "grant $RIGHT on sx_captions to $GRANTEE;" if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/module_revoke.x b/superx/WEB-INF/conf/edustore/db/install/conf/module_revoke.x index a6890e3..f82595e 100755 --- a/superx/WEB-INF/conf/edustore/db/install/conf/module_revoke.x +++ b/superx/WEB-INF/conf/edustore/db/install/conf/module_revoke.x @@ -129,6 +129,13 @@ if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] DOQUERY "revoke update on sx_mask_style_tid_seq from $GRANTEE;" fi +DOQUERY "revoke $RIGHT on sx_stylesheet_param from $GRANTEE;" + +if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] + then +DOQUERY "revoke update on sx_stylesheet_param_tid_seq from $GRANTEE;" +fi + DOQUERY "revoke $RIGHT on sx_captions from $GRANTEE;" if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/sx_fields_fuellen.sql b/superx/WEB-INF/conf/edustore/db/install/conf/sx_fields_fuellen.sql index 05ef0d5..78c7205 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/sx_fields_fuellen.sql +++ b/superx/WEB-INF/conf/edustore/db/install/conf/sx_fields_fuellen.sql @@ -13253,6 +13253,147 @@ values('sx_repository', 0, 1); +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('sx_stylesheet_param', +'tid', +'Laufnummer', +'', +'SERIAL', +'4', +1, +1, +0, +1); + +update tmp_fields set is_primarykey=1 +where trim(table_name) || '_' || trim(name) ='sx_stylesheet_param_tid'; + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('sx_stylesheet_param', +'stylesheet_id', +'Tid des Stylesheets', +'', +'INTEGER', +'4', +1, +1, +0, +1); + +update tmp_fields set foreignkey_tab='sx_stylesheets', +foreignkey_col='tid', +foreignkey_cap='filename', +foreignkey_uniquename='' +where trim(table_name) || '_' || trim(name) ='sx_stylesheet_param_stylesheet_id'; + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('sx_stylesheet_param', +'param_name', +'Name des Paramaters', +'', +'VARCHAR', +'255', +1, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('sx_stylesheet_param', +'default_val', +'Default-Wert der Variable', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('sx_stylesheet_param', +'description', +'Beschreibung der Variable', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('sx_stylesheet_param', +'wertebereich', +'Wertebereich', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + insert into tmp_fields ( table_name, name, @@ -13418,6 +13559,10 @@ values('sx_stylesheets', 0, 1); +update tmp_fields set foreignkey_cond='''contenttype''=menu_element.element' +where trim(table_name) || '_' || trim(name) ='sx_stylesheets_contenttype' +and trim(foreignkey_tab) = 'menu_element'; + insert into tmp_fields ( table_name, name, @@ -13440,6 +13585,106 @@ values('sx_stylesheets', 0, 1); +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('sx_stylesheets', +'toolbar_icon_filepath', +'Icon in der Symbolleiste', +'Pfad relativ zu webapps/superx', +'VARCHAR', +'255', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('sx_stylesheets', +'usage_resultset_data', +'Nutzung der Ergebnisdaten', +'Welche Ergebniszeilen soll das Stylesheet verarbeiten. S=Nur Schema, T=Aktuelle Baumstruktur,A=Alle Daten', +'CHAR', +'10', +0, +1, +0, +1); + +update tmp_fields set foreignkey_cond='''usage_resultset_data''=menu_element.element' +where trim(table_name) || '_' || trim(name) ='sx_stylesheets_usage_resultset_data' +and trim(foreignkey_tab) = 'menu_element'; + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('sx_stylesheets', +'stylesheet_type', +'Art des Stylesheets', +'XSL,JRXML,XSL_JRXML,XSL_FO,XML,NATIVE,XLSX', +'CHAR', +'10', +0, +1, +0, +1); + +update tmp_fields set foreignkey_cond='''stylesheet_type''=menu_element.element' +where trim(table_name) || '_' || trim(name) ='sx_stylesheets_stylesheet_type' +and trim(foreignkey_tab) = 'menu_element'; + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('sx_stylesheets', +'jr_datasource', +'Datenquelle (JR)', +'Wird nur bei JR ausgewertet. Mögliche Werte: RS,XMLSOURCE', +'CHAR', +'10', +0, +1, +0, +1); + +update tmp_fields set foreignkey_cond='''jr_datasource''=menu_element.element' +where trim(table_name) || '_' || trim(name) ='sx_stylesheets_jr_datasource' +and trim(foreignkey_tab) = 'menu_element'; + insert into tmp_fields ( table_name, name, diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/sx_fields_loeschen.sql b/superx/WEB-INF/conf/edustore/db/install/conf/sx_fields_loeschen.sql index 6710d5a..84d952a 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/sx_fields_loeschen.sql +++ b/superx/WEB-INF/conf/edustore/db/install/conf/sx_fields_loeschen.sql @@ -3492,6 +3492,42 @@ name) values('sx_repository', 'gueltig_bis'); +insert into tmp_fields ( +table_name, +name) +values('sx_stylesheet_param', +'tid'); + +insert into tmp_fields ( +table_name, +name) +values('sx_stylesheet_param', +'stylesheet_id'); + +insert into tmp_fields ( +table_name, +name) +values('sx_stylesheet_param', +'param_name'); + +insert into tmp_fields ( +table_name, +name) +values('sx_stylesheet_param', +'default_val'); + +insert into tmp_fields ( +table_name, +name) +values('sx_stylesheet_param', +'description'); + +insert into tmp_fields ( +table_name, +name) +values('sx_stylesheet_param', +'wertebereich'); + insert into tmp_fields ( table_name, name) @@ -3540,6 +3576,30 @@ name) values('sx_stylesheets', 'is_generic'); +insert into tmp_fields ( +table_name, +name) +values('sx_stylesheets', +'toolbar_icon_filepath'); + +insert into tmp_fields ( +table_name, +name) +values('sx_stylesheets', +'usage_resultset_data'); + +insert into tmp_fields ( +table_name, +name) +values('sx_stylesheets', +'stylesheet_type'); + +insert into tmp_fields ( +table_name, +name) +values('sx_stylesheets', +'jr_datasource'); + insert into tmp_fields ( table_name, name) diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/sx_tables_fuellen.sql b/superx/WEB-INF/conf/edustore/db/install/conf/sx_tables_fuellen.sql index a1b1e45..8da3a85 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/sx_tables_fuellen.sql +++ b/superx/WEB-INF/conf/edustore/db/install/conf/sx_tables_fuellen.sql @@ -599,6 +599,14 @@ values('sx_repository','','Eine Sammlung hochschulspezifischer Konstanten und 'Administration', 0); +insert into tmp_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) +values('sx_stylesheet_param','','', +'Schlüsseltabelle', +9, +9, +'Administration', +0); + insert into tmp_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) values('sx_stylesheets','','', 'Schlüsseltabelle', @@ -1084,6 +1092,10 @@ insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('sx_jobs_list','sx_jobs','/edit/kern/sx_jobs_list.jsp','Ladejobs verwalten','In diesem Formular können Sie Ladejobs verwalten'); insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('organigramm_list','organigramm','/edit/kern/organigramm_list.jsp','Organigramm','In diesem Formular können Sie das Organigramm aufrufen'); +insert into tmp_db_forms (name, tablename,form_path,caption,description) +values ('sx_stylesheet_param_edit','sx_stylesheet_param','/edit/kern/sx_stylesheet_param_edit.jsp','Stylesheet-Parameter','In diesem Formular können Sie Stylesheet-Parameter bearbeiten.'); +insert into tmp_db_forms (name, tablename,form_path,caption,description) +values ('sx_stylesheet_param_list','sx_stylesheet_param','/edit/kern/sx_stylesheet_param_list.jsp','Stylesheet-Parameter','In diesem Formular können Sie Stylesheet-Parameter bearbeiten.'); delete from db_forms where name in (select name from tmp_db_forms); diff --git a/superx/WEB-INF/conf/edustore/db/install/kern_backup.x b/superx/WEB-INF/conf/edustore/db/install/kern_backup.x index 1463021..2534a57 100755 --- a/superx/WEB-INF/conf/edustore/db/install/kern_backup.x +++ b/superx/WEB-INF/conf/edustore/db/install/kern_backup.x @@ -63,8 +63,9 @@ DOQUERY "select protokoll_id, proto_fkt_id, userinfo_id, ip_adresse, client_name DOQUERY "select tid, instnr, ch110_institut, name, gueltig_von, gueltig_bis, systeminfo_id from trans_inst;" false $DBDELIMITER tmp"$MANDANTENID"/trans_inst.unl txt DOQUERY "select tid, apnr, beschreibung, defaultvalue, description, systeminfo_id, sachgebiete_id, doku_link, read_only, wertebereich, ab_version, gruppe from konstanten;" false $DBDELIMITER tmp"$MANDANTENID"/konstanten.unl txt DOQUERY "select key_apnr, parent, drucktext, lehr, gueltig_seit, gueltig_bis from lehreinheit_inst;" false $DBDELIMITER tmp"$MANDANTENID"/lehreinheit_inst.unl txt -DOQUERY "select tid, filename, caption, description, relation, useragent, contenttype, is_generic from sx_stylesheets;" false $DBDELIMITER tmp"$MANDANTENID"/sx_stylesheets.unl txt +DOQUERY "select tid, filename, caption, description, relation, useragent, contenttype, is_generic, toolbar_icon_filepath, usage_resultset_data, stylesheet_type, jr_datasource from sx_stylesheets;" false $DBDELIMITER tmp"$MANDANTENID"/sx_stylesheets.unl txt DOQUERY "select tid, maskeninfo_id, stylesheet_id, ord from sx_mask_style;" false $DBDELIMITER tmp"$MANDANTENID"/sx_mask_style.unl txt +DOQUERY "select tid, stylesheet_id, param_name, default_val, description, wertebereich from sx_stylesheet_param;" false $DBDELIMITER tmp"$MANDANTENID"/sx_stylesheet_param.unl txt DOQUERY "select tid, id, table_name, field_name, record_no, locale, contents_short, contents_long, equalitystatus, sachgebiete_id, doku_link, export_to_glossar from sx_captions;" false $DBDELIMITER tmp"$MANDANTENID"/sx_captions.unl txt DOQUERY "select tid, id, content, description, comment, version from fm_templates;" false $DBDELIMITER tmp"$MANDANTENID"/fm_templates.unl txt DOQUERY "select userinfo_id, sicht_name_intern, external_entry from user_sichten;" false $DBDELIMITER tmp"$MANDANTENID"/user_sichten.unl txt diff --git a/superx/WEB-INF/conf/edustore/db/install/kern_drop_pg.sql b/superx/WEB-INF/conf/edustore/db/install/kern_drop_pg.sql index eb0628f..f047255 100644 --- a/superx/WEB-INF/conf/edustore/db/install/kern_drop_pg.sql +++ b/superx/WEB-INF/conf/edustore/db/install/kern_drop_pg.sql @@ -144,6 +144,7 @@ drop table konstanten; drop table lehreinheit_inst; drop table sx_stylesheets; drop table sx_mask_style; +drop table sx_stylesheet_param; drop table sx_captions; drop table fm_templates; drop table user_sichten; diff --git a/superx/WEB-INF/conf/edustore/db/install/kern_indexes_drop.sql b/superx/WEB-INF/conf/edustore/db/install/kern_indexes_drop.sql index 06c41d6..b2507ea 100644 --- a/superx/WEB-INF/conf/edustore/db/install/kern_indexes_drop.sql +++ b/superx/WEB-INF/conf/edustore/db/install/kern_indexes_drop.sql @@ -1,8 +1,8 @@ -- XML-generiertes SQL-Script -- -! echo "Dropping indexes for tables" -! echo `date` +\! echo "Dropping indexes for tables" +\! echo `date` drop index ix_group_felder2 ; drop index ix_style_feld2 ; diff --git a/superx/WEB-INF/conf/edustore/db/install/kern_install_pg.sql b/superx/WEB-INF/conf/edustore/db/install/kern_install_pg.sql index 75fa34e..c6f2a29 100644 --- a/superx/WEB-INF/conf/edustore/db/install/kern_install_pg.sql +++ b/superx/WEB-INF/conf/edustore/db/install/kern_install_pg.sql @@ -1645,6 +1645,10 @@ relation CHAR(10) , useragent CHAR(255) , contenttype CHAR(200) , is_generic SMALLINT default 0 , +toolbar_icon_filepath VARCHAR(255) , +usage_resultset_data CHAR(10) default 'T' , +stylesheet_type CHAR(10) default 'XSL' , +jr_datasource CHAR(10) , constraint c_stylesheets primary key (tid) ) @@ -1668,6 +1672,14 @@ comment on column sx_stylesheets.contenttype is 'Dateityp'; comment on column sx_stylesheets.is_generic is 'Generisches Stylesheet'; +comment on column sx_stylesheets.toolbar_icon_filepath is 'Icon in der Symbolleiste'; + +comment on column sx_stylesheets.usage_resultset_data is 'Nutzung der Ergebnisdaten'; + +comment on column sx_stylesheets.stylesheet_type is 'Art des Stylesheets'; + +comment on column sx_stylesheets.jr_datasource is 'Datenquelle (JR)'; + \! echo "Tabelle sx_stylesheets erzeugt" \! echo `date` @@ -1703,6 +1715,41 @@ comment on column sx_mask_style.ord is 'Sortiernummer'; +\! echo "Erzeuge Tabelle sx_stylesheet_param" +\! echo `date` + +create table sx_stylesheet_param( + tid SERIAL not null, +stylesheet_id INTEGER not null, +param_name VARCHAR(255) not null, +default_val VARCHAR(255) , +description VARCHAR(255) , +wertebereich VARCHAR(255) , + constraint c_stylesheet_param primary key (tid) + +) +; + + + +comment on column sx_stylesheet_param.tid is 'Laufnummer'; + +comment on column sx_stylesheet_param.stylesheet_id is 'Tid des Stylesheets'; + +comment on column sx_stylesheet_param.param_name is 'Name des Paramaters'; + +comment on column sx_stylesheet_param.default_val is 'Default-Wert der Variable'; + +comment on column sx_stylesheet_param.description is 'Beschreibung der Variable'; + +comment on column sx_stylesheet_param.wertebereich is 'Wertebereich'; + + +\! echo "Tabelle sx_stylesheet_param erzeugt" +\! echo `date` + + + \! echo "Erzeuge Tabelle sx_captions" \! echo `date` @@ -4853,7 +4900,7 @@ $1 is null;' LANGUAGE 'sql'; delete from db_version where his_system='kern'; -insert into db_version (his_system,version) values('kern','4.9'); +insert into db_version (his_system,version) values('kern','5.0b'); @@ -4966,6 +5013,8 @@ delete from db_tabellen where name='sx_stylesheets'; insert into db_tabellen (name,protokollierung) values('sx_stylesheets',0); delete from db_tabellen where name='sx_mask_style'; insert into db_tabellen (name,protokollierung) values('sx_mask_style',0); +delete from db_tabellen where name='sx_stylesheet_param'; +insert into db_tabellen (name,protokollierung) values('sx_stylesheet_param',0); delete from db_tabellen where name='sx_captions'; insert into db_tabellen (name,protokollierung) values('sx_captions',0); delete from db_tabellen where name='fm_templates'; @@ -5609,6 +5658,10 @@ insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('sx_jobs_list','sx_jobs','/edit/kern/sx_jobs_list.jsp','Ladejobs verwalten','In diesem Formular können Sie Ladejobs verwalten'); insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('organigramm_list','organigramm','/edit/kern/organigramm_list.jsp','Organigramm','In diesem Formular können Sie das Organigramm aufrufen'); +insert into tmp_db_forms (name, tablename,form_path,caption,description) +values ('sx_stylesheet_param_edit','sx_stylesheet_param','/edit/kern/sx_stylesheet_param_edit.jsp','Stylesheet-Parameter','In diesem Formular können Sie Stylesheet-Parameter bearbeiten.'); +insert into tmp_db_forms (name, tablename,form_path,caption,description) +values ('sx_stylesheet_param_list','sx_stylesheet_param','/edit/kern/sx_stylesheet_param_list.jsp','Stylesheet-Parameter','In diesem Formular können Sie Stylesheet-Parameter bearbeiten.'); create temp table tmp_hilf(tid integer); insert into tmp_hilf select max(tid) from db_forms; diff --git a/superx/WEB-INF/conf/edustore/db/install/kern_restore.x b/superx/WEB-INF/conf/edustore/db/install/kern_restore.x index e846712..b11ae65 100755 --- a/superx/WEB-INF/conf/edustore/db/install/kern_restore.x +++ b/superx/WEB-INF/conf/edustore/db/install/kern_restore.x @@ -59,6 +59,7 @@ sx_auto_upload_table.x konstanten tmp"$MANDANTENID"/konstanten.unl sx_auto_upload_table.x lehreinheit_inst tmp"$MANDANTENID"/lehreinheit_inst.unl sx_auto_upload_table.x sx_stylesheets tmp"$MANDANTENID"/sx_stylesheets.unl sx_auto_upload_table.x sx_mask_style tmp"$MANDANTENID"/sx_mask_style.unl +sx_auto_upload_table.x sx_stylesheet_param tmp"$MANDANTENID"/sx_stylesheet_param.unl sx_auto_upload_table.x sx_captions tmp"$MANDANTENID"/sx_captions.unl sx_auto_upload_table.x fm_templates tmp"$MANDANTENID"/fm_templates.unl sx_auto_upload_table.x user_sichten tmp"$MANDANTENID"/user_sichten.unl diff --git a/superx/WEB-INF/conf/edustore/db/install/schluesseltabellen/sx_stylesheet_tabelle_jrxml_einfuegen.sql b/superx/WEB-INF/conf/edustore/db/install/schluesseltabellen/sx_stylesheet_tabelle_jrxml_einfuegen.sql new file mode 100755 index 0000000..0d7dc31 --- /dev/null +++ b/superx/WEB-INF/conf/edustore/db/install/schluesseltabellen/sx_stylesheet_tabelle_jrxml_einfuegen.sql @@ -0,0 +1,178 @@ +--Freemarker Template +--Achtung: Macro fügt Inhalte ein +--Bitte nur Freemarker Variablen füllen + +<#assign masken = [ +] /> + +<#assign stylesheet = [ +{"filename":"tabelle_jrxml_a4_quer.xsl", +"caption":"Gener. Standardlayout JR (A4 quer)", +"description":"Gener. Standardlayout JR (A4 quer)", +"relation":"table", +"contenttype":"text/xml", +"is_generic":"1" +}, +{"filename":"viz_rpt_assistent.xsl", +"caption":"Berichtsassistent", +"description":"Export als formatierter Bericht", +"relation":"table", +"contenttype":"text/html", +"is_generic":"1"} +] /> + +<#assign stylesheet_field = [ + + +] /> + +--Hier eventuell notwendige delete's auf die Tabellen sx_mask_style, sx_stylesheets oder stylesheet_field einfügen. + +--Achtung: ab hier nicht ändern, Mutterdatei ist $SUPERX_DIR/db/module/sos/schluesseltabellen/sx_stylesheets_fuellen.sql + <@sx_stylesheets_insert +m_masken=masken +m_stylesheet=stylesheet +m_stylesheet_field=stylesheet_field +/> + + +<#macro sx_stylesheets_insert m_masken m_stylesheet m_stylesheet_field> + +--Sicherstellen, dass keine Duplikate vorkommen: +--#################################################################################################### +<#foreach column in m_masken> +delete from sx_mask_style where maskeninfo_id=${column.mask} and stylesheet_id in (select tid from sx_stylesheets where filename ='${column.filename}') and ord=${column.ord}; + + +<#foreach column in m_stylesheet_field> +delete from stylesheet_field where stylesheet_id in (select tid from sx_stylesheets where filename ='${column.filename}'); + + + + + +-- Stylesheets füllen +--#################################################################################################### +create temp table tmp_stylesheets ( +tid serial not null, +filename CHAR(255) , +caption CHAR(255) , +description CHAR(255) , +relation CHAR(10) , +useragent CHAR(255) , +contenttype CHAR(200) , +is_generic smallint +); + +create temp table tmp_hilf (tid integer); +insert into tmp_hilf select max(tid) from sx_stylesheets; +update tmp_hilf set tid=1 where tid is null; + +<#assign counter_tid = 1 /> +<#foreach column in m_stylesheet> +insert into tmp_stylesheets (tid,filename,caption,description,relation,contenttype,is_generic) +select max(tid)+${counter_tid},'${column.filename}', +'${column.caption}', + '${column.description}', + '${column.relation}', +'${column.contenttype}', +${column.is_generic} +from tmp_hilf; +<#assign counter_tid = counter_tid + 1 /> + + +<#if TableFieldExists?exists && TableFieldExists('sx_stylesheets','is_generic')> +update sx_stylesheets set is_generic=1 +where filename in (select T.filename from tmp_stylesheets T where T.is_generic=1); + + + +--delete für tml_stylesheets hinzugefügt #ak 06.03.2013 +delete from tmp_stylesheets where filename in (select filename from sx_stylesheets); + + +insert into sx_stylesheets (tid, +filename, caption, description, relation, useragent, contenttype +<#if TableFieldExists?exists && TableFieldExists('sx_stylesheets','is_generic')> +,is_generic + +) +SELECT tid, filename, caption, description, relation, useragent, contenttype +<#if TableFieldExists?exists && TableFieldExists('sx_stylesheets','is_generic')> +,is_generic + +FROM tmp_stylesheets; + +drop table tmp_stylesheets; + + +-- Mask Style füllen +--#################################################################################################### +create temp table tmp_mask_style ( +tid serial not null, +maskeninfo_id INTEGER , +stylesheet_id INTEGER , +ord SMALLINT, +filename char(255) +); + +delete from tmp_hilf; +insert into tmp_hilf select max(tid) from sx_mask_style; +update tmp_hilf set tid=1 where tid is null; + +<#assign counter_tid = 1 /> +<#foreach column in m_masken> +insert into tmp_mask_style (tid,maskeninfo_id,ord,filename) +select max(tid)+${counter_tid},${column.mask},${column.ord},'${column.filename}' from tmp_hilf; + +update tmp_mask_style set stylesheet_id=(select max(tid) from sx_stylesheets where filename='${column.filename}') +where filename='${column.filename}'; +<#assign counter_tid = counter_tid + 1 /> + + +insert into sx_mask_style ( tid, maskeninfo_id, stylesheet_id, ord) +SELECT tid, maskeninfo_id, stylesheet_id, ord +FROM tmp_mask_style; + +drop table tmp_mask_style; + + +--Field zu Stylesheet Zuordnungen: +--#################################################################################################### +CREATE temp TABLE tmp_stylesheet_field +( +tid serial NOT NULL, +stylesheet_id INTEGER, +tablename char(255), +fieldname char(255), +filename char(255) +); + +delete from tmp_hilf; +insert into tmp_hilf select max(tid) from stylesheet_field; +update tmp_hilf set tid=1 where tid is null; + +<#assign counter_tid = 1 /> +<#foreach column in m_stylesheet_field> +INSERT INTO tmp_stylesheet_field (tid, filename, tablename, fieldname) +select max(tid)+${counter_tid}, '${column.filename}', '${column.tablename}', '${column.fieldname}' from tmp_hilf; + +update tmp_stylesheet_field set stylesheet_id=(select max(tid) from sx_stylesheets where filename='${column.filename}') +where filename='${column.filename}'; +<#assign counter_tid = counter_tid + 1 /> + + +insert into stylesheet_field ( tid, stylesheet_id, tablename, fieldname) +SELECT tid, stylesheet_id, tablename, fieldname +FROM tmp_stylesheet_field; + +drop table tmp_stylesheet_field; +drop table tmp_hilf; + +<#if SQLdialect='Postgres'> +select sp_update_sequence('sx_stylesheets'); +select sp_update_sequence('sx_mask_style'); +select sp_update_sequence('stylesheet_field'); + + + diff --git a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern49_patch_jr.sql b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern49_patch_jr.sql index 0c09d8d..b1adab0 100644 --- a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern49_patch_jr.sql +++ b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern49_patch_jr.sql @@ -8,8 +8,37 @@ alter table sx_stylesheets add column is_generic SMALLINT default 0 ; <#else> alter table sx_stylesheets add ( is_generic SMALLINT default 0 ); -update sx_stylesheets set is_generic=1 -where filename in ('tabelle_html.xsl','tabelle_html_p.xsl','tabelle_xml.xsl','tabelle_fo_pdf.xsl','tabelle_xls.xsl','tabelle2jasperreport_generic.xsl'); -update sx_stylesheets set is_generic=0 -where is_generic is null; + +<#if TableFieldExists?exists && !TableFieldExists('sx_stylesheets','toolbar_icon_filepath')> +<#if SQLdialect='Postgres'> +alter table sx_stylesheets add column toolbar_icon_filepath VARCHAR(255) ; +<#else> +alter table sx_stylesheets add ( toolbar_icon_filepath VARCHAR(255) ); + + + +<#if TableFieldExists?exists && !TableFieldExists('sx_stylesheets','usage_resultset_data')> +<#if SQLdialect='Postgres'> +alter table sx_stylesheets add column usage_resultset_data CHAR(10) default 'T' ; +<#else> +alter table sx_stylesheets add ( toolbar_icon_filepath CHAR(10) default 'T' ); + + + +<#if TableFieldExists?exists && !TableFieldExists('sx_stylesheets','stylesheet_type')> +<#if SQLdialect='Postgres'> +alter table sx_stylesheets add column stylesheet_type CHAR(10) default 'XSL' ; +<#else> +alter table sx_stylesheets add ( stylesheet_type CHAR(10) default 'XSL' ); + + + +<#if TableFieldExists?exists && !TableFieldExists('sx_stylesheets','jr_datasource')> +<#if SQLdialect='Postgres'> +alter table sx_stylesheets add column jr_datasource CHAR(10) ; +<#else> +alter table sx_stylesheets add ( jr_datasource CHAR(10) ); + + + diff --git a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_fields_pg.sql b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_fields_pg.sql index 648b9c8..c981742 100644 --- a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_fields_pg.sql +++ b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_fields_pg.sql @@ -61,6 +61,7 @@ and C.relname::varchar(255) in ('sichtart_rechttabelle', 'lehreinheit_inst', 'sx_stylesheets', 'sx_mask_style', +'sx_stylesheet_param', 'sx_captions', 'fm_templates', 'user_sichten', @@ -3879,6 +3880,46 @@ alter table sx_stylesheets add column is_generic SMALLINT default 0 ; +<#if !fields?seq_contains("sx_stylesheets.toolbar_icon_filepath") > + + +\! echo "field sx_stylesheets.toolbar_icon_filepath will be added" +\! echo `date` + +alter table sx_stylesheets add column toolbar_icon_filepath VARCHAR(255) ; + + + +<#if !fields?seq_contains("sx_stylesheets.usage_resultset_data") > + + +\! echo "field sx_stylesheets.usage_resultset_data will be added" +\! echo `date` + +alter table sx_stylesheets add column usage_resultset_data CHAR(10) default 'T' ; + + + +<#if !fields?seq_contains("sx_stylesheets.stylesheet_type") > + + +\! echo "field sx_stylesheets.stylesheet_type will be added" +\! echo `date` + +alter table sx_stylesheets add column stylesheet_type CHAR(10) default 'XSL' ; + + + +<#if !fields?seq_contains("sx_stylesheets.jr_datasource") > + + +\! echo "field sx_stylesheets.jr_datasource will be added" +\! echo `date` + +alter table sx_stylesheets add column jr_datasource CHAR(10) ; + + + <#if !fields?seq_contains("sx_mask_style.tid") > @@ -3919,6 +3960,66 @@ alter table sx_mask_style add column ord SMALLINT ; +<#if !fields?seq_contains("sx_stylesheet_param.tid") > + + +\! echo "field sx_stylesheet_param.tid will be added" +\! echo `date` + +alter table sx_stylesheet_param add column tid SERIAL not null; + + + +<#if !fields?seq_contains("sx_stylesheet_param.stylesheet_id") > + + +\! echo "field sx_stylesheet_param.stylesheet_id will be added" +\! echo `date` + +alter table sx_stylesheet_param add column stylesheet_id INTEGER not null; + + + +<#if !fields?seq_contains("sx_stylesheet_param.param_name") > + + +\! echo "field sx_stylesheet_param.param_name will be added" +\! echo `date` + +alter table sx_stylesheet_param add column param_name VARCHAR(255) not null; + + + +<#if !fields?seq_contains("sx_stylesheet_param.default_val") > + + +\! echo "field sx_stylesheet_param.default_val will be added" +\! echo `date` + +alter table sx_stylesheet_param add column default_val VARCHAR(255) ; + + + +<#if !fields?seq_contains("sx_stylesheet_param.description") > + + +\! echo "field sx_stylesheet_param.description will be added" +\! echo `date` + +alter table sx_stylesheet_param add column description VARCHAR(255) ; + + + +<#if !fields?seq_contains("sx_stylesheet_param.wertebereich") > + + +\! echo "field sx_stylesheet_param.wertebereich will be added" +\! echo `date` + +alter table sx_stylesheet_param add column wertebereich VARCHAR(255) ; + + + <#if !fields?seq_contains("sx_captions.tid") > diff --git a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_indexes_pg.sql b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_indexes_pg.sql index 127aecb..a0a9f31 100644 --- a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_indexes_pg.sql +++ b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_indexes_pg.sql @@ -62,6 +62,7 @@ where D.relname::varchar(200) in ('sichtart_rechttabelle', 'lehreinheit_inst', 'sx_stylesheets', 'sx_mask_style', +'sx_stylesheet_param', 'sx_captions', 'fm_templates', 'user_sichten', diff --git a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_pg.sql b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_pg.sql index f477009..8acfbd0 100644 --- a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_pg.sql +++ b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_pg.sql @@ -356,7 +356,7 @@ select setval('themenbaum_tid_seq',(select max(tid)+1 from themenbaum)); delete from db_version where his_system='kern'; -insert into db_version (his_system,version) values('kern','4.9'); +insert into db_version (his_system,version) values('kern','5.0b'); @@ -490,6 +490,10 @@ insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('sx_jobs_list','sx_jobs','/edit/kern/sx_jobs_list.jsp','Ladejobs verwalten','In diesem Formular können Sie Ladejobs verwalten'); insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('organigramm_list','organigramm','/edit/kern/organigramm_list.jsp','Organigramm','In diesem Formular können Sie das Organigramm aufrufen'); +insert into tmp_db_forms (name, tablename,form_path,caption,description) +values ('sx_stylesheet_param_edit','sx_stylesheet_param','/edit/kern/sx_stylesheet_param_edit.jsp','Stylesheet-Parameter','In diesem Formular können Sie Stylesheet-Parameter bearbeiten.'); +insert into tmp_db_forms (name, tablename,form_path,caption,description) +values ('sx_stylesheet_param_list','sx_stylesheet_param','/edit/kern/sx_stylesheet_param_list.jsp','Stylesheet-Parameter','In diesem Formular können Sie Stylesheet-Parameter bearbeiten.'); create temp table tmp_hilf(tid integer); insert into tmp_hilf select max(tid) from db_forms; diff --git a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_tables_pg.sql b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_tables_pg.sql index 0ba0437..1c94860 100644 --- a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_tables_pg.sql +++ b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_tables_pg.sql @@ -57,6 +57,7 @@ select relname,relname as tabelle from pg_class where relname::varchar(200) in ( 'lehreinheit_inst', 'sx_stylesheets', 'sx_mask_style', +'sx_stylesheet_param', 'sx_captions', 'fm_templates', 'user_sichten', @@ -2184,6 +2185,10 @@ relation CHAR(10) , useragent CHAR(255) , contenttype CHAR(200) , is_generic SMALLINT default 0 , +toolbar_icon_filepath VARCHAR(255) , +usage_resultset_data CHAR(10) default 'T' , +stylesheet_type CHAR(10) default 'XSL' , +jr_datasource CHAR(10) , constraint c_stylesheets primary key (tid) ) @@ -2207,6 +2212,14 @@ comment on column sx_stylesheets.contenttype is 'Dateityp'; comment on column sx_stylesheets.is_generic is 'Generisches Stylesheet'; +comment on column sx_stylesheets.toolbar_icon_filepath is 'Icon in der Symbolleiste'; + +comment on column sx_stylesheets.usage_resultset_data is 'Nutzung der Ergebnisdaten'; + +comment on column sx_stylesheets.stylesheet_type is 'Art des Stylesheets'; + +comment on column sx_stylesheets.jr_datasource is 'Datenquelle (JR)'; + delete from db_tabellen where name='sx_stylesheets'; insert into db_tabellen (name,protokollierung) values('sx_stylesheets',0); @@ -2248,6 +2261,49 @@ comment on column sx_mask_style.ord is 'Sortiernummer'; delete from db_tabellen where name='sx_mask_style'; insert into db_tabellen (name,protokollierung) values('sx_mask_style',0); +<#if !deleted_tables?seq_contains("sx_stylesheet_param") && tables?seq_contains("sx_stylesheet_param") > + + +\! echo "table sx_stylesheet_param exists - fine" +\! echo `date` + + +<#else> + + +\! echo "Erzeuge Tabelle sx_stylesheet_param" +\! echo `date` + +create table sx_stylesheet_param( + tid SERIAL not null, +stylesheet_id INTEGER not null, +param_name VARCHAR(255) not null, +default_val VARCHAR(255) , +description VARCHAR(255) , +wertebereich VARCHAR(255) , + constraint c_stylesheet_param primary key (tid) + +) +; + + + +comment on column sx_stylesheet_param.tid is 'Laufnummer'; + +comment on column sx_stylesheet_param.stylesheet_id is 'Tid des Stylesheets'; + +comment on column sx_stylesheet_param.param_name is 'Name des Paramaters'; + +comment on column sx_stylesheet_param.default_val is 'Default-Wert der Variable'; + +comment on column sx_stylesheet_param.description is 'Beschreibung der Variable'; + +comment on column sx_stylesheet_param.wertebereich is 'Wertebereich'; + + +delete from db_tabellen where name='sx_stylesheet_param'; +insert into db_tabellen (name,protokollierung) values('sx_stylesheet_param',0); + <#if !deleted_tables?seq_contains("sx_captions") && tables?seq_contains("sx_captions") > diff --git a/superx/WEB-INF/kern_dbforms-config_pg.xml b/superx/WEB-INF/kern_dbforms-config_pg.xml new file mode 100644 index 0000000..a61f3bb --- /dev/null +++ b/superx/WEB-INF/kern_dbforms-config_pg.xml @@ -0,0 +1,2572 @@ + +dd.MM.yyyy + + + + + + +
      + + + + + + + +
      + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + +Bei ICE-Schlüsseln + + + + + + + +Bei GX der hiskey, bei HISINONE hiskey_id + + + + + + + + + + + + + + + + + + + + + + +
      + + + + +Pfad zur Datei (relativ zu webapps/superx/WEB-INF/ ) + + + + +(Nur bei CSV-Format) + + +utf8,ISO-8859-1 (Nur bei Text-Format) + + +Enthält die Datei Spaltenüberschriften? 1=ja,0=nein + + + +Anzahl der gelieferten Datensätze + + +1=ja,0=nein + + + +Person, die den Download eingereicht hat + + +Spezielle Email-Adresse für die Protokollierung des Ladens + + + +Datum/Uhrzeit des Imports in die SuperX-Datenbank + + + +1=Hinzufügen,0=Alles Löschen und Hinzufügen + + +Kommentar für Website (Datenlegende o.ä.). + + +Lieferung bestätigt (per mail an submission_email) + + + +1=ja,0=nein + + +1=ja,0=nein + + +Email vom Adminstrator, der über die Datei informiert + werden soll + + +1=ja + + +1=ja, Verarbeitung bestätigt (per mail an submission_email + und processor_email) + + + + + + + + + + + +
      + + + + + + + + +
      + + + + + + +
      + + + + + + + + +
      + + + + + + + + + + + + +
      + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + +
      + + + + + + + +
      + + + + + + + + + + + + +ggf. zusätzliche where-Bedingung für blueprint + + +wird von Anwendung gesetzt, darf nicht geändert werden + + + +
      + + + + + + + + + + + + + + + + + + +wird von Anwendung gesetzt, darf nicht geändert werden + + + +
      + + + + +
      + + + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + + + + + + + +
      + + + + + + + + + + + + + +
      + + + + + + + + + + + + +
      + + + + +
      + + + + + + + + + + +
      + + + + +
      + + + + + + + + + + +
      + + + + + + + +
      + + + + + + + + + + + + + +
      + + + + +
      + + + + + + + +(Obsolet) + + +(Obsolet) + + + + + +
      + + + + + + + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + +
      + + + + + +
      + + + + + + + +
      + + + + + + + + +
      + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + +
      + + + + + + + + + + +
      + + + + + + + + + + +
      + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + +
      + + + + + + + + + + + +Applet=0, XML=1, Alle=2, 3=Angular + + + + + + + + + + + +
      + + + + + + + + +
      + + + + + + + + +
      + + + +
      + + + + + + + + + + + +gem. COB-GX:30=Lehreinheit,20=Fakultät + + + + + +(referenziert BI-Tabelle cifx mit key=1) + + + +z.B. 10=Kostenrechnung,3=MBS vergl. BI-Tabelle systeminfo + + + + + + + + + +
      + + + + + + + + + + + + +
      + + + + +Querverweis zur Systeminfo + + + + + + + + +
      + + + + + +Querverweis zur Systeminfo + + + + + + + + +
      + + + + + + + +
      + + + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + +
      + + + + +
      + + + + + + + + + + +
      + + + + + + + +
      + + + + + + + + + + +
      + + + + + +
      + + + + + + + +Wenn der jew. User keine sichtartspez. Rechte hat, gibt es einen Fallback zur normalen user_institution (1=ja, 0=nein) + + +
      + + + +Um zukünftig evtl. Hierarchien von Sichten abzubilden + + + +Querverweis zur Systeminfo + + + +10 ist standardsicht, 20 ist alt.Hierarchie + + +Es kann eine Kurzbeschreibung für interne Zwecke + hinterlegt werden + + +Bezeichnung der Sicht, die für User angezeigt wird + + + + +kann für Sortierungen benutzt werden + + +Angabe einer Tabelle mit + key,parent,name,gueltig_seit,gueltig_bis oder Prozedur, die mit + sp_ anfängt + + +id der alt.Hier in angegebenen Quelltabelle null bei + regulärer Hierarchie + + +Tabelle mit Infos zu TreeView aus Cob + + +id des benutzen trees aus Cob-Tabelle trees null bei + regulärer Hierachie + + +hauptsächl. für alte Organigramm-Sichten, hieß mal lehre + + + +sollen User Rechte berücksichtigt werden, derzeit von + Org.Sichten ausgewertet + + +zukünftig für erweiterte Rechtevergabe + + +zukünftig für erweiterte Rechtevergabe + + +soll der Stand geändert werden können + + +bei Bedarf noch Attribute der Sicht hinterlegt werden, auf + die man bei Bedarf Einschränkungen fahren kann + + +bei Bedarf noch Attribute der Sicht hinterlegt werden, auf + die man bei Bedarf Einschränkungen fahren kann + + +bei Bedarf noch Attribute der Sicht hinterlegt werden, auf + die man bei Bedarf Einschränkungen fahren kann + + +bei Bedarf noch Attribute der Sicht hinterlegt werden, auf + die man bei Bedarf Einschränkungen fahren kann + + +Max. Zeilen im Klappmenü + + + + +soll Sicht im Applet gecachet werden + + +soll Sicht im XML-Frontend gecachet werden + + + + + + +
      + + + + + + + + + + +
      + + + + + + + + +
      + + + + + + + + + + + + + + + + + +
      + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + +
      + + + + + + + + + +Bei Maskenfeldern wird dieses Feld für Tooltips genutzt. + + + + + + + + + + + + + + +
      + + + + + +Worauf bezieht sich der Download (für Ermittlung + Bezugsjahr,- Monat oder Sem.) + + +Datum des Imports in die SuperX-Datenbank + + +Kommentar für Website (Datenlegende o.ä.). + + +Verweis auf umfangreichere Anleitungen und Kommentare, + beginnend mit http:// oder relativ zu + http://superx-server:Port/superx/servlet + + +Mime-Type der Datei (für pdf z.B. application/pdf, html + etc). + + +Pfad zur Datei (relativ zu webapps/superx/WEB-INF/) + + + + + + + + +
      + + + + + + + + + +1=true + + +1=ja, 0=nein + + +1=ja, 0=nein + + + + +Für Ganzzahl-Transformation ICE + + + + + +1=ja, 0=nein. Wird beim CSV-Upload ausgewertet. + + +1=ja, 0=nein. Das Feld Semester ist z.B. nicht summierbar, + das Feld Geschlecht schon (für ICE Ausprägung alle) + + + +
      + + + + + + + + + + + + + + + +
      + + + + +Wird derzeit noch nicht ausgewertet. + + +
      + + + + + + + + + + + + + + +wird per Reflection aufgerufen + + + + +wird per Reflection aufgerufen + + + +wird per Reflection aufgerufen + + + +
      + + + + + +Das Stylesheet mit der kleinsten Nummer wird zuerst + aufgerufen + + + + + + + + +
      + + + + + +"green" oder "red" + + +z.B. "icon-user-plus" oder "icon-help-circled" + + + + +false=wird nicht ausgegeben, all=auch nicht angemeldete Personen sehen das Portlet. + + + + +
      + + + +Der Variablenname wird in Freemarker-Scripten, beginnend + mit Modulname-_..., z.B. SVA_Technisches_Personal + + + + + + + +(Für weitere Gruppierungsebenen) + + +(Für noch weitere Gruppierungsebenen) + + + + + + + + + + + + + +
      + + + + + + + + + + + +
      + + + +Pfad und Dateiname. Für XSL-Stylesheets relativ zum + Verzeichnis: webapps/superx/xml, für JasperReports-Templates + relativ zu webapps/superx/WEB-INF/reports + + +wird für Hyperlinks benutzt + + + +Gilt das Stylesheet für eine Maske oder eine Tabelle. Bei + JasperReports-Templates müssen Sie immer Tabelle wählen. + + + +z.B.: text/html; charset=ISO-8859-1. Bei XSL Stylesheets + ist dies das Ausgabeformat, bei JasperReports Templates ist dies + das default Ausgabeformat + + +Wird nur für Ergebnistabellen ausgewertet, nicht für Masken-Stylesheets. Wenn 1, dann ist das Stylesheet für alle Ergebnistabellen nutzbar + + +Pfad relativ zu webapps/superx + + +Welche Ergebniszeilen soll das Stylesheet verarbeiten. S=Nur Schema, T=Aktuelle Baumstruktur,A=Alle Daten + + +XSL,JRXML,XSL_JRXML,XSL_FO,XML,NATIVE,XLSX + + +Wird nur bei JR ausgewertet. Mögliche Werte: RS,XMLSOURCE + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + + + + + + + +Voreinstellung bei Auslieferung + + + + +
      + + + + + +
      + + + + + + + + + + + + + + + + + +
      + + + + + + + + + +
      + + + + + + + + +
      + + + + + + + + + + + + +
      + + + + + + +
      + + + + + + + + + + + + + + + +
      + + + + + + + +Dieser Wert darf keinesfalls geändert werden + + + + + +
      + + + +Querverweis zur Systeminfo + + +z.B. zul_bew für Bewerber aus ZUL/APP + + +10 ist standardsicht, 20 ist alt.Hierarchie + + + + +
      + + +Querverweis zur Systeminfo + + +z.B. zul_bew für Bewerber aus ZUL/APP + + +10 ist standardsicht, 20 ist alt.Hierarchie + + + +
      + + + + + + + + + + + + + + + + + + +
      + + + + + + + + +
      + + + + +
      + + + + + + + + + + + +
      + + + + +
      + + + +Nur deskriptiv + + + + + + + + + + + + + + + +
      + + + + +Nur deskriptiv + + + + + + +
      + + + + + + + + + + + +
      + + + + +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + +
      + + + + + + + + + + + +
      + + + + + + + + +
      + + + +Rechte für eine einzelne Sicht geben + + + + + + + + + +
      + + + + + + + +
      + + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + +
      + + + +
      + + + + + + + + + + + + +
      + + + + +
      + + + + +
      + + + + + + + +
      + + + + + + + + +
      + + + + + + + + + + + + + +ggf. zusätzliche where-Bedingung für blueprint + + +wird von Anwendung gesetzt, darf nicht geändert werden + + + +wird von Anwendung gesetzt, darf nicht geändert werden + + + +wird von Anwendung gesetzt, darf nicht geändert werden + + + + +
      + + + + + + + + + + +
      + + + +
      + + + + + + + +
      + + + + + + + +
      + + + + + + + +
      + + + +
      + + + + + +
      + + + + + + + + + +
      + + + + + +
      +In diesem Formular können Sie Benutzer verwalten. +Sie können hier die Benutzerdaten wie Kennung, Name, E-Mail Adresse ... einsehen und auch verändern. +Sie Können das Passwort ändern, den Benutzer als Administrator setzten und auch den Benutzer dazu veranlassen +beim nächsten Login sein Passwort zu ändern. +Außerdem können Sie hier dem Benutzer Berechtigungen über Gruppen, Sachgebiete, Masken, Institutionen, Projekten (Kostenträgern), Sichten und Sichtarten geben und auch entziehen. + + +tid + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + In diesem Formular können Sie Gruppen verwalten. + + + Sie können hier einer Gruppe Berechtigungen über Sachgebiete, Masken, + Sichten und Sichtarten geben und auch entziehen. + Außerdem können Sie auch hier sehen, welche Benutzer der Gruppe zugehören + und auch neue Benutzer hinzufügen oder Gruppeninhaber aus der + Gruppe nehmen. + + tid + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +In diesem Formular können Sie Sachgebiete verwalten. + +name + + + + +
      +In diesem Formular können Sie XSL-Stylesheets verwalten. + +filename + + + + + + + + + + + + + + + +
      +In diesem Formular können Sie Institutionen verwalten. + +name +tid + + + + + + + + + + + + + + + + + + + + + + +
      +In diesem Formular können Sie die Sichtbarkeit von Organisationseinheiten verwalten. + +name +tid + + + + + + + + + + + + + + + + + + + + + + +
      +In diesem Formular können Sie Masken verwalten. + +name + + + + +
      +In diesem Formular können Sie Felder verwalten. + +tid + + + + +
      +In diesem Formular können Sie Quellsysteme verwalten. + +name + + + + +
      +In diesem Formular können Sie Benutzern Sachgebietsrechte geben. Achtung: Einträge von externem System (HisInOne) werden bei Neuanmeldung überschrieben + +userinfo_id +sachgebiete_id + + + + +
      +In diesem Formular können Sie Benutzer zu Gruppen zuordnen. Achtung: Zuordnung zur Gruppe Administratoren für admins von externem System (HisInOne) werden bei Neuanmeldung überschrieben + +userinfo_id +groupinfo_id + + + + +
      +In diesem Formular können Sie Benutzern Rechte auf einzelne Masken geben. + +userinfo_id +maskeninfo_id + + + + +
      +In diesem Formular können Sie Benutzern Rechte auf einzelne Insitutionen geben. Achtung: Einträge von externem System (HisInOne) werden bei Neuanmeldung überschrieben + + +ch110_institut + + + + +
      +In diesem Formular können Sie den Themenbaum bearbeiten. Bitte beachten Sie: bei Änderungen muss der Themenbaum neu geladen werden (SuperXManager) + +maskeninfo_id +name + + + + + + + + + + + + + + +
      +In diesem Formular können Sie Masken zu XSL-Stylesheets zuordnen. + +tid + + + + + + + + + + + + + + +
      +In diesem Formular können Sie Sichten auf das Organigramm verwalten. + +art +name + + + + +
      +In diesem Formular können Sie Masken zu Sachgebieten zuordnen. + +maskeninfo_id +sachgebiete_id + + + + +
      +In diesem Formular können Sie Felder zu Masken zuordnen. + +maskeninfo_id +felderinfo_id + + + + +
      +In diesem Formular können Sie Masken zu Quellsystemen zuordnen. + +maskeninfo_id +systeminfo_id + + + +
      +In diesem Formular können Sie Masken zu Makros zuordnen. + +maskeninfo_id1 +maskeninfo_id2 + + + + +
      +In diesem Formular können Sie Masken zu Makros zuordnen. + +maskeninfo_id1 +maskeninfo_id2 + + + + + + + + + +
      +In diesem Formular können Sie Konstanten verwalten. + +beschreibung + + + + +
      +In diesem Formular können Sie eine Konstante bearbeiten verwalten. + + + + + + + + + + + + + +
      +In diesem Formular können Infos zu Ihrer Hochschule speichern. Bitte ordnen Sie Ihre Hochschule im Feld Hochschulnummer (HIS) zu. + +name + + + + + + + + + +
      +In diesem Formular können Sie Gruppen zu Sachgebieten zuordnen. + +groupinfo_id +sachgebiete_id + + + + +
      +In diesem Formular können Sie Gruppen zu einzelnen Masken zuordnen. + +groupinfo_id +maskeninfo_id + + + + +
      +In diesem Formular können Sie Gruppen zu einzelnen Masken zuordnen. + +groupinfo_id +maskeninfo_id + + + + +
      +In diesem Formular können Sie User-Rechte für Sichten bearbeiten. Bitte beachten Sie: bei Änderungen an den Sichten muss der Themenbaum neu geladen werden (SuperXManager) + +sicht_name_intern + + + + +
      +In diesem Formular können Sie Gruppen-Rechte für Sichten bearbeiten. Bitte beachten Sie: bei Änderungen an den Sichten muss der Themenbaum neu geladen werden (SuperXManager) + +sicht_name_intern + + + + +
      +In diesem Formular können Sie Beschriftungen bearbeiten. Für Masken- und Spalten- und Felderläuterungen. + +tid + + + + + + + + + + + + + + + +
      +In diesem Formular können Sie User-Rechte für Sichtarten bearbeiten. Bitte beachten Sie: bei Änderungen an den Sichten muss der Themenbaum neu geladen werden (SuperXManager) + +sichtart + + + + + +
      +In diesem Formular können Sie Gruppen-Rechte für Sichtarten bearbeiten. Bitte beachten Sie: bei Änderungen an den Sichten muss der Themenbaum neu geladen werden (SuperXManager) + +sichtart + + + + + +
      +In diesem Formular können Sie hochschulspezifische Konstanten oder SQL-Ausdrücke bearbeiten. +Nach Änderungen sollten Sie den Cache aktualisieren + +tid +sachgebiete_id + + + + + + + + + + + + + + + + + + +
      +In diesem Formular können Sie hochschulspezifische Konstanten oder SQL-Ausdrücke bearbeiten. + +sachgebiete_id + + + + + + + + + + + +
      +In diesem Formular können Sie Downloads bearbeiten. + +tid + + + + +
      +In diesem Formular können Sie Stichworte bearbeiten. + + + + + + +
      +In diesem Formular können Sie Sichten zu Sachgebieten zuordnen. + + + + + + +
      +In diesem Formular können Sie Sichtarten zu Sachgebieten zuordnen. + + + + + + + + + +
      +In diesem Formular können Sie Entladeparameter für das jew. Quellsystem verwalten. + + + + + + + + + + +
      +In diesem Formular können Sie Kostenstellen umschlüsseln. + +systeminfo_id + + + + + + + + +
      +In diesem Formular können Sie Kostenstellen umschlüsseln. + +systeminfo_id + + + +
      +In diesem Formular können Sie Uploads bearbeiten. + +tid + + + + + +
      +In diesem Formular können Sie von Stylesheets benötigte Felder entsprechend zuordnen. + +tid +stylesheet_id + + + + + + + +
      +In diesem Formular können Sie von Stylesheets benötigte Felder entsprechend zuordnen. + +stylesheet_id + + + + + + + + +
      +In diesem Formular können Sie Feldern in Masken für bestimmte Gruppen Attribute wie Verstecken zuweisen. + + + + + + + + + +
      +In diesem Formular können Sie Feldern in Masken für bestimmte Gruppen Attribute wie Verstecken zuweisen. + + + + + + + +
      +In diesem Formular können Sie Freemarker-Templates verwalten. + + + + + + + +
      +In diesem Formular können Sie Freemarker-Templates verwalten. + +tid + + + + + + + + +
      +In diesem Formular können Sie DB Connections bearbeiten. + + + + + + + +
      +In diesem Formular können Sie DB-Connections verwalten. + + + +id + + + + + + + + + + + + + + + + + +
      +In diesem Formular können Sie Portlets bearbeiten. + + + + + + + + + + + + + + +
      +In diesem Formular können Sie Portlets verwalten. + + + +tid + + + + + + + + + + + + + + +
      +In diesem Formular können Sie Rechtetabellen für Sichtarten bearbeiten. + + + + + + + + +
      +In diesem Formular können Sie Rechtetabellen für Sichtarten bearbeiten. + +tid + + + + + + + + + + + +
      +In diesem Formular können Sie Ladejobs verwalten + +tid + + + + + + + + + + + + + +
      +In diesem Formular können Sie Ladejobs verwalten + + + + + + + + + + +
      +In diesem Formular können Sie das Organigramm aufrufen + + + + + + +
      +In diesem Formular können Sie Stylesheet-Parameter bearbeiten. + +tid + + + + + + + + + +
      +In diesem Formular können Sie Stylesheet-Parameter bearbeiten. + +stylesheet_id + + + + + + +
      + + +
      diff --git a/superx/WEB-INF/lib/superx4.9.jar b/superx/WEB-INF/lib/superx4.9.jar index 0ae4933891a48d147502f7e9fea8b296b80bf5c9..a0003703b92c060a64f55b61994799567c961795 100644 GIT binary patch delta 92923 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 LOoV&`00I7g9mCIG delta 92713 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

      }Olh(b6S1|v&_!AR{Okl%SB zt?*+ti1>ox4>iPX8aZ692JyjS>Ja+o3s^@T;kHl_xqqqH>0s_y94$m}Jz?^k_A6pV zg#?2U+hsL=4*|~#H|$~OguknUl(z_`s`nB_;-?^P)QU#L69pYo42B+gnO|_1l`du? z^e;0z6C8C4Sh;%&v0};gpNIzTK}?|~`auvSa}Y)R8i1>;fp8-Qh+Gfk0>#D>xWfkj zaVg+t4Tu+w$O-%NnX(85g;L_=2p51!GQofa1T4T=$I+<0>sNyCx?gAv-5#`y@M z(vKMSJ@6$>h!t%~MAQ>LN~9%Llo*V_E_?udPZK(Tf_^ie^(8}$mLS006>fx=G$92v z6G<&36WaLyoRGsR@$78qgrMmh<~<$&QDZRs8UBr|CF%cBs?!1ui41q8O+m82?)f(| z(F`J9DwmxKW;_kCq4qP2-tKKfg3Lj5b~o_vz5nn`u*+%CK>yQ(cpnf&iVxViU=M1D zI8plxE#2mkP)XVTb^Wb?i03F|XN1$MLD9cH8#?cW)aDoBdf%=hvXv9@YUS)Ku>4&d zaj{rNM0S!O1y|YoFTNE{)J8T^!dPF6euAlF!C;;t7I$}&u8wH*SRFevyjKV0!>xnl zL*7XgY3qP><4)kd=p%BokPEa|&k5XjLqzVp4n%xmpGgp%gcb&Tu7sT*&t5(nUUGtrLU_ !CoU`I=Vn!2lxm|D>zir(o%Txhp` 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 V2XWIYlPQxivy)&F{Rk`c{{#9a$cz90 diff --git a/superx/WEB-INF/patch/patch_archive/patch_2022-07-11_bash_var.sh b/superx/WEB-INF/patch/patch_archive/patch_2022-07-11_bash_var.sh new file mode 100755 index 0000000..a53276e --- /dev/null +++ b/superx/WEB-INF/patch/patch_archive/patch_2022-07-11_bash_var.sh @@ -0,0 +1,40 @@ + + +export ANLEITUNG="Modul: KERN +PATCH 2022-07-11Generischer Export Tabellen mit JR +Pilotversion des Exports von Berichtsergebnissen im gener. Standardlayout nach Excel mit JR. Der Export bietet mehr Möglichkeiten der Fomatierung als der bisherige Excel Export (POI). + +Nach Einspielen des Patches müssen Sie Tomcat neu starten. +Achtung: Dieser Patch ist für SuperX 4.9 geeignet, nicht für HISinOne-BI. Für HISinOne-BI sind die Funktionen mit Version 2022.12 verfügbar. + + +Dateien: + +Datei: +images/icons/magic.svgLogo Berichtsassistent +Datei: +WEB-INF/lib/superx4.9.jarSuperX-Servlet +Datei: +WEB-INF/conf/edustore/db/install/upgrade/kern49_patch_jr.sqlErweiterung Tabelle sx_stylesheets um Spalte is_generic +Datei: +WEB-INF/conf/edustore/db/install/schluesseltabellen/sx_stylesheets_fuellen.sql +Datei: +WEB-INF/conf/edustore/db/install/schluesseltabellen/sx_stylesheet_tabelle_jrxml_einfuegen.sql +Datei: +WEB-INF/reports/simple_table.jrtxAusgelagerte Styles für JRXML +Datei: +xml/pageComponents_html.xslExport JR Button +Datei: +xml/tabelle_jrxml_a4_quer.xslXSL Stylesheet erzeugt JRXML +Datei: +xml/jr_templates.xslXSL Stylesheet erzeugt JRXML +Datei: +xml/viz_rpt_assistent.xslXSL Stylesheet Berichtsassistent +Änderungen: +Anpassung Stylesheets-Tabelle +Scriptfile: $SUPERX_DIR/db/install/upgrade/kern49_patch_jr.sqlAnpassung Stylesheets-Tabelle +Scriptfile: $SUPERX_DIR/db/install/schluesseltabellen/sx_stylesheets_fuellen.sqlAnpassung Stylesheets-Tabelle +Scriptfile: $SUPERX_DIR/db/install/schluesseltabellen/sx_stylesheet_tabelle_jrxml_einfuegen.sql +" +export MODULE_LIST="kern " + diff --git a/superx/WEB-INF/patch/patch_archive/patch_2022-07-11_readme.htm b/superx/WEB-INF/patch/patch_archive/patch_2022-07-11_readme.htm new file mode 100644 index 0000000..b45ac29 --- /dev/null +++ b/superx/WEB-INF/patch/patch_archive/patch_2022-07-11_readme.htm @@ -0,0 +1,116 @@ + + + + Patch + + + + + + + +

      + + diff --git a/superx/WEB-INF/patch/patch_archive/patch_2022-08-23_bash_var.sh b/superx/WEB-INF/patch/patch_archive/patch_2022-08-23_bash_var.sh new file mode 100755 index 0000000..6339711 --- /dev/null +++ b/superx/WEB-INF/patch/patch_archive/patch_2022-08-23_bash_var.sh @@ -0,0 +1,40 @@ + + +export ANLEITUNG="Modul: KERN +PATCH 2022-08-23Generischer Export Tabellen mit JR +Pilotversion des Exports von Berichtsergebnissen im gener. Standardlayout nach Excel mit JR. Der Export bietet mehr Möglichkeiten der Fomatierung als der bisherige Excel Export (POI). + +Nach Einspielen des Patches müssen Sie Tomcat neu starten. +Achtung: Dieser Patch ist für SuperX 4.9 geeignet, nicht für HISinOne-BI. Für HISinOne-BI sind die Funktionen mit Version 2022.12 verfügbar. + + +Dateien: + +Datei: +images/icons/magic.svgLogo Berichtsassistent +Datei: +WEB-INF/lib/superx4.9.jarSuperX-Servlet +Datei: +WEB-INF/conf/edustore/db/install/upgrade/kern49_patch_jr.sqlErweiterung Tabelle sx_stylesheets um Spalte is_generic +Datei: +WEB-INF/conf/edustore/db/install/schluesseltabellen/sx_stylesheets_fuellen.sql +Datei: +WEB-INF/conf/edustore/db/install/schluesseltabellen/sx_stylesheet_tabelle_jrxml_einfuegen.sql +Datei: +WEB-INF/reports/simple_table.jrtxAusgelagerte Styles für JRXML +Datei: +xml/pageComponents_html.xslExport JR Button +Datei: +xml/tabelle_jrxml_a4_quer.xslXSL Stylesheet erzeugt JRXML +Datei: +xml/jr_templates.xslXSL Stylesheet erzeugt JRXML +Datei: +xml/viz_rpt_assistent.xslXSL Stylesheet Berichtsassistent +Änderungen: +Anpassung Stylesheets-Tabelle +Scriptfile: $SUPERX_DIR/db/install/upgrade/kern49_patch_jr.sqlAnpassung Stylesheets-Tabelle +Scriptfile: $SUPERX_DIR/db/install/schluesseltabellen/sx_stylesheets_fuellen.sqlAnpassung Stylesheets-Tabelle +Scriptfile: $SUPERX_DIR/db/install/schluesseltabellen/sx_stylesheet_tabelle_jrxml_einfuegen.sql +" +export MODULE_LIST="kern " + diff --git a/superx/WEB-INF/patch/patch_archive/patch_2022-08-23_readme.htm b/superx/WEB-INF/patch/patch_archive/patch_2022-08-23_readme.htm new file mode 100644 index 0000000..20c8836 --- /dev/null +++ b/superx/WEB-INF/patch/patch_archive/patch_2022-08-23_readme.htm @@ -0,0 +1,116 @@ + + + + Patch + + + + + + + +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +

      +

      Patchnotes mit Administrationshilfe

      +

      made by MEMTEXT

      +

      +
      +
      +
      +
      +
      +
      +
      +
      +
      +

      Modul: KERN

      +

      PATCH 2022-08-23

      +
      +
      +
      +

      Achtung: Der Patch ist nur für aktuelle Modulversionen geeignet!

      +

      + Generischer Export Tabellen mit JR
      + Pilotversion des Exports von Berichtsergebnissen im gener. Standardlayout nach Excel mit JR. Der Export bietet mehr Möglichkeiten + der Fomatierung als der bisherige Excel Export (POI). +
      + Nach Einspielen des Patches müssen Sie Tomcat neu starten.
      + Achtung: Dieser Patch ist für SuperX 4.9 geeignet, nicht für HISinOne-BI. Für HISinOne-BI sind die Funktionen mit Version 2022.12 + verfügbar.
      + + +
      +

      Dateien:

      +
        +
      • Datei: images/icons/magic.svg
        Logo Berichtsassistent +
      • +
      • Datei: WEB-INF/lib/superx4.9.jar
        SuperX-Servlet +
      • +
      • Datei: WEB-INF/conf/edustore/db/install/upgrade/kern49_patch_jr.sql
        Erweiterung Tabelle sx_stylesheets um Spalte is_generic +
      • +
      • Datei: WEB-INF/conf/edustore/db/install/schluesseltabellen/sx_stylesheets_fuellen.sql
      • +
      • Datei: WEB-INF/conf/edustore/db/install/schluesseltabellen/sx_stylesheet_tabelle_jrxml_einfuegen.sql
      • +
      • Datei: WEB-INF/reports/simple_table.jrtx
        Ausgelagerte Styles für JRXML +
      • +
      • Datei: xml/pageComponents_html.xsl
        Export JR Button +
      • +
      • Datei: xml/tabelle_jrxml_a4_quer.xsl
        XSL Stylesheet erzeugt JRXML +
      • +
      • Datei: xml/jr_templates.xsl
        XSL Stylesheet erzeugt JRXML +
      • +
      • Datei: xml/viz_rpt_assistent.xsl
        XSL Stylesheet Berichtsassistent +
      • +
      +

      Änderungen:

      +
        +
      • Anpassung Stylesheets-Tabelle
        Scriptfile: $SUPERX_DIR/db/install/upgrade/kern49_patch_jr.sql +
      • +
      • Anpassung Stylesheets-Tabelle
        Scriptfile: $SUPERX_DIR/db/install/schluesseltabellen/sx_stylesheets_fuellen.sql +
      • +
      • Anpassung Stylesheets-Tabelle
        Scriptfile: $SUPERX_DIR/db/install/schluesseltabellen/sx_stylesheet_tabelle_jrxml_einfuegen.sql +
      • +
      +
      +

      Download

      + +

      In der klassischen SuperX-Variante liegt das db und webserver Verzeichnis auf einer Ebene meistens unterhalb von /home/superx. + Bei der webapps-Variante liegt alles unterhalb von webapps/superx.

      +
      + +
      +
      +
      +
      +
      +
      + + diff --git a/superx/WEB-INF/patch/xml/patch_2022-07-11.xml b/superx/WEB-INF/patch/xml/patch_2022-07-11.xml new file mode 100644 index 0000000..25eece9 --- /dev/null +++ b/superx/WEB-INF/patch/xml/patch_2022-07-11.xml @@ -0,0 +1,62 @@ + + + + + + + + + + +Generischer Export Tabellen mit JR
      +Pilotversion des Exports von Berichtsergebnissen im gener. Standardlayout nach Excel mit JR. Der Export bietet mehr Möglichkeiten der Fomatierung als der bisherige Excel Export (POI). +
      +Nach Einspielen des Patches müssen Sie Tomcat neu starten.
      +Achtung: Dieser Patch ist für SuperX 4.9 geeignet, nicht für HISinOne-BI. Für HISinOne-BI sind die Funktionen mit Version 2022.12 verfügbar.
      + +
      + + + + + + + + + +Logo Berichtsassistent +SuperX-Servlet +Erweiterung Tabelle sx_stylesheets um Spalte is_generic + + +Ausgelagerte Styles für JRXML +Export JR Button +XSL Stylesheet erzeugt JRXML +XSL Stylesheet erzeugt JRXML +XSL Stylesheet Berichtsassistent + + + + + + + + + + + + +Anpassung Stylesheets-Tabelle +Anpassung Stylesheets-Tabelle +Anpassung Stylesheets-Tabelle + + + + + + +
      + + + +
      diff --git a/superx/WEB-INF/patch/xml/patch_2022-08-23.xml b/superx/WEB-INF/patch/xml/patch_2022-08-23.xml new file mode 100644 index 0000000..0ebf9e1 --- /dev/null +++ b/superx/WEB-INF/patch/xml/patch_2022-08-23.xml @@ -0,0 +1,62 @@ + + + + + + + + + + +Generischer Export Tabellen mit JR
      +Pilotversion des Exports von Berichtsergebnissen im gener. Standardlayout nach Excel mit JR. Der Export bietet mehr Möglichkeiten der Fomatierung als der bisherige Excel Export (POI). +
      +Nach Einspielen des Patches müssen Sie Tomcat neu starten.
      +Achtung: Dieser Patch ist für SuperX 4.9 geeignet, nicht für HISinOne-BI. Für HISinOne-BI sind die Funktionen mit Version 2022.12 verfügbar.
      + +
      + + + + + + + + + +Logo Berichtsassistent +SuperX-Servlet +Erweiterung Tabelle sx_stylesheets um Spalte is_generic + + +Ausgelagerte Styles für JRXML +Export JR Button +XSL Stylesheet erzeugt JRXML +XSL Stylesheet erzeugt JRXML +XSL Stylesheet Berichtsassistent + + + + + + + + + + + + +Anpassung Stylesheets-Tabelle +Anpassung Stylesheets-Tabelle +Anpassung Stylesheets-Tabelle + + + + + + +
      + + + +
      diff --git a/superx/edit/kern/data_upload_edit.jsp b/superx/edit/kern/data_upload_edit.jsp new file mode 100644 index 0000000..572c87e --- /dev/null +++ b/superx/edit/kern/data_upload_edit.jsp @@ -0,0 +1,295 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Verzeichnis der Datei-Uploads + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="data_upload"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String tid = request.getParameter("tid"); +if(tid != null && !tid.equals("null")){ + filter +="tid="+tid; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      tid +
      + +
      + +<% sql = "select name, name from sx_tables order by name;"; %> +
      +
      + +
      + +
      +Pfad zur Datei (relativ zu webapps/superx/WEB-INF/ ) +
      + +
      + +
      +
      + +
      + +
      +(Nur bei CSV-Format)
      + +
      + +
      +utf8,ISO-8859-1 (Nur bei Text-Format)
      + +
      + +
      +Enthält die Datei Spaltenüberschriften? 1=ja,0=nein +
      + +
      + +
      +Anzahl der gelieferten Datensätze
      + +
      + +
      +1=ja,0=nein
      + +
      + +<% sql = "select key_apnr::char(10), trim(key_apnr) || '-' || trim(name) from organigramm order by trim(key_apnr) || '-' || trim(name);"; %> +
      +
      + +
      + +<% sql = "select tid, name from userinfo order by name;"; %> +
      +Person, die den Download eingereicht hat
      + +
      + +
      +Spezielle Email-Adresse für die Protokollierung des Ladens +
      + +
      + +
      +Datum/Uhrzeit des Imports in die SuperX-Datenbank +
      + +
      + +
      +1=Hinzufügen,0=Alles Löschen und Hinzufügen
      + +
      + +
      +Kommentar für Website (Datenlegende o.ä.).
      + +
      + +
      +Lieferung bestätigt (per mail an submission_email) +
      + +
      + +
      +1=ja,0=nein
      + +
      + +
      +1=ja,0=nein
      + +
      + +
      +Email vom Adminstrator, der über die Datei informiert + werden soll
      + +
      + +
      +1=ja
      + +
      + +
      +1=ja, Verarbeitung bestätigt (per mail an submission_email + und processor_email)
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/dbconnections_edit.jsp b/superx/edit/kern/dbconnections_edit.jsp new file mode 100644 index 0000000..1c9308e --- /dev/null +++ b/superx/edit/kern/dbconnections_edit.jsp @@ -0,0 +1,186 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske DB Connections verwalten + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="dbconnections"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String id = request.getParameter("id"); +if(id != null && !id.equals("null")){ + filter +="id="+id; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      id +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/dbconnections_list.jsp b/superx/edit/kern/dbconnections_list.jsp new file mode 100644 index 0000000..c03134f --- /dev/null +++ b/superx/edit/kern/dbconnections_list.jsp @@ -0,0 +1,113 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular DB-Connections + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="dbconnections"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + + + + + + + + + + + + + + +
      + + +Details
      + + + <% + if(currentRow_dbconnections != null) +{ +%>?id=" onClick="javascript:neu=window.open('<%= response.encodeURL("/superx/edit/kern/dbconnections_edit.jsp") %>?id=','_blank','directories=no,location=no,menubar=no,toolbar=no,scrollbars=yes,resizable=yes,width=800,height=600'); return false;">Details<% + } +%>
      +
      + diff --git a/superx/edit/kern/felderinfo_edit.jsp b/superx/edit/kern/felderinfo_edit.jsp new file mode 100644 index 0000000..65673ce --- /dev/null +++ b/superx/edit/kern/felderinfo_edit.jsp @@ -0,0 +1,244 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Felderinfo verwalten + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="felderinfo"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String tid = request.getParameter("tid"); +if(tid != null && !tid.equals("null")){ + filter +="tid="+tid; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +<% sql = "select element_value::char(15)::char(15), description from menu_element where menu_element.element = \'Feldtyp\' order by description;"; %> +
      +
      + +
      + +
      +
      + +
      + +<% sql = "select element_value, description from menu_element_mandatory where menu_element_mandatory.element = \'obligatorisch\' order by description;"; %> +
      +
      + +
      + +<% sql = "select element_value, description from menu_element_fieldmode where menu_element_fieldmode.element = \'Feldart\' order by description;"; %> +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/fm_templates_edit.jsp b/superx/edit/kern/fm_templates_edit.jsp new file mode 100644 index 0000000..77c235f --- /dev/null +++ b/superx/edit/kern/fm_templates_edit.jsp @@ -0,0 +1,161 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Freemarker-Templates bearbeiten + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="fm_templates"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String tid = request.getParameter("tid"); +if(tid != null && !tid.equals("null")){ + filter +="tid="+tid; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + + + + + + + + + + +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/fm_templates_list.jsp b/superx/edit/kern/fm_templates_list.jsp new file mode 100644 index 0000000..0baa115 --- /dev/null +++ b/superx/edit/kern/fm_templates_list.jsp @@ -0,0 +1,110 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Freemarker-Templates bearbeiten + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="fm_templates"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + + + + + + + + + + + + + + +
      + +Details
      + +<% + if(currentRow_fm_templates != null) +{ +%>?tid=" onClick="javascript:neu=window.open('<%= response.encodeURL("/superx/edit/kern/fm_templates_edit.jsp") %>?tid=','_blank','directories=no,location=no,menubar=no,toolbar=no,scrollbars=yes,resizable=yes,width=800,height=600'); return false;">Details<% + } +%>
      +
      + diff --git a/superx/edit/kern/group_field_pref_edit.jsp b/superx/edit/kern/group_field_pref_edit.jsp new file mode 100644 index 0000000..04f70ca --- /dev/null +++ b/superx/edit/kern/group_field_pref_edit.jsp @@ -0,0 +1,141 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Gruppen Feldattribute zuweisen + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="group_field_pref"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +<% +String tid = request.getParameter("tid"); +Hashtable gotoMyHash = null; +if(tid !=null) { +gotoMyHash= new Hashtable(); +gotoMyHash.put("tid",tid); +} +%> + + + + + + + +
      +

       

      +
      +

      + + +
      + + + + + + + + + +<%@ include file="/edit/kern/group_field_pref_edit_hidden.inc" %>
      Laufnummer +
      + +
      + +<% sql = "select tid, trim(name) from groupinfo order by trim(name);"; %> +
      +
      + +
      + +<% sql = "select tid, tid || ' - ' || trim(name) from felderinfo order by tid || ' - ' || trim(name);"; %> +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/group_field_pref_list.jsp b/superx/edit/kern/group_field_pref_list.jsp new file mode 100644 index 0000000..18b9613 --- /dev/null +++ b/superx/edit/kern/group_field_pref_list.jsp @@ -0,0 +1,110 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Gruppen Felderattribute zuweisen + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="group_field_pref"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + + + + + + + + + + + + + + +
      + +Details
      <% sql = "select tid, trim(name) from groupinfo order by trim(name);"; %> <% sql = "select tid, tid || ' - ' || trim(name) from felderinfo order by tid || ' - ' || trim(name);"; %><% + if(currentRow_group_field_pref != null) +{ +%>?tid=" onClick="javascript:neu=window.open('<%= response.encodeURL("/superx/edit/kern/group_field_pref_edit.jsp") %>?tid=','_blank','directories=no,location=no,menubar=no,toolbar=no,scrollbars=yes,resizable=yes,width=800,height=600'); return false;">Details<% + } +%>
      +
      + diff --git a/superx/edit/kern/group_masken_bez_edit.jsp b/superx/edit/kern/group_masken_bez_edit.jsp new file mode 100644 index 0000000..148776e --- /dev/null +++ b/superx/edit/kern/group_masken_bez_edit.jsp @@ -0,0 +1,122 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Gruppen und Masken + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="group_masken_bez"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String groupinfo_id = request.getParameter("groupinfo_id"); +if(groupinfo_id != null && !groupinfo_id.equals("null")){ + filter +="groupinfo_id="+groupinfo_id; +} +%> + +<% +String maskeninfo_id = request.getParameter("maskeninfo_id"); +if(maskeninfo_id != null && !maskeninfo_id.equals("null")){ + filter +=",maskeninfo_id="+maskeninfo_id; +} +%> + + + + + + + + + + + + + + +
      + +
      + + + + <% sql = "select tid, sp_trunc_string((tid || ' - ' || trim(name)),60) from groupinfo order by sp_trunc_string((tid || ' - ' || trim(name)),60);"; %> <% sql = "select tid, sp_trunc_string((tid || ' - ' || trim(name)),60) from maskeninfo order by sp_trunc_string((tid || ' - ' || trim(name)),60);"; %>
      +
      + diff --git a/superx/edit/kern/group_sachgeb_bez_edit.jsp b/superx/edit/kern/group_sachgeb_bez_edit.jsp new file mode 100644 index 0000000..7a8d2a1 --- /dev/null +++ b/superx/edit/kern/group_sachgeb_bez_edit.jsp @@ -0,0 +1,122 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Gruppen und Sachgebiete + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="group_sachgeb_bez"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String groupinfo_id = request.getParameter("groupinfo_id"); +if(groupinfo_id != null && !groupinfo_id.equals("null")){ + filter +="groupinfo_id="+groupinfo_id; +} +%> + +<% +String sachgebiete_id = request.getParameter("sachgebiete_id"); +if(sachgebiete_id != null && !sachgebiete_id.equals("null")){ + filter +=",sachgebiete_id="+sachgebiete_id; +} +%> + + + + + + + + + + + + + + +
      + +
      + + + + <% sql = "select tid, name from groupinfo order by name;"; %> <% sql = "select tid, name from sachgebiete order by name;"; %>
      +
      + diff --git a/superx/edit/kern/group_sichtarten_edit.jsp b/superx/edit/kern/group_sichtarten_edit.jsp new file mode 100644 index 0000000..39a389f --- /dev/null +++ b/superx/edit/kern/group_sichtarten_edit.jsp @@ -0,0 +1,114 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Gruppen und Sichtarten + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="group_sichtarten"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String sichtart = request.getParameter("sichtart"); +if(sichtart != null && !sichtart.equals("null")){ + filter +="sichtart="+sichtart; +} +%> + + + + + + + + + + + + + + +
      + +
      + + <% sql = "select tid, name from groupinfo order by name;"; %> +
      +
      + diff --git a/superx/edit/kern/group_sichten_edit.jsp b/superx/edit/kern/group_sichten_edit.jsp new file mode 100644 index 0000000..60914a9 --- /dev/null +++ b/superx/edit/kern/group_sichten_edit.jsp @@ -0,0 +1,113 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Gruppen und Sichten + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="group_sichten"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String sicht_name_intern = request.getParameter("sicht_name_intern"); +if(sicht_name_intern != null && !sicht_name_intern.equals("null")){ + filter +="sicht_name_intern="+sicht_name_intern; +} +%> + + + + + + + + + + + + + + +
      + +
      + + <% sql = "select tid, name from groupinfo order by name;"; %> <% sql = "select name_intern::char(200), tid || ' - ' || name from sichten order by tid || ' - ' || name;"; %>
      +
      + diff --git a/superx/edit/kern/groupinfo_edit.jsp b/superx/edit/kern/groupinfo_edit.jsp new file mode 100644 index 0000000..0a7af74 --- /dev/null +++ b/superx/edit/kern/groupinfo_edit.jsp @@ -0,0 +1,244 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Gruppen verwalten + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="groupinfo"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String tid = request.getParameter("tid"); +if(tid != null && !tid.equals("null")){ + filter +="tid="+tid; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + + + + + + + + + + +<%@ include file="/edit/kern/groupinfo_edit_sichtarten.inc" %> + + +
      tid +
      + +
      + +
      +
      Sachgebiete + + + + + + + + + + + + + +
      +
      + +<% sql = "select tid, name from sachgebiete order by name;"; %> +
      +
      +
      Masken + + + + + + + + + + + + + +
      +
      + +<% sql = "select tid, sp_trunc_string((tid || ' - ' || trim(name)),60) from maskeninfo order by sp_trunc_string((tid || ' - ' || trim(name)),60);"; %> +
      +
      +
      Sichten + + + + + + + + + + + + + +
      +
      + +<% sql = "select name_intern::char(200), tid || ' - ' || name from sichten order by tid || ' - ' || name;"; %> +
      +
      +
      User + + + + + + + + + + + + + +
      +
      + +<% sql = "select tid, trim(benutzer) || ' (' || trim(name) || ')' from userinfo order by trim(benutzer) || ' (' || trim(name) || ')';"; %> +
      +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/hochschulinfo_edit.jsp b/superx/edit/kern/hochschulinfo_edit.jsp new file mode 100644 index 0000000..acaa140 --- /dev/null +++ b/superx/edit/kern/hochschulinfo_edit.jsp @@ -0,0 +1,162 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Hochschulinfo + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="hochschulinfo"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +<% +String hs_nr = request.getParameter("hs_nr"); +Hashtable gotoMyHash = null; +if(hs_nr !=null) { +gotoMyHash= new Hashtable(); +gotoMyHash.put("hs_nr",hs_nr); +} +%> + +<% +String name = request.getParameter("name"); +if(name != null && !name.equals("null")){ + filter +="name~'"+name+"'"; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + + + + + + + + + + + +
      + +
      + +<% sql = "select hs_nr, hs_nr || '-'::char(1) || name from hochschulen order by hs_nr || '-'::char(1) || name;"; %> +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/konstante_edit.jsp b/superx/edit/kern/konstante_edit.jsp new file mode 100644 index 0000000..260b776 --- /dev/null +++ b/superx/edit/kern/konstante_edit.jsp @@ -0,0 +1,166 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Konstante verwalten + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="konstanten"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +<% +String tid = request.getParameter("tid"); +Hashtable gotoMyHash = null; +if(tid !=null) { +gotoMyHash= new Hashtable(); +gotoMyHash.put("tid",tid); +} +%> + + + + + + + +
      +

       

      +
      +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + +
      +
      beschreibung +
      + +
      + +
      +
      Standardwert +
      Erläuterungstext +
      + +
      + +<% sql = "select tid, name from systeminfo order by name;"; %> +
      +
      + +
      + +<% sql = "select tid, name from sachgebiete order by name;"; %> +
      +
      Link zur Dokumentation +
      1=nicht änderbar,0=änderbar +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/konstanten_edit.jsp b/superx/edit/kern/konstanten_edit.jsp new file mode 100644 index 0000000..fcd07fa --- /dev/null +++ b/superx/edit/kern/konstanten_edit.jsp @@ -0,0 +1,141 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Konstanten + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="konstanten"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      +<% +String tid = request.getParameter("tid"); +Hashtable gotoMyHash = null; +if(tid !=null) { +gotoMyHash= new Hashtable(); +gotoMyHash.put("tid",tid); +} +%> + +<% +String beschreibung = request.getParameter("beschreibung"); +if(beschreibung != null && !beschreibung.equals("null")){ + filter +="beschreibung~'"+beschreibung+"'"; +} +%> + + + + + + + + + + + + + + +
      + + + + + + + + + + + +
      + + + + + + + <% sql = "select tid, name from systeminfo order by name;"; %> <% sql = "select tid, name from sachgebiete order by name;"; %> + + + + +
      +
      + diff --git a/superx/edit/kern/macro_masken_bez_edit.jsp b/superx/edit/kern/macro_masken_bez_edit.jsp new file mode 100644 index 0000000..32cfe0c --- /dev/null +++ b/superx/edit/kern/macro_masken_bez_edit.jsp @@ -0,0 +1,212 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Masken und Makros (Einzelbearbeitung) + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="macro_masken_bez"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String maskeninfo_id1 = request.getParameter("maskeninfo_id1"); +if(maskeninfo_id1 != null && !maskeninfo_id1.equals("null")){ + filter +="maskeninfo_id1="+maskeninfo_id1; +} +%> + +<% +String maskeninfo_id2 = request.getParameter("maskeninfo_id2"); +if(maskeninfo_id2 != null && !maskeninfo_id2.equals("null")){ + filter +=",maskeninfo_id2="+maskeninfo_id2; +} +%> + + + + + + + +
      +

       

      +
      +

      + + + +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + +<% sql = "select tid, name from maskeninfo order by name;"; %> +
      +
      + +
      + +<% sql = "select tid, name from maskeninfo order by name;"; %> +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/macro_masken_bez_list.jsp b/superx/edit/kern/macro_masken_bez_list.jsp new file mode 100644 index 0000000..dbbd045 --- /dev/null +++ b/superx/edit/kern/macro_masken_bez_list.jsp @@ -0,0 +1,129 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Masken und Makros (Liste) + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="macro_masken_bez"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String maskeninfo_id1 = request.getParameter("maskeninfo_id1"); +if(maskeninfo_id1 != null && !maskeninfo_id1.equals("null")){ + filter +="maskeninfo_id1="+maskeninfo_id1; +} +%> + +<% +String maskeninfo_id2 = request.getParameter("maskeninfo_id2"); +if(maskeninfo_id2 != null && !maskeninfo_id2.equals("null")){ + filter +=",maskeninfo_id2="+maskeninfo_id2; +} +%> + + + + + + + + + + + + + + +
      + + +Details
      + + + + <% sql = "select tid, name from maskeninfo order by name;"; %> <% sql = "select tid, name from maskeninfo order by name;"; %> +<% + if(currentRow_macro_masken_bez != null) +{ +%>?maskeninfo_id1=" onClick="javascript:neu=window.open('<%= response.encodeURL("/superx/edit/kern/macro_masken_bez_edit.jsp") %>?maskeninfo_id1=','_blank','directories=no,location=no,menubar=no,toolbar=no,scrollbars=yes,resizable=yes,width=800,height=600'); return false;">Details<% + } +%>
      +
      + diff --git a/superx/edit/kern/maske_system_bez_edit.jsp b/superx/edit/kern/maske_system_bez_edit.jsp new file mode 100644 index 0000000..01d6adc --- /dev/null +++ b/superx/edit/kern/maske_system_bez_edit.jsp @@ -0,0 +1,122 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Masken und Systeme + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="maske_system_bez"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String maskeninfo_id = request.getParameter("maskeninfo_id"); +if(maskeninfo_id != null && !maskeninfo_id.equals("null")){ + filter +="maskeninfo_id="+maskeninfo_id; +} +%> + +<% +String systeminfo_id = request.getParameter("systeminfo_id"); +if(systeminfo_id != null && !systeminfo_id.equals("null")){ + filter +=",systeminfo_id="+systeminfo_id; +} +%> + + + + + + + + + + + + + + +
      + +
      + + + + <% sql = "select tid, name from maskeninfo order by name;"; %> <% sql = "select tid, name from systeminfo order by name;"; %>
      +
      + diff --git a/superx/edit/kern/masken_felder_bez_edit.jsp b/superx/edit/kern/masken_felder_bez_edit.jsp new file mode 100644 index 0000000..b5e128b --- /dev/null +++ b/superx/edit/kern/masken_felder_bez_edit.jsp @@ -0,0 +1,122 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Masken und Felder + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="masken_felder_bez"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String maskeninfo_id = request.getParameter("maskeninfo_id"); +if(maskeninfo_id != null && !maskeninfo_id.equals("null")){ + filter +="maskeninfo_id="+maskeninfo_id; +} +%> + +<% +String felderinfo_id = request.getParameter("felderinfo_id"); +if(felderinfo_id != null && !felderinfo_id.equals("null")){ + filter +=",felderinfo_id="+felderinfo_id; +} +%> + + + + + + + + + + + + + + +
      + +
      + + + + <% sql = "select tid, name from maskeninfo order by name;"; %> <% sql = "select tid, name from felderinfo order by name;"; %>
      +
      + diff --git a/superx/edit/kern/maskeninfo_edit.jsp b/superx/edit/kern/maskeninfo_edit.jsp new file mode 100644 index 0000000..5ef6392 --- /dev/null +++ b/superx/edit/kern/maskeninfo_edit.jsp @@ -0,0 +1,250 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Maskeninfo verwalten + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="maskeninfo"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +<% +String tid = request.getParameter("tid"); +Hashtable gotoMyHash = null; +if(tid !=null) { +gotoMyHash= new Hashtable(); +gotoMyHash.put("tid",tid); +} +%> + +<% +String name = request.getParameter("name"); +if(name != null && !name.equals("null")){ + filter +="name~'"+name+"'"; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +<% sql = "select val(element_value), description from menu_element where menu_element.element = \'Frontend\' order by description;"; %> +
      +Applet=0, XML=1, Alle=2, 3=Angular
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/maskeninfo_style.jsp b/superx/edit/kern/maskeninfo_style.jsp new file mode 100644 index 0000000..d742d6b --- /dev/null +++ b/superx/edit/kern/maskeninfo_style.jsp @@ -0,0 +1,158 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Masken und Stylesheets + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="maskeninfo"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String tid = request.getParameter("tid"); +if(tid != null && !tid.equals("null")){ + filter +="tid="+tid; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + +
      Name der Maske +
      Stylesheets + + + + + + + + + + + + + + + + + +
      Tid des StylesheetsSortiernummer
      +
      + +<% sql = "select tid, filename from sx_stylesheets order by filename;"; %> +
      +
      +
      + +
      +Das Stylesheet mit der kleinsten Nummer wird zuerst + aufgerufen
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/organigramm_edit.jsp b/superx/edit/kern/organigramm_edit.jsp new file mode 100644 index 0000000..4fd6fcb --- /dev/null +++ b/superx/edit/kern/organigramm_edit.jsp @@ -0,0 +1,247 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Organigramm verwalten + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="organigramm"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String name = request.getParameter("name"); +if(name != null && !name.equals("null")){ + filter +="name~'"+name+"'"; +} +%> + +<% +String tid = request.getParameter("tid"); +if(tid != null && !tid.equals("null")){ + filter +=",tid="+tid; +} +%> + + + + + + + +
      +

       

      +
      +

      + + + +

      + + +
      +<%@ include file="/edit/kern/organigramm_tid.inc" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + +
      +
      + +
      + +<% sql = "select key_apnr::char(10), name from organigramm order by name;"; %> +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +<% sql = "select orgstruktur, description from menu_element_orgstructure order by description;"; %> +
      +gem. COB-GX:30=Lehreinheit,20=Fakultät
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      Quellsystem +
      ID im Quellsystem +
      BI-Komponente +
      + +
      + +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/organigramm_editnodeattrib.jsp b/superx/edit/kern/organigramm_editnodeattrib.jsp new file mode 100644 index 0000000..d4b8563 --- /dev/null +++ b/superx/edit/kern/organigramm_editnodeattrib.jsp @@ -0,0 +1,202 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Organigramm Sichtbarkeit verwalten + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="organigramm"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String name = request.getParameter("name"); +if(name != null && !name.equals("null")){ + filter +="name~'"+name+"'"; +} +%> + +<% +String tid = request.getParameter("tid"); +if(tid != null && !tid.equals("null")){ + filter +=",tid="+tid; +} +%> + + + + + + + +
      +

       

      +
      +

      + + + +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Tupelidentifier +
      Schlüssel +
      Übergeordneter Knoten im Baum +
      Drucktext +
      Name +
      Ebene im Baum +
      Lehre (1=ja) +
      Gültig von +
      Gültig bis +
      Strukturmerkmal +
      Langlebige ID +
      Übergeordnete langlebige ID +
      Eindeutiger Name/Schlüssel bei GX +
      Quellsystem +
      ID im Quellsystem +
      BI-Komponente +
      + +
      + +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/organigramm_list.jsp b/superx/edit/kern/organigramm_list.jsp new file mode 100644 index 0000000..49e8f65 --- /dev/null +++ b/superx/edit/kern/organigramm_list.jsp @@ -0,0 +1,102 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Organigramm + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="organigramm"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + + + + + + + + + + + + + + +
      + +
      + +
      +
      + diff --git a/superx/edit/kern/portlets_edit.jsp b/superx/edit/kern/portlets_edit.jsp new file mode 100644 index 0000000..13810be --- /dev/null +++ b/superx/edit/kern/portlets_edit.jsp @@ -0,0 +1,194 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Portlets verwalten + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sx_portlet"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String tid = request.getParameter("tid"); +if(tid != null && !tid.equals("null")){ + filter +="tid="+tid; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Feld ID +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +"green" oder "red"
      + +
      + +
      +z.B. "icon-user-plus" oder "icon-help-circled"
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +false=wird nicht ausgegeben, all=auch nicht angemeldete Personen sehen das Portlet.
      + +
      + +
      +
      + +
      + +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/portlets_list.jsp b/superx/edit/kern/portlets_list.jsp new file mode 100644 index 0000000..f5072d4 --- /dev/null +++ b/superx/edit/kern/portlets_list.jsp @@ -0,0 +1,129 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Portlets + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sx_portlet"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + + + + + + + + + + + + + + +
      + + + + + + + + +Details
      + + + + + + + + + + +<% + if(currentRow_sx_portlet != null) +{ +%>?tid=" onClick="javascript:neu=window.open('<%= response.encodeURL("/superx/edit/kern/portlets_edit.jsp") %>?tid=','_blank','directories=no,location=no,menubar=no,toolbar=no,scrollbars=yes,resizable=yes,width=800,height=600'); return false;">Details<% + } +%>
      +
      + diff --git a/superx/edit/kern/sachgeb_maske_bez_edit.jsp b/superx/edit/kern/sachgeb_maske_bez_edit.jsp new file mode 100644 index 0000000..63c67d8 --- /dev/null +++ b/superx/edit/kern/sachgeb_maske_bez_edit.jsp @@ -0,0 +1,122 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Masken und Sachgebiete + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sachgeb_maske_bez"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String maskeninfo_id = request.getParameter("maskeninfo_id"); +if(maskeninfo_id != null && !maskeninfo_id.equals("null")){ + filter +="maskeninfo_id="+maskeninfo_id; +} +%> + +<% +String sachgebiete_id = request.getParameter("sachgebiete_id"); +if(sachgebiete_id != null && !sachgebiete_id.equals("null")){ + filter +=",sachgebiete_id="+sachgebiete_id; +} +%> + + + + + + + + + + + + + + +
      + +
      + + + + <% sql = "select tid, name from sachgebiete order by name;"; %> <% sql = "select tid, name from maskeninfo order by name;"; %>
      +
      + diff --git a/superx/edit/kern/sachgeb_sichtarten_edit.jsp b/superx/edit/kern/sachgeb_sichtarten_edit.jsp new file mode 100644 index 0000000..ef5fe30 --- /dev/null +++ b/superx/edit/kern/sachgeb_sichtarten_edit.jsp @@ -0,0 +1,105 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Zuordnung Sichtarten zu Sachgebieten + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sachgeb_sichtarten"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + + + + + + + + + + + + + + +
      + +
      <% sql = "select tid, name from sachgebiete order by name;"; %> +
      +
      + diff --git a/superx/edit/kern/sachgeb_sichten_edit.jsp b/superx/edit/kern/sachgeb_sichten_edit.jsp new file mode 100644 index 0000000..f6e17e3 --- /dev/null +++ b/superx/edit/kern/sachgeb_sichten_edit.jsp @@ -0,0 +1,104 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Zuordnung Sichten zu Sachgebieten + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sachgeb_sichten"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + + + + + + + + + + + + + + +
      + +
      <% sql = "select tid, name from sachgebiete order by name;"; %> <% sql = "select name_intern::char(200), tid || ' - ' || trim(name) || ' (' || trim(name_intern) || ')' from sichten order by tid || ' - ' || trim(name) || ' (' || trim(name_intern) || ')';"; %>
      +
      + diff --git a/superx/edit/kern/sachgebiete_edit.jsp b/superx/edit/kern/sachgebiete_edit.jsp new file mode 100644 index 0000000..7b7b7bd --- /dev/null +++ b/superx/edit/kern/sachgebiete_edit.jsp @@ -0,0 +1,124 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + +Formular Sachgebiete verwalten + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sachgebiete"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      +<% +String tid = request.getParameter("tid"); +Hashtable gotoMyHash = null; +if(tid !=null) { +gotoMyHash= new Hashtable(); +gotoMyHash.put("tid",tid); +} +%> + +<% +String name = request.getParameter("name"); +if(name != null && !name.equals("null")){ + filter +="name~'"+name+"'"; +} +%> + + + + + + + + + + + + + + +
      + + +
      + + + + +
      +
      + diff --git a/superx/edit/kern/sichtart_rechttabelle_edit.jsp b/superx/edit/kern/sichtart_rechttabelle_edit.jsp new file mode 100644 index 0000000..34cdf31 --- /dev/null +++ b/superx/edit/kern/sichtart_rechttabelle_edit.jsp @@ -0,0 +1,165 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Spezielle Sichtart-Rechte Einzelbarbeitung + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sichtart_rechttabelle"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String tid = request.getParameter("tid"); +if(tid != null && !tid.equals("null")){ + filter +="tid="+tid; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + + + + + + + + + + + + + + +
      Laufnummer +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +Wenn der jew. User keine sichtartspez. Rechte hat, gibt es einen Fallback zur normalen user_institution (1=ja, 0=nein)
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/sichtart_rechttabelle_list.jsp b/superx/edit/kern/sichtart_rechttabelle_list.jsp new file mode 100644 index 0000000..212b723 --- /dev/null +++ b/superx/edit/kern/sichtart_rechttabelle_list.jsp @@ -0,0 +1,113 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Spezielle Sichtart-Rechte + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sichtart_rechttabelle"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + + + + + + + + + + + + + + +
      + + +Details
      + + +<% + if(currentRow_sichtart_rechttabelle != null) +{ +%>?tid=" onClick="javascript:neu=window.open('<%= response.encodeURL("/superx/edit/kern/sichtart_rechttabelle_edit.jsp") %>?tid=','_blank','directories=no,location=no,menubar=no,toolbar=no,scrollbars=yes,resizable=yes,width=800,height=600'); return false;">Details<% + } +%>
      +
      + diff --git a/superx/edit/kern/sichten_edit.jsp b/superx/edit/kern/sichten_edit.jsp new file mode 100644 index 0000000..d6036d1 --- /dev/null +++ b/superx/edit/kern/sichten_edit.jsp @@ -0,0 +1,372 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Sichten + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sichten"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +<% +String tid = request.getParameter("tid"); +Hashtable gotoMyHash = null; +if(tid !=null) { +gotoMyHash= new Hashtable(); +gotoMyHash.put("tid",tid); +} +%> + +<% +String art = request.getParameter("art"); +if(art != null && !art.equals("null")){ + filter +="art="+art; +} +%> + +<% +String name = request.getParameter("name"); +if(name != null && !name.equals("null")){ + filter +=",name~'"+name+"'"; +} +%> + + + + + + + +
      +

       

      +
      +

      + + + +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      tid +
      + +
      + +
      +Um zukünftig evtl. Hierarchien von Sichten abzubilden +
      + +
      + +<% sql = "select tid, name from systeminfo order by name;"; %> +
      +Querverweis zur Systeminfo
      + +
      + +
      +
      + +
      + +
      +10 ist standardsicht, 20 ist alt.Hierarchie
      + +
      + +
      +Es kann eine Kurzbeschreibung für interne Zwecke + hinterlegt werden
      + +
      + +
      +Bezeichnung der Sicht, die für User angezeigt wird +
      + +
      + +
      +
      + +
      + +
      +kann für Sortierungen benutzt werden
      + +
      + +
      +Angabe einer Tabelle mit + key,parent,name,gueltig_seit,gueltig_bis oder Prozedur, die mit + sp_ anfängt
      + +
      + +
      +id der alt.Hier in angegebenen Quelltabelle null bei + regulärer Hierarchie
      + +
      + +
      +Tabelle mit Infos zu TreeView aus Cob
      + +
      + +
      +id des benutzen trees aus Cob-Tabelle trees null bei + regulärer Hierachie
      + +
      + +
      +hauptsächl. für alte Organigramm-Sichten, hieß mal lehre +
      + +
      + +
      +sollen User Rechte berücksichtigt werden, derzeit von + Org.Sichten ausgewertet
      + +
      + +
      +zukünftig für erweiterte Rechtevergabe
      + +
      + +
      +zukünftig für erweiterte Rechtevergabe
      + +
      + +
      +soll der Stand geändert werden können
      + +
      + +
      +bei Bedarf noch Attribute der Sicht hinterlegt werden, auf + die man bei Bedarf Einschränkungen fahren kann
      + +
      + +
      +bei Bedarf noch Attribute der Sicht hinterlegt werden, auf + die man bei Bedarf Einschränkungen fahren kann
      + +
      + +
      +bei Bedarf noch Attribute der Sicht hinterlegt werden, auf + die man bei Bedarf Einschränkungen fahren kann
      + +
      + +
      +bei Bedarf noch Attribute der Sicht hinterlegt werden, auf + die man bei Bedarf Einschränkungen fahren kann
      + +
      + +
      +Max. Zeilen im Klappmenü
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +soll Sicht im Applet gecachet werden
      + +
      + +
      +soll Sicht im XML-Frontend gecachet werden
      + +
      + +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/stylesheet_field_edit.jsp b/superx/edit/kern/stylesheet_field_edit.jsp new file mode 100644 index 0000000..9cd8f4d --- /dev/null +++ b/superx/edit/kern/stylesheet_field_edit.jsp @@ -0,0 +1,142 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Stylesheets und zugehörige Felder + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="stylesheet_field"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String tid = request.getParameter("tid"); +if(tid != null && !tid.equals("null")){ + filter +="tid="+tid; +} +%> + +<% +String stylesheet_id = request.getParameter("stylesheet_id"); +if(stylesheet_id != null && !stylesheet_id.equals("null")){ + filter +=",stylesheet_id="+stylesheet_id; +} +%> + + + + + + + +
      +

       

      +
      +

      + + + +

      + + +
      + + + + + + +<%@ include file="/edit/kern/stylesheet_field_edit_tablename.inc" %><%@ include file="/edit/kern/stylesheet_field_edit_fieldname.inc" %>
      Tid +
      + +
      + +<% sql = "select tid, trim(caption) || ' (' || trim(filename) || ')' from sx_stylesheets where sx_stylesheets.relation = \'table\' order by trim(caption) || ' (' || trim(filename) || ')';"; %> +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/stylesheet_field_list.jsp b/superx/edit/kern/stylesheet_field_list.jsp new file mode 100644 index 0000000..62b58f4 --- /dev/null +++ b/superx/edit/kern/stylesheet_field_list.jsp @@ -0,0 +1,121 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Stylesheets und zugehörige Felder + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="stylesheet_field"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String stylesheet_id = request.getParameter("stylesheet_id"); +if(stylesheet_id != null && !stylesheet_id.equals("null")){ + filter +="stylesheet_id="+stylesheet_id; +} +%> + + + + + + + + + + + + + + +
      + + + +Details
      + + + <% sql = "select tid, trim(caption) || ' (' || trim(filename) || ')' from sx_stylesheets where sx_stylesheets.relation = \'table\' order by trim(caption) || ' (' || trim(filename) || ')';"; %> + + <% + if(currentRow_stylesheet_field != null) +{ +%>?tid=" onClick="javascript:neu=window.open('<%= response.encodeURL("/superx/edit/kern/stylesheet_field_edit.jsp") %>?tid=','_blank','directories=no,location=no,menubar=no,toolbar=no,scrollbars=yes,resizable=yes,width=800,height=600'); return false;">Details<% + } +%>
      +
      + diff --git a/superx/edit/kern/sx_captions_edit.jsp b/superx/edit/kern/sx_captions_edit.jsp new file mode 100644 index 0000000..7bf85d4 --- /dev/null +++ b/superx/edit/kern/sx_captions_edit.jsp @@ -0,0 +1,208 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Beschriftungen + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sx_captions"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String tid = request.getParameter("tid"); +if(tid != null && !tid.equals("null")){ + filter +="tid="+tid; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      tid +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +<% sql = "select element_value::char(10)::char(10), description from menu_element where menu_element.element = \'locale\' order by description;"; %> +
      +
      + +
      + +
      +
      + +
      + +
      +Bei Maskenfeldern wird dieses Feld für Tooltips genutzt. +
      + +
      + +<% sql = "select tid, name from sachgebiete order by name;"; %> +
      +
      + + +
      + +
      + +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/sx_downloads_edit.jsp b/superx/edit/kern/sx_downloads_edit.jsp new file mode 100644 index 0000000..3c772c6 --- /dev/null +++ b/superx/edit/kern/sx_downloads_edit.jsp @@ -0,0 +1,211 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Downloads + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sx_downloads"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String tid = request.getParameter("tid"); +if(tid != null && !tid.equals("null")){ + filter +="tid="+tid; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      tid +
      + +
      + +
      +
      + +
      + +<% sql = "select key_apnr::char(10), name from organigramm order by name;"; %> +
      +
      + +
      + +
      +Worauf bezieht sich der Download (für Ermittlung + Bezugsjahr,- Monat oder Sem.)
      + +
      + +
      +Datum des Imports in die SuperX-Datenbank
      + +
      + +
      +Kommentar für Website (Datenlegende o.ä.).
      + +
      + +
      +Verweis auf umfangreichere Anleitungen und Kommentare, + beginnend mit http:// oder relativ zu + http://superx-server:Port/superx/servlet
      + +
      + +
      +Mime-Type der Datei (für pdf z.B. application/pdf, html + etc).
      + +
      + +
      +Pfad zur Datei (relativ zu webapps/superx/WEB-INF/) +
      + +
      + +
      +
      + +
      + +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/sx_jobs_edit.jsp b/superx/edit/kern/sx_jobs_edit.jsp new file mode 100644 index 0000000..3adf1bf --- /dev/null +++ b/superx/edit/kern/sx_jobs_edit.jsp @@ -0,0 +1,194 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Ladejobs verwalten + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sx_jobs"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String tid = request.getParameter("tid"); +if(tid != null && !tid.equals("null")){ + filter +="tid="+tid; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      tid +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +<% sql = "select tid, name from sachgebiete order by name;"; %> +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/sx_jobs_list.jsp b/superx/edit/kern/sx_jobs_list.jsp new file mode 100644 index 0000000..e13825e --- /dev/null +++ b/superx/edit/kern/sx_jobs_list.jsp @@ -0,0 +1,114 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Ladejobs verwalten + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sx_jobs"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + + + + + + + + + + + + + + +
      + + + + +Details
      + + + + <% sql = "select tid, name from sachgebiete order by name;"; %><% + if(currentRow_sx_jobs != null) +{ +%>?tid=" onClick="javascript:neu=window.open('<%= response.encodeURL("/superx/edit/kern/sx_jobs_edit.jsp") %>?tid=','_blank','directories=no,location=no,menubar=no,toolbar=no,scrollbars=yes,resizable=yes,width=800,height=600'); return false;">Details<% + } +%>
      +
      + diff --git a/superx/edit/kern/sx_keywords_edit.jsp b/superx/edit/kern/sx_keywords_edit.jsp new file mode 100644 index 0000000..567ee5e --- /dev/null +++ b/superx/edit/kern/sx_keywords_edit.jsp @@ -0,0 +1,132 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Stichworte + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sx_keywords"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + + + + + + + +
      +

       

      +
      +

      + + +
      + + + + + + + + + + +
      Tupelidentifier +
      + +
      + +
      +
      + +
      + +
      +Wird derzeit noch nicht ausgewertet.
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/sx_repository_edit.jsp b/superx/edit/kern/sx_repository_edit.jsp new file mode 100644 index 0000000..71b69d4 --- /dev/null +++ b/superx/edit/kern/sx_repository_edit.jsp @@ -0,0 +1,233 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Hochschul-Repository + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sx_repository"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String tid = request.getParameter("tid"); +if(tid != null && !tid.equals("null")){ + filter +="tid="+tid; +} +%> + +<% +String sachgebiete_id = request.getParameter("sachgebiete_id"); +if(sachgebiete_id != null && !sachgebiete_id.equals("null")){ + filter +=",sachgebiete_id="+sachgebiete_id; +} +%> + + + + + + + +
      +

       

      +
      +

      + + + +

      + + +
      + + + + + + +<%@ include file="/edit/kern/sx_repository_edit_content.inc" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      tid +
      + +
      + +
      +Der Variablenname wird in Freemarker-Scripten, beginnend + mit Modulname-_..., z.B. SVA_Technisches_Personal
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +(Für weitere Gruppierungsebenen)
      + +
      + +<% sql = "select tid, name from sachgebiete order by name;"; %> +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/sx_repository_list.jsp b/superx/edit/kern/sx_repository_list.jsp new file mode 100644 index 0000000..e5619c0 --- /dev/null +++ b/superx/edit/kern/sx_repository_list.jsp @@ -0,0 +1,122 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Hochschul-Repository + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sx_repository"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String sachgebiete_id = request.getParameter("sachgebiete_id"); +if(sachgebiete_id != null && !sachgebiete_id.equals("null")){ + filter +="sachgebiete_id="+sachgebiete_id; +} +%> + + + + + + + + + + + + + + +
      + + + +Details
      + + + + + +<% + if(currentRow_sx_repository != null) +{ +%>?sachgebiete_id=<%= sachgebiete_id %>&tid=" onClick="javascript:neu=window.open('<%= response.encodeURL("/superx/edit/kern/sx_repository_edit.jsp") %>?sachgebiete_id=<%= sachgebiete_id %>&tid=','_blank','directories=no,location=no,menubar=no,toolbar=no,scrollbars=yes,resizable=yes,width=800,height=600'); return false;">Details<% + } +%>
      +
      + diff --git a/superx/edit/kern/sx_stylesheet_param_edit.jsp b/superx/edit/kern/sx_stylesheet_param_edit.jsp new file mode 100644 index 0000000..5329bf3 --- /dev/null +++ b/superx/edit/kern/sx_stylesheet_param_edit.jsp @@ -0,0 +1,162 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Stylesheet-Parameter + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sx_stylesheet_param"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String tid = request.getParameter("tid"); +if(tid != null && !tid.equals("null")){ + filter +="tid="+tid; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + + + + + + + + + + + + + + +
      Laufnummer +
      + +
      + +<% sql = "select tid, filename from sx_stylesheets order by filename;"; %> +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      +
      +
      +
      + diff --git a/superx/edit/kern/sx_stylesheet_param_list.jsp b/superx/edit/kern/sx_stylesheet_param_list.jsp new file mode 100644 index 0000000..22bb923 --- /dev/null +++ b/superx/edit/kern/sx_stylesheet_param_list.jsp @@ -0,0 +1,121 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Stylesheet-Parameter + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sx_stylesheet_param"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String stylesheet_id = request.getParameter("stylesheet_id"); +if(stylesheet_id != null && !stylesheet_id.equals("null")){ + filter +="stylesheet_id="+stylesheet_id; +} +%> + + + + + + + + + + + + + + +
      + + +Details
      + + <% sql = "select tid, filename from sx_stylesheets order by filename;"; %> + +<% + if(currentRow_sx_stylesheet_param != null) +{ +%>?tid=" onClick="javascript:neu=window.open('<%= response.encodeURL("/superx/edit/kern/sx_stylesheet_param_edit.jsp") %>?tid=','_blank','directories=no,location=no,menubar=no,toolbar=no,scrollbars=yes,resizable=yes,width=800,height=600'); return false;">Details<% + } +%>
      +
      + diff --git a/superx/edit/kern/sx_stylesheets_edit.jsp b/superx/edit/kern/sx_stylesheets_edit.jsp new file mode 100644 index 0000000..5fc4f63 --- /dev/null +++ b/superx/edit/kern/sx_stylesheets_edit.jsp @@ -0,0 +1,219 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Stylesheets verwalten + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="sx_stylesheets"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +<% +String tid = request.getParameter("tid"); +Hashtable gotoMyHash = null; +if(tid !=null) { +gotoMyHash= new Hashtable(); +gotoMyHash.put("tid",tid); +} +%> + +<% +String filename = request.getParameter("filename"); +if(filename != null && !filename.equals("null")){ + filter +="filename~'"+filename+"'"; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + +
      +Pfad und Dateiname. Für XSL-Stylesheets relativ zum + Verzeichnis: webapps/superx/xml, für JasperReports-Templates + relativ zu webapps/superx/WEB-INF/reports
      + +
      + +
      +wird für Hyperlinks benutzt
      + +
      + +
      +
      + +
      + +<% sql = "select element_value::char(10)::char(10), description from menu_element where menu_element.element = \'stylesheet-relation\' order by description;"; %> +
      +Gilt das Stylesheet für eine Maske oder eine Tabelle. Bei + JasperReports-Templates müssen Sie immer Tabelle wählen.
      + +
      + +<% sql = "select element_value::char(200), description from menu_element where menu_element.element = \'contenttype\' order by description;"; %> +
      +z.B.: text/html; charset=ISO-8859-1. Bei XSL Stylesheets + ist dies das Ausgabeformat, bei JasperReports Templates ist dies + das default Ausgabeformat
      + +
      + +
      +Wird nur für Ergebnistabellen ausgewertet, nicht für Masken-Stylesheets. Wenn 1, dann ist das Stylesheet für alle Ergebnistabellen nutzbar
      + +
      + +<% sql = "select element_value::char(10), description from menu_element where menu_element.element = \'stylesheet_type\' order by description;"; %> +
      +XSL,JRXML,XSL_JRXML,XSL_FO,XML,NATIVE,XLSX
      + +
      + +<% sql = "select element_value::char(10), description from menu_element where menu_element.element = \'usage_resultset_data\' order by description;"; %> +
      +Welche Ergebniszeilen soll das Stylesheet verarbeiten. S=Nur Schema, T=Aktuelle Baumstruktur,A=Alle Daten
      + +
      + +<% sql = "select element_value::char(10), description from menu_element where menu_element.element = \'jr_datasource\' order by description;"; %> +
      +Wird nur bei JR ausgewertet. Mögliche Werte: RS,XMLSOURCE
      + +
      + +
      +Pfad relativ zu webapps/superx
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/systeminfo_edit.jsp b/superx/edit/kern/systeminfo_edit.jsp new file mode 100644 index 0000000..2336f15 --- /dev/null +++ b/superx/edit/kern/systeminfo_edit.jsp @@ -0,0 +1,127 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Systeminfo verwalten + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="systeminfo"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      +<% +String tid = request.getParameter("tid"); +Hashtable gotoMyHash = null; +if(tid !=null) { +gotoMyHash= new Hashtable(); +gotoMyHash.put("tid",tid); +} +%> + +<% +String name = request.getParameter("name"); +if(name != null && !name.equals("null")){ + filter +="name~'"+name+"'"; +} +%> + + + + + + + + + + + + + + +
      + + +
      + + + + + +
      +
      + diff --git a/superx/edit/kern/themenbaum_edit.jsp b/superx/edit/kern/themenbaum_edit.jsp new file mode 100644 index 0000000..4597529 --- /dev/null +++ b/superx/edit/kern/themenbaum_edit.jsp @@ -0,0 +1,208 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Themenbaum + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="themenbaum"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +<% +String tid = request.getParameter("tid"); +Hashtable gotoMyHash = null; +if(tid !=null) { +gotoMyHash= new Hashtable(); +gotoMyHash.put("tid",tid); +} +%> + +<% +String maskeninfo_id = request.getParameter("maskeninfo_id"); +if(maskeninfo_id != null && !maskeninfo_id.equals("null")){ + filter +="maskeninfo_id="+maskeninfo_id; +} +%> + +<% +String name = request.getParameter("name"); +if(name != null && !name.equals("null")){ + filter +=",name~'"+name+"'"; +} +%> + + + + + + + +
      +

       

      +
      +

      + + + +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Tid +
      + +
      + +
      +
      + +
      + +<% sql = "select tid, sp_trunc_string((tid || '-' || name),60) from maskeninfo order by sp_trunc_string((tid || '-' || name),60);"; %> +
      +
      + +
      + +<% sql = "select tid, sp_trunc_string(name,50) from themenbaum order by sp_trunc_string(name,50);"; %> +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/trans_inst_edit.jsp b/superx/edit/kern/trans_inst_edit.jsp new file mode 100644 index 0000000..9786c47 --- /dev/null +++ b/superx/edit/kern/trans_inst_edit.jsp @@ -0,0 +1,183 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Kostenstellen transformieren (Details) + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="trans_inst"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +<% +String tid = request.getParameter("tid"); +Hashtable gotoMyHash = null; +if(tid !=null) { +gotoMyHash= new Hashtable(); +gotoMyHash.put("tid",tid); +} +%> + +<% +String systeminfo_id = request.getParameter("systeminfo_id"); +if(systeminfo_id != null && !systeminfo_id.equals("null")){ + filter +="systeminfo_id="+systeminfo_id; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + +
      Tupelidentifier +
      + +
      + +
      +
      + +
      + +<% sql = "select key_apnr::char(10), trim(key_apnr) || '-' || trim(name) from organigramm order by trim(key_apnr) || '-' || trim(name);"; %> +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +<% sql = "select tid, name from systeminfo order by name;"; %> +
      +
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/trans_inst_list.jsp b/superx/edit/kern/trans_inst_list.jsp new file mode 100644 index 0000000..9acb6b3 --- /dev/null +++ b/superx/edit/kern/trans_inst_list.jsp @@ -0,0 +1,121 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Kostenstellen transformieren (Liste) + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="trans_inst"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String systeminfo_id = request.getParameter("systeminfo_id"); +if(systeminfo_id != null && !systeminfo_id.equals("null")){ + filter +="systeminfo_id="+systeminfo_id; +} +%> + + + + + + + + + + + + + + +
      + + + +Details
      + + + + <% sql = "select key_apnr::char(10), trim(key_apnr) || '-' || trim(name) from organigramm order by trim(key_apnr) || '-' || trim(name);"; %> <% sql = "select tid, name from systeminfo order by name;"; %><% + if(currentRow_trans_inst != null) +{ +%>?systeminfo_id=<%= systeminfo_id %>&tid=" onClick="javascript:neu=window.open('<%= response.encodeURL("/superx/edit/kern/trans_inst_edit.jsp") %>?systeminfo_id=<%= systeminfo_id %>&tid=','_blank','directories=no,location=no,menubar=no,toolbar=no,scrollbars=yes,resizable=yes,width=800,height=600'); return false;">Details<% + } +%>
      +
      + diff --git a/superx/edit/kern/unload_params_edit.jsp b/superx/edit/kern/unload_params_edit.jsp new file mode 100644 index 0000000..66be08c --- /dev/null +++ b/superx/edit/kern/unload_params_edit.jsp @@ -0,0 +1,145 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Maske Entladeparameter verwalten + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="unload_params"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +<% +String tid = request.getParameter("tid"); +Hashtable gotoMyHash = null; +if(tid !=null) { +gotoMyHash= new Hashtable(); +gotoMyHash.put("tid",tid); +} +%> + + + + + + + +
      +

       

      +
      +

      + + +
      + + + + + + + + + + + + + + + + + + + +
      Laufnummer +
      Name der Variable +
      + +
      + +
      +
      Default-Wert der Variable +
      Beschreibung der Variable +
      + +
      + +<% sql = "select tid, name from systeminfo order by name;"; %> +
      +Dieser Wert darf keinesfalls geändert werden
      +
      +
      +
      + + + + + diff --git a/superx/edit/kern/user_group_bez_edit.jsp b/superx/edit/kern/user_group_bez_edit.jsp new file mode 100644 index 0000000..43a737b --- /dev/null +++ b/superx/edit/kern/user_group_bez_edit.jsp @@ -0,0 +1,124 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Benutzer und Gruppen verwalten + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="user_group_bez"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String userinfo_id = request.getParameter("userinfo_id"); +if(userinfo_id != null && !userinfo_id.equals("null")){ + filter +="userinfo_id="+userinfo_id; +} +%> + +<% +String groupinfo_id = request.getParameter("groupinfo_id"); +if(groupinfo_id != null && !groupinfo_id.equals("null")){ + filter +=",groupinfo_id="+groupinfo_id; +} +%> + + + + + + + + + + + + + + +
      + + +
      + + + + <% sql = "select tid, trim(benutzer) || ' (' || trim(name) || ')' from userinfo order by trim(benutzer) || ' (' || trim(name) || ')';"; %> <% sql = "select tid, name from groupinfo order by name;"; %> +
      +
      + diff --git a/superx/edit/kern/user_institution_edit.jsp b/superx/edit/kern/user_institution_edit.jsp new file mode 100644 index 0000000..4919551 --- /dev/null +++ b/superx/edit/kern/user_institution_edit.jsp @@ -0,0 +1,131 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Institutionsrechte von Benutzern + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="user_institution"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String ch110_institut = request.getParameter("ch110_institut"); +if(ch110_institut != null && !ch110_institut.equals("null")){ + filter +="ch110_institut="+ch110_institut; +} +%> + + + + + + + + + + + + + + +
      + + + + + + + + +
      + + <% sql = "select tid, benutzer from userinfo order by benutzer;"; %> + <% sql = "select key_apnr::char(10), trim(key_apnr) || ' - ' || trim(name) from organigramm order by trim(key_apnr) || ' - ' || trim(name);"; %> + + + + + + + +
      +
      + diff --git a/superx/edit/kern/user_masken_bez_edit.jsp b/superx/edit/kern/user_masken_bez_edit.jsp new file mode 100644 index 0000000..6ad4e29 --- /dev/null +++ b/superx/edit/kern/user_masken_bez_edit.jsp @@ -0,0 +1,124 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Maskenrechte von Benutzern + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="user_masken_bez"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String userinfo_id = request.getParameter("userinfo_id"); +if(userinfo_id != null && !userinfo_id.equals("null")){ + filter +="userinfo_id="+userinfo_id; +} +%> + +<% +String maskeninfo_id = request.getParameter("maskeninfo_id"); +if(maskeninfo_id != null && !maskeninfo_id.equals("null")){ + filter +=",maskeninfo_id="+maskeninfo_id; +} +%> + + + + + + + + + + + + + + +
      + + +
      + + + + <% sql = "select tid, benutzer from userinfo order by benutzer;"; %> <% sql = "select tid, sp_trunc_string((tid || ' - ' || trim(name)),60) from maskeninfo order by sp_trunc_string((tid || ' - ' || trim(name)),60);"; %> +
      +
      + diff --git a/superx/edit/kern/user_sachgeb_bez_edit.jsp b/superx/edit/kern/user_sachgeb_bez_edit.jsp new file mode 100644 index 0000000..2bcadfe --- /dev/null +++ b/superx/edit/kern/user_sachgeb_bez_edit.jsp @@ -0,0 +1,124 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Benutzer und Sachgebiete verwalten + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="user_sachgeb_bez"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String userinfo_id = request.getParameter("userinfo_id"); +if(userinfo_id != null && !userinfo_id.equals("null")){ + filter +="userinfo_id="+userinfo_id; +} +%> + +<% +String sachgebiete_id = request.getParameter("sachgebiete_id"); +if(sachgebiete_id != null && !sachgebiete_id.equals("null")){ + filter +=",sachgebiete_id="+sachgebiete_id; +} +%> + + + + + + + + + + + + + + +
      + + +
      + + + + <% sql = "select benutzer, benutzer from userinfo order by benutzer;"; %> <% sql = "select tid, name from sachgebiete order by name;"; %> +
      +
      + diff --git a/superx/edit/kern/user_sichtarten_edit.jsp b/superx/edit/kern/user_sichtarten_edit.jsp new file mode 100644 index 0000000..55ba706 --- /dev/null +++ b/superx/edit/kern/user_sichtarten_edit.jsp @@ -0,0 +1,114 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Benutzer und Sichtarten + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="user_sichtarten"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String sichtart = request.getParameter("sichtart"); +if(sichtart != null && !sichtart.equals("null")){ + filter +="sichtart="+sichtart; +} +%> + + + + + + + + + + + + + + +
      + +
      + + <% sql = "select tid, name from userinfo order by name;"; %> +
      +
      + diff --git a/superx/edit/kern/user_sichten_edit.jsp b/superx/edit/kern/user_sichten_edit.jsp new file mode 100644 index 0000000..aa4b9b3 --- /dev/null +++ b/superx/edit/kern/user_sichten_edit.jsp @@ -0,0 +1,115 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + + +Formular Benutzer und Sichten + + + +<%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="user_sichten"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + +

      +Logo +
      <% if(!mandantenid.equals("default") && !mandantenid.equals("")) +out.println("Mandant: " + mandantenid +""); +%>

      + +<% +String sicht_name_intern = request.getParameter("sicht_name_intern"); +if(sicht_name_intern != null && !sicht_name_intern.equals("null")){ + filter +="sicht_name_intern="+sicht_name_intern; +} +%> + + + + + + + + + + + + + + +
      + + +
      + + <% sql = "select tid, name from userinfo order by name;"; %> <% sql = "select name_intern::char(200), tid || ' - ' || name from sichten order by tid || ' - ' || name;"; %> +
      +
      + diff --git a/superx/edit/kern/userinfo_edit.jsp b/superx/edit/kern/userinfo_edit.jsp new file mode 100644 index 0000000..e5df6a8 --- /dev/null +++ b/superx/edit/kern/userinfo_edit.jsp @@ -0,0 +1,161 @@ +<%@ taglib uri="/WEB-INF/dbforms.tld" prefix="db" %> +<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %> + + + + + + + + + +Maske Benutzer verwalten + + + + + <%@ page import ="java.util.Hashtable" %> +<% +//HttpSession session=request.getSession(true); +if (request.getCharacterEncoding() == null) + request.setCharacterEncoding("UTF-8"); +Object userobject=request.getSession().getAttribute("UserID"); +String userid; +String filter=""; +String sql=""; +if(userobject == null) +{ +%> + + +<% +} +else + userid=userobject.toString(); +Object mandantobject=request.getSession().getAttribute("MandantenID"); +String mandantenid=""; +if(mandantobject != null) + mandantenid=mandantobject.toString(); +//der superx-Default-Mandant ist bei dbforms ein Leerstring +if(mandantenid.equals("default")) + mandantenid=""; +String db_form_name="userinfo"; +String erlaubt="0"; +%> +<%@ include file="/edit/check_authentication.inc" %> +<% +if(erlaubt.equals("0")) +{ +%> + + +<% +} + +String keyfieldsused="false"; +Object kf=request.getParameter("keyfieldsused"); +if(kf != null) +keyfieldsused=kf.toString(); + +%> + + + + +<% +String tid = request.getParameter("tid"); +if(tid != null && !tid.equals("null")){ + filter +="tid="+tid; +} +%> + + + + + + + +
      +

       

      +
      +

      + +

      + + +
      + + + + + + + + + + + + +<%@ include file="/edit/kern/userinfo_edit_admin.inc" %> + + + + +<%@ include file="/edit/kern/userinfo_edit_pw.inc" %><%@ include file="/edit/kern/userinfo_edit_pw_aendern.inc" %><%@ include file="/edit/kern/userinfo_edit_gruppe.inc" %><%@ include file="/edit/kern/userinfo_edit_sachgebiete.inc" %><%@ include file="/edit/kern/userinfo_edit_masken.inc" %><%@ include file="/edit/kern/userinfo_edit_institution.inc" %><%@ include file="/edit/kern/userinfo_edit_sieht_projekte.inc" %><%@ include file="/edit/kern/userinfo_edit_kostentraeger.inc" %><%@ include file="/edit/kern/userinfo_edit_sichten.inc" %><%@ include file="/edit/kern/userinfo_edit_sichtarten.inc" %>
      tid +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      + +
      + +
      +
      +
      +
      +
      + + + + + diff --git a/superx/xml/jr_templates.xsl b/superx/xml/jr_templates.xsl index 45e7f8f..068e83f 100644 --- a/superx/xml/jr_templates.xsl +++ b/superx/xml/jr_templates.xsl @@ -553,7 +553,7 @@ isIgnorePagination="{$isIgnorePagination}" > - + @@ -581,7 +581,7 @@ isIgnorePagination="{$isIgnorePagination}" > - + diff --git a/superx/xml/viz_rpt_assistent.xsl b/superx/xml/viz_rpt_assistent.xsl index 75966f0..21ef2fc 100644 --- a/superx/xml/viz_rpt_assistent.xsl +++ b/superx/xml/viz_rpt_assistent.xsl @@ -116,7 +116,26 @@ margin-bottom:30px; padding-bottom:10px; border-bottom:thick solid gray; } - +/*Selektionsfelder-Formular*/ +.label-container, .button-label { /*für Responsibility der Eingabefelder*/ + display: flex; + justify-content: left; + background: inherit; + min-width: 10.0em; } + +.label { /*für Selektionsfeld-Bezeichner*/ + font-family: sans-serif; + font-weight: normal; + font-size: 2rem; + margin-left: 1.0em; + margin-top: 0.4em; } + +.control-new { /*für einheitliche Controlbreite*/ + min-width: 25.0em; } + +.button { /*für Button-Bezeichner-Ausrichtung*/ + display: flex; + justify-content: left; } @@ -1234,6 +1253,30 @@ var platform='superx'; +
      +
      + +
      +   +   + +
      +
      +

      +

      + + +
      +

      +
      + +
      +
      @@ -1260,7 +1303,6 @@ var platform='superx'; -
      +
      +
      +
      +
      +
      + +
      +
      +
      +
      +
      +
      +
      +

      Modul: KERN

      +

      PATCH 2022-07-11

      +
      +
      +
      +

      Achtung: Der Patch ist nur für aktuelle Modulversionen geeignet!

      +

      + Generischer Export Tabellen mit JR
      + Pilotversion des Exports von Berichtsergebnissen im gener. Standardlayout nach Excel mit JR. Der Export bietet mehr Möglichkeiten + der Fomatierung als der bisherige Excel Export (POI). +
      + Nach Einspielen des Patches müssen Sie Tomcat neu starten.
      + Achtung: Dieser Patch ist für SuperX 4.9 geeignet, nicht für HISinOne-BI. Für HISinOne-BI sind die Funktionen mit Version 2022.12 + verfügbar.
      + + +
      +

      Dateien:

      +
        +
      • Datei: images/icons/magic.svg
        Logo Berichtsassistent +
      • +
      • Datei: WEB-INF/lib/superx4.9.jar
        SuperX-Servlet +
      • +
      • Datei: WEB-INF/conf/edustore/db/install/upgrade/kern49_patch_jr.sql
        Erweiterung Tabelle sx_stylesheets um Spalte is_generic +
      • +
      • Datei: WEB-INF/conf/edustore/db/install/schluesseltabellen/sx_stylesheets_fuellen.sql
      • +
      • Datei: WEB-INF/conf/edustore/db/install/schluesseltabellen/sx_stylesheet_tabelle_jrxml_einfuegen.sql
      • +
      • Datei: WEB-INF/reports/simple_table.jrtx
        Ausgelagerte Styles für JRXML +
      • +
      • Datei: xml/pageComponents_html.xsl
        Export JR Button +
      • +
      • Datei: xml/tabelle_jrxml_a4_quer.xsl
        XSL Stylesheet erzeugt JRXML +
      • +
      • Datei: xml/jr_templates.xsl
        XSL Stylesheet erzeugt JRXML +
      • +
      • Datei: xml/viz_rpt_assistent.xsl
        XSL Stylesheet Berichtsassistent +
      • +
      +

      Änderungen:

      +
        +
      • Anpassung Stylesheets-Tabelle
        Scriptfile: $SUPERX_DIR/db/install/upgrade/kern49_patch_jr.sql +
      • +
      • Anpassung Stylesheets-Tabelle
        Scriptfile: $SUPERX_DIR/db/install/schluesseltabellen/sx_stylesheets_fuellen.sql +
      • +
      • Anpassung Stylesheets-Tabelle
        Scriptfile: $SUPERX_DIR/db/install/schluesseltabellen/sx_stylesheet_tabelle_jrxml_einfuegen.sql +
      • +
      +
      +

      Download

      +
      +

      In der klassischen SuperX-Variante liegt das db und webserver Verzeichnis auf einer Ebene meistens unterhalb von /home/superx. + Bei der webapps-Variante liegt alles unterhalb von webapps/superx.

      +
      + +
      +
      +
      +
      +
      +