Das Wissen aller Anwender nutzen

Im Allplan Connect Forum tauschen sich Anwender aus, geben wertvolle Tipps oder beraten sich bei ganz konkreten Aufgabenstellungen − auch international.
Und damit wirklich keine Frage unbeantwortet bleibt, unterstützen die Mitarbeiter des Technischen Supports ebenfalls aktiv das Forum.

Es erwarten Sie:

  • Foren-Vielfalt aus CAD Architektur, CAD Ingenieurbau uvm.
  • Tipps von User für User
  • international: Deutsch, Englisch, Italienisch, Französisch und Tschechisch

Melden Sie sich jetzt an und diskutieren Sie mit!

Zur Registrierung

[Frage] Attribute in Reports auswerten [Gelöst]

Schlagworte:
  • Report
  • Reportdesigner

Hallo zusammen,

kann mir jemand zeigen, wo es eine Übersicht gibt welche Attribute ich aus welcher
reporttyp unter "From" erhalte?

Zum Verständnis:
Ich wähle ein Select (Auswahlliste) aus, um die Datenmenge unter dem Punkt "From" auszuwählen.
In dieser Datenmenge kann ich mittels "Insert Data Fields" entsprechende Attribute suchen.
Ich finde allerdings keine Zusammenstellung, welches Attribut ich unter welcher Datenmenge finden kann.
Gibt es irgendwo eine sinnvolle Übersicht?
Hab ich das System richtig verstanden ?

Problem ist folgendes:

Ich suche mein Plan-Benutzerattribut Nr.1. Da ich den Report "Planübersicht und Planstruktur" Vorlage verwende,
kann ich dort sehen, dass unter From der Reporttyp "Laout History" und "Layout" eingesetzt wurden. Ich finde ohne
Probleme die weiteren Planattribute aber eben nicht mein Plan-Benutzerattribut. Ist dies unter einer anderen Datenmenge
zu finden ?

Bin gespannt auf eure Lösungsvorschläge..

Lösung anzeigen Lösung verbergen

Wenn das Benutzer-Attribut in der Attributauswahl nicht vorhanden ist, könnte es daran liegen, dass es im STD nicht definiert ist, und ein "Projekt-Attribut" ist. Diese Benutzer-Attribute werden nämlich in der Attribute-Auswahl nicht angezeigt. (Hatte ich schon mal vor Jahren angemerkt, dass dies sicherlich etwas verwirrend ist.)
Also 1): Herausfinden, ob das Projekt Büro-Attribute verwendet, oder nicht!
Wenn nich, dann die Attribut-Nummer des gewünschten Benutzer-Attributes herausfinden.
Das geht am sichersten, indem man die Datei \Prj\xml\AttributeDefinitionCollectionLocal.xml bzw.
AttributeDefinitionCollectionLocal_de.xml (ich weiss geade nicht mehr, welche genau jetzt die richtige ist) mit Notepad++ öffnet, und nach dem Attributnamen sucht. Dort steht dann irgendwo auch die ID (Nummer).

Diese Nummer beim Select eingeben als @Nummer@.

"@XXX@+"__"+@YYY@" ist dort nicht möglich, da @XXX@ eine "Datenspalte" in einem Datensatz darstellt.
(siehe SELECT in SQL)

Wenn man zwei Werte "verbinden" möchte, geht das nur in der Tabelle bei "Wert", mit einem Ausdruck wie diesem:

=Fields!XXX_Name.Value+"__"+Fields!YYY_Name.Value

Voraussetzung: Beide Attribute sind vom Typ "Text".

Anhänge (1)

Typ: image/png
79-mal heruntergeladen
Größe: 89,05 KiB
1 - 10 (12)

an sich musst du gar nicht wissen unter welcher Gruppe ein Attribut einsortiert ist.

schaue dir mal den Attribute Manager an, dort kannst du dir dein Attribut und die Enstprechende Nummer raussuchen.
du findest diesen über Allmenü > Service > Windows Explorer > CAD Programmordner --> dort im Ordner PRG die "attributemanager.exe" öffnen.
hier mit "Planattribute modifizieren" die Attribute angezeigt bekommen.

Im Report Designer kannst du nun in deinem eigenen Data Field die Nummer wie z.b. @1200@ für das Plan-Benutzerattribut 1 eintragen, oder mittlerweile auf die drei Punkte hinter der Nummer im Formelfeld den Formeleditor öffnen und dort als Formel @Plan-Benutzerattribut 1@ eingeben. Übrigens, Sobald du deine Eingabe mit "@" beginnst, erhältst du auch ein Dropdown Menü

Viele Grüße
Florian

LinkedIn-Profil

www.vollack.de

Anhänge (3)

Typ: image/png
74-mal heruntergeladen
Größe: 55,79 KiB
Typ: image/png
72-mal heruntergeladen
Größe: 5,55 KiB
Typ: image/png
66-mal heruntergeladen
Größe: 29,16 KiB

Das habe ich soweit verstanden und auch angewendet.
Der Report findet den Wert des Benuterattributes allerdings nicht.
Wenn es auch egal ist, in welchem "Select" das Attribut unterlegen ist,
bin ich langsam etwas ratlos.

Es gab Beiträge aus 2022, in denen die XML Dateien schuld daran sein sollen, bzw. nur die XML Datei
im Standard als Referenzdatei gefunden werden kann. Gibt es also keinen anderen Weg als
den Standard zu ändern?

Des Weiteren kann man in einem DataField direkt eine Zeichenfolge angeben?
Z.B. @XXX@+"__"+@YYY@
wenn ich das Datafield dann als Wert eintrage kommt meist kein Wert heraus.

