Wymyśliłem sobie następujące zadanie:
Tabela1 ma 0..8 rekordów z danymi w kolumnach tabela1-pies tabela1-kot tabela1-papuga.
Tabela2 musi zostać zasilona danymi z tabeli 1, układ kolumn jest następujący:
tabela2-pies1 tabela2-kot1 tabela2-papuga1 tabela2-pies2 tabela2-kot2 tabela2-papuga2... itd do 8.
Zabierałem się do tego przez do N times/enddo po sprawdzeniu ile jest rekordów w tabela1,
ale poddałem się przy próbie pospawania N przez <fs> z polami tabeli2.
Mogę prosić o sugestię, którędy zaatakować ten temat?
Rekordy tabeli na pola rekordu - składnia
-
- Posty: 57
- Rejestracja: czw maja 23, 2013 6:49 pm
- Has thanked: 21 times
- Been thanked: 14 times
Re: Rekordy tabeli na pola rekordu - składnia
skoro układ kolumn jest ten sam, to nie wystarczy odczytać tabeli1 i przypisać jej do tabeli2?
Re: Rekordy tabeli na pola rekordu - składnia
Poniższa forma działa i chyba będzie w stanie zasygnalizować, co należałoby zmienić
Docelowo zasilam sobie gs_data_gorn danymi z infotypowego pa0183.
P_gorn to zakres interesujących mnie odznaczeń, otrzymany z ekranu selekcji.
Na ten moment sytuacja jest prosta, mam tylko 8 rekordów do obsłużenia, ale może ich być... dowolnie więcej.
Na chłopski rozum, jeśli kawałek kodu:
...cały czas się powtarza, to chętnie bym zamiast "8" wstawił jakąś zmienną, która rosłaby razem z sy-indexem do momentu, gdy zostaną przebadane wszystkie rekordy spełniające jakiś warunek.
Na 100% widziałem już gdzieś interesującą mnie składnię, ale nie jestem w stanie jej znaleźć/odtworzyć.
Docelowo zasilam sobie gs_data_gorn danymi z infotypowego pa0183.
P_gorn to zakres interesujących mnie odznaczeń, otrzymany z ekranu selekcji.
Kod: Zaznacz cały
IF p_gorn IS NOT INITIAL.
SELECT * FROM pa0183 INTO CORRESPONDING FIELDS OF TABLE lt_pa0183_g
UP TO 8 ROWS
WHERE pernr = pernr-pernr AND awdtp IN p_gorn ORDER BY datawyd DESCENDING.
IF sy-subrc NE 0.
gs_data_gorn-stopien_gorn_11 = 'nie posiada'.
ELSE.
"mamy zasilony itab więc popracujmy na nim
LOOP AT lt_pa0183_g INTO ls_pa0183_g.
IF sy-tabix = 1.
SELECT SINGLE awdtx FROM t5r02 INTO gs_data_gorn-stopien_gorn_11 WHERE sprsl = 'L' AND molga = '46' AND awdtp = ls_pa0183_g-awdtp.
gs_data_gorn-stopien_gorn_12 = ls_pa0183_g-nrllegit.
gs_data_gorn-stopien_gorn_13 = ls_pa0183_g-datawyd.
ENDIF.
IF sy-tabix = 2.
SELECT SINGLE awdtx FROM t5r02 INTO gs_data_gorn-stopien_gorn_21 WHERE sprsl = 'L' AND molga = '46' AND awdtp = ls_pa0183_g-awdtp.
gs_data_gorn-stopien_gorn_22 = ls_pa0183_g-nrllegit.
gs_data_gorn-stopien_gorn_23 = ls_pa0183_g-datawyd.
ENDIF.
* (kolejne 3 4 5 6 7 w tym samych schemacie)
IF sy-tabix = 8.
SELECT SINGLE awdtx FROM t5r02 INTO gs_data_gorn-stopien_gorn_81 WHERE sprsl = 'L' AND molga = '46' AND awdtp = ls_pa0183_g-awdtp.
gs_data_gorn-stopien_gorn_82 = ls_pa0183_g-nrllegit.
gs_data_gorn-stopien_gorn_83 = ls_pa0183_g-datawyd.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
Na chłopski rozum, jeśli kawałek kodu:
Kod: Zaznacz cały
IF sy-tabix = 8.
SELECT SINGLE awdtx FROM t5r02 INTO gs_data_gorn-stopien_gorn_81 WHERE sprsl = 'L' AND molga = '46' AND awdtp = ls_pa0183_g-awdtp.
gs_data_gorn-stopien_gorn_82 = ls_pa0183_g-nrllegit.
gs_data_gorn-stopien_gorn_83 = ls_pa0183_g-datawyd.
ENDIF.
Na 100% widziałem już gdzieś interesującą mnie składnię, ale nie jestem w stanie jej znaleźć/odtworzyć.
-
- Posty: 57
- Rejestracja: czw maja 23, 2013 6:49 pm
- Has thanked: 21 times
- Been thanked: 14 times
Re: Rekordy tabeli na pola rekordu - składnia
jest coś takiego:
https://answers.sap.com/questions/66580 ... cally.html
powinieneś to być w stanie tym obsłużyć
https://answers.sap.com/questions/66580 ... cally.html
powinieneś to być w stanie tym obsłużyć
-
- Posty: 1061
- Rejestracja: pt mar 14, 2008 12:51 pm
- Has thanked: 71 times
- Been thanked: 315 times
Re: Rekordy tabeli na pola rekordu - składnia
Musisz to zrobić na field-symbolach i zmiennych tekstowych typu assign-field symbol (lv_nazwa_zmiennej), i wypełniać nazwę tekstowo. Ew asign component of jeśli masz strukturę.
Uważaj tylko żeby nie używać w pętli LOOP Selecta bo wydajność jest kiepska.
Linki pierwsze z brzegu
https://stackoverflow.com/questions/519 ... ld-symbols
https://stackoverflow.com/questions/723 ... ynamically
https://stackoverflow.com/questions/541 ... rnal-table
Uważaj tylko żeby nie używać w pętli LOOP Selecta bo wydajność jest kiepska.
Linki pierwsze z brzegu
https://stackoverflow.com/questions/519 ... ld-symbols
https://stackoverflow.com/questions/723 ... ynamically
https://stackoverflow.com/questions/541 ... rnal-table