Report. QueryRanges im Init setzen

13. April 2007 11:03

Standard-Report mit einer geklickten Query.

Wie kann ich im Init die Ranges the Query befüllen. Dies funktioniert anscheinend so, dass er die Werte beim ersten Aufruf (keine Nutzungsdaten) befüllt, beim zweiten Aufruf aber dann immer die Werte der Nutzungsdaten nimmt und damit die Werte aus Init überschreibt.

Kennt jemand einen guten Weg dieses umzustellen.

14. Juni 2007 11:27

Versuche bevor du das Query in der Init() aufbaust folgenden aufruf:

SysReportRun::getRunBaseReport(this.getLast());

Dann noch .clearRanges() machen.

Und dann das Query neu aufbauen.

hat bei mir (AX 3.0 SP4) so gut funktioniert und die SyslastValue Daten wurden nicht mehr verwendet...

Hoffe konnte dir helfen
Gruss Jürgen

...query neu aufbauen

15. Juni 2007 10:18

Hi,

danke erstmal. Allerdings will ich die Query doch nicht neu aufbauen. Die ist ja hin geklickt...

17. Juli 2007 13:56

Hallo Andi,

zufällig habe ich heute dazu etwas in meinem Blog geschrieben :)

Ich denke das ist genau das was du suchst.

Gruß
Mathias

Re: Report. QueryRanges im Init setzen

16. April 2013 09:51

Hallo,

auch wenn der Thread schon relativ alt ist, möchte ich meinen Senf dazu geben:

Ich hatte das Problem kürzlich (AX 2009). Meine Lösung - nach entsprechender Analyse - war recht einfach: Die Query im der Methode "initFromCaller" bearbeiten, z.B.:

Code:
public void initFromCaller(Args _args)
{
    ;
    if(!_args)
        return;

    inventTable = null;

    if(_args.dataset() == tableNum(InventTable) && _args.record() != null)
    {
        inventTable =  _args.record();

        if(inventTable.isFormDataSource())
        {
            inventTable_ds = _args.record().dataSource();
            inventTable = null;
        }
    }

    this.adjustQuery();  // in dieser Methode wird die Query angepasst! Wobei Query q = element.query() ist.
}


Diese Methode wird zwei mal durch das Framework aufgerufen - einmal vor und einmal nach dem setzen der Werte aus SysLastValue. Daher werden die gewünschten Änderungen am Query-Objekt nicht mehr überschrieben und vor allem im Dialog richtig angezeigt.

BTW: Das Member "promptLoadLastUsedQuery" der Query auf "false" zu setzen hat bei mir nicht geholfen... ggf. habe ich es zu spät gesetzt?

Alle Angaben ohne Gewähr ;)

Grüße,
Chris