Dodaj do ulubionych

ABAP: Z jednej wewnętrznej tabeli do drugiej

11.01.06, 17:10
Witam wszystkich,

Natknąłem się na następujący problem w ABAPie.

Mam dwie tabele wewnętrzne. Obie o tej samej strukturze.
Pierwszą chcę przefiltrować i wynik umieścić w pustej
drugiej. Nie znalazłem innego rozwiązania niż poniższe
a nie jest ono według mnie eleganckie:

* tabela nr 1: i_first
* tabela nr 2: i_second
* pola: field1, field2

LOOP AT i_first WHERE field1 = "aeroplane" AND
field2 = "2006/03".
APPEND i_first TO i_second
ENDLOOP.

Chyba, że nie ma innego wyjścia.

Pozdrawiam,
Marek
Obserwuj wątek
    • wojtas71 Re: ABAP: Z jednej wewnętrznej tabeli do drugiej 11.01.06, 20:08
      bez stresu mozesz tak zostawic.
    • krzysztof.kuczek Re: ABAP: Z jednej wewnętrznej tabeli do drugiej 11.01.06, 20:42
      Heja
      a po co tak czarowac
      nie lepiej tak :)

      i_second[] = i_first[].
      delete i_second where field1 ne "aeroplane" or field2 ne "2006/03".

      pozdro
      krzysiek
      • rkiela Re: ABAP: Z jednej wewnętrznej tabeli do drugiej 12.01.06, 15:03
        Z tym, że zamiast OR użyć AND.
        Najprawdopodobnjiej będzie to też wolniejsze rozwiązanie
        (zależnie od typy i_first).

        BTW
        Czy nie powinno być MOVE zamiast APPEND w pętli...
        • krzysztof.kuczek Re: ABAP: Z jednej wewnętrznej tabeli do drugiej 12.01.06, 19:01
          Czesc,
          Wiesz obawiam sie ze nie masz racji co do tego or i and.
          Słyszałeś kiedyś o algebrze boola ;)
          not (a i b) = not a or not b
          gosciu chcial skopiowac rekordy w których pola mialy jakies wartosci w obu na
          raz. To teraz jesli ja chce usanac te co nie pasuja to wystarczy ze w jednym z
          tych pol nie bedzie odpowiedniej wartosci. Jak chcesz to sobie rozpisz, sa tylko
          4 mozliwosci :)

          co do szybkosci rozwiazania to obawiam sie ze moze byc szybsze, zajmować mniej
          pamieci itp itd. wszystko zalezy od tego jak z interpreterze abapa
          zaimplementowano pewne sprawy.

          a co do petli to powinno byc append, oczywiscie tabela powinna miec swoj naglowek :)
          pozdro
          krzysiek
          • mm5m Re: ABAP: Z jednej wewnętrznej tabeli do drugiej 12.01.06, 19:48
            Krzysiek, co ty doktorat jakiś piszesz czy co? :-)
            pozdrawiam.
            DMU
            • krzysztof.kuczek Re: ABAP: Z jednej wewnętrznej tabeli do drugiej 12.01.06, 21:06
              z kąd wiedziałeś ;)
              • rkiela Re: ABAP: Z jednej wewnętrznej tabeli do drugiej 13.01.06, 07:38
                Wiesz, obawiam się, że jednak możesz mieć rację co do tego OR czy AND.
                Zbyt pobieżnie spojrzałem na problem. Uściślając i dodając materiały do pracy
                doktorskiej:
                ~(p AND q) <=> (~p OR ~q) - prawo de'Morgana zaprzeczenie koniunkcji (eksluzja).

                Pozdrawiam,
                Radek
                • rkiela Re: ABAP: Z jednej wewnętrznej tabeli do drugiej 13.01.06, 07:43
                  Powinno być "ekskluzja", bo się jeszcze ktoś przyczepi ;)
                  • krzysztof.kuczek Re: ABAP: Z jednej wewnętrznej tabeli do drugiej 13.01.06, 10:10
                    Hej,
                    Nie o to chodzi zebym sie czepiał, chciałem tylko wyjaśnić zagadnienie
                    teoretycznie ;-)
                    pozdro
                    krzysiek
                    • rkiela Re: ABAP: Z jednej wewnętrznej tabeli do drugiej 13.01.06, 10:48
                      I przyznaję - miałeś rację.

                      Pozdrawiam,
                      Radek
                    • gucio_mj Re: ABAP: Z jednej wewnętrznej tabeli do drugiej 13.01.06, 15:47
                      Ty to się lepiej weź do roboty, a nie będziesz się wymądrzał Ty studenciku ... ;)
                      • krzysztof.kuczek Re: ABAP: Z jednej wewnętrznej tabeli do drugiej 13.01.06, 20:11
                        Ty to lepiej nic nie mów, bo napisze co zrobiłeś swojej kotce i jakie były tego
                        powody :-P
                        Krzysiek
          • dtylczyn Re: ABAP: Z jednej wewnętrznej tabeli do drugiej 12.01.06, 21:10
            Dla oceny wydajności takiej czy innej implementacji warto rzucić okiem do
            transakcji SE83: Environment -> Performance examples. Jest tam przykład dot.
            kopiowania zawartości tabel. Polecam.
            • joy77 Re: ABAP: Z jednej wewnętrznej tabeli do drugiej 13.01.06, 16:57
              Panowie,

              Dziękuję za pomoc. Pozostaję mimo wszystko przy oryginalnym
              rozwiązaniu.

              Myślałem że można zrobić coś takiego

              READ i_table1 INTO i_table2 WHERE field1 = "aeroplane".

              Ale to nie jest możliwe.

              Dziękuję Wam serdecznie za pomoc,
              Marek
Inne wątki na temat:

Nie masz jeszcze konta? Zarejestruj się

Nie pamiętasz hasła lub ?

Nakarm Pajacyka