ALV - Problem mit disabled/enabled

Getting started ... Alles für einen gelungenen Start.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

ALV - Problem mit disabled/enabled

Beitrag von Nadine_2706 (ForumUser / 91 / 16 / 0 ) »
Hallo,

ich habe in meiner ALV zwei editierbare Felder. Wenn ich Feld1 ändere und nach einigen Prüfungen alles ok abläuft, soll sich das Feld1 schließen = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED. Funktioniert wunderbar.
Das Problem ist, wenn ich Feld2 ändere und Enter drücke, dann schließt sich Feld2, öffnet sich aber Feld1 zum Editieren.

Könnte mir jemand bitte weiterhelfen?

Code: Alles auswählen.

  method HANDLE_DATA_CHANGED.

    perform HANDLE_DATA_CHANGED using ER_DATA_CHANGED.

  endmethod.                    "HANDLE_DATA_CHANGED
form HANDLE_DATA_CHANGED.

Code: Alles auswählen.

  data: LS_CHANGED type LVC_S_MODI,
        LV_MODE    type RAW4,
        LV_WEEK    type I,
        LV_ROW     type I.

  field-symbols:
      <ALV_OUT>    type TY_ALV_OUT,
      <CELLTAB>    type LVC_S_STYL.

 read table  GT_ALV_OUT  assigning  <ALV_OUT>  index  LS_CHANGED-ROW_ID.

    case LS_CHANGED-FIELDNAME.
      when 'Feld1'.
        if LS_CHANGED-VALUE  is not initial.
          <ALV_OUT>-Feld1 = LS_CHANGED-VALUE.
          LV_WEEK = LS_CHANGED-VALUE(2).

          if LV_WEEK ge '52'.
            perform  FEHLER  using  'C'  'Kalenderwoche existiert nicht'
                                              changing <ALV_OUT>.
          else.
            read table <ALV_OUT>-CELLTAB assigning <CELLTAB> with key FIELDNAME = 'Feld1' .
            <CELLTAB>-STYLE = LV_MODE.

            loop at <ALV_OUT>-CELLTAB assigning <CELLTAB2> where STYLE = CL_GUI_ALV_GRID=>MC_STYLE_ENABLED.
              perform  WARNUNG_ZEILE  using  'C'  'prüfen Kalenderwoche zum Jahr'
                                                changing <ALV_OUT>.
              exit.
            endloop.

            if SY-SUBRC is not initial.
              <ALV_OUT>-ICON_STAT = ''.
              <ALV_OUT>-BEMERK    = ''.
            endif.
          endif.
        endif.

      when 'Feld2'.
        if LS_CHANGED-VALUE  is not initial.
          <ALV_OUT>-Feld2 = LS_CHANGED-VALUE.
          LV_WEEK = LS_CHANGED-VALUE(2).

          if LV_WEEK ge '52'.
            perform  FEHLER  using  'C'  'Kalenderwoche existiert nicht'
                                              changing <ALV_OUT>.
          else.
            read table <ALV_OUT>-CELLTAB assigning <CELLTAB> with key FIELDNAME = 'Feld2' .
            <CELLTAB>-STYLE = LV_MODE.

            loop at <ALV_OUT>-CELLTAB assigning <CELLTAB2> where STYLE = CL_GUI_ALV_GRID=>MC_STYLE_ENABLED.
              perform  WARNUNG_ZEILE  using  'C'  'prüfen Kalenderwoche zum Jahr'
                                                changing <ALV_OUT>.
              exit.
            endloop.

            if SY-SUBRC is not initial.
              <ALV_OUT>-ICON_STAT = ''.
              <ALV_OUT>-BEMERK    = ''.
            endif.
          endif.
        endif.
   endcase.

  perform ALV_REFRESH.
Danke!

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: ALV - Problem mit disabled/enabled

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

ohne genau zu wiseen was du in der Form refresh machst - denke ich aber es hängt mit dem Feldcatalog zusammen - denn dort hast du doch bestimmt am Anfang eingestellt, dass die Felder editierbar sind oder ?
Daher meine Vermutung - du musst den Feldkatalog ändern - wenn du das Feld zu machen willst und es zu bleiben soll.
Welche ALV Klasse benutzt du ?

Gruss Jens
thanks Jens

Re: ALV - Problem mit disabled/enabled

Beitrag von Nadine_2706 (ForumUser / 91 / 16 / 0 ) »
alv_refresh sieht so aus:

Code: Alles auswählen.

 data:  LS_STABLE           type LVC_S_STBL.

  LS_STABLE-ROW  =  'X'.
  LS_STABLE-COL  =  'X'.

  call method GO_ALV->REFRESH_TABLE_DISPLAY
    exporting
      IS_STABLE      = LS_STABLE
      I_SOFT_REFRESH = 'X'
    exceptions
      FINISHED       = 1
      others         = 2.

  call method CL_GUI_CFW=>FLUSH.
im Feldkatalog rufe ich call function 'LVC_FIELDCATALOG_MERGE' auf.
setze die Felder <FIELDCAT>-EDIT = 'X'.

Und das ganze wird so ausgegeben:

Code: Alles auswählen.

 call method GO_ALV->SET_TABLE_FOR_FIRST_DISPLAY
    exporting
      I_STRUCTURE_NAME     = 'Z_MEINE_ALV'
      IS_LAYOUT            = LS_LAYOUT
      IS_VARIANT           = LS_VARIANT
      I_SAVE               = 'A'
      I_DEFAULT            = 'X'
      IT_TOOLBAR_EXCLUDING = LT_EXCLUDE
    changing
      IT_OUTTAB            = GT_ALV_OUT[]
      IT_FIELDCATALOG      = LT_FIELDCAT[].


Re: ALV - Problem mit disabled/enabled

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

also mit dem Soft refresh das könntest du mal checken ob es ohne dem nicht mehr diesen Wechsel gibt, wenn nicht, dann müsstest du den Feldkatalog ändern und neu übergeben - dafür hat es auch entsprechende Methoden !

Gruss Jens
thanks Jens

Re: ALV - Problem mit disabled/enabled

Beitrag von Nadine_2706 (ForumUser / 91 / 16 / 0 ) »
Benutze folgende methode:

Code: Alles auswählen.

call method er_data_changed->modify_style
             exporting i_fieldname = 'Feld1'
                       i_row_id    = LWA_MOD_CELL-row_id
                       i_style     = cl_gui_alv_grid=>mc_style_disabled.

Danke Jens!

Seite 1 von 1

Vergleichbare Themen

5
Antw.
2620
Views
ALV im WD als disabled darstellen
von Thanatos82 » 16.11.2012 16:00 • Verfasst in ABAP® Core
0
Antw.
1071
Views
DropDownListBox (disabled)
von Gast » 17.02.2006 12:06 • Verfasst in Web-Dynpro, BSP + BHTML
4
Antw.
2438
Views
SAP ALV STYLE Table Checkbox und Style disabled funkt. nicht
von AdrianSchm » 20.06.2018 10:16 • Verfasst in ABAP® Core
20
Antw.
6486
Views
ALV Problem
von robin1at » 03.05.2006 12:26 • Verfasst in ABAP® für Anfänger
15
Antw.
17633
Views
ADS Problem
von Trulchen » 11.08.2014 16:10 • Verfasst in Java & SAP®

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
Gestern von Bright4.5 1 / 511
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2146
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8742