pawel.albatros
05.05.10, 13:42
Witam,
Piszę tę prośbę o pomoc, ponieważ mam następujący problem:
Muszę stworzyć raport, który uruchomi standardowy raport, przechwyci jego
wyniki do tabeli wewnętrznej, następnie obrobi je i pokaże na ekranie.
I zrobiłem to... prawie...
Używając instrukcji:
SUBMIT PROGRAM via SELECTION-SCREEN EXPORTING LIST TO MEMORY and return.
a następnie funkcji: LIST_FROM_MEMORY i LIST_TO_ASCI osiągnąłem to co
chciałem, tylko że mój raport zachowuje się w następujący sposób:
Pokaż ekran selekcyjny MOJEGO RAPORTU -> Pokaż ekran selekcyjny STANDARDOWEGO
RAPORTU -> Pokaż wyniki STANDARDOWEGO RAPORTU -> Następnie muszę się cofnąć ->
Pokaż wyniki MOJEGO RAPORTU.
Kroki 1 i 5 są dobre, ale chciałbym ominąć kroki 2, 3 i 4.
Próbowałem na kilka sposobów ale nie udawało mi się.
1) Użyłem instrukcji SUBMIT USING SELECTION-SET i program zadziałał, tylko że
za każdym razem dla wykonywania potrzebne byłoby stworzenie wariantu, co przy
funkcjonalności raportu jest niemożliwe do wyegzekwowania.
2) Próbowałem wywołać ekran selekcyjny z raportu standardowego i połączyć to z
użyciem instrukcji SUBMIT USING SELECTION-SCREEN SCRNR, tylko że nie wiem w
jaki sposób można w jednym programie wywołać ekran selekcyjny z drugiego programu.
3) Próbowałem znaleźć takie działanie funkcji SUBMIT, które pozwoliłoby na
wykonanie raportu standardowego bez wyświetlania jego wyników na ekranie,
czyli wykonanie go niejawnie, ale nie wiem w jaki sposób to zrobić.
Moje doświadczenie w programowaniu w ABAPie nie jest duże, więc proszę o pomoc
kogoś, kto mógłby mi podpowiedzieć jakieś rozwiązanie.
Program działa poprawnie, tylko że pewnie użytkownikom nie spodoba się że będą
musieli wykonywać coś, cofać się itp...
Z góry dziękuję za pomoc.
Proszę o odpowiedź tu lub lepiej mailowo: pawel.albatros@wp.pl
Hello,
I'm writing this request for help, because I've got a problem:
I need to create a report which executes another report, captures its results,
then modifies them and shows on the screen.
And I did it...almost...
Using instruction:
SUBMIT PROGRAM via SELECTION-SCREEN EXPORTING LIST TO MEMORY and return.
and then funtions: LIST_FROM_MEMORY and LIST_TO_ASCI I got what I wanted, but
the problem is that my report behaves like this:
Shows SELECTION-SCREEN for MY REPORT -> Shows SELECTION-SCREEN for STANDARD
REPORT -> Shows RESULTS of STANDARD REPORT -> Then I need to go backwards ->
Shows results od MY REPORT.
Steps 1 and 5 are good, but I'd like to skip steps 2, 3 and 4.
I tried some ideas, but I didn't make it.
1) I used the instruction SUBMIT USING SELECTION-SET and the program worked,
but in this case the user of this program would each time have to create a new
VARIANT, and according to this report's functionality it is unacceptable.
2) I tried to execute the SELECTION-SCREEN from the standard report and use it
with instruction SUBMIT USING SELECTION-SCREEN SCRNR, but I don't know how to
execute in MY PROGRAM the SELECTION-SCREEN from another program.
3) I tried to find how to use the SUBMIT function in order to execute the
standard report without showing it's SELECTION-SCREEN and RESULTS, but I don't
know how to do this.
My experience in programming in ABAP isn't big enough for this problem, so I'm
asking for Your help.
This program works good, but I know that for some users making something
extra, going backwards etc. will be unacceptable and annoying.
I'm waiting for the reply here or by e-mail, my address is: pawel.albatros@wp.pl
SUBMIT PROGRAM via SELECTION-SCREEN EXPORTING LIST TO MEMORY and return.
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = list_tab
EXCEPTIONS
not_found = 1
OTHERS = 2.
CALL FUNCTION 'LIST_TO_ASCI'
EXPORTING
LIST_INDEX = -1
WITH_LINE_BREAK = ' '
TABLES
LISTASCI = asci_tab
LISTOBJECT = list_tab
EXCEPTIONS
EMPTY_LIST = 1
LIST_INDEX_INVALID = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.