•  Back 
  •  Phoenix 5.0 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  ATOS Hilfe 
  •  Show info about hypertext 
  •  View a new file 
Topic       : ATOS-Magazin Juni/Juli 1997
Author      : Das ATOS-Team
Version     : 3/97 (2.6.1997)
Subject     : ATOS Diskettenmagazine
Nodes       : 319
Index Size  : 8070
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : 
@help       : ATOS Hilfe
@options    : -i -s +zz -t2
@width      : 70
@hostname   : CAB     
@hostname   : CAB     
@hostname   : CAB     
@hostname   : CAB     
@hostname   : CAB     
@hostname   : CAB     
View Ref-FileRechnen im Bericht                               Das ATOS-Magazin 3/97

Von einem Bericht aus kann man auch endlich innerhalb der Druckausgabe 
auf die Programmiersprache (Rechenfunktion) von Phoenix zugreifen. 
Damit ist es jetzt nicht mehr notwendig, nur für die Ausgabe bestimm- 
ter Berechnungen extra Felder oder Tabellen anlegen zu müssen. Auch 
ist man damit wesentlich flexibler, wenn es darum geht, die Ausgabe 
eines Feldinhaltes und/oder Textes vom Inhalt bestimmter Datenfelder 
abhängig zu machen, als mit den entsprechenden Reportfunktionen 
({Feldname, "Text"} und {%Feldname}). Meine im Vorabbericht in der 
letzten ATOS-Ausgabe aufgestellte Behauptung, daß so etwas überhaupt 
nur in einem Report möglich sei, muß ich also hiermit revidieren.



Wie funktioniert das?

Zunächst müssen Sie dafür ein Textobjekt anlegen, da in einem Daten- 
feld-Objekt keine Berechnungen möglich sind (gerade hier macht es sich 
negativ bemerkbar, daß sich der Objekttyp nachträglich nicht mehr 
ändern läßt). Diesem Objekt wird nun eine Rechnung zugewiesen, indem 
Sie mit einem Doppelklick in den Objektrahmen das Eigenschaften-Fen- 
ster öffnen und unter "Text" die Rechnung eintragen. "Was?", werden 
Sie jetzt fragen, "in diesem mickrigen Editfeld soll ich eine ganze 
Rechnung unterbringen?" Nun, es geht wirklich! Dabei können Sie 
zwischen zwei verschiedenen Methoden wählen.

Erste Möglichkeit: Sie können die Rechnung hier direkt als Text 
eintragen. Zum Editieren solch einer "internen" Rechnung steht Ihnen 
jedoch tatsächlich nur dieses Editfeld zur Verfügung - und leider läßt 
sich der Text weder ins Klemmbrett kopieren noch an einen OLGA-Server 
übergeben. In der Praxis werden Sie diesen Weg also nur bei sehr ein- 
fachen Rechnungen beschreiten. Die zweite, "elegantere" Möglichkeit: 
Sie schreiben die Rechnung ganz normal wie bisher in einem Rechenfen- 
ster (F8) und geben dann im Bericht als Text für das betreffende 
Objekt einfach nur den Namen dieser Rechnung an. Dabei muß jedoch eine 
Besonderheit beachtet werden, die ich weiter unten noch näher 
erläutere.



Ganz einfach ...

Ich beschreibe einmal das Vorgehen anhand von zwei Beispielen. Eine 
einfache Anwendung ist das Ausdrucken von Adressen-Etiketten. Da die 
Position der Objekte im grafischen Bericht prinzipbedingt feststeht, 
können Sie hier nicht einfach jeweils einen Platzhalter für "Vorname" 
und "Name" einsetzen - je nach Länge des Vornamens ergäbe das eine 
unschöne Lücke. Um diese zu vermeiden, fassen Sie mit dem Additions- 
Operator die beiden Felder (mit dazwischengeschaltetem Leerzeichen) 
zusammen:


index=258
Das Gleichheitszeichen am Anfang ist nötig, damit Phoenix erkennt, daß es sich hier um eine Rechnung handelt. Ansonsten gelten die gleichen Regeln wie bisher beim Schreiben einer Rechnung: fester Text wird in doppelte Hochkommas eingefaßt; Feldnamen, Variablen und Zahlen nicht. Dies war ja nun eine sehr einfache Rechnung, die Sie ohne weiteres direkt im Eigenschaften-Fenster eingeben können; sie wird in diesem Fall, wie auch in der Abbildung zu erkennen war, nicht mit einem Semikolon abgeschlossen. Daher hier noch ein zweites Beispiel ... ... und etwas komplizierter Sie möchten eine Liste Ihrer Kakteensammlung ausdrucken. Einige der Kakteen haben zusätzlich einen Varietätsnamen, dieser soll mit voran- gestelltem var. hinter dem Artnamen erscheinen: Notocactus crassigibbus Ritt. Notocactus ottonis (Lehm.) Berg. var. vencluianus Schütz Bisher hätten Sie dazu dieses var. überall im Feld "Varietät" mit eingeben müssen, weil es im Report nicht möglich ist, abhängig vom Inhalt eines Feldes einen Text vor dem Feldinhalt auszugeben. Mit Phoenix 5.0 läßt sich das Ganze nun viel eleganter lösen. Sie öffnen ein Rechnungsfenster (F8) und schreiben folgende Rechnung: var erg; if Varietät<>'' then erg=Art+" var. "+Varietät; else erg=Art; end; erg=return(erg); Hier muß ich auf eine wichtige Besonderheit hinweisen: soll ein Rechenprogramm, das mehr als ein Kommando enthält, in einem Bericht verwendet werden, dann müssen Sie am Schluß dieser Rechnung die Funk- tion return benutzen. Diese hat die Aufgabe, das Rechnungsergebnis an den Bericht zu übergeben (die Wertzuweisung in der return-Funktion muß aus syntaktischen Gründen erfolgen, obwohl sie eigentlich überflüssig ist; hier kann also eine beliebige Variable stehen). Diese Rechnung speichern Sie nun z.B. unter dem Namen "B: Name" ab. Das B: macht sie in der Rechnungsliste auf den ersten Blick als von einem Bericht verwendete Rechnung kenntlich und verbessert so die Übersicht. Im Berichtfenster geben Sie dann für das betreffende Textobjekt nur noch den Rechnungsnamen an: =@B: Name Der Klammeraffe zeigt an, daß danach keine Rechnung folgt, sondern ein Rechnungs-Name; dieser darf nicht in Hochkommata eingeschlossen wer- den. Auch hier muß zu Beginn das Gleichheitszeichen stehen, sonst druckt Phoenix die Zeile so aus, wie sie da steht. In eine solche Rechnung lassen sich auch die vom Report her bekannten Variablen für Seitenzahlen, Systemdatum etc. verwenden. Da sie weder im Handbuch noch in der Online-Hilfe erwähnt werden, möchte ich sie hier kurz erklären: {PAGE} (Seitenzahl) {COUNT} (laufende Datensatz-Nummer) SYSDATE (Systemdatum) SYSTIME (Systemzeit) SYSTIMESTAMP (Systemdatum und -zeit) Um also beispielsweise die Datensatznummer in der Form "Nr. 1" auszu- geben, müssen Sie folgendes eingeben: ="Nr. "+{COUNT} Mehrzeilige Textfelder