|
Variable für Abfrage und Druckmaske
Ist es möglich eine Variable für die Abfrage bzw. erforderliche Druckmaske zu verwenden?
Beispiel: Habe für "Historische Werte" für jedes Kalenderjahr eine Tabelle mit zugehöriger Druckmaske. Abfrage wäre: local int jjjj = "2007" get in hilfe at 2,2 jjjj local view v1daten = from FAM,VTR&jjjj\\ SELECT ...\\ :"drucken": use v1daten PRINTER IS "HPDJ C20" REPORT v1daten WITH vst&jjjj PRINTER END Möchte alse in einem Hilfefenster die gewünscht Jahreszahl eingeben, so dass ich die Abfrage von VTR2007 und beim Druckauftrag die Druckmaske VST2007 erhalte. Funktioniert auf diesen Weg ja nicht und soll nur im Ansatz zeigen was ich meine. |
|
Wenn du die Variable vorher richtig definierst - JA
local str jjjj = "2007" get in hilfe at 2,2 jjjj jjjj = "vst"&jjjj REPORT v1daten WITH jjjj |
|
O.K., d. h. aber, dass ich drei Variablen brauche.
Habe ja die Abfrage ( VTRjjjj ) und die Druckmaske ( VSTjjjj ) und möchte aber die Jahreszahl nur einmal eingeben. local str jjjj = "2007" get in hilfe at 2,2 jjjj VTRjjjj = "vtr"&jjjj VSTjjjj = "vst"&jjjj ABFRAGE from KND,VTRjjjj REPORT v1daten WITH VSTjjjj Wäre das so korrekt? |
|
Ja das sieht "gut" aus :p
Nur musst du natürlich die beiden Variablen VTRJJJJ und VSTJJJJ als STR definieren. |
|
Versuch Mißlungen
Variable wird zwar korrekt umgesetzt (Anzeige am Bildschirm) aber bereits der Compiler reklamiert die Datei VTRJJJJ. Erkennt innerhalb der view-Abfrage VTRJJJJ also nicht als Variable an, sondern sucht nach VTRJJJJ.DF. Die Druckmaske wird mit VSTJJJJ auch nicht ausgewählt. War ein Versuch wert. Mach dann eben jedes Jahr eine neue Routine. |
|
Nimm das Compilerhandbuch zu Hand und schlag Seite 106 auf - vielleicht hast du ja irgendwo einen Fehler im Programm.
EDIT: Das Beispiel arbeitet mit einem VIEW Befehl - im Unterschied zum PREVIEW müssen hier die Felder natürlich nicht bekannt sein. Der Vorteil des PREVIEW lilegt darin, daß dem Compiler die Datenbankstruktur quasi zur Laufzeit schon bekannt ist. Demnach ist ein PREVIEW auch wesentlich schneller als ein VIEW. |
|
Danke, lt. Fehlerprotokoll ist nun vermutlich die Tabelle richtig erkannt, allerdings hapert es jetzt mit den Begrenzungszeichen \\.
Bis dato hatte ich FROM Tabelle1, Tabelle2\\ SELECT Feld1, Feld2,\\ Feld3 ... NEU: FROM Tabelle1, & Variable1\\ SELECT Feld1, Feld2,\\ Feld3 ... ODER FROM Tabelle1, & Variable1 & 'SELECT Feld1, Feld2,'\\ Feld3 ... Beide neuen Varianten zeigen lt. Fehlerprotokoll, dass die Folgezeile nicht richtig erkannt wird. Allerdings muss die Versuche jetzt zurück stellen. Stöbere dann später mal im Compiler-Handbuch. |
|
Hi,
ein dynamisches View muss im Compiler via String-Variable 'vordefiniert' werden. Dazu weist Du die gesamte Abfrage einer String-Variablen zu. Darin können dann alle Teile variabel sein: Datenbank, Bedingungen, Sortierung ... Im Programm musst Du dann bei der ersten konkreten Ansprache einer Spalte des Views den Typ voranstellen (der Compiler kann den Typen ja nicht feststellen, denn beim Compilieren ist noch nicht bekannt, wie die Abfrage lautet). Z.B. (*STR)test.name. Es schadet nicht, den Typen jedes mal anzugeben. Für die Druckmaske geht das nicht. Die kannst Du meines Wissens nur über eine Bedingungen festlegen: IF drucktyp = "2000" REPORT test WITH druckmaskenname ELSE IF drucktyp = 2001" REPORT test WITH druckmaskenname .... Schöne Grüße |
|
Schade, wenn das mit der Druckmaske nicht geht muss ich so oder so immer manuell ergänzen. Dann kann ich die Routine einfach vervielfältigen und je benötigtem Kalenderjahr ein eigenes View machen und jährlich ergänzen.
Vielen Dank für Eure erneute Mithilfe. |
|
Die Flinte gehört nicht gleich ins Korn. Manchmal hakt nur einfach eine Patrone, der Abzug klemmt oder es ist ne Platzpatrone dabei ... Wo ist das wirkliche Problem? Wieso musst Du für jedes Jahr eine eigene Druckmaske haben? Kann man vielleicht einen Druck einfach selber ausprogrammieren? Das ist meistens gar nicht so schwer. Gib mir ein paar mehr Informationen und dann sehen wir weiter.
|
| Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 Uhr. |
Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.