[gelöst] Kontenschema drucken

31. Mai 2011 11:46

Hallo Ihr Navisioner,

wir haben im System ein Kontenschema angelegt. Jetzt wollen wir pro Globale Dimensinscode 1 das Kontenschema ausdrucken lassen. Im Bericht müssen wir erst nach der Dimension filtern und dann drucken. Dies müssen wir für jede Dimension machen. Also ziemlich aufwendig, da wir viele Kostenstelle haben(Globale Dimension 1 ist bei uns Kostenstelle).

Wir kann man das per Code automatisieren? Wie kann man den Report 25 - Kontenschema aufrufen und die Filter für die Dimension übergeben?

Der Filter für die Dimension wird ja über die Variabel Dim1Filter gesteuert. Wie kann ich per Report.Run ein Wert für diese Variabel übergeben?

Viele Grüsse
Zuletzt geändert von Be am 1. Juni 2011 14:45, insgesamt 1-mal geändert.

Re: Kontenschema drucken

31. Mai 2011 11:58

Hallo Be,

... man staunt immer wieder. Im Report 25 "Account Schedule" ist das schon vorbereitet: Es gibt die Funktion SetFilters(), die kannst Du vor dem RUN aufrufen. Damit sollte das was Du willst gehen.

LG Jens

Re: Kontenschema drucken

31. Mai 2011 16:14

Hallo,

das mit der Funktion hat geklappt. Wunderbar. Danke für die Info.

Jetzt habe ich aber ein weiteres Problem. ich habe den Report 25 als Variable "R25"deklarriert.
Mit R25.run kann ich den Report starten. Ich will aber das der Report direkt gedruckt wird, und nicht in die RequestForm geht.

Mit den Befehl REPORT.RUN(25,TRUE,TRUE) klappt es;
Wie mache ich das gleiche wenn ich den report als Variabekl deklariert habe?

Re: Kontenschema drucken

31. Mai 2011 17:37

Hallo Be,

etwas schwieriger. Aber auch hier ist die Onlinehilfe recht interessant :wink:

Ungefähr so:

<Deine Schleife>
r25.settableview(Kontenschema)
r25.setfilters(neue Filter)
r25.userequestform(false)
r25.run

Sollte dann noch jedes mal die Druckerauswahl kommen, gibts nur 2 Möglichkeiten:

- im Report das Property UseSystemPrinter auf yes stellen
- oder: eine entsprechende Druckerauswahl für den Rechner hinterlegen.

LG Jens

Re: Kontenschema drucken

1. Juni 2011 10:05

Hallo Jens,

mein Code lautet nun folgend


REPEAT
R25.SETTABLEVIEW(Kontenschema);
R25.SetAccSchedName(AccSchedName);
R25.SetColumnLayoutName(ColumnLayoutName);
R25.SetFilters(DateFilter,'','',DimValue.Code,'','','');
R25.USEREQUESTFORM(FALSE);
R25.RUN;
UNTIL DimValue.NEXT = 0;


Leider funktioniert es nicht ganz. Zwar wird jetzt automatisch gedruckt. Aber der Filter wird nicht übergeben.
Ich habe das Gefühl das durch den Befehl "R25.USEREQUESTFORM(FALSE);" der Filter nicht mitgegeben wird.

Re: Kontenschema drucken

1. Juni 2011 10:16

probiers mal anstelle von RUN mit:

Code:
R25.RUNMODAL;
CLEAR(R25);

Re: Kontenschema drucken

1. Juni 2011 11:51

Hi sweikelt,

danke für dein Beitrag. Leider klappt es nicht mit deinen Vorschlag

Re: Kontenschema drucken

1. Juni 2011 12:12

Setze die Filter auf deinen Record Kontenschema und dann verwende mal:

Code:
REPORT.RUNMODAL(REPORT::"Account Schedule",FALSE,FALSE,Kontenschema);
CLEAR(REPORT);


Damit sollte die Request Form auch nicht erscheinen und der Filter übernommen werden.

PS.: REPORT ist hier nicht deine Report Variable R25!

mfg,
winfy

Re: Kontenschema drucken

1. Juni 2011 14:13

Hallo,

Be hat geschrieben:Hallo Jens,

mein Code lautet nun folgend


REPEAT
R25.SETTABLEVIEW(Kontenschema);
R25.SetAccSchedName(AccSchedName);
R25.SetColumnLayoutName(ColumnLayoutName);
R25.SetFilters(DateFilter,'','',DimValue.Code,'','','');
R25.USEREQUESTFORM(FALSE);
R25.RUN;
UNTIL DimValue.NEXT = 0;


Leider funktioniert es nicht ganz. Zwar wird jetzt automatisch gedruckt. Aber der Filter wird nicht übergeben.
Ich habe das Gefühl das durch den Befehl "R25.USEREQUESTFORM(FALSE);" der Filter nicht mitgegeben wird.


hmmm. Soweit ich das sehen kann funktioniert SetFilters() in Report 25 nur wenn das Requestform geöffnet wird. Das lässt sich aber umgehen:

Auf OnPreReport muss der Code, der die DimFilter aus den in SetFilters() übergebenen Werten setzt, eingefügt werden. Darf aber nur ausgeführt werden wenn das Requestform nicht aufgeht:

Code:
Report - OnPreReport()
//OS001s os.jgl
IF UseHiddenFilters and not CurrReport.USEREQUESTFORM THEN BEGIN
  DateFilter := DateFilterHidden;
  BudgetFilter := BudgetFilterHidden;
  BusinessUnitFilter := BusinessUnitFilterHidden;
  Dim1Filter := Dim1FilterHidden;
  Dim2Filter := Dim2FilterHidden;
  Dim3Filter := Dim3FilterHidden;
  Dim4Filter := Dim4FilterHidden;
END;
//OS001e os.jgl
InitAccSched;


Das sollte die Filter dann auch in diesem Fall wirken lassen.

LG Jens

Re: Kontenschema drucken

1. Juni 2011 14:26

jep, das sollte funktionieren.

ich hab den rep. 25 um einige filteroptionen und um eine weitere SetFilter-Funktion erweitert, die natürlich nicht wie die Standard-SetFilters() arbeitet. deswegen hat der hier vorgestellte code nicht funktionieren können und ich hab mich verwundert am köpfchen kratzen müssen xD

Re: Kontenschema drucken

1. Juni 2011 14:45

Hallo,

ihr seid alle wirklich super. :-) Es klappt wunderbar. Jetzt druckt er alles in einen Rutsch durch. Prima.
Vielen dank an euch allen.

Viele Grüsse