Ausgangspunkt ist eine Datenbank aus einer Tabelle mit mehreren Spalten (Datum, Werte1, … WerteN). Für alle Datensätze existieren Datums aber nicht immer alle Werte.
Beim Erstellen eines tabellarischen Reportes z.B. aus Datum und Wert3 erhalte ich dann u.U. Zeilen die nur das Datum aber keinen Wert enthalten (wenn eben keiner existiert). Nun möchte ich aber solche Zeilen nicht mit dargestellt haben. Die Abfrage soll also sofort in die nächste Zeile gehen wenn Wert3=leer ist.
Ich habe schon mit folgender Formel gebastelt: ( IF LENGTH(RuRohRein_coli) THEN RuRohRein_Datum ENDIF ). Das hat dann zwar ordentlich das Datum weggelassen, aber eine nun ganz leere Zeile war immer noch da.
Hat jemand eine Idee wie ich da vorgehen könnte? Geht das überhaupt?
Während des Reports kannst Du nichts mehr machen. Du könntest aber die Suchabfrage so verändern, dass nur solche Datensätze ausgewählt werden, bei denen Wert3 nichtleer ist.
vielen Dank für die schnelle Antwort. Das vorgeschlagene Verfahren klappt wenn nur eine Tabelle im Report ist.
Der Report ist aber ein knapp 300 seitiges Monster. Es gibt darin viele Tabellen die alle nach dem gleichen Strickmuster laufen: Datum Wert1 Wert2 oder Datum Wert65 Wert69 Wert70 etc. Nun habe ich überall mal “Zahnlücken” aber halt nie im gleichen Datensatz. Das heißt, ich müßte schon alle Datensätze selektieren.
Bisher habe ich im Vorgängerbericht die Tabellen einfach von Hand ausgewechselt. Es sind 66 Stück :(. Mein Ziel sollte eine gewisse Automatisierung sein. Gibt es da noch eine Möglichkeit?
Um Zeilen zu unterdrücken, kann man das notwendige Zeilenende für den Fall, DASS die Zeile ausgegeben werden soll, mit in die IF … THEN … Bedingung einbauen (CR ist das passende Kürzel).
Handelt es sich jedoch um einen Tabellen-Report (was offenbar bei WarpUser der Fall ist) und wurden dort bspw. mit IF … THEN …ELSE … entsprechende Voraussetzungen definiert, so erzeugt CR zwar (sehr schön, wenn benötigt) neue Zeilen bzw. unterdrückt sie, jedoch erfolgt dies ausschließlich in der aktuell generierten Tabellenzeile. Und ist eine Tabellenzeile erst einmal generiert, dann bleibt sie unter Umständen eben auch LEER. (Siehe: WarpUser, glucose)
Daraus folgt:
Für einen Tabellen-Report müsste es eine Funktion geben, die im aktiven Bedarfsfall verhindert, dass BASE eine neue Tabellenzeile generiert.
Ein aktiver Bedarfsfall liegt vor, wenn durch eine Formel (und nicht automatisch) sichergestellt werden soll, dass es keine LEEREN Tabellenzeilen geben darf.
Zurzeit kann man in einem Fließtext-Report ausgezeichnet Leerzeilen unterdrücken, wenn – wie Ulli schreibt – bspw. in den IF … THEN …ELSE-Strukturen mit CR entsprechend gearbeitet wird.
Ergänzend möchte ich hinzufügen, dass unter Verwendung von CR und TAB auch einfache (Tabellen)Strukturen innerhalb eines solchen Fließtext-Reports erstellt werden können. Das kann u.U. aufwändig sein. Der Lohn der Mühe ist die punktgenaue Darstellung von reportierten Datensätzen in Tabellenform ohne Leerzeilen – aber auch ohne Tabellen/Zellrahmen. Letzteres kann in Sekundenschnelle nachgeholt werden.
(Siehe: Dateianlage: „Fließtext-Report - Mit TAB und CR eine Struktur erzeugen.“
es war anders angedacht. Den großen Bericht habe ich zum Report gemacht und die 66 Tabellen darin durch 66 Abfragen auf die Datenbank ersetzt (naja bisher erst zwei). Wenn alles fertig ist, hoffe ich den kompletten Bericht mit aktuellen Daten jeweils auf Knopfdruck zu bekommen. Dann muß ich nur den eigentlichen Text (vielleicht 30 Seiten) durchsehen und eventuell ein paar Änderungen vornehmen. Die Arbeitsersparnis wäre enorm.
danke für alle Hinweise. Ich werde jetzt also mal versuchen so etwas Tabelliges aus dem Fließtextreport zu basteln. Wenn das schiefgeht bleibt ja immer noch die Möglichkeit mit Tabellenreport und manuellem Löschen der Leerzeilen zu arbeiten.
Schön wäre natürlich die genannte neue Funktion zum Unterdrücken von Leerzeilen oder sogar eine freie Gestaltung mittels Formeln.