REPORT Y9030006 LINE-SIZE 130. "Release 3.1G, 4.5A ************************************************************************ * Copyright (c) 1999 by CT-Team, 33415 Verl, http://www.ct-software.com * * You can use or modify this report for your own work as long * as you don't try to sell or republish it. * In no event will the author be liable for indirect, special, * Incidental, or consequental damages (if any) arising out of * the use of this report. * ************************************************************************ MOVE: 'TESTREPORT for "SELECT * FROM etab" with "IMPORT" ' TO SY-TITLE. ************************************************************************ PARAMETERS: P_KDNR(6) TYPE C DEFAULT '100007', "= Text number *................Time line from ........................................ P_DATVON TYPE D DEFAULT '19950101', "jhjjmmtt !! P_TIMVON TYPE T DEFAULT '000001', *................Time line to .......................................... P_DATBIS TYPE D DEFAULT '20011231', "jhjjmmtt !! P_TIMBIS TYPE T DEFAULT '234500'. ************************************************************************ TABLES: INDX. ************************************************************************ *-- DB-area and work area must be of the same structure ------* * e.g. fields, field string, table DATA: BEGIN OF TEXTINDX, "DB area auf der INDX UZEIT LIKE SY-UZEIT, " = 6 Bytes TEXT(80) TYPE C, " = 80 Bytes END OF TEXTINDX. *....................................................................... DATA: BEGIN OF INP1, "work area UZEIT LIKE SY-UZEIT, " = 6 Bytes TEXT(80) TYPE C, " = 80 Bytes END OF INP1. ************************************************************************ DATA: BEGIN OF KEY_VON, "key CT-CLUSTER of TEXTVON(22), END OF KEY_VON. *....................................................................... DATA: BEGIN OF KEY_BIS, "key CT-CLUSTER up to TEXTBIS(22), END OF KEY_BIS. *............... INDX has a primary key of 22 digits.................... DATA: KEY_LOW(22) VALUE '0000000000000000000000'. DATA: KEY_HIGH(22) VALUE '9999999999999999999999'. *....................................................................... DATA: BEGIN OF IMPKEY, "Import-key INDX SRTFD LIKE INDX-SRTFD, SRTF2 LIKE INDX-SRTF2, END OF IMPKEY. ************************************************************************ ****************** work fields *************** * DATA: INDX_VORHANDEN(1) TYPE N. "1 = content available ************************************************************************ *//////////////////////////////////////////////////////////////////////* ************* - Main Section ******************* *//////////////////////////////////////////////////////////////////////* * END-OF-SELECTION. *####################################################################### * 1. In the database "INDX" data (or text) up to a length of today * 2886 bytes per key can be inserted * 2. The key length of the DB "INDX" is 22 chars in total * which can be expanded with an the addition field (INDX-SRTF2) *####################################################################### PERFORM KEY-FUELLEN-INDX-LESEN. PERFORM LESEN-INDX. *//////////////////////////////////////////////////////////////////////* ************* Subroutines ******************* *//////////////////////////////////////////////////////////////////////* * ************************************************************************ * Format the key to read from INDX * ************************************************************************ FORM KEY-FUELLEN-INDX-LESEN. " fill the KEY of INDX * *.......... Key fuellen ............................................. MOVE KEY_LOW TO KEY_VON. "initialize all with 0 MOVE P_KDNR TO KEY_VON+0(6). "Text number behind MOVE P_DATVON TO KEY_VON+6(8). "Date is placed behind MOVE P_TIMVON TO KEY_VON+14(6). "Time is placed behind *....................................................................... MOVE KEY_HIGH TO KEY_BIS. "initialize all with 9 MOVE P_KDNR TO KEY_BIS+0(6). "Text number behind MOVE P_DATBIS TO KEY_BIS+6(8). "Date is placed behind MOVE P_TIMBIS TO KEY_BIS+14(6). "Time is places behind * ENDFORM. ************************************************************************ *- THE FILE INDX WILL BE READ SEQUENTIELL -* ************************************************************************ FORM LESEN-INDX. *......................................................................* SELECT * FROM INDX WHERE RELID EQ 'YT' AND SRTFD BETWEEN KEY_VON AND KEY_BIS ORDER BY PRIMARY KEY. "ascending please * Commit work. "in the case of mass data * MOVE INDX-SRTFD TO IMPKEY-SRTFD . MOVE INDX-SRTF2 TO IMPKEY-SRTF2 . *####################################################################### PERFORM LESENINDX-IMPORT. "Import of data *####################################################################### IF INDX_VORHANDEN EQ 1. CLEAR INDX_VORHANDEN. PERFORM DRUCKEN-INDX. "print out the found text ELSE. ENDIF. * ENDSELECT. * IF INDX-SRTFD IS INITIAL. WRITE: /1 'No data in INDX available, RELID/Key: YT'. WRITE: /10 'KEY_VON:', KEY_VON, 'KEY_BIS:', KEY_BIS. ENDIF. * ENDFORM. ************************************************************************ * Read the Clusters YT of the DB INDX * ************************************************************************ FORM LESENINDX-IMPORT. * IMPORT TEXTINDX TO INP1 FROM DATABASE INDX(YT) ID IMPKEY. IF SY-SUBRC EQ 0. INDX_VORHANDEN = 1. ELSE. PERFORM FEHLER-BEIM-IMPORT. ENDIF. * ENDFORM. ************************************************************************ * Error message, if the Cluster YT is not in INDX * ************************************************************************ FORM FEHLER-BEIM-IMPORT. * WRITE: / '*****************************************************'. WRITE: / 'ATTENTION, ERROR WHILE READING INDX IN CLUSTER YT: '. WRITE: / ' KEY: ', IMPKEY-SRTFD, IMPKEY-SRTF2. WRITE: / '*****************************************************'. STOP. ENDFORM. ************************************************************************ * Print a not formated form of Cluster YT out of INDX * ************************************************************************ FORM DRUCKEN-INDX. * WRITE: /1 'Key:', INDX-SRTFD. WRITE: /1 'Data value:', INP1-UZEIT COLOR 5, INP1-TEXT COLOR 4. ULINE. ENDFORM. ************************************************************************ ******************* END OF PROGRAM *************************************