Avatar

Jag3D Vorlage Katasterkonform (Allgemeines)

MichaeL ⌂, Bad Vilbel, Wednesday, 04.05.2022, 10:36 (vor 723 Tagen) @ Frakis

Hallo Frakis,

Muss ich den Code einfach nur in dem default File an der richtigen Stelle einfügen?

Am einfachsten ist es, wenn Du Dich zunächst mit dem bestehenden Template vertraut machst. Dieses Template wird mittels freemarker später umgesetzt zu einem Report. Die Reportausgabe kann eine einfache Textdatei sein oder eben eine HTML Datei, wie es der Default-Report derzeit nutzt. Ein kleines Beispiel für eine Template für eine Textdatei findest Du für die Formanalyse in \resources\ftl\juniform\Parameterlist.txt.ftlh. Die Doku ist ebenfalls sehr umfangreich.

Bei kleinen Sachen kann man alles in ein Haupttemplate schreiben. JAG3D wird Dir alle Templates anbieten, die im Verzeichnis \resources\ftl\jag3d\ liegen. Wenn Du dort also eine .ftlh-Datei ablegst, wir diese beim nächsten Start als potenzielles Template angeboten. Somit können für verschiedene Aufgaben auch unterschiedliche Reports erstellt werden. Diese ftlh-Dateien sind reine ASCII-Dateien, die Du mit einem reinen Texteditor wie Notepad++ öffnen und bearbeiten kannst.

Ich habe das Default-Template auf mehrere Dateien aufgesplittet, damit es übersichtlicher wird. Dies muss man zwingend nicht so machen. Du findest die Sub-Templates im Unterverzeichnis default. Diese Templates können nun per include zusammengesetzt werden. Durch das Aufteilen ist es übersichtlicher und - zumindest ich - finde schneller die Stellen, die ich anpassen möchte. Eine Tabelle besteht i.A. aus vier Dateien. Eine für die gesamte Tabelle XXX_table.ftlh, eine für den Tabellenkopf mit den Spaltenbezeichnungen und Einheiten XXX_thead.ftlh, eine mit den Tabelleninhalten XXX_tbody.ftlh und eine für den Tabellenfuß mit den zusammengefassten Daten XXX_tfoot.ftlh. Da es ein HTML Template ist, habe ich mich hier einfach an der zugehörigen HTML-Struktur für eine Tabelle orientiert. Um bei jeder Tabelle nun die a-priori Unsicherheiten der Gruppe mit anzuzeigen, habe ich bei den Beobachtungen das Sub-Template observation_table.ftlh erweitert. Ich wollte, dass diese Information in der Tabellenunterschrift ergänzt wird, weshalb ich meine Modifikation im caption-Element vorgenommen habe, und dort eine Liste ergänzt habe. Die Gestaltung habe ich via CSS dann realisiert. So sieht meine modifizierte Datei nun aus.

<#if observation_groups??>
 <#include "i18n/observation.ftlh" parse=true>
 <#list observation_groups as group>
  <#assign apply_angle_unit=false>
  <#if group.type == "DIRECTION" || group.type == "ZENITH_ANGLE">
   <#assign apply_angle_unit=true>
  </#if>
 
  <section>
   <h2>
    <#if group.type == "LEVELING">
     <#outputformat "plainText">${observation_type_map['levelling']}</#outputformat>:
    <#elseif group.type == "DIRECTION">
     <#outputformat "plainText">${observation_type_map['direction']}</#outputformat>:
    <#elseif group.type == "HORIZONTAL_DISTANCE">
     <#outputformat "plainText">${observation_type_map['horizontal_distance']}</#outputformat>:
    <#elseif group.type == "SLOPE_DISTANCE">
     <#outputformat "plainText">${observation_type_map['slope_distance']}</#outputformat>:
    <#elseif group.type == "ZENITH_ANGLE">
     <#outputformat "plainText">${observation_type_map['zenith_angle']}</#outputformat>:
    <#elseif group.type == "GNSS1D">
     <#outputformat "plainText">${observation_type_map['gnss1d']}</#outputformat>:
    <#elseif group.type == "GNSS2D">
     <#outputformat "plainText">${observation_type_map['gnss2d']}</#outputformat>:
    <#elseif group.type == "GNSS3D">
     <#outputformat "plainText">${observation_type_map['gnss3d']}</#outputformat>:
    </#if>
    ${group.name}
   </h2>
 
   <table class="j3d_datatable">
    <caption><#outputformat "plainText">
     ${observation_table_caption}</#outputformat>: ${group.name}
     <#if group.uncertainties??>
      <ul class="group_uncertainties">
       <#if apply_angle_unit>
        <#if group.uncertainties.zero_point_offset??><li>&sigma;<sub>a</sub> = <@printFormattedNumber value=group.uncertainties.zero_point_offset format=df_angle_uncertainty/><span class="unit">${unit_abbr_angle_uncertainty}</span></li></#if>
        <#if group.uncertainties.square_root_distance_dependent??><li>&sigma;<sub>b</sub> = <@printFormattedNumber value=group.uncertainties.square_root_distance_dependent format=df_length_uncertainty/><span class="unit">${unit_abbr_length_uncertainty}</span></li></#if>
        <#if group.uncertainties.distance_dependent??><li>&sigma;<sub>c</sub> = <@printFormattedNumber value=group.uncertainties.distance_dependent format=df_length_uncertainty/><span class="unit">${unit_abbr_length_uncertainty}</span></li></#if>
       <#else>
        <#if group.uncertainties.zero_point_offset??><li>&sigma;<sub>a</sub> = <@printFormattedNumber value=group.uncertainties.zero_point_offset format=df_length_uncertainty/><span class="unit">${unit_abbr_length_uncertainty}</span></li></#if>
        <#if group.uncertainties.square_root_distance_dependent??><li>&sigma;<sub>b</sub> = <@printFormattedNumber value=group.uncertainties.square_root_distance_dependent format=df_length_uncertainty/><span class="unit">${unit_abbr_length_uncertainty}</span></li></#if>
        <#if group.uncertainties.distance_dependent??><li>&sigma;<sub>c</sub> = <@printFormattedNumber value=group.uncertainties.distance_dependent format=df_scale_uncertainty/><span class="unit">${unit_abbr_scale_uncertainty}</span></li></#if>
       </#if>
      </ul>
     </#if>
    </caption>
    <#include "observation_thead.ftlh" parse=true>
    <#include "observation_tbody.ftlh" parse=true>
    <#include "observation_tfoot.ftlh" parse=true>
   </table>
  </section>
 </#list>
</#if>

Ich bin morgen noch auf einem Seminar und würde mir das am Donnerstag mal angucken.

Aber so wie es aussieht bekommt man das bestimmt hin mit der Ausgabe :).

Je nachdem wie viel Du sonst im DV-Bereich arbeitest ist es ggf. zunächst einfacher, mal das bestehende Template einfach zu modifizieren: Spalte in Tabelle hinzufügen, entfernen, tauschen usw. Danach stellt sich die Frage, ob Du das bestehende modifizieren willst oder lieber vollständig ein eigenes aufbaust. Ich würde Dir in jedem Fall raten, zunächst ein kleines Template mit wenigen Ausgaben mal selbst anzulegen. Anschließend kannst Du dann entscheiden ob es mehr Aufwand ist, dieses stetig zu erweitern oder eben das bestehende anzupassen.


Viele Grüße
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences


gesamter Thread:

 RSS-Feed dieser Diskussion