*---------------------------------------------------------------------*
*                 Z _ B J H _ A T _ S U C H H I L F E                 *
*                                                                     *
*                  Autor: Bernd Haase (BJH Software)                  *
*---------------------------------------------------------------------*
* Suchhilfe für Felder, welche keine expliziete Suchhilfe über Struk- *
* tur und Datenelement haben. Beispiel ist die Statusverwaltung in    *
* der Dokumentenverwaltung in Abhängigkeit der Dokumentenart.         *
* Programm führt keinerlei Aktionen aus !!!                           *
*---------------------------------------------------------------------*
* FB 'HELP_VALUES_GET_WITH_TABLE'                                     *
*---------------------------------------------------------------------*
* 02.06.2004 BHaa: Programm erstellt                                  *
*---------------------------------------------------------------------*
REPORT  z_bjh_at_suchhilfe .

TABLES:
 draw,     "Dokumentinformationssatz (nur Referenzierung)
 tdws,     "Dokumentstatus
 tdwst.    "Text für Dokumentstatus

*---------------------------------------------------------------------*
*                                                                     *
*                 A u s w a h l b i l d s c h i r m                   *
*                                                                     *
*---------------------------------------------------------------------*
SELECTION-SCREEN: BEGIN OF BLOCK a1 WITH FRAME TITLE text-901.
PARAMETERS:
* Dokumentenart
 pm_dokar LIKE draw-dokar,
* Status eines Dokuments (sprachabhängig)
 pm_stabk LIKE tdwst-stabk.
SELECTION-SCREEN: END OF BLOCK a1.

***********************************************************************
*                          S U C H H I L F E                          *
*                                                                     *
* für das Feld Status (sprachenunabhängig in der Dokumentenverwaltung)*
***********************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pm_stabk.

 DATA:
* Felder der Anzeige im Pop-Up
   BEGIN OF felder OCCURS 10.
         INCLUDE STRUCTURE help_value.
 DATA:
   END OF felder.

 DATA:
* Werte für die Suchhilfe
   BEGIN OF werte OCCURS 10,
     text(100),
   END OF werte.

 DATA:
   getroffene_auswahl LIKE tdwst-stabk,
   wa_dokar LIKE tdws-dokar.

* Übergabetabellen für Funktionsbaustein initialisieren
 CLEAR:   felder, werte.

 REFRESH: felder, werte.

* Felder besetzen
* nennen der Tabelle, von woher die Werte kommen sollen
 MOVE 'TDWST' TO felder-tabname.
* Feld, welches zur Selektion dient (Teil des Pop-Ups)
 MOVE 'STABK' TO felder-fieldname.
 MOVE 'X'     TO felder-selectflag.
 APPEND felder.

* Weiteres Feld (Bezeichnung) für das Pop-Up, nur Anzeige (gleiche
* Tabelle)
 MOVE 'DOSTX' TO felder-fieldname.
 MOVE ' '     TO felder-selectflag.
 APPEND felder.

* Werte ermitteln
* Suchhilfetabelle auffüllen
 SELECT * FROM tdwst
 WHERE cvlang = sy-langu.
* Zusatz: wenn die Dokumentenart in der Auswahl bereits mit einem Wert
* hinterlegt ist, diesem für den qualifizierten Suchalgorithmus
* mitbenutzen und die Werteauswahl eingrenzen
   IF pm_dokar <> ' '.
* A c h t u n g: um pm_dokar nutzen zu können, vorher einmal den
* Auswahlbildschirm mit Return bestätigt haben !
     SELECT SINGLE dokar FROM tdws INTO wa_dokar
     WHERE dokar = pm_dokar
     AND   dokst = tdwst-dokst.
     IF sy-subrc <> 0.
       CONTINUE.
     ENDIF.
   ENDIF.

   MOVE tdwst-stabk TO werte-text.
   APPEND werte.
   MOVE tdwst-dostx TO werte-text.
   APPEND werte.
 ENDSELECT.

* Pop-Up aufrufen
 CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE'
      EXPORTING
           display      = ' '
           fieldname    = 'STABK'
           tabname      = 'TDWST'
      IMPORTING
           select_value = getroffene_auswahl
      TABLES
           fields       = felder
           valuetab     = werte
      EXCEPTIONS
           OTHERS       = 4.

* gültige Auswahl. Wert des Pop-Up übernehmen.
 IF sy-subrc = 0.
   MOVE getroffene_auswahl TO pm_stabk.
 ENDIF.

***** Ende *****
* Copyright BJH Software, Datei überarbeitet am: 23.7.2005