2012-04-11 7 views
0

Ich möchte einige Funktionen in einem ALV-Grid überschreiben. Aber ich kann es nicht mit einem i Callback-Benutzerbefehl schaffen. Dies ist nur für nicht standardmäßige Funktionen. irgendeine Idee? Soll ich einen Event-Exit verwenden? Ich habe versucht, mit ihm etwas, aber konnte es nicht entweder: PFunktionen in ALV ABAP überschreiben

FORM event_exits. 

    CLEAR wa_eventexit. 
    wa_eventexit-ucomm = '&OUP'. 
    wa_eventexit-before = 'X'. 
    APPEND wa_eventexit TO it_eventexit. 
    CLEAR wa_eventexit. 
    wa_eventexit-ucomm = '&ODN'. 
    wa_eventexit-before = 'X'. 
    APPEND wa_eventexit TO it_eventexit. 

ENDFORM.      "event_exits 

FORM user_command Using r_ucomm LIKE sy-ucomm 
        rs_selfield TYPE slis_selfield. 
CASE r_ucomm. 
    WHEN '&OUP'. 
     IF ck_del = 'X'. 
     SORT gt_salord BY audat vbeln lfimg ASCENDING. 
     ELSE. 
     SORT gt_salord BY audat vbeln kwmeng ASCENDING. 
     ENDIF. 
    WHEN '&ODN'. 
     IF ck_del = 'X'. 
     SORT gt_salord BY audat vbeln lfimg DESCENDING. 
     ELSE. 
     SORT gt_salord BY audat vbeln kwmeng DESCENDING. 
     ENDIF. 
    WHEN 'D01'. 
     BREAK-POINT. 
    ENDCASE. 
    CLEAR sy-ucomm. 
ENDFORM. "user_command 

Die D01-Funktion nur für die Prüfung ist, so kann ich sehen, kann es die user_command eintritt, wenn ich auf sie zugreifen. Aber wenn ich auf die Funktion & OUP zugreife geht es nicht mehr in den CASE (ich teste es mit Debugging)

Antwort

1

Ich weiß nicht, ob das eine Option für Sie ist, aber Sie möchten vielleicht das ALV Object Model - es ist better documented - siehe zum Beispiel this chapter über die Handhabung von Funktionen und Ereignissen. Außerdem wird es offiziell unterstützt - wenn Sie es verwenden und es nicht so funktioniert, wie es sollte, erhalten Sie Hilfe statt der üblichen "Sie verwenden nicht freigegebene interne Klassen/Funktionsbausteine" Bemerkung. Werfen Sie einen Blick auf die Demo-Programme (SALV_DEMO_ * oder DEMO_SALV_ *, kann mich nicht erinnern.)

Wenn Sie wiederum einen benutzerdefinierten Sortiermechanismus definieren möchten, sollten Sie wahrscheinlich nur die Standardschaltflächen verwenden und eigene Schaltflächen einfügen mit verschiedenen Funktionscodes. Wer weiß, in Version 42 könnte jemand auf die Idee kommen, die Standardsortierung wieder zu aktivieren und dann muss man nicht alles noch einmal anpassen ...

+0

es war nur für das Training, ich bin noch ein Junior Programmierer und ich lerne meinen Weg durch die weite Welt des Saftes – kookies

Verwandte Themen