[57985] in SAPr3-news

home help back first fref pref prev next nref lref last post

Re: Dyn. SQL > ALV

daemon@ATHENA.MIT.EDU (Andreas Loch)
Wed Aug 30 06:49:22 2006

To: sapr3-news@mit.edu
Date: Wed, 30 Aug 2006 12:48:59 +0200
From: Andreas Loch <anchedo@anchedo.invalid>
Message-ID: <1hvky82b2pbcm.dlg@quant.anchedo.net>
Reply-To: nospam.reply@anchedo.net

30 Aug 2006 02:10:08 -0700, Frank Freyer:

> seit längerer Zeit überlege ich immer wieder mal, mir einen Report zu
> schreiben, mit dem ich einen SQL über ein Textfeld eingeben kann und
> das Resultat in einem ALV angezeigt bekomme. Das müsste sich eigentlich
> über dyn. Subroutinen, RTTI, etc.
> realisieren lassen. Leider habe ich noch keine Zeit dafür gefunden.
>
> Da solche Hilfsmittel in anderen Systemwelten Gang und Gäbe sind, kann
> ich mir nicht vorstellen, dass es so etwas nicht schon (bei irgend
> jemand in den lokalen Objekten) gibt.
> 
> Liege ich richtig?

Damit liegst Du definitiv richtig. Allerdings nutzt meine etwas
ältere Lösung kein RTTI bzw. RTTC, sondern erzeugt dynamisch ein
Unterprogramm (GENERATE SUBROUTINE POOL), in dem wiederum die
passende Tabelle oder Feldleiste (für SELECT SINGLE) im richtigen
Datenformat kreiert und als Übergabeparameter vom Typ ANY bzw. ANY
TABLE ins Programm zurückgegeben wird. Dort lasse ich ein Feldsymbol
auf meine Tabelle/Feldleiste zeigen und arbeite dann mit diesem in
der INTO-Klausel des SELECT-Statement weiter.

Das Ergebnis gebe ich dann als ALV-Liste aus, mit den Farben analog
der se16-Ausgabe (Schlüsselfelder blau, Fremdschlüssel grün).

Schwierigkeiten hatte ich eher beim Behandeln von Aggregatfunktionen
und JOINs, aber letztendlich lief das dann auch. Zumindest meistens. ;)

Leider ist meine Lösung schlecht auf ein anderes System übertragbar,
weil sie eigene globale Klassen und eigene Typen nutzt.


Andreas, gerade im Urlaub und darum obiges nur grob aus dem Gedächtis
rekonstruiert habend
-- 
ABAP Syntax Highlighting
deutsch: http://gigaschatten.de/abap/abap_de.html
english: http://gigaschatten.de/abap/abap_en.html

home help back first fref pref prev next nref lref last post