[Gelöst]Reports im Classic

12. August 2010 10:13

Hallo,
ich habe ein problem mit den Reports.
Undzwar. Habe ich einen Button für "Logo Drucken". Wird dieser gesetzt so wird das logo mit der fußzeile gedruckt.
Wen man jetzt den Hacken nicht mehr setzt. So werden die Logos nicht mehr anzeigt.
Das problem ist aber der Abstand. Wen man kein logo druckt dann druckt der Kunde auf Geschäftspapier.
Auf der ersten seite läst er ja platz auf dem Report. Aber sobalt eine zweite seite kommt dann fängt er wieder komplett oben an zu drucken.
Und wen man jetzt auf das geschäftpapier druckt dann ist ja kein platz für das logo und das logo wird von text überdruckt.
Gibt es da ne Einstellung das er den Abstand oben und unte immer macht. Egal ob das seite 1 oder 2 ist.

Es gibt die einsellung "Printofeverypage" diesen habe ich schon gesetzt aber er macht es trozdem nicht.
Zuletzt geändert von 3ug3n am 17. August 2010 09:59, insgesamt 1-mal geändert.

Re: Reports im Classic

12. August 2010 10:33

Hast du für das Property "PrintOnEveryPage" "Yes" eingetippt oder über den Drilldown ausgewählt? Ersteres klappt nämlich nicht. Wenn's das nicht ist, ist der Header möglicherweise für das falsche DataItem.

Re: Reports im Classic

12. August 2010 10:52

Das ist sicher ein Problem in der Sectionsteuerung.
Durch den Haken bist Du gezwungen, im C/AL-Code der Section den Status des Hakens abzufragen und die Section mit dem LOGO zu drucken oder eben nicht.
Eine Section kann aber nur Platz reservieren, wenn sie gedruckt wird.

Du darfst den Haken also nicht im Code der Section abfragen, sondern musst das PictureFeld des Logos visible oder nicht visible schalten.
Dann reserviert die Section immer den Platz, das LOGO wird aber nur gedruckt, wenn gewünscht.

Ich hoffe, das hilft.


Raimond

Re: Reports im Classic

12. August 2010 11:09

RaiNav hat geschrieben:Du darfst den Haken also nicht im Code der Section abfragen, sondern musst das PictureFeld des Logos visible oder nicht visible schalten.

Ich schätze, du meintest "Calcfields(Logo)" bzw. "Clear(Logo)"?

Aber so wie ich das verstehe, geht es doch nicht darum, das Logo zu drucken oder auch nicht, sondern den Header auf jeder Seite zu haben.

Re: Reports im Classic

12. August 2010 11:17

Rictig, aber wenn das Logo in einer eigenen Section steht, die mit CURRREPORT.SHOWOUTPUT(TRUE) angezeigt wird, wird der Platz für das LOGO
nicht "freigehalten", wenn das LOGO (Die Section) nicht gedruckt werden soll.

Der Parameter "Print on every Page" kommt nur in den Eigenschaften der Sections vor.

Raimond

PS: Jetzt fällt mir auf, das in dem Report u. U. 2 Header eingerichtet sind, einer als 1. Seite und einer als folgende Seiten.
Dann sollte der 2. Header so "groß" gezogen werden, das er der Abstand hält.

Re: Reports im Classic

12. August 2010 11:23

So wie ich das verstehe, soll die Section des Logos immer angedruckt werden, nur eben mal mit und mal ohne Logo. Wieso sollte er dann ShowOutput benutzen?

Aber vielleicht missverstehe ich das ja auch.

Re: Reports im Classic

12. August 2010 11:36

Naja, meines Wissens verhält sich der Report so, wenn jetzt mit Showoutput gearbeitet wird.

Kann ja sein, das ich die Frage falsch verstanden habe.

Ich schlag vor, die Section mit dem Logo immer zu drucken, dann bleibt der Abstand immer gleich.

Vielleicht sollten wir die Antwort abwarten, vielleicht bringt das Licht ins Dunkel.

Raimond

Re: Reports im Classic

12. August 2010 11:37

RaiNav hat geschrieben:Ich schlag vor, die Section mit dem Logo immer zu drucken, dann bleibt der Abstand immer gleich.

Wovon red ich denn die ganze Zeit :wink:

Re: Reports im Classic

12. August 2010 11:40

Das passiert jetzt aber anscheinend nicht :wink:

Mal sehen was Eugen dazu zu sagen hat.

Raimond

Re: Reports im Classic

12. August 2010 17:02

Danke für eure Antworten.
Nur leider komme ich net weiter.
Also ich habe da so:
2 Header
Einmal mit Logo einmal Ohne Logo
Und dann Folgenden C/AL Code in die abschnitte:
im Ohne LOGO

IF Logo_drucken THEN BEGIN
CurrReport.SHOWOUTPUT(FALSE);

END ELSE BEGIN
CurrReport.SHOWOUTPUT(TRUE);
END;

und im MIT LOGO

IF Logo_drucken THEN BEGIN
CurrReport.SHOWOUTPUT(TRUE);
CompanyInfo.CALCFIELDS(CompanyInfo.Picture);
END ELSE BEGIN
CurrReport.SHOWOUTPUT(FALSE);
END;


Das Komische ist aber das wen ich bei "PrintOnEveryPage = Yes" machen dann macht er das trozdem nicht....


Ich habe grad noch was probiert.
Undzwar nur einen Header mit dem Logo und dem Folgenden C/AL Code:

IF Logo_drucken THEN CompanyInfo.CALCFIELDS(CompanyInfo.Picture);

Geht aber immer noch net.. Der abstand auf der zweiten Seite bleibt nicht

Re: Reports im Classic

12. August 2010 21:08

Wenn du das ganze mit zwei Headern machst, ist einer mit dem Logo, der andere genauso groß, aber ohne Logo, und mit 'Print on every Page' = true.
Im Code der Section mit dem Logo steht folgender Code:
Code:
CompanyInfo.CALCFIELDS(CompanyInfo.Picture);
Currreport.Showoutput(Logo_drucken);

Im Code der Section ohne dem Logo steht folgender Code:
Code:
Currreport.Showoutput(not Logo_drucken);


Gruß, Fiddi

Re: Reports im Classic

13. August 2010 08:36

Das Calcfields wäre im OnPreDataItem des obersten DataItems aber viel besser aufgehoben. Und nur ein Header täte es auch :roll:

Re: Reports im Classic

13. August 2010 10:33

Also das Problem war ich hatte die flasche Sektion ausgewählt.
Kann man per C/AL code sagen PrintOnEveryPage:=FALSE oder True?
Kann man das selber so setzen?

Re: Reports im Classic

13. August 2010 10:36

das Setzen geht nur in der Property, nicht per Programm.

Gruß, Fiddi

Re: Reports im Classic

13. August 2010 10:37

Geht also nur dort?

Re: Reports im Classic

13. August 2010 10:37

Nein, das geht mit dem Property "PrintOnEveryPage" -> Yes und dann mit CurrReport.ShowOutput(true oder false) den Ausdruck steuern.