2017-04-10 4 views
0

Mein Kristallbericht enthält Daten über Bücher, einschließlich einer Kennung (isbn, issn Bestellnummer usw.), des Autors und des Herausgebers.Priorisieren, welcher Bezeichner verwendet werden soll

Das ID-Feld speichert mehrere Möglichkeiten, das Buch zu identifizieren. Der Bericht zeigt einen beliebigen Bezeichner für diesen Datensatz an. Wenn ein Buch zwei Identifikatoren hat; issn und Bestellnummer, der Bericht zeigt augenblicklich einen scheinbar zufällig an.

Wie kann ich festlegen, welcher Typ basierend auf einer voreingestellten Reihenfolge verwendet werden soll? Ich dachte, eine Art Filter auf dem Feld könnte funktionieren, aber ich habe nicht herausgefunden, wie. Ich kann die Tabelle nicht bearbeiten, aber ich kann SQL innerhalb des Berichts verwenden.

Antwort

0

Wenn alle verschiedenen ID-Typen in einem einzigen Feld gespeichert sind, verwenden Sie am besten einen SQL-Befehl in Ihrem Bericht, um sie in mehrere virtuelle Felder aufzuteilen.

Gehen Sie zu Datenbankfelder/Datenbankexperte, erweitern Sie die Verbindung, die Sie verwenden möchten, und wählen Sie Befehl hinzufügen aus. Von hier aus können Sie eine benutzerdefinierte SQL-Anweisung schreiben, um die Informationen, die Sie gerade verwenden, zu erfassen und gleichzeitig das ID-Feld in mehrere verschiedene Felder zu trennen (soweit der Bericht betroffen ist). Die Tabelle bleibt unverändert.)

Der Trick ist herauszufinden, wie Sie Ihren Befehl schreiben, um die Trennung zu tun. Wir wissen nicht, wie Ihre Daten aussehen, Sie sind also von hier aus allein.

+0

Danke. Ich bin in der Lage, dies in SQL zu erreichen, habe aber gehofft, dass es auf dem Gebiet erreicht werden könnte, d. H. Durch Hinzufügen einer Formel zu dem Feld. Ich werde es weiter versuchen :) – tintanten

+0

In der Theorie könnten Sie das gleiche mit Formeln tun, aber Sie würden sich in den Fuß schießen: Führen Sie den Filter in der SQL und es wird behandelt, bevor der Bericht lädt. Sie müssen nicht zusätzliche Unterdrückung, Gruppierung, Null-Checker, die Werke hinzufügen. Schreiben Sie einfach die SQL und es wird eine Menge weniger Arbeit. – 4444

+0

Danke! Dies war der einfachste Weg, um das zu erreichen, was ich brauchte. – tintanten

0

Basierend auf den sehr wenigen Informationen, die Sie zur Verfügung gestellt haben, und wenn ich eine Schätzung machen sollte.Ich schlage vor, Sie verwenden das Formelfeld in Ihrem Bericht und dann verwenden Sie so etwas, um Ihr Ziel zu erreichen.

IF ISNULL{first_priority_field_name} OR {first_priority_field_name} = '' THEN 
{second_priority_field_name} 
ELSE 
{first_priority_field_name} 

Verwenden Sie eine verschachtelte IF-Anweisung, falls mehr als 2 Bezeichnerfelder vorhanden sind.

+0

Danke, aber das Feld ist nie null oder leer - ich wollte nur, dass es einen bestimmten Wert über einen anderen innerhalb des gleichen Feldes auswählen, wenn dieser Wert nicht existiert, dann wähle den nächsten. – tintanten

Verwandte Themen