*---------------------------------------------------------------------*
* Z _ B J H _ D Y N P R O _ T A B _ F I X *
* *
* TABSTRIPS (FIX) *
* *
* Autor: Bernd Haase (BJH Software) *
*---------------------------------------------------------------------*
* Beispielprogramm für Dynpro-Verarbeitung mit Tabstrips. Im Programm *
* wird eine Lieferscheinnummer abgefragt und der Datensatz dazu *
* gelesen. Die Ausgabe erscheint in einem Bildschirm mit Reitern *
* (Tabstrips), wobei der erste Reiter die Lieferscheinnummer ausgibt *
* und der zweite den Lieferanten. Programm bindet die Tabstrips fest *
* (fix) ein, kein dynamisches Laden ! *
*---------------------------------------------------------------------*
* Programm besteht aus 3 Dynpros: *
* 9300 Dynprotyp: Normal *
* 9301 Dynprotyp: Subscreen für Reiter 1 (mit Container für Foto) *
* 9302 Dynprotyp: Subscreen für Reiter 2 (kann ausgeblendet werden) *
*---------------------------------------------------------------------*
* 22.01.2004 BHaa: Programm erstellt *
* 01.09.2004 BHaa: Subscreen um Container und Fotoeinpflege erweitert *
* 03.06.2005 BHaa: Reiter 2 ausblenden, wenn gewünscht *
*---------------------------------------------------------------------*
REPORT z_bjh_dynpro_tab_fix .
TABLES:
ekko.
DATA:
wa_ekko LIKE ekko,
okcode LIKE sy-ucomm.
********
* Foto *
********
DATA:
interne_sap_url(255) TYPE c,
c_pic_9301 TYPE REF TO cl_gui_custom_container,
o_pic_9301 TYPE REF TO cl_gui_picture.
**********
* Dynpro *
**********
* wichtig: Dynpro Tabstrip-Name muß hier also Kontrolle hinterlegt sein
CONTROLS:
flyaway TYPE TABSTRIP.
*---------------------------------------------------------------------*
* *
* A u s w a h l b i l d s c h i r m *
* *
*---------------------------------------------------------------------*
* Eingabe der Lieferscheinnummer
SELECTION-SCREEN: BEGIN OF BLOCK a1 WITH FRAME TITLE text-901.
PARAMETERS:
pm_ebeln TYPE ekko-ebeln,
* ''=Reiter 2 lassen, X= Reiter 2 ausblenden
pmx_tab2 TYPE c AS CHECKBOX.
SELECTION-SCREEN: END OF BLOCK a1.
***********************************************************************
* *
* P R O G R A M M S T A R T *
* *
***********************************************************************
* Lieferschein einlesen und wenn gefunden, Dynpro aufrufen
AT SELECTION-SCREEN.
SELECT SINGLE * FROM ekko INTO wa_ekko
WHERE ebeln = pm_ebeln.
IF sy-subrc = 0.
LEAVE TO SCREEN '9300'.
ENDIF.
*---------------------------------------------------------------------*
* A N F A N G _ B I L D *
*---------------------------------------------------------------------*
* SAP speichert für Bilder, eine interne URL-Adresse. Diese wird hier *
* über den Funktionsbaustein bestimmt. *
* *
* Bildchen für den Reiter im Dynpro 9301 bestimmen. Es wird hier im *
* Beispiel immer das gleiche Bild eingeblendet ! Da das System intern *
* bleibt und sich nicht die Bilder nicht aus dem Internet holt, werden*
* sie über Import der kundeneigenen Tabelle ZC700X (Kopie der INDX) *
* zur Verfügung gestellt. Laden der Bilder über z_bjh_up_down_pgm. *
*---------------------------------------------------------------------*
* ]=> interne_sap_url: interne Referenzierung auf das Foto *
*---------------------------------------------------------------------*
FORM upro-anfang_bild.
* Struktur der einzulesenden Grafikdatei
TYPES:
ty_jpg(256) TYPE c.
DATA:
wa_jpg TYPE ty_jpg,
itab_jpg TYPE STANDARD TABLE OF ty_jpg,
bild_id(8) TYPE c.
* welches Bild soll angezeigt werden
bild_id = 'FRA00490'.
* Laden des Bildes in interne Tabelle aus der Cluster Tabelle
IMPORT imagebjh = itab_jpg FROM DATABASE zc700x(pi) ID bild_id.
CALL FUNCTION 'DP_CREATE_URL'
EXPORTING
type = 'IMAGE'
* subtype = 'GIF'
subtype = 'JPG'
TABLES
data = itab_jpg
CHANGING
url = interne_sap_url.
ENDFORM.
*---------------------------------------------------------------------*
* *
* PAI U S E R _ C O M M A N D *
* *
*---------------------------------------------------------------------*
* Taste im Dynpro gedrückt. Es existiert nur die Möglichkeit, das *
* Programm zu beenden, zu verlassen. *
*---------------------------------------------------------------------*
MODULE user_command_ende INPUT.
LEAVE PROGRAM.
ENDMODULE.
*---------------------------------------------------------------------*
* S T A T U S _ 9 3 0 0 *
*---------------------------------------------------------------------*
* Reiter 2 ausblenden oder alles so lassen wie es ist *
*---------------------------------------------------------------------*
MODULE status_9300 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
IF pmx_tab2 = 'X'.
LOOP AT SCREEN.
IF screen-name = 'TAB2'.
MOVE 0 TO: screen-active, screen-input, screen-output.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE.
*---------------------------------------------------------------------*
* D Y N P R O _ 9 3 0 1 _ P B O *
*---------------------------------------------------------------------*
* Aktionen speziell bei diesem Reiter. Bild / Foto einfügen. *
* W I C H T I G: Objektname c_pic_9301 muß gleich dem Containernamen *
* im Dynpro 9301 sein !!! *
*---------------------------------------------------------------------*
MODULE dynpro_9301_pbo OUTPUT.
IF c_pic_9301 IS INITIAL.
CREATE OBJECT c_pic_9301
EXPORTING
container_name = 'C_PIC_9301'.
CREATE OBJECT o_pic_9301
EXPORTING
parent = c_pic_9301.
* Set display mode (Stretching, original size etc.)
* CALL METHOD o_pic_9301->set_display_mode
* EXPORTING
* display_mode = cl_gui_picture->display_mode_stretch.
CALL METHOD o_pic_9301->set_display_mode
EXPORTING
display_mode = cl_gui_picture=>display_mode_fit_center
EXCEPTIONS
error = 1.
ENDIF.
* welches Foto soll gezeigt werden, interne URL bestimmen und Bild
* aktivieren. Sollte kein Bild gefunden werden, dann den Bildbereich
* leer machen (in diesem Programm wird jedoch fix immer ein Bild zur
* Verfügung gestellt).
PERFORM upro-anfang_bild.
IF interne_sap_url IS INITIAL.
CALL METHOD o_pic_9301->clear_picture.
ELSE.
CALL METHOD o_pic_9301->load_picture_from_url
EXPORTING url = interne_sap_url.
ENDIF.
ENDMODULE.
***** Ende *****
* Copyright BJH Software, Datei überarbeitet am: 4.6.2005