6. Juli 2009 08:55
Ich habe mir um verschiedene Konten auf Reports anzeigen zu lassen einige Checkboxes eingebaut. Dafür habe ich mir gl. Variablen des Typ Bool angelegt.
Als Beispiel hier ein kleiner Quellcode für eine Variable in dem entsprechenden DataItem:
IF Commerzbank = true then
Currreport.showoutput(false);
Mache ich jetzt einen Haken bei dieser Checkbox, so kommt eine Fehlermeldung, dass das aufgerufene Funktionsstück nur von eine Code Section aufgerufen werden kann.
Was mache ich falsch? Ich würde sehr geren die Seitenansicht sehen können.
Zuletzt geändert von misterelektro1981 am 6. Juli 2009 15:40, insgesamt 1-mal geändert.
6. Juli 2009 09:02
misterelektro1981 hat geschrieben:Ich habe mir um verschiedene Konten auf Reports anzeigen zu lassen einige Checkboxes eingebaut.
Ich nehme mal an, du meinst auf der Request Form.
IF Commerzbank = true then
Currreport.showoutput(false);
Mache ich jetzt einen Haken bei dieser Checkbox, so kommt eine Fehlermeldung, dass das aufgerufene Funktionsstück nur von eine Code Section aufgerufen werden kann.
Der Fehlergrund wurde dir genannt: CurrReport.SHOWOUTPUT steuert nur die Anzeige einer bestimmten Section zur Laufzeit. Die Funktion kann nur in den Triggern OnPreSection und OnPostSection aufgerufen werden.
Wo genau rufst du den Quelltext auf?
Scheinbar möchtest du bei Commerzbank = True ein bestimmtes DataItem nicht durchlaufen (und damit auch nicht ausdrucken). Dann gehört dies in den OnPreDataItem-Trigger des betroffenen DataItems:
- Code:
IF Commerzbank THEN
CurrReport.BREAK;
Schau dir doch mal die Onlinehilfe zu SHOWOUTPUT, SKIP und BREAK an.
6. Juli 2009 10:51
Vielen Dank es scheint zu klappen, jedoch kann ich es nur bedingt testen.
Ich habe in meinem Report den Total,Body(1) wo eine Bankverbindung hinterlegt ist und einen Total,Body(2) wo die andere Bank hinterlegt ist. Das Problem was ich habe, ist, dass das zugehörige DataItem Integer ist und Total heißt. (hier habe ich zum test nur das ganze für eine Variable getestet)
Schreibe ich dort den Quellcode rein, so wird beim setzen des Hakens entweder alles oder nichts angedruckt aber nicht wahlweise.
6. Juli 2009 10:58
Beschreib doch mal bitte, was sich in welchen Sections befindet und was davon ausgeblendet werden soll.
BREAK (DataItem) überspringt ein komplettes DataItem samt all seinen Sections.
SHOWOUTPUT (Sectio) überspringt eine komplette Section.
Möchtest du innerhalb einer Section Elemente ausblenden, so kannst du es wahlweise durch Variablenanpassung machen (z.B. bei Textvariablen diese leeren, dann ist sie auch unsichtbar) oder durch mehrere Sections unterschiedlichen Inhalts, die wahlweise eingeblendet werden.
6. Juli 2009 11:25
Also ich habe in 2 Sections jeweils ein Bankkonto hinterlegt (eigentlich nur eins, da ich mit der Verlinkung der Daten Probleme hatte und einfach nur ein Label zum testen eingebaut habe)
Die Sections heißen Total, Body(1) für Bankkonto X und Total, Body(2) für Bankkonto Y. Ich nehme an das dazugehörige DataItem ist dann der Integer Total.
Jetzt soll es so sein, dass wenn der Haken auf der Checkbox bei Bankkonto X gesetzt wird, soll auch nur dieses angezeigt werden und andersherum.
Schreibe ich jedoch den Quellcode in das oben genannte Data Item, so wird entweder alles oder nichts angedruchkt, genau wie du es beschrieben hast.
Ich hoffe das reicht an Info, sonst bitte nochmal kurz schreiben.
6. Juli 2009 11:32
misterelektro1981 hat geschrieben:Jetzt soll es so sein, dass wenn der Haken auf der Checkbox bei Bankkonto X gesetzt wird, soll auch nur dieses angezeigt werden
OK, da sich beide Sections ein DataItem teilen, kann die Sichtbarkeitssteuerung nur auf Section-Ebene erfolgen.
Trage also bei Section Body(1) in den OnPreSection-Trigger ein:
- Code:
CurrReport.SHOWOUTPUT(X-Variable = TRUE);
und
bei Body(2) im OnPreSection-Trigger ein:
- Code:
CurrReport.SHOWOUTPUT(Y-Variable = TRUE);
Statt X- und Y-Variable nimmst du nun deine verwendeten Boolean-Variablen.
Auf "= TRUE" kannst du sogar verzichten (also
- Code:
CurrReport.SHOWOUTPUT(X-Variable);
), doch so dürfte es einfacher für dich zu verstehen sein.
6. Juli 2009 11:59
Vielen lieben Dank, so klappt es prima.
Ich habe noch eine "kleine" weitere Frage. Wenn ich jetzt Daten fest auf einer Tabelle habe, wie bekomme ich es hin diese Daten auf meinen Report zu verlinken. Also konkret habe ich mir auf der Table Company Information einige Felder erstellt und gefüllt. Diese Daten ändern sich nicht (ist halt eine Bankverbindung) und sollen auf den Report drauf.
6. Juli 2009 12:50
misterelektro1981 hat geschrieben:Also konkret habe ich mir auf der Table Company Information einige Felder erstellt und gefüllt. Diese Daten ändern sich nicht (ist halt eine Bankverbindung) und sollen auf den Report drauf.
Wenn es sich wie hier um eine Tabelle handelt, die du nur anfangs ein einziges Mal aufrufen musst, dann lege für diese Tabelle eine globale Record-Variable an und hole sie dir (GET, FIND etc.) ein einem möglichst frühen Trigger, z.B. OnPreReport. Füge in einer Section deiner Wahl TextBoxes ein und trage als SourceExpr der Box das entsprechende Tabellenfeld an.
Wenn dir all das nicht wirklich viel sagt, schau dir lieber erst mal den Standard bzw. Istzustand an, um ein Bild zu bekommen. Das sind absolute Basics in C/AL, die du beherrschen solltest, wenn du solch eine Anforderung selber umsetzen möchtest. Wenn ich dir hierfür jetzt den kompletten Quelltext liefere, lernst du nichts dabei.
6. Juli 2009 14:37
Ich lerne wirklilch jeden Tag sehr sehr viel dazu, nur ist es leider sehr schwer ohne Vorkennstnisse etc. mit der Software zurecht zu kommen.
Naja egal ich habe jetzt über den GET Befehl die Daten reingeholt. (gl.Variable.GET dort wo du meinstest)
Ich habe nun Zugriff auf alle Felder, was ich schon mal gut finde.
Sagen wir mal meine beiden Checkbooxes heißen x und y:
Wenn ich nur bei x den Haken setzte geht alles wunderbar. Mache ich den Haken nur bei y so ist immer eine Seite an dieser Section leer und auf der nächsten Seite ist es richtig.
Mache ich den Haken bei beiden, so ist immer die erste Seite leer an dieser Stelle und auf der nächsten Seite tauchen beide Sections auf.
Was ist jetzt schon wieder los?
6. Juli 2009 14:41
misterelektro1981 hat geschrieben:Ich lerne wirklilch jeden Tag sehr sehr viel dazu, nur ist es leider sehr schwer ohne Vorkennstnisse etc. mit der Software zurecht zu kommen.
Naja egal ich habe jetzt über den GET Befehl die Daten reingeholt.
Mein Ziel (Hilfe zur Selbsthilfe) und dein Ziel (auf die Felder zugreifen) sind erreicht - ist doch toll
Was ist jetzt schon wieder los?
Ich habe einen vagen Verdacht, aber erst mal ausprobieren: Setze auf beiden Sections die Eigenschaft KeepWithNext = No.
Ist diese Eigenschaft Yes, versucht das Programm, beide Sections auf eine Seite gemeinsam zu packen, was beim Ausblenden von Sections zu unvorhersehbaren Seitenumbrüchen führen kann.
6. Juli 2009 14:53
DANKE, das war es gewesen, mein Tag ist gerettet. War zwar nur eine Kleinigkeit, aber es geht voran.
Ich wünsche noch einen schönen Tag.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.