Wenn das Benutzer-Attribut in der Attributauswahl nicht vorhanden ist, könnte es daran liegen, dass es im STD nicht definiert ist, und ein "Projekt-Attribut" ist. Diese Benutzer-Attribute werden nämlich in der Attribute-Auswahl nicht angezeigt. (Hatte ich schon mal vor Jahren angemerkt, dass dies sicherlich etwas verwirrend ist.)
Also 1): Herausfinden, ob das Projekt Büro-Attribute verwendet, oder nicht!
Wenn nich, dann die Attribut-Nummer des gewünschten Benutzer-Attributes herausfinden.
Das geht am sichersten, indem man die Datei \Prj\xml\AttributeDefinitionCollectionLocal.xml bzw.
AttributeDefinitionCollectionLocal_de.xml (ich weiss geade nicht mehr, welche genau jetzt die richtige ist) mit Notepad++ öffnet, und nach dem Attributnamen sucht. Dort steht dann irgendwo auch die ID (Nummer).

Diese Nummer beim Select eingeben als @Nummer@.

"@XXX@+"__"+@YYY@" ist dort nicht möglich, da @XXX@ eine "Datenspalte" in einem Datensatz darstellt.
(siehe SELECT in SQL)

Wenn man zwei Werte "verbinden" möchte, geht das nur in der Tabelle bei "Wert", mit einem Ausdruck wie diesem:

=Fields!XXX_Name.Value+"__"+Fields!YYY_Name.Value

Voraussetzung: Beide Attribute sind vom Typ "Text".

Anhänge (1)

Typ: image/png
79-mal heruntergeladen
Größe: 89,05 KiB

So, da das mein erstes Benutzerattribut ist, hat es die Nummer @12000@.
Die Attribute sind projektspezifisch gespeichert.

Mir kam gerde der Gedankenblitz, dass es sich hierbei um ein Datum handelt.
ich habe unter select im Format des Attributs "d" für -Date- eingetragen und es hat nun endlich funktioniert!

Danke für den Hinweis mit der Programmiersprache. Da es keine richitgen verständlichen
FAQ für einen komplett neuen Report gibt, sind solche kleinen Hinweise Goldwert.

Zum Schluss würde ich gerne Wissen, wie es sich mit wenn_dann-Funktionen verhält.
In der Box eingegen =IF([Vorabzug]="")""_ELSE_"Vorabzug " & [Vorabzug]

Das Funktioniert hier leider nicht wie gewollt.
Der Report wird nicht erstellt. Hat es vlt mit dem Format Datum zu tun ?

Bei "Wert" funktioniert das _IF_..._ELSE_... aus dem Formeleditor NICHT!
Dort muss man es folgendermaßen schreiben:

=IIF(Bedingung, Wert für Bedingung=true, Wert für Bedingung=false)

also in Deinem Fall:

=IIF(Fields!Vorabzug.Value="","","Vorabzug "&Fields!Vorabzug.Value)

Kommt die Bedingung IIF aus einer Programmiersprache(Datenbanksprache SQL) ?
Gibt es eine Funktionen-Übersicht mit Beispielen (wie im Formeleditor) die man sich zur
Hand nehmen kann?
Die Wenn_Dann-Funktion ist schließlich nicht das einzige was im Umgang vom Formeleditor abweicht.

Dass der Umgang im Report anders ist als in den Formeln der Beschriftungsbilder finde
ich allerdings sehr irritierend.

Nun gut...
Erst einmal VIELEN DANK für die Hilfen !
Ich habe gestern wieder viel dazu gelernt

Als einzige Beispiele gibt es die Reports, die Allplan mitliefert:
C:\ProgramData\Nemetschek\Allplan\2024\Etc\reports\deu

Ansonsten hilft (wie immer) nur eine Internet-Recherche zu "Mircosoft Report Viewer" oder ".rldc" .

Mir sind im laufe des Tages noch zwei Fragen gekommen,

Kann man die Auflistungsrichtung auch ändern ?
Allplan reiht die Listen nach unten an. Geht es auch nach rechts?

Zum anderen Frage ich mich, wie man die Auflistung sortieren kann.
Pläne sind derzeit nach den Plannummern Sortiert. Kann man dies Umstellen
auf die alphabetische Planbezeichnung?
Muss das Attribut, wonach sortiert wird, in dem Report auftauchen?

1. Auflistungsrichtung ändern? NEIN. Die Liste geht immer von oben nach unten!
D.h. jedes Datenset steht in einer Zeile, die Datenfelder in den Spalten.

2. Sortierung?
Sortierung kann man im fertigen Report ändern, indem man im Header der jeweiligen Spalte nach z.B. <CanGrow>true</CanGrow> einen UserSort einfügt (s. rdlc_usersort.png):

<UserSort>
    <SortExpression>=Fields!Name.Value</SortExpression>
</UserSort>

Der Name sollte dem Datenfeld entprechen, dessen Werte in der Spalte angezeigt werden.

Wenn man das mit NotePad++ in der *.rdlc-Datei gemacht hat, bekommen die Header Sortier-Pfeile, mit denen man die Sortierung steuern kann.(s. rdlc_sort.png)

Ich habe das mal beispielhaft in dem Report RaumText1_5 (s.RaumText1_5.zip) gemacht.

Anhänge (3)

Typ: image/png
39-mal heruntergeladen
Größe: 107,84 KiB
Typ: image/png
48-mal heruntergeladen
Größe: 21,97 KiB
Typ: application/zip
384-mal heruntergeladen
Größe: 4,41 KiB
1 - 10 (12)