Convert table linked report into a Command version - Howto?

How can I convert hundreds of reports from table linked into a Command version?
One way to do is to take the SQL syntax off the report, add a Command with that Syntax and manually replace the database fields by the Command fields.
I can not believe that is the right way to this. Is there no hidden (re-)mapping fields button or another undocumented feature?
If this is the way to do it... when will there be a one-button-click solution. The underlaying data keeps the same, could not be that hard to build..?
Without that basic functionality Crystal Reports is not option for us anymore.
Backgroud: We do have hundreds of reports that are created by an ODBC (RDO) database (SQL Anywhere database), created by linking the tables and select the fields we like to use in the report. This works fine at least as we used the RDC method in our application. Because we are moving to .NET we could not use RDC anymore and have to use the .NET methods. However the .NET SDK is very limited. The only way to add more complex WHERE statements is to use the Command functionality of Crystal Reports.

Hi Hans,
Let me explain, Command Objects are sent directly to the DB server as is. CR does not alter the SQL at all. As you know in SQL there are minor differences between the various servers and the SQL syntax can vary from DB to DB. Because of this CR could not build in the logic to handle the vast number of potential mappings, and not jsut SQL types but also PC databases.
To be able to map reports based on connections directly to the DB through a Command object the current versions of CR do not have the ability. Possibly the next version may have this feature though but we can't say for sure until it's released. Check our WEB site for new versions and there functionality.
Next question about moving off of the RDC to .NET, you are correct. CR no longer allows you to modify the SQL statement directly. The RDC was actually supposed to stop you also but it did work.
One possible solution is to use .NET and inProc RAS ( Report Application Server) and using record sets. Your app can get the SQL from the report, process the query and appending the info onto the WHERE clause as well as other filtering and then set the existing reports data source to the record set. As long as your data is less than 5000 rows then no performance issues, over 5K and you may start to see slow report processing. Depends on other info and report complexity etc.
If this is an option for you please post your question to the Crystal .NET development forum. Also, you will need to use 12.x.2000.x versions of the CR .NET assemblies and not use the basic version 10.5 or 10.2 that comes with .NET 2008 and 2005.
Thank you
Don

Similar Messages

  • How to Convert Oracle Apps Report into XML Publisher

    Hi
    How to Convert Oracle Apps Report into XML Publisher?
    Thanks

    In Brief :
    Re: XML Publisher
    In Details :
    http://www.oracle.com/technology/products/xml-publisher/docs/XMLEBSRep.pdf

  • Convert a web report into pdf and print (in BW 3.5)

    Hello gurus,
    i have few web reports ( created using WAD). i am looking for a possibility to convert a web report (viewed in a browser by a user) into pdf and print them and this should be done by pressing a button.
    Is it possible in BW 3.5 version?.
    could anyone please help me?
    Any how to docs. would be really helpful.
    thanks and regards
    kumar

    Here it is
    <HTML>
    <!-- BW data source object tags -->
    <object>
             <param name="OWNER" value="SAP_BW"/>
             <param name="CMD" value="SET_DATA_PROVIDER"/>
             <param name="NAME" value="DATAPROVIDER_1"/>
             <param name="DATA_PROVIDER_ID" value=""/>
             DATA_PROVIDER:             DATAPROVIDER_1
    </object>
    <object>
             <param name="OWNER" value="SAP_BW"/>
             <param name="CMD" value="SET_PROPERTIES"/>
             <param name="TEMPLATE_ID" value="ZPD_ADHOC_PAGE"/>
             <param name="MENU_BACK" value=""/>
             <param name="MENU_BACK_TO_START" value=""/>
             <param name="SUPPRESS_WARNINGS" value="X"/>
             <param name="MENU_FILTER" value=""/>
             <param name="MENU_FILTER_ON_AXIS" value=""/>
             <param name="MENU_SELECT_FILTER" value=""/>
             <param name="MENU_FILTER_ON_AXIS_CHART" value=""/>
             <param name="MENU_FILTER_CHART" value=""/>
             <param name="MENU_FILTER_DRILL_DOWN" value=""/>
             <param name="MENU_DRILL_UP_GIS" value=""/>
             <param name="MENU_DRILL_DOWN" value=""/>
             <param name="MENU_EXCHANGE_OBJECTS" value=""/>
             <param name="MENU_REMOVE_DRILL_DOWN" value=""/>
             <param name="MENU_SWITCH_AXIS" value=""/>
             <param name="MENU_HIERARCHY_NODE_DRILL" value=""/>
             <param name="MENU_HIERARCHY_DRILL" value=""/>
             <param name="MENU_HIERARCHY_STATE" value=""/>
             <param name="MENU_SORT" value=""/>
             <param name="MENU_CALCULATE_RESULT" value=""/>
             <param name="MENU_CALCULATE_VALUE" value=""/>
             <param name="MENU_CUMULATE_VALUE" value=""/>
             <param name="MENU_DISPLAY_DOCUMENTS" value=""/>
             <param name="MENU_DOCUMENT_CREATE" value=""/>
             <param name="MENU_DISPLAY_DOCUMENT_PROP" value=""/>
             <param name="MENU_DISPLAY_DOCUMENT_SELEC" value=""/>
             <param name="MENU_RRI" value=""/>
             <param name="MENU_EXPORT_TO_CSV" value=""/>
             <param name="MENU_EXPORT_TO_XLS" value=""/>
             <param name="MENU_BOOKMARK" value=""/>
             <param name="MENU_CHARACTERISTIC_PROPERTIES" value=""/>
             <param name="MENU_VALUE_PROPERTIES" value=""/>
             <param name="MENU_QUERY_PROPERTIES" value=""/>
             <param name="MENU_VARIABLE_SCREEN" value=""/>
             <param name="MENU_CURRENCY_CONVERSION" value=""/>
             <param name="MENU_ENHANCED" value=""/>
             TEMPLATE PROPERTIES
    </object>
    <HEAD>
    <META NAME="GENERATOR" Content="Microsoft DHTML Editing Control">
    <TITLE>SAP BW Reporting Print Page</TITLE>
    <link href="/sap/bw/Mime/BEx/StyleSheets/BWReports.css" type="text/css" rel="stylesheet"/>
    <script type"text/javascript">
    <!--
    //   Global Variable Definition
    var dataTable = "";
    var pageRowCnt = 0;
    var prevPage = 0;
    var ColumnCnt = 0;
    var PrintDateTimeStamp = new Date();
    var rptWidth = 0;
    //DATE STAMP FUNCTION
    function datestamp(){
               var Today = new Date()
               document.write(Today);
    function getReportTitle() {
                    var myQueryString = window.location.search;
                    var startOfRptTitle = myQueryString.indexOf("QTITLE=");
                    if (startOfRptTitle != -1)
                         var endOfRptTitle = myQueryString.indexOf("&", startOfRptTitle + 7);
                         var myTitle = unescape(myQueryString.substring(startOfRptTitle + 7, endOfRptTitle));
                         var rpttitle = "";
                         for(i=0;i<myTitle.length;i++){
                             if (myTitle.substring(i,i+1) == "+"){
                                 rpttitle = rpttitle + ' ';
                             else
                                 rpttitle = rpttitle + (myTitle.substring(i,i+1));
                    else
                         var rpttitle =  "Unspecified Query Title";
                    return rpttitle;
    queryTitle=getReportTitle();
    function getHeading2() {
                    var myQueryString = window.location.search;
                    var startOfHdr2 = myQueryString.indexOf("HDR2=");
                    if (startOfHdr2 != -1)
                         var endOfHdr2 = myQueryString.indexOf("&", startOfHdr2 + 5);
                         var myHdr2 = unescape(myQueryString.substring(startOfHdr2 + 5, endOfHdr2));
                         var hdr2 = "";
                         for(i=0;i<myHdr2.length;i++){
                             if (myHdr2.substring(i,i+1) == "+"){
                                 hdr2 = hdr2 + ' ';
                             else
                                 hdr2 = hdr2 + (myHdr2.substring(i,i+1));
                    else
                         var hdr2 =  "#";
                    return hdr2;
    header2=getHeading2();
    function getHeading3() {
                    var myQueryString = window.location.search;
                    var startOfHdr3 = myQueryString.indexOf("HDR3=");
                    if (startOfHdr3 != -1)
                         var endOfHdr3 = myQueryString.indexOf("&", startOfHdr3 + 5);
                         var myHdr3 = unescape(myQueryString.substring(startOfHdr3 + 5, endOfHdr3));
                         var hdr3 = "";
                         for(i=0;i<myHdr3.length;i++){
                             if (myHdr3.substring(i,i+1) == "+"){
                                 hdr3 = hdr3 + ' ';
                             else
                                 hdr3 = hdr3 + (myHdr3.substring(i,i+1));
                    else
                         var hdr3 =  "#";
                    return hdr3;
    header3=getHeading3();
    function getAsOfDate() {
                    var myQueryString = window.location.search;
                    var startOfRelevance = myQueryString.indexOf("ASOFDATE=");
                    if (startOfRelevance != -1)
                         var endOfRelevance = myQueryString.indexOf("&", startOfRelevance + 9);
                         var myRelevance = unescape(myQueryString.substring(startOfRelevance + 9, endOfRelevance));
                         var asof = "";
                         for(i=0;i<myRelevance.length;i++){
                             if (myRelevance.substring(i,i+1) == "+"){
                                 asof = asof + ' ';
                             else
                                 asof = asof + (myRelevance.substring(i,i+1));
                    else
                         var asof =  "";
                    return asof;
    asofDateTime=getAsOfDate();
    function getPaperSize() {
                    var myQueryString = window.location.search;
                    var startOfPaperSize = myQueryString.indexOf("PSIZE=");
                    if (startOfPaperSize != -1)
                         var endOfPaperSize = myQueryString.indexOf("&", startOfPaperSize + 6);
                         var myPaperSize = unescape(myQueryString.substring(startOfPaperSize + 6, endOfPaperSize));
                         var psize = "";
                         for(i=0;i<myPaperSize.length;i++){
                                 psize = psize + (myPaperSize.substring(i,i+1));
                    else
                         var psize =  "0";    // default if none supplied  (normal 8x11)
                    return psize;
    varPaperSize=getPaperSize();
    var PaperSizeParamString='&PSIZE=' + escape(varPaperSize);
       switch(varPaperSize){
            case "0":    // Landscape - Letter
                           var WidthMax = 910;
                           var RowsPerPageMax = 38;
                           break;
            case "1":    // Landscape - Legal
                           var WidthMax = 1190;
                           var RowsPerPageMax = 38;
                           break;
            case "2":    // Portrait - Letter
                           var WidthMax = 660;
                           var RowsPerPageMax = 54;
                           break;
    function getTotalColumns() {
       var myHTML = dataTable.rows[1].innerHTML;
       var TotalTDs = 0;
       var nextTD = 0;
       for (i=0;i<myHTML.length;i++) {
           nextTD =  myHTML.indexOf("<TD", i);
           if (nextTD != -1) {
              i=nextTD;
              TotalTDs++;
           else break;
       return TotalTDs;
    function GetPageHeadings() {
       var headingHTM = "";
       var leftspancnt = 0;
       var rightspancnt = 0;
       var headingspancnt = 2;
       if (header2 != '#') headingspancnt = headingspancnt + 1;   // adjust for extra headings
       if (header3 != '#') headingspancnt = headingspancnt + 1;  
       if (currPage > 1) {
          headingHTM += '<TR style="page-break-before:always; display:none; visibility:hidden; "><TD Colspan="' + ColumnCnt + '"></td></tr>';
       else {
          headingHTM += '<TABLE  id="THEREPORT" name="MYREPORT" cellSpacing=0 cellPadding=0 width=' + WidthMax + ' border=0>';
       if (ColumnCnt == 1) {
          headingHTM += '<TR><TD vAlign=top align=left nowrap><font Size=3><STRONG>';
          headingHTM += queryTitle;
          headingHTM += '</STRONG></font></TD><TD Rowspan="' + headingspancnt + '" align="right" vAlign="top"><input type="image" border="0" name="SAPLogo" src="/sap/bw/Mime/Customer/Images/images.jpg" alt="SAP Logo"></TD></TR>';
          if (header2 != '#') headingHTM += '<TR><TD vAlign="top" align="left"><FONT Size=1>' + header2 + '</FONT></TD></TR>';
          if (header3 != '#') headingHTM += '<TR><TD vAlign="top" align="left"><FONT Size=1>' + header3 + '</FONT></TD></TR>';
          headingHTM += '<TR><TD vAlign="top" align="left"><FONT Size=1>' + asofDateTime + '</FONT></TD></TR>';
          headingHTM += '<TR><TD vAlign="top" align="left" Colspan="2"><hr size=2 color=black align=left></TD></TR>';
          headingHTM += '<tr>' + dataTable.rows[0].innerHTML + '<TD> </TD></TR>';
       else {
          leftspancnt = Math.floor(ColumnCnt/2);
          rightspancnt = ColumnCnt - leftspancnt;
          headingHTM += '<TR><TD vAlign=top align=left nowrap Colspan="' + leftspancnt + '"><font Size=3><STRONG>';
          headingHTM += queryTitle;
          headingHTM += '</STRONG></font></TD><TD Rowspan="' + headingspancnt + '" Colspan="' + rightspancnt  + '" align="right" vAlign="top"><input type="image" border="0" name="SAPLogo" src="/sap/bw/Mime/Customer/Images/images.jpg" alt="SAP Logo"></TD></TR>';
          if (header2 != '#') headingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + leftspancnt + '"><FONT Size=1>' + header2 + '</FONT></TD></TR>';
          if (header3 != '#') headingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + leftspancnt + '"><FONT Size=1>' + header3 + '</FONT></TD></TR>';
          headingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + leftspancnt + '"><FONT Size=1>' + asofDateTime + '</FONT></TD></TR>';
          headingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + ColumnCnt + '"><hr size=2 color=black align=left></TD></TR>';
          headingHTM += '<tr>' + dataTable.rows[0].innerHTML + '</TR>';
       return headingHTM;
    function GetPageFooting() {
       var footingHTM = "";
       var leftspancnt = 0;
       var rightspancnt = 0;
       if (ColumnCnt == 1) {
          footingHTM += '<TR><TD vAlign="top" align="left" Colspan="2"><hr size=2 color=black align=left></TD></TR>';
          footingHTM += '<TR><TD vAlign="top" align="left" nowrap><FONT Size=1>Prepared: ';
          footingHTM += PrintDateTimeStamp;
          footingHTM += '</FONT></TD><TD vAlign="top" align="right"><FONT Size=1>';
          footingHTM = footingHTM + 'Page ' + currPage.toString() + ' of ' + varPageTotal.toString();
          footingHTM += '</FONT></TD></TR>';
       else {
          leftspancnt = Math.floor(ColumnCnt/2);
          rightspancnt = ColumnCnt - leftspancnt;
          footingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + ColumnCnt + '"><hr size=2 color=black align=left></TD></TR>';
          footingHTM += '<TR><TD vAlign="top" align="left" nowrap Colspan="' + leftspancnt + '"><FONT Size=1>Prepared: ';
          footingHTM += PrintDateTimeStamp;
          footingHTM += '</FONT></TD><TD vAlign="top" align="right" Colspan="' + rightspancnt + '"><FONT Size=1>';
          footingHTM = footingHTM + 'Page ' + currPage.toString() + ' of ' + varPageTotal.toString();
          footingHTM += '</FONT></TD></TR>';
       return footingHTM;
    function GetReportFooting() {
       var footingHTM = "";
       footingHTM += '</TABLE>';
       return footingHTM;
    function formatToPrint() {
       var PrintHTM = "";
       PrintHTM += GetPageHeadings();
       if (ColumnCnt != 1) {
          for (var i=1;i<dataTable.rows.length;i++) {
               (currPage > prevPage)?prevPage=currPage:"";  //increment current page count
               if ((pageRowCnt + 1)>RowsPerPageMax){
                   PrintHTM += GetPageFooting();
                   pageRowCnt = 0;
                   currPage++;
               if (prevPage != currPage) {
                   PrintHTM += GetPageHeadings();
               else
                   PrintHTM += '<tr>' + dataTable.rows<i>.innerHTML + '</tr>';
                   pageRowCnt++;
       PrintHTM += GetPageFooting();       
       PrintHTM += GetReportFooting();
       return PrintHTM;
    function DisplayPrintNotice() {
    // Paper Size "0" is Letter with Landscape
    // Paper Size "1" is Legal with Landscape
    // Paper Size "2" is Letter with Portrait
    if (varPaperSize == "0") {var varMessage ="nn From your browser File Menu, select Page Setup and do the following: nn 1) Adjust the Printer Orientation to Landscape n 2) select Print menu, then select the Print button.";}
    if (varPaperSize == "1") {var varMessage ="nn From your browser File Menu, select Page Setup and do the following: nn 1) Adjust the Paper Size to Legal n 2) Adjust the Printer Orientation to Landscape n 3) select Print menu, then select the Print button.";}
    //if (varPaperSize == "2") {var varMessage ="nn From your browser File Menu, select Page Setup and do the following: nn 1) Adjust the Paper Size to Letter n 2) Adjust the Paper Source (if necessary) n 3) Adjust the Orientation to Portrait (default) n 4) Select the Okay button nn Again select the File Menu, select Print, then select the Print button.";}
    alert(varMessage);
    //window.print()
    /*   SAP BW Reporting Stylesheet Revisions        */        
    function writeStyleRevisions() {
    function writeDynamicFontRevisions(dynafont) {
    //Writes the Dynamic Stylesheet
    -->
    </script>
    </HEAD>
    <BODY>
    <TABLE  id="tp1" cellSpacing=0 cellPadding=0 width=660 border=0 >
        <TR>
        <TD vAlign=top align=left nowrap>
    <object>
             <param name="OWNER" value="SAP_BW"/>
             <param name="CMD" value="GET_ITEM"/>
             <param name="NAME" value="MYQUERY"/>
             <param name="ITEM_CLASS" value="CL_RSR_WWW_ITEM_GRID"/>
             <param name="DATA_PROVIDER" value="DATAPROVIDER_1"/>
             <param name="GENERATE_CAPTION" value=""/>
             <param name="GENERATE_LINKS" value=""/>
             <param name="WIDTH" value="660"/>
             <param name="BORDER_STYLE" value="NO_BORDER"/>
             <param name="SUPPRESS_REPETITION_TEXTS" value=""/>
             <param name="BLOCK_SIZE" value="3500"/>
             <param name="SHOW_PAGING_AREA_TOP" value="X"/>
             <param name="TARGET_DATA_PROVIDER_1" value="DATAPROVIDER_1"/>
             ITEM:            MYQUERY
    </object>
        </TD>
      </TR>
    </TABLE>
    <SCRIPT type="text/javascript">
    <!--
            var tbls = document.body.getElementsByTagName("TABLE");
            for (var i=0;i<tbls.length;i++) {
                  if (tbls<i>.name == "MYQUERY"){
                        var dataTable = tbls<i>;
                        break;
            document.title = queryTitle;
            rptWidth = dataTable.clientWidth;
            rptHeight = dataTable.clientHeight;
            originalRptWidth = rptWidth;
            originalRptHeight = rptHeight;
            originalRowHeight = Math.floor(rptHeight/(dataTable.rows.length+1));
            rptPageHeightMax = 580;                                                                                //660 less basic header and footer of 80
            if (header2 != '#') rptPageHeightMax = rptPageHeightMax - 20;   // adjust for extra headings
            if (header3 != '#') rptPageHeightMax = rptPageHeightMax - 20;  
            if (dataTable.rows.length == 1) {
                ColumnCnt = 1;                //No Applicable Data found message
            else {
                ColumnCnt = getTotalColumns();
            startingFont = 65;
            varFontSize = startingFont;
            if (rptWidth > WidthMax) {
                while ((rptWidth > WidthMax) && (varFontSize > 15))
                    writeDynamicFontRevisions(varFontSize);
                    rptWidth = dataTable.clientWidth;
                    rptHeight = dataTable.clientHeight;
                    varFontSize = varFontSize - 5;
                // calculate max rows per page
                rowHeight = Math.floor(rptHeight/(dataTable.rows.length+1)) + 1;        // add 1 for 2 row heading, add 1 for padding
                RowsPerPageMax = Math.floor(rptPageHeightMax/rowHeight) - 2;   // adjust for column headings
            if (dataTable.rows.length == 1) {
                varPageTotal = 1;                //No Applicable Data found message
            else {
                totalRows = dataTable.rows.length-1;                                       // total rows less headings
                varPageTotal = Math.floor(totalRows/RowsPerPageMax);       // compute total pages
                if (totalRows != (varPageTotal * RowsPerPageMax)) {
                    varPageTotal = varPageTotal + 1;                                        // if not a complete last page, add 1 for partial page
            currPage = 1;
            document.write(formatToPrint());
            document.all.tp1.style.display = "none";
            document.all.tp1.style.visibility = "hidden";
    //        DisplayPrintNotice();
    -->
    </SCRIPT>
    <STYLE>
    input.ie55   { display: none }
    </STYLE>
    <!-- special style sheet for printing -->
    <STYLE media=print>
    .noprint     { display: none }
    </STYLE>
    <script defer>
    function window.onload() {
        if (!factory.object) {
            return
        else {
    //     factory.printing.header = "SAP"
    //     factory.printing.footer = "SAP"
            if ( varPaperSize == "2" ) { factory.printing.portrait = true; }
            else { factory.printing.portrait = false; }
            factory.printing.Print(true);
            // enable control buttons
      /*  var templateSupported = factory.printing.IsTemplateSupported();
           var controls = idControls.all.tags("input");
           for ( i = 0; i < controls.length; i++ ) {
               controls<i>.disabled = false;
               if ( templateSupported && controls<i>.className == "ie55" )
                  controls<i>.style.display = "inline";
    </script>
    <P>
    <div id=idControls class="noprint" style="VISIBILITY: hidden">
    <input disabled type="button" value="Print this page"
    onclick="factory.printing.Print(true)">
    <input disabled type="button" value="Page Setup..."
    onclick="factory.printing.PageSetup()">
    <input class=ie55 disabled type="button" value="Print Preview..."
    onclick="factory.printing.Preview()">
    <input class=ie55 disabled type="button" value="Landscape"
    onclick="factory.printing.portrait=false">
    <input class=ie55 disabled type="button" value="Portrait"
    onclick="factory.printing.portrait=true">
    </div>
    </BODY>
    </HTML>

  • To convert a crystal report into word(*.doc) format

    Dear members,
    I have designed and generated a report using crystal as tool,but
    i want to convert this report into Microsoft word format(*.doc).
    Can anybody please help me in this regard?
    Thanks and regards,
    Venkatesh.R

    Hi
    Simple way is to you use Cristal Reports Designer: you can use CR Report convertion function.
    File/Export/Export Report... choose Word Document (rtf) modificable what can be opened with Word and saved how Word Document (.doc).
    Other way:
    Imports CrystalDecisions.CrystalReports.Engine
    Imports CrystalDecisions.Shared
    Dim CrxReport As New CrystalDecisions.CrystalReports.Engine.ReportDocument
    CrxReport.ExportToDisk(CrystalDecisions.[Shared].ExportFormatType.RichText, _
                                        "c:\open_me_with_word.rtf")
    HTH
    Regards
    Sierdna S.
    Edited by: Sierdna S on Sep 24, 2008 12:49 PM

  • Want to convert Sap standard report  into alvgrid

    HI PLEASE HELP THIS IS CODE BELOW OF SAP STANDARD REPORT CODE  WANT TO CONVERT INTO ALVGRID
    LEAS HELP
    REPORT RFKOPR00
           MESSAGE-ID FR
           LINE-SIZE  132
           NO STANDARD PAGE HEADING.
    TABLES:   B0SG,
              LFA1,                        "Daten auf Mandantenebene
                LFB1,                      "Daten auf Buchungskreisebene
                  LFB5,                    "Mahndaten
                  LFC1,                    "Verkehrszahlen
                  LFC3,                    "Sonderumsätze
                  BSIK,                    "Offend Posten
                  BKPF,
                    BSEG,
                           BSEGA.
    TABLES:
              BHDGD,
              T001,
              T001S,
              *T001S,
              T074T,
              T074U,
              TBSL,
              TBSLT,
              TCURX,
              ADRS,
              RFPDO,
              RFPDO1,
              RFSDO,
              FAEDE.
    FIELD-SYMBOLS: .
    *Hilfsfelder
    *---Prüfung ob mehrere Hauswährungen verarbeitet werden.
    DATA:    CFAKT(3)      TYPE P,
             CHECKSALDO(8) TYPE P,
             CHECKAGOBL(8) TYPE P,
             WAERS LIKE T001-WAERS,
             WFLAG(1) TYPE P VALUE '0',
             WAERS2        LIKE T001-WAERS,
             WFLAG2(1)     TYPE P VALUE '0',
             PH-LINE(132)  TYPE C.
    *---Ermittlung aktuelles Geschäftsjahr über Funktionsbaustein.
    DATA: CURRY LIKE BSIK-GJAHR.
    *-Ermittlung Zahlungseingang bei Zahlungen mit Skontoabzug--
    *ATA: ZVTAGE LIKE KNB4-VZS01, "Verzugstage
        ZVSKONTO(8) TYPE P,     "Zahlungsvolumen bei Zahlung mit Skonto
        ZVNETTO(8)  TYPE P,     "Zahlungsvolumen bei Nettozahlung
        ZVVERZUG(8) TYPE P,     "Verzugstage
        ZVMALVZ(8)  TYPE P,     "Zahlungvolumen * Verzugstage
                                "KNB4-VZSxx)
        ZVTYP(1)    TYPE C,     "Skonto oder Nettozahler
        ZVPER(4)    TYPE C.     "Periode letze Zahlung
    *---Zeilenanzahl fü Adressausgabe -
    DATA: ZEILENANZAHL LIKE ADRS-ANZZL VALUE 7.
    DATA: KSALDO(6)  TYPE P.               "Saldovortrag
        BEABZUG(6) TYPE P,                   "Berechtigte Abzüge
        UBABZUG(6) TYPE P,                   "Unberechtigte Abzüge
        JAHRAUG(6) TYPE P,                   "Kumulierter Jahresausgleich
        KUMZINS(6) TYPE P.                   "Kumulierter Zins
    Ausgabe der Mahndaten pro Buchungskreis.
    DATA: INDEX(2) TYPE P VALUE 0.
    Hilfsfelder
    DATA: HF(1)    TYPE C.
    DATA: TXT_1(78) TYPE C,                "Mahnbereich
          TXT_2(78) TYPE C,                "Mahnart
          TXT_3(78) TYPE C,                "Mahnempfänger
          TXT_4(78) TYPE C,                "Mahndatum
          TXT_5(78) TYPE C,                "Mahnstufe
          TXT_6(78) TYPE C,                "Mahnsperre
          TXT_7(78) TYPE C,                "Mahnverfahren
          TXT_8(78) TYPE C.                "Sachbearbeiter
    DATA: BEGIN OF XMAHN OCCURS 10.
            INCLUDE STRUCTURE LFB5.
    DATA: END OF XMAHN.
    Hilfsfelder
    DATA: CHAR1(1)   TYPE C.
    DATA: FLAG1(1)   TYPE C.
    DATA: INTENS(1)  TYPE C.
    DATA: FLAG2(1)   TYPE C.
    *---- K o n s t a n t e n -
    *---- DNULL zum Vergleich mit Datumsfeldern -
    DATA: DNULL(8) TYPE C VALUE '00000000'.
    *---- DECKBLATT = 'N' ==> Kein Deckblatt bei NEW-SECTION -
    DATA: DECKBLATT TYPE C VALUE 'N'.
    *---- 'H' =   Hilfsfelder, die jederzeit fuer Berechnungen ver-  -
    *---- wendet werden koennen. -
    DATA: BEGIN OF H,
            STICHTAG(8),
            OFFSET(2) TYPE P,
            OFFSE1(2) TYPE P,
            SOLL      LIKE LFC1-UM01S,
            HABEN     LIKE LFC1-UM01H,
            SALDO     LIKE LFC1-UMSAV,
            SHBKZ     LIKE LFC3-SHBKZ,     "Sonderhauptbuchkennzeichen
            SALDV     LIKE LFC3-SALDV,     "Sonderhauptbuch-Saldovortrag
            SHBLS     LIKE LFC3-SOLLL,     "Sonderhauptbuch-Lfd.-Saldo
            SHBSL     LIKE LFC3-SOLLL,     "Sonderhauptbuch-Lfd.-SOLL
            SHBHB     LIKE LFC3-HABNL,     "Sonderhauptbuch-Lfd.-HABEN
          GBNUM     LIKE lfC1-GBN01,    "Geschaeftsber. Nummer ECKERT
          GBUMS     LIKE lfC1-GBU01,    "Geschaeftsber. Umsatz
            TEXT(15),
            UMLOW     LIKE BSIK-UMSKZ,     "Umsatzkennzeichen
            UMHIG     LIKE BSIK-UMSKZ,     "Umsatzkennzeichen
          END   OF H.
    ---- 'C' =   Zwischenergebnisse, die aus Feldern des C-Segmentes ---
    *---- berechnet werden. -
    DATA: BEGIN OF C,
            SALDO     TYPE P,              "Saldo
            UMKZ1     LIKE LFC3-SHBKZ,     "SHBKZ 1
            SUMS1     TYPE P,              "Sonderumsatz 1
            UMKZ2     LIKE LFC3-SHBKZ,     "SHBKZ 2
            SUMS2     TYPE P,              "Sonderumsatz 2
            UMKZ3     LIKE LFC3-SHBKZ,     "SHBKZ 3
            SUMS3     TYPE P,              "Sonderumsatz 3
            UMKZ4     LIKE LFC3-SHBKZ,     "SHBKZ 4
            SUMS4     TYPE P,              "Sonderumsatz 4
            UMKZ5     LIKE LFC3-SHBKZ,     "SHBKZ 5
            SUMS5     TYPE P,              "Sonderumsatz 5
            UMKZ6     LIKE LFC3-SHBKZ,     "SHBKZ 6
            SUMS6     TYPE P,              "Sonderumsatz 6
            UMKZ7     LIKE LFC3-SHBKZ,     "SHBKZ 7
            SUMS7     TYPE P,              "Sonderumsatz 7
            UMKZ8     LIKE LFC3-SHBKZ,     "SHBKZ 8
            SUMS8     TYPE P,              "Sonderumsatz 8
            UMKZ9     LIKE LFC3-SHBKZ,     "SHBKZ 9
            SUMS9     TYPE P,              "Sonderumsatz 9
            UMKZ10    LIKE LFC3-SHBKZ,     "SHBKZ 10
            SUMS10    TYPE P,              "Sonderumsatz 10
            SONOB     TYPE P,              "Sonstige Umsatz-Kz
            BABZG     TYPE P,              "Berechtigte Abzuege
            UABZG     TYPE P,              "Unberechtigte Abzuege
            KZINS     TYPE P,              "Zinszahlungen
            KUMUM     TYPE P,              "Umsatz
            KUMAG     TYPE P,              "Kum. Jahresausgleich
          KREUEB    TYPE P,         "Kreditueberschreitung
          AGOBLI    TYPE P,         "Gesamt-Obligo (absolut)
            AGOBLI LIKE LFC1-UMSAV,        "Gesamt-Obligo (absolut)
          RGOBLI    TYPE P,         "Gesamt-Obligo (relativ)
          LFTAGE(3) TYPE P,         "Langfristige Überzugstage
          MFTAGE(3) TYPE P,         "Mittelfristige Überzugstage
          KFTAGE(3) TYPE P,         "Kurzfristige Überzugstage
          END   OF C.
    ---- 'C2'=   Zwischenergebnisse, die aus Feldern des C-Segmentes ---
    *---- berechnet werden. -
    DATA: BEGIN OF C2 OCCURS 0,
            BUKRS     LIKE LFC1-BUKRS,
            SALDO     TYPE P,              "Saldo
          WEXOB     TYPE P,         "Wechsel-Obligo        W,S,B
          ANZOB     TYPE P,         "Anzahlungs-Obligo     A
          ZANFB     TYPE P,         "Zahlungs-Anforderung  F
            UMKZ1     LIKE LFC3-SHBKZ,     "SHBKZ 1
            SUMS1     TYPE P,              "Sonderumsatz 1
            UMKZ2     LIKE LFC3-SHBKZ,     "SHBKZ 2
            SUMS2     TYPE P,              "Sonderumsatz 2
            UMKZ3     LIKE LFC3-SHBKZ,     "SHBKZ 3
            SUMS3     TYPE P,              "Sonderumsatz 3
            UMKZ4     LIKE LFC3-SHBKZ,     "SHBKZ 4
            SUMS4     TYPE P,              "Sonderumsatz 4
            UMKZ5     LIKE LFC3-SHBKZ,     "SHBKZ 5
            SUMS5     TYPE P,              "Sonderumsatz 5
            UMKZ6     LIKE LFC3-SHBKZ,     "SHBKZ 6
            SUMS6     TYPE P,              "Sonderumsatz 6
            UMKZ7     LIKE LFC3-SHBKZ,     "SHBKZ 7
            SUMS7     TYPE P,              "Sonderumsatz 7
            UMKZ8     LIKE LFC3-SHBKZ,     "SHBKZ 8
            SUMS8     TYPE P,              "Sonderumsatz 8
            UMKZ9     LIKE LFC3-SHBKZ,     "SHBKZ 9
            SUMS9     TYPE P,              "Sonderumsatz 9
            UMKZ10    LIKE LFC3-SHBKZ,     "SHBKZ 10
            SUMS10    TYPE P,              "Sonderumsatz 10
            SONOB     TYPE P,              "Sonstige Umsatz-Kz
            BABZG     TYPE P,              "Berechtigte Abzuege
            UABZG     TYPE P,              "Unberechtigte Abzuege
            KZINS     TYPE P,              "Zinszahlungen
            KUMUM     TYPE P,              "Umsatz
            KUMAG     TYPE P,              "Kum. Jahresausgleich
          KREUEB    TYPE P,         "Kreditueberschreitung
          AGOBLI    TYPE P,         "Gesamt-Obligo (absolut)
            AGOBLI LIKE LFC1-UMSAV,        "Gesamt-Obligo (absolut)
          RGOBLI    TYPE P,         "Gesamt-Obligo (relativ)
            LFTAGE(3) TYPE P,              "Langfristige Überzugstage
            MFTAGE(3) TYPE P,              "Mittelfristige Überzugstage
            KFTAGE(3) TYPE P,              "Kurzfristige Überzugstage
            ZVTYP(1)    TYPE C,            "Flag Skonto oder Nettozahler
            ZVPER(6)    TYPE C,            "letze Zahlungsperiode
            ZVVERZUG(8) TYPE P,            "Durchschittliche Verzugst
          END   OF C2.
    ---- 'C3'=   Zwischenergebnisse, die aus Feldern des C-Segmentes ---
    *---- berechnet werden. -
    DATA: BEGIN OF C3,
            SALDO     TYPE P,              "Saldo
          WEXOB     TYPE P,         "Wechsel-Obligo        W,S,B
          ANZOB     TYPE P,         "Anzahlungs-Obligo     A
          ZANFB     TYPE P,         "Zahlungs-Anforderung  F
            UMKZ1     LIKE LFC3-SHBKZ,     "SHBKZ 1
            SUMS1     TYPE P,              "Sonderumsatz 1
            UMKZ2     LIKE LFC3-SHBKZ,     "SHBKZ 2
            SUMS2     TYPE P,              "Sonderumsatz 2
            UMKZ3     LIKE LFC3-SHBKZ,     "SHBKZ 3
            SUMS3     TYPE P,              "Sonderumsatz 3
            UMKZ4     LIKE LFC3-SHBKZ,     "SHBKZ 4
            SUMS4     TYPE P,              "Sonderumsatz 4
            UMKZ5     LIKE LFC3-SHBKZ,     "SHBKZ 5
            SUMS5     TYPE P,              "Sonderumsatz 5
            UMKZ6     LIKE LFC3-SHBKZ,     "SHBKZ 6
            SUMS6     TYPE P,              "Sonderumsatz 6
            UMKZ7     LIKE LFC3-SHBKZ,     "SHBKZ 7
            SUMS7     TYPE P,              "Sonderumsatz 7
            UMKZ8     LIKE LFC3-SHBKZ,     "SHBKZ 8
            SUMS8     TYPE P,              "Sonderumsatz 8
            UMKZ9     LIKE LFC3-SHBKZ,     "SHBKZ 9
            SUMS9     TYPE P,              "Sonderumsatz 9
            UMKZ10    LIKE LFC3-SHBKZ,     "SHBKZ 10
            SUMS10    TYPE P,              "Sonderumsatz 10
            SONOB     TYPE P,              "Sonstige Umsatz-Kz
            BABZG     TYPE P,              "Berechtigte Abzuege
            UABZG     TYPE P,              "Unberechtigte Abzuege
            KZINS     TYPE P,              "Zinszahlungen
            KUMUM     TYPE P,              "Umsatz
            KUMAG     TYPE P,              "Kum. Jahresausgleich
          KREUEB    TYPE P,         "Kreditueberschreitung
          AGOBLI    TYPE P,         "Gesamt-Obligo (absolut)
            AGOBLI LIKE LFC1-UMSAV,        "Gesamt-Obligo (absolut)
          RGOBLI    TYPE P,         "Gesamt-Obligo (relativ)
          LFTAGE(3) TYPE P,         "Langfristige Überzugstage
          MFTAGE(3) TYPE P,         "Mittelfristige Überzugstage
          KFTAGE(3) TYPE P,         "Kurzfristige Überzugstage
          ZVTYP(1)    TYPE C,       "Flag Skonto oder Nettozahler
          ZVPER(6)    TYPE C,       "letze Zahlungsperiode
          ZVVERZUG(8) TYPE P,       "Durchschittliche Verzugst
          END   OF C3.
    DATA: SHBETRAG LIKE BSEGA-DMSHB.       "TYPE P.
    *---- 'RTAB' = Rastertabelle fuer offene Posten -
    DATA: BEGIN OF RTAB OCCURS 30,
            SORTK(1)   TYPE C,             "0 = Summe Gesber
                                           "1 = Summe aller Gesber
                                           "2 = Umsatzdaten
            BUKRS LIKE BSIK-BUKRS,
            GSBER LIKE BSIK-GSBER,
            WAERS LIKE BSIK-WAERS,
            RAART TYPE C,                  "Rasterart
                                           "1 = Netto-Faelligkeit
                                           "2 = Skonto1-Faelligkeit
                                           "3 = Zahlungseingang
                                           "4 = Ueber-Faelligkeit
            SPERR TYPE P,                  "gesprrte Posten
            KUMUM TYPE P,                  "Umsatz
            ANZAH TYPE P,                  "Anzahlungen
            OPSUM TYPE P,                  "Offene Posten Summe
            RAST1 TYPE P,                  "Rasterfeld 1
            RAST2 TYPE P,                  "Rasterfeld 2
            RAST3 TYPE P,                  "Rasterfeld 3
            RAST4 TYPE P,                  "Rasterfeld 4
            RAST5 TYPE P,                  "Rasterfeld 5
            RAST6 TYPE P,                  "Rasterfeld 6
          END   OF RTAB.
    *---- 'RBUS' = Rastertabelle fuer Summen pro Sachbearbeiter -
    *ATA: BEGIN OF RBUS OCCURS 30,
          SORTK(1)   TYPE C,        "0 = Summe Gesber
                                    "1 = Summe aller Gesber
          BUKRS LIKE BSIk-BUKRS,
          GSBER LIKE BSIk-GSBER,
          WAERS LIKE BSIk-WAERS,
          RAART TYPE C,             "Rasterart
                                    "1 = Netto-Faelligkeit
                                    "2 = Skonto1-Faelligkeit
                                    "3 = Zahlungseingang
                                    "4 = Ueber-Faelligkeit
          KUMUM TYPE P,             "Umsatz
          ANZAH TYPE P,             "Anzahlungen
          OPSUM TYPE P,             "Offene Posten Summe
          RAST1 TYPE P,             "Rasterfeld 1
          RAST2 TYPE P,             "Rasterfeld 2
          RAST3 TYPE P,             "Rasterfeld 3
          RAST4 TYPE P,             "Rasterfeld 4
          RAST5 TYPE P,             "Rasterfeld 5
          RAST6 TYPE P,             "Rasterfeld 6
        END   OF RBUS.
    *---- 'RBUK' = Rastertabelle fuer Summen pro Buchungskreis  -
    DATA: BEGIN OF RBUK OCCURS 30,
            SORTK(1)   TYPE C,             "0 = Summe Gesber
                                           "1 = Summe aller Gesber
                                           "2 = Umsatzdaten
            BUKRS LIKE BSIK-BUKRS,
            GSBER LIKE BSIK-GSBER,
            WAERS LIKE BSIK-WAERS,
            RAART TYPE C,                  "Rasterart
                                           "1 = Netto-Faelligkeit
                                           "2 = Skonto1-Faelligkeit
                                           "3 = Zahlungseingang
                                           "4 = Ueber-Faelligkeit
            SPERR TYPE P,                  "gesprrte Posten
            KUMUM TYPE P,                  "Umsatz
            ANZAH TYPE P,                  "Anzahlungen
            OPSUM TYPE P,                  "Offene Posten Summe
            RAST1 TYPE P,                  "Rasterfeld 1
            RAST2 TYPE P,                  "Rasterfeld 2
            RAST3 TYPE P,                  "Rasterfeld 3
            RAST4 TYPE P,                  "Rasterfeld 4
            RAST5 TYPE P,                  "Rasterfeld 5
            RAST6 TYPE P,                  "Rasterfeld 6
          END   OF RBUK.
    ---- 'RSUM' = Rastertabelle pro Währung über alle Buchungskreise ---
    DATA: BEGIN OF RSUM OCCURS 30,
            SORTK(1)   TYPE C,             "0 = Summe Gesber
                                           "1 = Summe aller Gesber
          BUKRS LIKE BSIk-BUKRS,
          GSBER LIKE BSIk-GSBER,
            WAERS LIKE BSIK-WAERS,
            RAART TYPE C,                  "Rasterart
                                           "1 = Netto-Faelligkeit
                                           "2 = Skonto1-Faelligkeit
                                           "3 = Zahlungseingang
                                           "4 = Ueber-Faelligkeit
            SPERR TYPE P,                  "gesperrte Posten
            KUMUM TYPE P,                  "Umsatz
            ANZAH TYPE P,                  "Anzahlungen
            OPSUM TYPE P,                  "Offene Posten Summe
            RAST1 TYPE P,                  "Rasterfeld 1
            RAST2 TYPE P,                  "Rasterfeld 2
            RAST3 TYPE P,                  "Rasterfeld 3
            RAST4 TYPE P,                  "Rasterfeld 4
            RAST5 TYPE P,                  "Rasterfeld 5
            RAST6 TYPE P,                  "Rasterfeld 6
          END   OF RSUM.
    *---- interne Tabelle für Periodenabgrenzung----
    RANGES: BMONAT FOR RFPDO-DOPRBMON.
    ---- In die Felder RP01 bis RP05 werden dynamisch die von aussen ---
    *---- eingegebenen Rasterpunkte uebertragen -
    DATA: RP01(2)   TYPE P,                "   0
          RP02(2)   TYPE P,                "  20
          RP03(2)   TYPE P,                "  40
          RP04(2)   TYPE P,                "  80
          RP05(2)   TYPE P,                " 100
          RP06(3)   TYPE P,                "   1
          RP07(3)   TYPE P,                "  21
          RP08(3)   TYPE P,                "  41
          RP09(3)   TYPE P,                "  81
          RP10(3)   TYPE P.                " 101
    *---- In die Felder RC01 bis RC10 werden die Rasterpunkte in -
    ---- charakterform abgestellt. (fuer REPLACE-Funktion in Variabler -
    *---- Ueberschrift) -
    DATA: RC01(4)   TYPE C,                                     "  0
          RC02(4)   TYPE C,                "  20
          RC03(4)   TYPE C,                "  40
          RC04(4)   TYPE C,                "  80
          RC05(4)   TYPE C,                " 100
          RC06(4)   TYPE C,                "   1
          RC07(4)   TYPE C,                "  21
          RC08(4)   TYPE C,                "  41
          RC09(4)   TYPE C,                "  81
          RC10(4)   TYPE C.                " 101
    *---- Felder für Umsatzkennzeichen -
    *---- für Ausweis der Sonderumsätze----
    DATA: HUMKZ1    LIKE LFC3-SHBKZ,
          HUMKZ2    LIKE LFC3-SHBKZ,
          HUMKZ3    LIKE LFC3-SHBKZ,
          HUMKZ4    LIKE LFC3-SHBKZ,
          HUMKZ5    LIKE LFC3-SHBKZ,
          HUMKZ6    LIKE LFC3-SHBKZ,
          HUMKZ7    LIKE LFC3-SHBKZ,
          HUMKZ8    LIKE LFC3-SHBKZ,
          HUMKZ9    LIKE LFC3-SHBKZ,
          HUMKZ10   LIKE LFC3-SHBKZ.
    *---- GBZAEHL - In diesem Feld wird vermerkt, fuer wieviele Ge- -
    *----           schaeftsbereiche ein OP-Raster ausgegeben wird. -
    ----           Wird das Raster nur fuer einen Geschaeftsbereich ge- -
    *----           druckt, so entfaellt das Summen-Raster. -
    DATA: GBZAEHL(3) TYPE P.
    ---- TOP-FLAG '1' = bei TOP-OF-PAGE Einzelpostenueberschrift ausg. --
    *----          '2' = bei TOP-OF-PAGE Ueberschrift fuer Raster ausgeb. *
    *----          '3' = bei TOP-OF-PAGE ULINE ausgeben. -
    ----          '4' = bei TOP-OF-PAGE Stammsatzueberschrift ausgeben --
    DATA: TOP-FLAG(1) TYPE C.
    *---- SEL-STAMM  'J' = Stammsatz wird ausgewertet                     *
    *----            'N' = Stammsatz wird nicht ausgewertet               *
    *---- SEL-POSTN  'J' = Stammsatz hat Posten gerastert                 *
    *----            'N' = Stammsatz hat keine Posten gerastert           *
    DATA: BEGIN OF SEL,
            STAMM(1) TYPE C,
            POSTN(1) TYPE C,
            POST2(1) TYPE C,
          END   OF SEL.
    *---- SATZART  '1' = Stammdaten -
    *----          '2' = Faelligkeitsraster -
    *----          '3' = Einzelposten -
    DATA: SATZART(1) TYPE C.
    *---- RART  =  Erste ausgewaehlte Rasterart -
    DATA: RART(1)    TYPE C.
    *---- TAGE  =  Tage nach denen die Posten sortiert sind -
    DATA: TAGE(4)    TYPE P,
    *---- NTAGE =  Tage fuer Netto-Faelligkeit -
          NTAGE(4)   TYPE P,
    *---- STAGE =  Tage fuer Skonto1-Faelligkeit -
          STAGE(4)   TYPE P,
    *---- ATAGE =  Alter der Belege -
          ATAGE(4)   TYPE P,
    *---- UTAGE =  Tage fuer Ueber-Faelligkeit -
          UTAGE(4)   TYPE P.
    *---- RASTERUU dient zur Sortierung der Einzelposten. Die Posten -
    *----          gemaess ihrer Rasterung die Werte '1' bis '6' -
    DATA: RASTERUU(1) TYPE C.
    *---- RAART  Rasterart -
    ---- Die einzelnen Felder der Feldleiste werden bei SART-OF-SELECTION
    *---- mit 1 oder 0 bestueckt. -
    *ATA: BEGIN OF RAART,
          NET(1)   TYPE C,      "X = ausgewaehlt, ' ' = nicht ausgewaehlt
          SKT(1)   TYPE C,      "X = ausgewaehlt, ' ' = nicht ausgewaehlt
          UEB(1)   TYPE C,      "X = ausgewaehlt, ' ' = nicht ausgewaehlt
        END   OF RAART.
    DATA: BEGIN OF GB,
            GSBER  LIKE BSIK-GSBER,
            WAERS  LIKE BSIK-WAERS,
          END   OF GB.
    *---- Variable Ueberschriften -
    DATA: BEGIN OF VARUEB1,
            FELD1(45)   TYPE C,
            FELD2(14)   TYPE C,
            FELD3(14)   TYPE C,
            FELD4(14)   TYPE C,
            FELD5(14)   TYPE C,
            FELD6(14)   TYPE C,
            FELD7(14)   TYPE C,
          END   OF VARUEB1.
    DATA: BEGIN OF VARUEB2,
            FELD1(45)   TYPE C,
            FELD2(14)   TYPE C,
            FELD3(14)   TYPE C,
            FELD4(14)   TYPE C,
            FELD5(14)   TYPE C,
            FELD6(14)   TYPE C,
            FELD7(14)   TYPE C,
          END   OF VARUEB2.
    DATA: VARUEB3(132),
          VARUEB4(132),
          VARTXT1(40),
          VARTXT(40)  TYPE C.
    *---- Variable für Ausgabe der Sonderumsätze----
    DATA: SHBBEZ LIKE T074T-LTEXT.
    DATA: ASUMS  TYPE P.                                        "
    *---- Interne Tabelle für Bezeichnungen der SHBKZ----
    DATA: BEGIN OF BEZSHB OCCURS 10,
            SHBKZ LIKE T074T-SHBKZ,
            LTEXT LIKE T074T-LTEXT,
          END OF BEZSHB.
    *---- Interne Tabelle für Zwischenspeicherung -
    DATA: BEGIN OF BLKEY,
            BUKRS LIKE BSIK-BUKRS,
            BELNR LIKE BSIK-BELNR,
            GJAHR LIKE BSIK-GJAHR,
            BUZEI LIKE BSIK-BUZEI,
          END   OF BLKEY.
    DATA: BEGIN OF RTAGE,
            NTAGE LIKE NTAGE,
            STAGE LIKE STAGE,
            ATAGE LIKE ATAGE,
            UTAGE LIKE UTAGE,
         END   OF RTAGE.
    DATA: BEGIN OF HBSIK OCCURS 10.
            INCLUDE STRUCTURE BSIK.
            INCLUDE STRUCTURE BSEGA.
            INCLUDE STRUCTURE RTAGE.
    DATA: END   OF HBSIK.
    DATA: BEGIN OF REFBL OCCURS 10.
            INCLUDE STRUCTURE BLKEY.
            INCLUDE STRUCTURE RTAGE.
    DATA: END   OF REFBL.
    DATA: BEGIN OF HLFB1 OCCURS 10.
            INCLUDE STRUCTURE LFB1.
    DATA: END   OF HLFB1.
    DATA: BEGIN OF HT001 OCCURS 10.
            INCLUDE STRUCTURE T001.
    DATA: END   OF HT001.
    *---- Interne Tabelle für Ausgabe der Obligos -
    DATA: BEGIN OF AOBLIGO OCCURS 12,
            OBART TYPE C,             "Flag für Obligoart 1 = Kontokorrent
                                           "                   2 = SHBKZ
                                      "                   3 = sonstige SHB
            SHBKZ LIKE T074T-SHBKZ,        "SHB-Kennzeichen
            LTEXT LIKE T074T-LTEXT,        "Bezeichnung
            OBLIG TYPE P,                  "Obligobetrag
          END OF AOBLIGO.
    *---- Declarationen für Accessibility /ALV GRID -
    data: ACC_MODE type c.
    Data: UEBTEXT(22) type c.
    Data: UEKTEXT(15)  type c.
    Data: TITTEXT(100) type c.
    Data: DATTEXT(10) type c.
    DATA: BEGIN OF RTAB_ALV OCCURS 30,
          SORTK(1)   TYPE C,             "0 = Summe Gesber
                                         "1 = Summe aller Gesber
                                         "2 = Umsatzdaten
            BUKRS LIKE BSIk-BUKRS,
            lifnr LIKE LFA1-lifnr,
            busab like lfb1-busab,
            SORTL LIKE lfA1-SORTL,
            LAND1 LIKE lfA1-LAND1,
            GSBER LIKE BSIk-GSBER,
            WAERS LIKE BSIk-WAERS,
          hwaer like rf140-hwaer,
            RAART like RF140-RAART,        "Rasterart
          shkzg like bsik-shkzg,
          XGUTS TYPE C,                  "Gutschrift
            KUMUM LIKE RF140-KUMUMHW,      "Umsatz
            ANZAH like rf140-anzbthw,      "Anzahlungen
            OPSUM like RF140-gsaldd,       "Offene Posten Summe
            RAST1 like RF140-rast1,        "Rasterfeld 1
            RAST2 like RF140-rast2,        "Rasterfeld 2
            RAST3 like RF140-rast3,        "Rasterfeld 3
            RAST4 like RF140-rast4,        "Rasterfeld 4
            RAST5 like RF140-rast5,        "Rasterfeld 5
            RAST6 like RF140-rast6,        "Rasterfeld 6
          END   OF RTAB_ALV.
    *"General Data
    TYPE-POOLS: SLIS.
    *DATA: BEGIN OF GT_OUTTAB OCCURS 0.
           INCLUDE STRUCTURE rtab_alv.
    *DATA: END OF GT_OUTTAB.
    Data: GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
         G_EXIT_CAUSED_BY_CALLER,
         GS_EXIT_CAUSED_BY_USER TYPE SLIS_EXIT_BY_USER,
          G_REPID LIKE SY-REPID,
          G_GRID_TITLE TYPE  LVC_TITLE.
    *"Callback
    *Data: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
         G_STATUS_SET   TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',
    Data: G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
         G_TOP_OF_PAGE  TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
         G_TOP_OF_LIST  TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST',
         G_END_OF_LIST  TYPE SLIS_FORMNAME VALUE 'END_OF_LIST'.
    *"Variants
    DATA: GS_VARIANT LIKE DISVARIANT,
          G_SAVE.
    Global structure of list
    fieldcatalog
    DATA:   LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA:   GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
    sort
    *DATA:   GT_SORT     TYPE SLIS_T_SORTINFO_ALV.
    events
    *DATA:   GT_EVENTS   TYPE SLIS_T_EVENT.
    *----- Structure for specific color settings -
    *DATA:   COL_TAB_T TYPE SLIS_T_SPECIALCOL_ALV,
           COL_TAB   TYPE SLIS_SPECIALCOL_ALV.
    DATA:   G_TABNAME TYPE SLIS_TABNAME VALUE 'RTAB_ALV'.
    print
    *DATA:   GS_PRINT    TYPE SLIS_PRINT_ALV.
    *---- FIELD-GROUPS                            -
    FIELD-GROUPS:
              HEADER,
              STAMMDATEN,
              OP-RASTER,
              EINZELPOSTEN.
    INSERT
      LFB1-BUKRS                           " Buchungskreis
    lfB1-BUSAB         " Sachbearbeiter
      LFA1-LIFNR                           " Kontonummer
      SATZART                              " Satzart
      RTAB-SORTK                           " Sortkz fuer Tabelle RTAB
                                           " '0' = normale Eintraege
                                           " '1' = Summeneintraege
      GB                                   " Geschaeftsbereich
                                           " - GB-GSBER
                                           " - GB-WAERS
      RASTERUU         " Kennzeichen fuer Detailposten bzw Raster
    ab hier nur fuer Einzelposten -
      TAGE                                 " Rastertage  fuer Detailposten
      BSIK-UMSKZ                           " Umsatzkennzeichen
      BSIK-BLART                           " Belegart
    BSIK-ZUONR         " Zuordnungsnummer
      BSIK-BELNR                           " Belegnummer
      BSIK-BUZEI                           " Belegzeile
    INTO HEADER.
    INSERT
    Addressdaten
      ADRS-LINE0                           " 1. Zeile Adressenaufbereitung
      ADRS-LINE1                           " 2. "     "
      ADRS-LINE2                           " 3. "     "
      ADRS-LINE3                           " 4. "     "
      ADRS-LINE4                           " 5. "     "
      ADRS-LINE5                           " 6. "     "
      ADRS-LINE6                           " 7. "     "
    ADRS-LINE7         " 8. "     "
    ADRS-LINE8         " 9. "     "
    ADRS-LINE9         " 10."     "
    Umsatzdaten
      C-KUMUM                              " Umsatz
    C-BABZG          " Berechtigt. Abzuege
    C-UABZG          " Unberechtigt. Abzuege
    C-KZINS          " Zinszahlungen
    C-KUMAG          " Kum. Jahresausgleich
    Obligos
      C-SALDO                              " Saldo ohne SHB-Vorgänge
      C-UMKZ1                              "SHBKZ 1
      C-SUMS1                              "Sonderumsatz 1
      C-UMKZ2                              "SHBKZ 2
      C-SUMS2                              "Sonderumsatz 2
      C-UMKZ3                              "SHBKZ 3
      C-SUMS3                              "Sonderumsatz 3
      C-UMKZ4                              "SHBKZ 4
      C-SUMS4                              "Sonderumsatz 4
      C-UMKZ5                              "SHBKZ 5
      C-SUMS5                              "Sonderumsatz 5
      C-UMKZ6                              "SHBKZ 6
      C-SUMS6                              "Sonderumsatz 6
      C-UMKZ7                              "SHBKZ 7
      C-SUMS7                              "Sonderumsatz 7
      C-UMKZ8                              "SHBKZ 8
      C-SUMS8                              "Sonderumsatz 8
      C-UMKZ9                              "SHBKZ 9
      C-SUMS9                              "Sonderumsatz 9
      C-UMKZ10                             "SHBKZ 10
      C-SUMS10                             "Sonderumsatz 10
      C-SONOB                              " Sonst. Obligen
    Limits
      C-AGOBLI                             " Absolutes Gesamtobligo
    Zahlungdaten
      LFB1-ZTERM                           "Zahlungsbedingung
      LFB1-ZAHLS                           "Sperrschlüssel für Zahlung
      LFB1-ZWELS                           "Zahlwege
      LFB1-XVERR                           "Zahlungsverrechnung
      LFB1-WEBTR                           "Wechsellimit
      LFB1-BUSAB                           " Sachbearbeiter
      lfa1-sortl
      lfa1-land1
    INTO STAMMDATEN.
    INSERT
      RTAB-RAART                           "Rasterart
      RTAB-SPERR                           "gesperrte Posten
      RTAB-KUMUM                           "Umsatz
      RTAB-ANZAH                           "Anzahlungen
      RTAB-OPSUM                           "Offene Posten Summe
      RTAB-RAST1                           "Rasterfeld 1
      RTAB-RAST2                           "Rasterfeld 2
      RTAB-RAST3                           "Rasterfeld 3
      RTAB-RAST4                           "Rasterfeld 4
      RTAB-RAST5                           "Rasterfeld 5
      RTAB-RAST6                           "Rasterfeld 6
    INTO OP-RASTER.
    INSERT
      BSIK-BUDAT                           " Buchungsdatum
      BSIK-BLDAT                           " Belegdatum
      BSIK-CPUDT                           " CPU-Datum
    BKPF-USNAM         " User-ID
      BSIK-WAERS                           " Wahrungsschluessel
      BSEGA-NETDT                          " Nettofaelligkeitsdatum
    FAEDE-NETDT        " Nettofaelligkeitsdatum
      BSIK-ZFBDT                           " Zahlungsfristen-Basisdatum
      BSIK-BSCHL                           " Buchungsschluessel
      BSIK-ZLSCH                           " Zahlungsschluessel
    BSIK-MANST         " Mahnstufe
      SHBETRAG                             " Hauswaehrungsbetrag
      BSEGA-DMSHB                          " Hauswaehrungsbetrag
      BSEGA-WRSHB                          " Fremwaehrungsbetrag
    INTO EINZELPOSTEN.
    BEGIN_OF_BLOCK 1.
    *ELECT-OPTIONS:
         GESBER   FOR BSIK-GSBER.
    PARAMETERS:
           MONAT    LIKE RFPDO-DOPRBMON.
    SELECT-OPTIONS:
           KKSALDO2 FOR RFSDO-KOPRSAL2,    "Saldovortrag
           AGOBLIG2 FOR RFSDO-KOPRAGO2.    "Absolutes Obligo
         RGOBLIGO FOR RFSDO-DOPRRGOB.          "Relatives Obligo
    SELECT-OPTIONS:
         LAND     FOR LFA1-LAND1,
         KONTENGR FOR LFA1-KTOKK,
         SACHBEAR FOR LFB1-BUSAB,
           AKONTS   FOR LFB1-AKONT,
           AKONTP   FOR BSIK-HKONT.
    SELECT-OPTIONS:
           BUDAT    FOR BSIK-BUDAT,
           BLDAT    FOR BSIK-BLDAT,
           NETDT    FOR BSEGA-NETDT.
    PARAMETERS:     N_BELEGE    LIKE RFPDO-BPETNBEL
                                       DEFAULT 'X',   "Normale Belege.
                    STAT_BLG    LIKE RFPDO-BPETSBEL.  "Statistische Belege
    END_OF_BLOCK 1.
    *ELECT-OPTIONS:
         BERABZU1 FOR LFC1-BABZG,
         UNBABZU1 FOR LFC1-UABZG,
         ZINSE1   FOR LFC1-KZINS,
         JHRAUSG1 FOR LFC1-KUMAG.
         BERABZUG FOR BEABZUG NO-DISPLAY,       "Berechtigter Abzug
         UNBABZUG FOR UBABZUG NO-DISPLAY,       "Unberechtigter Abzug
         ZINSEN   FOR KUMZINS NO-DISPLAY,       "Kumulierter Zins
         JHRAUSGL FOR JAHRAUG NO-DISPLAY.       "Kumulierter Jahresausgl.
    BEGIN_OF_BLOCK 2.
    PARAMETERS:
           SORTART  LIKE RFPDO1-KOPRSOAR DEFAULT '1',          "Doku
           VERDICHT LIKE RFPDO1-KOPRVERD DEFAULT '1',          "Doku
           RASTVERD LIKE RFPDO1-KOPRRAST DEFAULT '0',          "Doku
           KONZVERS LIKE RFPDO-DOPOKONZ,   "Konzernversion
           XBUKRDAT LIKE RFPDO3-ALLGBUKD DEFAULT 0, "Bukr.daten
           KAUSGABE like rfpdo3-ALLGKAOR.
         SELECTION-SCREEN BEGIN OF LINE.
         SELECTION-SCREEN COMMENT 01(30) TEXT-030.
    PARAMETERS: RART-NET LIKE RFPDO-DOPRRNET DEFAULT 'X'.
         SELECTION-SCREEN COMMENT 33(01) TEXT-028.
    PARAMETERS: RART-SKT LIKE RFPDO-DOPRRSKT DEFAULT 'X'.
         SELECTION-SCREEN COMMENT 35(01) TEXT-028.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: RART-ALT LIKE RFPDO1-KOPRRALT DEFAULT 'X'.
    SELECTION-SCREEN COMMENT 03(28) TEXT-031.
    SELECTION-SCREEN POSITION POS_HIGH.
    PARAMETERS      RBLDAT   LIKE RFPDO2-KORD10BD.
    SELECTION-SCREEN COMMENT 61(12) TEXT-032.
    SELECTION-SCREEN END OF LINE.
         SELECTION-SCREEN COMMENT 37(01) TEXT-028.
    PARAMETERS: RART-UEB LIKE RFPDO-DOPRRUEB DEFAULT 'X'.
         SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 01(31) TEXT-026.
    PARAMETERS: RASTBIS1 LIKE RFPDO1-ALLGROGR DEFAULT '000'.
         SELECTION-SCREEN COMMENT 35(02) TEXT-027.
    PARAMETERS: RASTBIS2 LIKE RFPDO1-ALLGROGR DEFAULT '020'.
         SELECTION-SCREEN COMMENT 41(02) TEXT-027.
    PARAMETERS: RASTBIS3 LIKE RFPDO1-ALLGROGR DEFAULT '040'.
         SELECTION-SCREEN COMMENT 47(02) TEXT-027.
    PARAMETERS: RASTBIS4 LIKE RFPDO1-ALLGROGR DEFAULT '080'.
         SELECTION-SCREEN COMMENT 53(02) TEXT-027.
    PARAMETERS: RASTBIS5 LIKE RFPDO1-ALLGROGR DEFAULT '100'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 01(31) TEXT-029.
    PARAMETERS:  FAKTOR LIKE RFPDO-DOPRFAKT DEFAULT '0'.
    SELECTION-SCREEN COMMENT 35(1) TEXT-028.
    PARAMETERS:  STELLEN LIKE RFPDO-DOPRFAKT DEFAULT '0'.
    SELECTION-SCREEN END OF LINE.
    PARAMETERS: PZUOR    LIKE RFPDO2-DOPRZUOR.
    PARAMETERS: UMSATZKZ LIKE RFPDO1-DOPRSHBO. "DEFAULT 'WSABIMVD'.
    PARAMETERS:
           TITLE       LIKE RFPDO1-ALLGLINE,
           LISTSEP     LIKE RFPDO-ALLGLSEP,
           MIKFICHE    LIKE RFPDO-ALLGMIKF.
    PARAMETERS:
           P_LVAR    LIKE Gs_VARIANT-VARIANT DEFAULT SPACE modif id 508.
    END_OF_BLOCK 2.
    AT SELECTION-SCREEN OUTPUT.
    if acc_mode is initial.
      LOOP AT SCREEN.
        IF SCREEN-GROUP1 = '508'.
          SCREEN-active    = '0'.
          MODIFY SCREEN.
        ENDIF.
    ENDLOOP.
    endif.
    AT SELECTION-SCREEN ON AKONTS.
       Konvertierung der Kontonummer
      LOOP AT AKONTS.
        PERFORM ALPHAFORMAT(SAPFS000)
          USING AKONTS-LOW AKONTS-LOW.
        PERFORM ALPHAFORMAT(SAPFS000)
          USING AKONTS-HIGH AKONTS-HIGH.
        MODIFY AKONTS.
      ENDLOOP.
    AT SELECTION-SCREEN ON AKONTP.
       Konvertierung der Kontonummer
      LOOP AT AKONTP.
        PERFORM ALPHAFORMAT(SAPFS000)
          USING AKONTP-LOW AKONTP-LOW.
        PERFORM ALPHAFORMAT(SAPFS000)
          USING AKONTP-HIGH AKONTP-HIGH.
        MODIFY AKONTP.
      ENDLOOP.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_LVAR.
      Gs_VARIANT-REPORT  = SY-REPID.
      Gs_VARIANT-VARIANT = P_LVAR.
      PERFORM F4_FOR_S_LVAR   USING Gs_VARIANT.
      P_LVAR = Gs_VARIANT-VARIANT.
    AT SELECTION-SCREEN.
      IF NOT RASTBIS5 IS INITIAL.
        IF  RASTBIS5 GT RASTBIS4
        AND RASTBIS4 GT RASTBIS3
        AND RASTBIS3 GT RASTBIS2
        AND RASTBIS2 GT RASTBIS1.
        ELSE.
          MESSAGE E379.
        ENDIF.
      ELSE.
        IF NOT RASTBIS4 IS INITIAL.
          IF  RASTBIS4 GT RASTBIS3
          AND RASTBIS3 GT RASTBIS2
          AND RASTBIS2 GT RASTBIS1.
          ELSE.
            MESSAGE E379.
          ENDIF.
        ELSE.
          IF NOT RASTBIS3 IS INITIAL.
            IF  RASTBIS3 GT RASTBIS2
            AND RASTBIS2 GT RASTBIS1.
            ELSE.
              MESSAGE E379.
            ENDIF.
          ELSE.
            IF NOT RASTBIS2 IS INITIAL.
              IF  RASTBIS2 GT RASTBIS1.
              ELSE.
                MESSAGE E379.
              E

    Hi Laxman,
    I have checked the program and found out following:
    the field "acc_mode" which gets populated by FM "GET_ACCESSIBILITY_MODE".
    If this field is initial, then normal list gets displayed and
    If this field has value, then ALV grid gets displayed.
    regards,
    Dharitree

  • How to convert Bex Analyser report into normal MS Excel sheet

    Hi,
    I created query in Bex Analyser. Now, I want to send this copy as a normal MS Excel document through mail.
    When I tried save as and send a copy, It is showing the filter,table, information buttons and appearing same as bex report.  I would like to see normal excel sheet when it opens.
    Is there any way except copy & paste.
    Any help would be appreciated.
    Thanks,
    Aparna.

    Hi Chandu,
    I followed same procedure as you said. I created one node for SMTP in SAP connect:Administration(SCOT).
    I gave destination as RFC destination -> BWDCLNT -> Internet -> enter mail address...etc as per system requirements.
    Once I executed, It is showing "No message sent". Did I miss any steps to follow...
    Can you give me step by step procedure to follow.
    In our Bex tools, Only Broadcaster was disabled. If I configure mail server, may be it enable?
    Your help would be appreciated.
    Thanks,
    Aparna.

  • Convert table row data into column - 8i

    hello all,
    i have a table with the following data
    Machine Time
    MAC1 - 1
    MAC2 - 2
    MAC3 - 3
    MAC4 - 4
    MAC5 - 5
    and want to have a query as only for the mac1, mac2 and mac3
    MAC1 MAC2 MAC3
    1 2 3
    how to acheived this...i am on 8i thanks in adv.
    KK

    SELECT SUM(DECODE(MACHINE,'MAC1',TIME)) "MAC1",
    SUM(DECODE(MACHINE,'MAC2',TIME)) "MAC2" ,
    SUM(DECODE(MACHINE,'MAC3',TIME)) "MAC3" FROM TABLENAME

  • How to convert  PLD Report into Crystal Report

    Hello Experts,
                             I want to convert my  PLD Report into Crystal Report, but  i am not able to find the solution ,
                             so how can i do this and what are the  steps have to taken.
    Kindly give me the solution .
    Regards
    Rahul

    Hi Rahul........
    SAP has given a tool where you can convert your PLDs into Crystal Reports.......
    Please check the below link to download tool......
    http://www.sdn.sap.com/irj/scn/downloads?rid=/library/uuid/108305a7-1555-2d10-8289-9a178d441c71
    Regards,
    Rahul

  • Can we convert a T-Code into WebService.

    Dear SOA Gurus,
       Can you please tell me if there is a way to convert a SAP T-Code into a Web-Service. Also, can you please share your thoughts on how I can convert an ABAP report into a WebService and call it from Java stack.
    Thanks!
    Surya.

    It depends on your requirement.  Olivier is right though - there's no direct realtionship or conversion tool.  However, if you are just trying to obtain the data that a particular custom transaction or report provides without rewriting the logic, you can wrap the report or transaction call in a function module and hand-off the data through ABAP memory to the function module interface.  Then, convert the function module or group to a web service.  I do this most often with monster reports that generate PDF's.  Instead of actually rendering the PDF on the desktop as the report would do from SAP, I push the binary data to an external application which opens the PDF in a browser window.

  • How to convert Classical Report into PDF format..........

    Hi Experts,
    I have written a classical report with write statements and when i am downloading in excel the format is mismatching and now i want to convert into PDF format.
    How to convert into PDF format from Classical report ?
    Yusuf

    Hi yusuf,
    please find the below report,,
    please make two include programs before executing it,
    there codes are pasted below,
    INCLUDE zimpr_data_declaration.
    INCLUDE zimpr_performs_wrap.
    REPORT  zimpr_word_wrap NO STANDARD PAGE HEADING LINE-SIZE 115..
                INCLUDE for DATA DECLARATION                               *
    INCLUDE zimpr_data_declaration.
                INCLUDE for all performs.                                  *
    INCLUDE zimpr_performs_wrap.
    TOP-OF-PAGE--
    TOP-OF-PAGE.
      PERFORM f_top_page.                     "TOP OF THE REPORT PAGE,I.E. HEADER.
    START-OF-SELECTION.
      SET PF-STATUS 'SEL_SCREEN'.             "PF-STATUS OF THE SELECTION SCREEN.
      PERFORM f_data_retrieval.               "PERFORM FOR ALL SELECT STATEMENTS.
      PERFORM f_report_display.               "REPORT DISPLAY,WRITE STATEMENTS.
    --Define the actions to be performed for pf-status-----
    AT USER-COMMAND.
      wf_ok_code = sy-ucomm.
      wf_save_ok = wf_ok_code.
      CLEAR wf_ok_code.
      CASE wf_save_ok.
        WHEN 'PDF'.          "WHEN PDF ICON IS CLICKED,REPORT WILL CONVERT INTO PDF.
          loc_repid  = sy-repid.   "PROGRAM NAME
    --THIS FM SETS  THE PARAMETERS FOR LAYOUT OF PDF OUTPUT--
          CALL FUNCTION 'GET_PRINT_PARAMETERS'
            EXPORTING
              layout                 = loc_paart             "LANDSCAPE LAYOUT
              line_size              = loc_linsz                  "CHARACTER WIDTH OF REPORT
              no_dialog              = 'X'
              user                   = sy-uname              "USERNAME
            IMPORTING
              out_parameters         = loc_print_parms        "OUTPUT PARAMETERS WILL BE COLLECTED HERE.
              valid                  = loc_valid
            EXCEPTIONS
              archive_info_not_found = 1
              invalid_print_params   = 2
              invalid_archive_params = 3
              OTHERS                 = 4.
    --FOR GENERATING THE SPOOL NUMBER--
          NEW-PAGE PRINT ON NO DIALOG PARAMETERS loc_print_parms.                        " This allocates the spool no
          "to the screen without the dialog screen.
          PERFORM f_top_page.
          PERFORM f_report_display.
          NEW-PAGE PRINT OFF.                                                      "This marks the end of the screen for which the spool no was generated.
          wf_id = sy-spono.                                                      " This assign the spool no of the screen to the variable.
    --PERFORM FOR GETTING THE PDF OUTPUT--
          PERFORM f_pdf_display.
    --PERFORM FOR DOWLOADING FILE TO A LOCAL DISK--
          PERFORM f_download_local.
        WHEN 'BACK'.
          LEAVE PROGRAM.
      ENDCASE.
    include data declaration----
    *&  Include           ZIMPR_DATA_DECLARATION
    TYPE-POOLS : shlp.
    DATA : wf_ordert TYPE aufk-auart.                      "ORDER TYPE
    DATA : wf_order TYPE aufk-aufnr.                       "ORDER NUMBER
    DATA : wf_bdate TYPE afko-gstrp.                       "BASIC START DATE
    DATA : wf_status(4) TYPE c ."rihea-i_astatin.                 "STATUS
    DATA : wf_objnr TYPE jest-objnr VALUE 'OR%'.           "Object number
    DATA : wf_aufnr TYPE aufk-aufnr.
    DATA : wf_name TYPE thead-tdname.                      "NAME TO PASS IN FM READ_TEXT
    DATA : wf_date1(12) TYPE c.                            "DATE
    DATA : wf_i1(3) TYPE n,wc_i1(3) TYPE n VALUE '1'.      "COUNTERS FOR REPORT DISPLAY
    DATA : wf_i2(3) TYPE n,wc_i2(3) TYPE n VALUE '1'.
    DATA : wf_kopf TYPE tdid VALUE 'KOPF',wf_aufk TYPE tdobject VALUE 'AUFK'.
    DATA : wf_save_ok TYPE sy-ucomm ,wf_ok_code TYPE sy-ucomm.
    DATA: wf_id TYPE tsp01-rqident ,                         " For storing Spool request number
          wf_bytes TYPE i .                                  " For storing the bytes of data to be converted to PDF.
    DATA : wf_langu(2) TYPE c VALUE 'EN'.
    DATA: wf_pripar TYPE pri_params,                         " Structure for Passing Print Parameters
          wf_rcpar TYPE arc_params.                          " ImageLink structure
    DATA : wf_statu TYPE dfies-fieldname VALUE 'STATUS',
           wf_field TYPE help_info-dynprofld VALUE 'S_STATUS'.
    &--SELECTION SCREEN--
    SELECTION-SCREEN BEGIN OF BLOCK b_1 WITH FRAME TITLE text-000.
    SELECTION-SCREEN SKIP 1.
    SELECT-OPTIONS:  s_ordert FOR wf_ordert .                  "ORDER TYPE
    SELECT-OPTIONS:  s_order FOR wf_order OBLIGATORY.          "ORDER NUMBER
    SELECT-OPTIONS:  s_bdate FOR wf_bdate.                      "BASIC START DATE
    SELECT-OPTIONS:  s_status FOR wf_status matchcode object zei_sys .  "SYSTEM STATUS
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN END OF BLOCK b_1.
    *--INTERNAL TABLES--
    TYPES : BEGIN OF ty_aufk,
          aufnr TYPE aufk-aufnr,              "OREDR NUMBER
          auart TYPE aufk-auart,              "ORDER TYPE
          objnr TYPE aufk-objnr,              "OBJECT NUMBER
          ktext type aufk-ktext,              "SHORT TEXT
          gstrp TYPE afko-gstrp,              "BASIC START DATE
          END OF ty_aufk.
    TYPES : BEGIN OF ty_tj02t,
          objnr TYPE aufk-objnr,              "OBJECT NUMBER
          txt04 TYPE tj02t-txt04,             "STATUS
          istat TYPE tj02t-istat,             "Object status
          spras TYPE tj02t-spras,             "LANGUAGE KEY
          END OF ty_tj02t.
    TYPES : BEGIN OF ty_temp,
          objnr TYPE aufk-objnr,
          status(300) TYPE c,
           END OF ty_temp.
    TYPES : BEGIN OF ty_wrap,
           line(54) TYPE c,                     "LONG TEXT
           END OF ty_wrap.
    TYPES : BEGIN OF ty_wrap2,
           line(25) TYPE c,                     "STATUS
           END OF ty_wrap2.
    TYPES : BEGIN OF ty_f4,
            txt04 TYPE tj02t-txt04,
            txt30 TYPE tj02t-txt30,
            END OF ty_f4.
    types :  begin of ty_sta,
            istat type tj02t-istat,
            objnr type jest-objnr,
            end of ty_sta.
    data : int_sta type table of ty_sta with header line.
    DATA : int_f4 TYPE TABLE OF ty_f4 WITH HEADER LINE.
    DATA: int_pdf TYPE TABLE OF tline WITH HEADER LINE.            "TABLE FOR PDF CONVERSION
    DATA: int_wrap TYPE TABLE OF ty_wrap WITH HEADER LINE.         "TABLE FOR LONGTEXT
    DATA: int_wrap2 TYPE TABLE OF ty_wrap2 WITH HEADER LINE.       "TABLE FOR STATUS
    DATA: int_temp TYPE TABLE OF ty_temp WITH HEADER LINE.         "Table for concatenation of system status.
    DATA: int_aufk TYPE TABLE OF ty_aufk WITH HEADER LINE.
    DATA: int_tj02t TYPE TABLE OF ty_tj02t WITH HEADER LINE.
    DATA: int_tline TYPE STANDARD TABLE OF tline WITH HEADER LINE. "TABLE FOR READ_TEXT.
    DATA : int_fld TYPE TABLE OF dfies ,wa_fld LIKE LINE OF int_fld.                     " Field Type for FM for F4 help
    DATA :int_return   TYPE TABLE OF ddshretval WITH HEADER LINE .
    DATA:
      loc_print_parms LIKE pri_params,          "PRINT PARAMETERS
      loc_valid(1)      TYPE c,
      loc_file type SDOK_CHTRD,
      loc_bytecount     TYPE i,                 "NUMBER OF BYTES TRANSFERRED
      loc_length        TYPE i,                 "LINE-LENGTH
      loc_rqident       LIKE tsp01-rqident,     "SPOOL NUMBER
      loc_rq2name(12)   TYPE c.
    DATA: loc_filename LIKE rlgrap-filename.     "FILENAME
    DATA:loc_repid LIKE sy-repid,                    " Report to execute
         loc_linsz LIKE sy-linsz VALUE 115,          " Line size
         loc_paart LIKE sy-paart VALUE 'X_65_132'.   " Paper Format
    Include           ZIMPR_PERFORMS_WRAP----
    *&  Include           ZIMPR_PERFORMS_WRAP
    *&      Form  f_top_page
         top-of the page
    -->  p1        text
    <--  p2        text
    FORM f_top_page .
    *--HEADER--
      FORMAT COLOR 1 .
      WRITE : text-010.
      FORMAT COLOR 1 OFF.
      WRITE : / text-011,sy-datum NO-GAP.
      WRITE : / text-012,sy-uzeit NO-GAP,90 text-013,101 sy-uname.
      ULINE .
      FORMAT COLOR 1 INTENSIFIED OFF .
      WRITE : 1 sy-vline,                "HEADINGS
      2 text-014 NO-GAP,
      7 sy-vline,
      8 text-015 NO-GAP,
      20 sy-vline,
      21 text-016 NO-GAP,
      76 sy-vline,
      77 text-017 NO-GAP,
      88 sy-vline,
       89 text-018  NO-GAP,
      115 sy-vline.
      WRITE : /1 sy-vline,
        2 text-019 NO-GAP,7 sy-vline,
        20 sy-vline,76 sy-vline,77 text-020 NO-GAP,88 sy-vline,115 sy-vline.
      ULINE.
      FORMAT COLOR 1 OFF.
    ENDFORM.                    " f_top_page
    *&      Form  f_data_retrieval
         select statements
    -->  p1        text
    <--  p2        text
    FORM f_data_retrieval .
    SELECTING ORDER TYPE,ORDER NO.,OBJECT NO. AND BASIC START DATE
      SELECT  p~aufnr
               p~auart
               p~objnr
               p~ktext
               r~gstrp
               FROM  ( aufk AS p INNER JOIN afko AS r ON raufnr = paufnr )
               INTO TABLE int_aufk
               WHERE p~aufnr IN s_order AND
                     p~auart IN s_ordert AND
                     r~gstrp IN  s_bdate AND
                     p~objnr LIKE wf_objnr.
      IF sy-subrc <> 0.
        MESSAGE s101(zipm).                "no values found for selection criteria.
        STOP.
      ENDIF.
      SORT int_aufk BY aufnr.
      DELETE ADJACENT DUPLICATES FROM int_aufk.
      SELECT q~istat
           p~objnr
           FROM ( jest AS p INNER JOIN tj02t AS q ON pstat = qistat )
           INTO TABLE int_sta
           FOR ALL ENTRIES IN int_aufk
           WHERE p~objnr = int_aufk-objnr
                 AND q~txt04 IN s_status and
                 q~spras = wf_langu and
                 p~inact = ''.
      IF sy-subrc <> 0.
        MESSAGE s101(zipm).                "no values found for selection criteria.
        STOP.
      ENDIF.
      SORT int_sta BY objnr.
      DELETE ADJACENT DUPLICATES FROM int_sta.
    *--SELECTING OBJECT NO.,STATUS AND LANGUAGE--
      IF int_sta[] IS NOT INITIAL.
        SELECT p~objnr
               q~txt04
               q~istat
               q~spras
               FROM ( jest AS p INNER JOIN tj02t AS q ON pstat = qistat )
               INTO TABLE int_tj02t
               FOR ALL ENTRIES IN int_sta
               WHERE p~inact = '' AND
                     p~objnr = int_sta-objnr AND
                     q~spras = wf_langu AND
                    q~txt04 IN s_status AND
                     p~objnr LIKE wf_objnr.
        IF sy-subrc <> 0.
          MESSAGE s101(zipm).               "no values found for selection criteria.
          STOP.
        ENDIF.
      ENDIF.
    ENDFORM.                    " f_data_retrieval
    *&      Form  f_report_display
          report display
    -->  p1        text
    <--  p2        text
    FORM f_report_display .
      LOOP AT int_tj02t.              "concatenating the status into a internal table
        AT NEW objnr.
          CLEAR int_temp-status.
        ENDAT.
        CONCATENATE int_temp-status int_tj02t-txt04 INTO int_temp-status SEPARATED BY space.
        AT END OF objnr.
          int_temp-objnr = int_tj02t-objnr.       "key field.
          APPEND int_temp.
          CLEAR int_temp.
        ENDAT.
        CLEAR int_tj02t.
      ENDLOOP.
      LOOP AT int_aufk.
        CONCATENATE sy-mandt int_aufk-aufnr INTO wf_name .    "concatenating client number and order number
    *--THIS FM CAPTURES THE LONG TEXT AND STORES IT IN INTERNAL TABLE--
        CALL FUNCTION 'READ_TEXT'
          EXPORTING
            id                      = wf_kopf         "TEXT ID
            language                = sy-langu       "LANGUAGE
            name                    = wf_name        "TEXT NAME
            object                  = wf_aufk         "TEXT OBJECT
          TABLES
            lines                   = int_tline      "LINES OF LONG TEXT.
          EXCEPTIONS
            id                      = 1
            language                = 2
            name                    = 3
            not_found               = 4
            object                  = 5
            reference_check         = 6
            wrong_access_to_archive = 7
            OTHERS                  = 8.
        IF sy-subrc <> 0.
          int_tline-tdline = int_aufk-ktext.
          APPEND int_tline.
          CLEAR :int_tline.
        ENDIF.
        LOOP AT int_tline.
    *--THIS FM WRAPS THE LONG TEXT INTO 54 CHARACTERS EACH--
          CALL FUNCTION 'RKD_WORD_WRAP'
            EXPORTING
              textline            = int_tline-tdline          "LONG TEXT LINE
              outputlen           = 54                        "OUTPUT LENGTH
            TABLES
              out_lines           = int_wrap                  "INTERNAL TABLE
            EXCEPTIONS
              outputlen_too_large = 1
              OTHERS              = 2.
          IF sy-subrc <> 0.
            CLEAR :int_tline.
          ENDIF.
        ENDLOOP.
    *-- THIS FM WRAPS THE STATUS INTO 25 CHARACTERS EACH--
        READ TABLE int_temp WITH KEY objnr = int_aufk-objnr.
        CALL FUNCTION 'RKD_WORD_WRAP'
          EXPORTING
            textline            = int_temp-status
            outputlen           = 25
          TABLES
            out_lines           = int_wrap2
          EXCEPTIONS
            outputlen_too_large = 1
            OTHERS              = 2.
        IF sy-subrc <> 0.
         CONTINUE.
        ENDIF.
        IF NOT int_wrap2[] IS INITIAL.
          ULINE AT (115).
        ENDIF.
        DESCRIBE TABLE int_wrap LINES wf_i2.         "COUNTING THE NO. OF LINES FOR TABLE INT_WRAP
        DESCRIBE TABLE int_wrap2 LINES wf_i1.        "COUNTING THE NO. OF LINES FOR TABLE INT_WRAP2
        WHILE ( wc_i1 LE wf_i1 OR wc_i2 LE wf_i2 ).
          IF ( wc_i2 LE wf_i2 ).
            READ TABLE int_wrap INDEX wc_i2 .        "READING THE INTERNAL TABLE INT_WRAP WITH INDEX
            wc_i2 = wc_i2 + 1.
          ENDIF.
          IF ( wc_i1 LE wf_i1 ).
            READ TABLE int_wrap2 INDEX wc_i1 .       "READING THE INTERNAL TABLE INT_WRAP2 WITH INDEX
            wc_i1 = wc_i1 + 1.
          ENDIF.
    *--THIS FM CONVERTS THE DATE FROM SYSTEM FORMAT TO OUTPUT FORMAT--
          CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
            EXPORTING
              input  = int_aufk-gstrp
            IMPORTING
              output = wf_date1.
          IF NOT int_wrap2[] IS INITIAL .
    *--REPORT DISPLAY--
            WRITE : /1 sy-vline, 2 int_aufk-auart COLOR = 4 INTENSIFIED OFF NO-GAP ,
                    7 sy-vline ,8 int_aufk-aufnr COLOR = 4 INTENSIFIED OFF NO-GAP,
                    20 sy-vline,21 int_wrap-line,
                    76 sy-vline ,77  wf_date1 ,
                    88 sy-vline ,89 int_wrap2-line,
                    115 sy-vline.
    *--CLEARING THE VARIABLES--
            wf_date1 = ''.
            CLEAR: int_aufk,int_temp,int_wrap2-line,int_wrap-line.
          ENDIF.
        ENDWHILE.
        wc_i1 = 1.
        wc_i2 = 1.
        CLEAR :int_wrap,int_wrap2.
        REFRESH : int_wrap,int_wrap2,int_tline.
      ENDLOOP.
      ULINE AT (115).
    ENDFORM.                    " f_report_display
    *&      Form  F_PDF_DISPLAY
         pdf conversion
    -->  p1        text
    <--  p2        text
    FORM f_pdf_display .
    *--THIS FM CONVERTS THE SPOOL REQUEST INTO PDF REPORT--
      CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
        EXPORTING
          src_spoolid              = wf_id                 "SPOOL NUMBER
          no_dialog                = space
          pdf_destination          = 'X'
        IMPORTING
          pdf_bytecount            = loc_bytecount        "NUMBER OF BYTES TRANSFERRED
        TABLES
          pdf                      = int_pdf                                  "TABLE FOR PDF REPORT
        EXCEPTIONS
          err_no_abap_spooljob     = 1
          err_no_spooljob          = 2
          err_no_permission        = 3
          err_conv_not_possible    = 4
          err_bad_destdevice       = 5
          user_cancelled           = 6
          err_spoolerror           = 7
          err_temseerror           = 8
          err_btcjob_open_failed   = 9
          err_btcjob_submit_failed = 10
          err_btcjob_close_failed  = 11
          OTHERS                   = 12.
    ENDFORM.                    " F_PDF_DISPLAY
    *&      Form  f_download_local
         download to local system
    -->  p1        text
    <--  p2        text
    FORM f_download_local .
    ---------------------THIS FM DOWNLOADS THE PDF REPORT INTO LOCAL MACHINE
    data  loc_ret TYPE iwerrormsg.
      CALL FUNCTION 'IW_C_GET_SAPWORKDIR'
       IMPORTING
         SAPWORKDIR       = loc_file
        ERROR_MSG        =  loc_ret
      loc_filename = loc_file.
      if loc_ret is initial.
      concatenate loc_filename '\work order header long text_  ' sy-timlo '.pdf' into loc_filename.
      endif.
      CALL FUNCTION 'DOWNLOAD'
        EXPORTING
          bin_filesize = loc_bytecount      "NO. OF BYTES
          filename     = loc_filename       "DEFAULT FILE NAME
          filetype     = 'BIN'
        IMPORTING
          act_filename = loc_filename
        TABLES
          data_tab     = int_pdf.
    ENDFORM.                    " f_download_local
    if you have any doubts,,
    please revert
    Regards,
    Talwinder

  • SUBMIT and return the value of that report into internal table

    Dear all,
    I have a requirement. I want to submit a report and return the value of that report into my internal table.
    How to do this.
    Pl. guide.

    Hi Vidhya,
    Below links from SAP help will resolve your issue.
    http://help.sap.com/saphelp_nw04/Helpdata/EN/fc/eb3bde358411d1829f0000e829fbfe/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3bd1358411d1829f0000e829fbfe/content.htm
    Edited by: Harsh Bhalla on Jan 2, 2010 11:54 AM

  • Converting a binary string into a JPEG image in Crystal Reports 2008

    Hi Gang
    Iu2019m having problems converting a binary string into an image in Crystal Reports 2008
    I have JPEG images stored in ECC.  ECC stores the data in binary format.
    Iu2019m using the ECC function module SKWF_PHIO_CONTENT_ACCESS_GET to retrieve the data.  This function module has an export table, FILE_CONTENT_BINARY, which returns several lines of data.  Each line contains a maximum of 1,024 characters.
    When I drop the T_ FILE_CONTENT_BINARY.LINE field into my Crystal Report detail section, I wind up with a report that displays all the lines in FILE_CONTENT_BINARY table.  (in my case, 19 lines are displayed.)
    I created a formula to collect all the data into a single string.
    whileprintingrecords;
    stringvar data:= data & {SKWF_PHIO_CONTENT_ACCESS_GET.T_FILE_CONTENT_BINARY.LINE}
    I added the formula to the detail section and itu2019s doing a great job collecting the data.
    I then inserted a picture object in the report footer, opened the format editor, navigated to the u201Cpictureu201D tab, and inserted a formula for the u201Cgraphics locationu201D.
    whileprintingrecords;
    stringvar data:=data;
    data
    My clever idea turned out to be a disappointment . . . . my picture object is blank.
    Does anyone have a solution for converting a binary string into a JPEG image?

    Save the JPEG in a format CR supports. Refer to the help file for the file types.

  • How to convert Oracle reports into excel?

    How can we convert Oracle reports into excel.
    i know there was a thread on this topic which i am not able to find.
    give the link / help.

    I found Std Oracle Report output to Excel Sheet has some suggestions. Not being a Reports person anymore I am not in a position to vouch for them.
    How did I find this thread? By not using the forum search tool but using Google instead.
    Cheers, APC

  • Form on a table with report using DB Link

    Hey Guys
    How do i create a "Form on a table with report"?? using a database link. Under the "Table/View name" category when i provide the table name with the database link (like EMP@test), it compalins and says table or view does not exist and it only allows me to select from local tables. When i run "select 1 from emp@test" in sql commands window, it does return records so database link is working..
    Any suggestions??

    yes, I know i can do that, but when i tried it, its not displaying the records that are in the table, so how can i delete an existing record. Its doesnt allow me to browse through the records. Atleast, in the other way, it creates an edit button on the left and clicking it will take you to a form when you can edit it, add/delete.....this is all really simply, only issue is how to incorporate database links in this.

  • Want to convert Sap standard report s_alr_87012085  into alvgrid

    i Want to convert Sap standard report s_alr_87012085  into alvgrid please help me.

    REPORT RFKOPR00
           MESSAGE-ID FR
           LINE-SIZE  132
           NO STANDARD PAGE HEADING.
    TABLES:   B0SG,
              LFA1,                        "Daten auf Mandantenebene
                LFB1,                      "Daten auf Buchungskreisebene
                  LFB5,                    "Mahndaten
                  LFC1,                    "Verkehrszahlen
                  LFC3,                    "Sonderumsätze
                  BSIK,                    "Offend Posten
                  BKPF,
                    BSEG,
                           BSEGA.
    TABLES:
              BHDGD,
              T001,
              T001S,
              *T001S,
              T074T,
              T074U,
              TBSL,
              TBSLT,
              TCURX,
              ADRS,
              RFPDO,
              RFPDO1,
              RFSDO,
              FAEDE.
    FIELD-SYMBOLS: .
    *Hilfsfelder
    *---Prüfung ob mehrere Hauswährungen verarbeitet werden.
    DATA:    CFAKT(3)      TYPE P,
             CHECKSALDO(8) TYPE P,
             CHECKAGOBL(8) TYPE P,
             WAERS LIKE T001-WAERS,
             WFLAG(1) TYPE P VALUE '0',
             WAERS2        LIKE T001-WAERS,
             WFLAG2(1)     TYPE P VALUE '0',
             PH-LINE(132)  TYPE C.
    *---Ermittlung aktuelles Geschäftsjahr über Funktionsbaustein.
    DATA: CURRY LIKE BSIK-GJAHR.
    *-Ermittlung Zahlungseingang bei Zahlungen mit Skontoabzug--
    *ATA: ZVTAGE LIKE KNB4-VZS01, "Verzugstage
        ZVSKONTO(8) TYPE P,     "Zahlungsvolumen bei Zahlung mit Skonto
        ZVNETTO(8)  TYPE P,     "Zahlungsvolumen bei Nettozahlung
        ZVVERZUG(8) TYPE P,     "Verzugstage
        ZVMALVZ(8)  TYPE P,     "Zahlungvolumen * Verzugstage
                                "KNB4-VZSxx)
        ZVTYP(1)    TYPE C,     "Skonto oder Nettozahler
        ZVPER(4)    TYPE C.     "Periode letze Zahlung
    *---Zeilenanzahl fü Adressausgabe -
    DATA: ZEILENANZAHL LIKE ADRS-ANZZL VALUE 7.
    DATA: KSALDO(6)  TYPE P.               "Saldovortrag
        BEABZUG(6) TYPE P,                   "Berechtigte Abzüge
        UBABZUG(6) TYPE P,                   "Unberechtigte Abzüge
        JAHRAUG(6) TYPE P,                   "Kumulierter Jahresausgleich
        KUMZINS(6) TYPE P.                   "Kumulierter Zins
    Ausgabe der Mahndaten pro Buchungskreis.
    DATA: INDEX(2) TYPE P VALUE 0.
    Hilfsfelder
    DATA: HF(1)    TYPE C.
    DATA: TXT_1(78) TYPE C,                "Mahnbereich
          TXT_2(78) TYPE C,                "Mahnart
          TXT_3(78) TYPE C,                "Mahnempfänger
          TXT_4(78) TYPE C,                "Mahndatum
          TXT_5(78) TYPE C,                "Mahnstufe
          TXT_6(78) TYPE C,                "Mahnsperre
          TXT_7(78) TYPE C,                "Mahnverfahren
          TXT_8(78) TYPE C.                "Sachbearbeiter
    DATA: BEGIN OF XMAHN OCCURS 10.
            INCLUDE STRUCTURE LFB5.
    DATA: END OF XMAHN.
    Hilfsfelder
    DATA: CHAR1(1)   TYPE C.
    DATA: FLAG1(1)   TYPE C.
    DATA: INTENS(1)  TYPE C.
    DATA: FLAG2(1)   TYPE C.
    *---- K o n s t a n t e n -
    *---- DNULL zum Vergleich mit Datumsfeldern -
    DATA: DNULL(8) TYPE C VALUE '00000000'.
    *---- DECKBLATT = 'N' ==> Kein Deckblatt bei NEW-SECTION -
    DATA: DECKBLATT TYPE C VALUE 'N'.
    *---- 'H' =   Hilfsfelder, die jederzeit fuer Berechnungen ver-  -
    *---- wendet werden koennen. -
    DATA: BEGIN OF H,
            STICHTAG(8),
            OFFSET(2) TYPE P,
            OFFSE1(2) TYPE P,
            SOLL      LIKE LFC1-UM01S,
            HABEN     LIKE LFC1-UM01H,
            SALDO     LIKE LFC1-UMSAV,
            SHBKZ     LIKE LFC3-SHBKZ,     "Sonderhauptbuchkennzeichen
            SALDV     LIKE LFC3-SALDV,     "Sonderhauptbuch-Saldovortrag
            SHBLS     LIKE LFC3-SOLLL,     "Sonderhauptbuch-Lfd.-Saldo
            SHBSL     LIKE LFC3-SOLLL,     "Sonderhauptbuch-Lfd.-SOLL
            SHBHB     LIKE LFC3-HABNL,     "Sonderhauptbuch-Lfd.-HABEN
          GBNUM     LIKE lfC1-GBN01,    "Geschaeftsber. Nummer ECKERT
          GBUMS     LIKE lfC1-GBU01,    "Geschaeftsber. Umsatz
            TEXT(15),
            UMLOW     LIKE BSIK-UMSKZ,     "Umsatzkennzeichen
            UMHIG     LIKE BSIK-UMSKZ,     "Umsatzkennzeichen
          END   OF H.
    ---- 'C' =   Zwischenergebnisse, die aus Feldern des C-Segmentes ---
    *---- berechnet werden. -
    DATA: BEGIN OF C,
            SALDO     TYPE P,              "Saldo
            UMKZ1     LIKE LFC3-SHBKZ,     "SHBKZ 1
            SUMS1     TYPE P,              "Sonderumsatz 1
            UMKZ2     LIKE LFC3-SHBKZ,     "SHBKZ 2
            SUMS2     TYPE P,              "Sonderumsatz 2
            UMKZ3     LIKE LFC3-SHBKZ,     "SHBKZ 3
            SUMS3     TYPE P,              "Sonderumsatz 3
            UMKZ4     LIKE LFC3-SHBKZ,     "SHBKZ 4
            SUMS4     TYPE P,              "Sonderumsatz 4
            UMKZ5     LIKE LFC3-SHBKZ,     "SHBKZ 5
            SUMS5     TYPE P,              "Sonderumsatz 5
            UMKZ6     LIKE LFC3-SHBKZ,     "SHBKZ 6
            SUMS6     TYPE P,              "Sonderumsatz 6
            UMKZ7     LIKE LFC3-SHBKZ,     "SHBKZ 7
            SUMS7     TYPE P,              "Sonderumsatz 7
            UMKZ8     LIKE LFC3-SHBKZ,     "SHBKZ 8
            SUMS8     TYPE P,              "Sonderumsatz 8
            UMKZ9     LIKE LFC3-SHBKZ,     "SHBKZ 9
            SUMS9     TYPE P,              "Sonderumsatz 9
            UMKZ10    LIKE LFC3-SHBKZ,     "SHBKZ 10
            SUMS10    TYPE P,              "Sonderumsatz 10
            SONOB     TYPE P,              "Sonstige Umsatz-Kz
            BABZG     TYPE P,              "Berechtigte Abzuege
            UABZG     TYPE P,              "Unberechtigte Abzuege
            KZINS     TYPE P,              "Zinszahlungen
            KUMUM     TYPE P,              "Umsatz
            KUMAG     TYPE P,              "Kum. Jahresausgleich
          KREUEB    TYPE P,         "Kreditueberschreitung
          AGOBLI    TYPE P,         "Gesamt-Obligo (absolut)
            AGOBLI LIKE LFC1-UMSAV,        "Gesamt-Obligo (absolut)
          RGOBLI    TYPE P,         "Gesamt-Obligo (relativ)
          LFTAGE(3) TYPE P,         "Langfristige Überzugstage
          MFTAGE(3) TYPE P,         "Mittelfristige Überzugstage
          KFTAGE(3) TYPE P,         "Kurzfristige Überzugstage
          END   OF C.
    ---- 'C2'=   Zwischenergebnisse, die aus Feldern des C-Segmentes ---
    *---- berechnet werden. -
    DATA: BEGIN OF C2 OCCURS 0,
            BUKRS     LIKE LFC1-BUKRS,
            SALDO     TYPE P,              "Saldo
          WEXOB     TYPE P,         "Wechsel-Obligo        W,S,B
          ANZOB     TYPE P,         "Anzahlungs-Obligo     A
          ZANFB     TYPE P,         "Zahlungs-Anforderung  F
            UMKZ1     LIKE LFC3-SHBKZ,     "SHBKZ 1
            SUMS1     TYPE P,              "Sonderumsatz 1
            UMKZ2     LIKE LFC3-SHBKZ,     "SHBKZ 2
            SUMS2     TYPE P,              "Sonderumsatz 2
            UMKZ3     LIKE LFC3-SHBKZ,     "SHBKZ 3
            SUMS3     TYPE P,              "Sonderumsatz 3
            UMKZ4     LIKE LFC3-SHBKZ,     "SHBKZ 4
            SUMS4     TYPE P,              "Sonderumsatz 4
            UMKZ5     LIKE LFC3-SHBKZ,     "SHBKZ 5
            SUMS5     TYPE P,              "Sonderumsatz 5
            UMKZ6     LIKE LFC3-SHBKZ,     "SHBKZ 6
            SUMS6     TYPE P,              "Sonderumsatz 6
            UMKZ7     LIKE LFC3-SHBKZ,     "SHBKZ 7
            SUMS7     TYPE P,              "Sonderumsatz 7
            UMKZ8     LIKE LFC3-SHBKZ,     "SHBKZ 8
            SUMS8     TYPE P,              "Sonderumsatz 8
            UMKZ9     LIKE LFC3-SHBKZ,     "SHBKZ 9
            SUMS9     TYPE P,              "Sonderumsatz 9
            UMKZ10    LIKE LFC3-SHBKZ,     "SHBKZ 10
            SUMS10    TYPE P,              "Sonderumsatz 10
            SONOB     TYPE P,              "Sonstige Umsatz-Kz
            BABZG     TYPE P,              "Berechtigte Abzuege
            UABZG     TYPE P,              "Unberechtigte Abzuege
            KZINS     TYPE P,              "Zinszahlungen
            KUMUM     TYPE P,              "Umsatz
            KUMAG     TYPE P,              "Kum. Jahresausgleich
          KREUEB    TYPE P,         "Kreditueberschreitung
          AGOBLI    TYPE P,         "Gesamt-Obligo (absolut)
            AGOBLI LIKE LFC1-UMSAV,        "Gesamt-Obligo (absolut)
          RGOBLI    TYPE P,         "Gesamt-Obligo (relativ)
            LFTAGE(3) TYPE P,              "Langfristige Überzugstage
            MFTAGE(3) TYPE P,              "Mittelfristige Überzugstage
            KFTAGE(3) TYPE P,              "Kurzfristige Überzugstage
            ZVTYP(1)    TYPE C,            "Flag Skonto oder Nettozahler
            ZVPER(6)    TYPE C,            "letze Zahlungsperiode
            ZVVERZUG(8) TYPE P,            "Durchschittliche Verzugst
          END   OF C2.
    ---- 'C3'=   Zwischenergebnisse, die aus Feldern des C-Segmentes ---
    *---- berechnet werden. -
    DATA: BEGIN OF C3,
            SALDO     TYPE P,              "Saldo
          WEXOB     TYPE P,         "Wechsel-Obligo        W,S,B
          ANZOB     TYPE P,         "Anzahlungs-Obligo     A
          ZANFB     TYPE P,         "Zahlungs-Anforderung  F
            UMKZ1     LIKE LFC3-SHBKZ,     "SHBKZ 1
            SUMS1     TYPE P,              "Sonderumsatz 1
            UMKZ2     LIKE LFC3-SHBKZ,     "SHBKZ 2
            SUMS2     TYPE P,              "Sonderumsatz 2
            UMKZ3     LIKE LFC3-SHBKZ,     "SHBKZ 3
            SUMS3     TYPE P,              "Sonderumsatz 3
            UMKZ4     LIKE LFC3-SHBKZ,     "SHBKZ 4
            SUMS4     TYPE P,              "Sonderumsatz 4
            UMKZ5     LIKE LFC3-SHBKZ,     "SHBKZ 5
            SUMS5     TYPE P,              "Sonderumsatz 5
            UMKZ6     LIKE LFC3-SHBKZ,     "SHBKZ 6
            SUMS6     TYPE P,              "Sonderumsatz 6
            UMKZ7     LIKE LFC3-SHBKZ,     "SHBKZ 7
            SUMS7     TYPE P,              "Sonderumsatz 7
            UMKZ8     LIKE LFC3-SHBKZ,     "SHBKZ 8
            SUMS8     TYPE P,              "Sonderumsatz 8
            UMKZ9     LIKE LFC3-SHBKZ,     "SHBKZ 9
            SUMS9     TYPE P,              "Sonderumsatz 9
            UMKZ10    LIKE LFC3-SHBKZ,     "SHBKZ 10
            SUMS10    TYPE P,              "Sonderumsatz 10
            SONOB     TYPE P,              "Sonstige Umsatz-Kz
            BABZG     TYPE P,              "Berechtigte Abzuege
            UABZG     TYPE P,              "Unberechtigte Abzuege
            KZINS     TYPE P,              "Zinszahlungen
            KUMUM     TYPE P,              "Umsatz
            KUMAG     TYPE P,              "Kum. Jahresausgleich
          KREUEB    TYPE P,         "Kreditueberschreitung
          AGOBLI    TYPE P,         "Gesamt-Obligo (absolut)
            AGOBLI LIKE LFC1-UMSAV,        "Gesamt-Obligo (absolut)
          RGOBLI    TYPE P,         "Gesamt-Obligo (relativ)
          LFTAGE(3) TYPE P,         "Langfristige Überzugstage
          MFTAGE(3) TYPE P,         "Mittelfristige Überzugstage
          KFTAGE(3) TYPE P,         "Kurzfristige Überzugstage
          ZVTYP(1)    TYPE C,       "Flag Skonto oder Nettozahler
          ZVPER(6)    TYPE C,       "letze Zahlungsperiode
          ZVVERZUG(8) TYPE P,       "Durchschittliche Verzugst
          END   OF C3.
    DATA: SHBETRAG LIKE BSEGA-DMSHB.       "TYPE P.
    *---- 'RTAB' = Rastertabelle fuer offene Posten -
    DATA: BEGIN OF RTAB OCCURS 30,
            SORTK(1)   TYPE C,             "0 = Summe Gesber
                                           "1 = Summe aller Gesber
                                           "2 = Umsatzdaten
            BUKRS LIKE BSIK-BUKRS,
            GSBER LIKE BSIK-GSBER,
            WAERS LIKE BSIK-WAERS,
            RAART TYPE C,                  "Rasterart
                                           "1 = Netto-Faelligkeit
                                           "2 = Skonto1-Faelligkeit
                                           "3 = Zahlungseingang
                                           "4 = Ueber-Faelligkeit
            SPERR TYPE P,                  "gesprrte Posten
            KUMUM TYPE P,                  "Umsatz
            ANZAH TYPE P,                  "Anzahlungen
            OPSUM TYPE P,                  "Offene Posten Summe
            RAST1 TYPE P,                  "Rasterfeld 1
            RAST2 TYPE P,                  "Rasterfeld 2
            RAST3 TYPE P,                  "Rasterfeld 3
            RAST4 TYPE P,                  "Rasterfeld 4
            RAST5 TYPE P,                  "Rasterfeld 5
            RAST6 TYPE P,                  "Rasterfeld 6
          END   OF RTAB.
    *---- 'RBUS' = Rastertabelle fuer Summen pro Sachbearbeiter -
    *ATA: BEGIN OF RBUS OCCURS 30,
          SORTK(1)   TYPE C,        "0 = Summe Gesber
                                    "1 = Summe aller Gesber
          BUKRS LIKE BSIk-BUKRS,
          GSBER LIKE BSIk-GSBER,
          WAERS LIKE BSIk-WAERS,
          RAART TYPE C,             "Rasterart
                                    "1 = Netto-Faelligkeit
                                    "2 = Skonto1-Faelligkeit
                                    "3 = Zahlungseingang
                                    "4 = Ueber-Faelligkeit
          KUMUM TYPE P,             "Umsatz
          ANZAH TYPE P,             "Anzahlungen
          OPSUM TYPE P,             "Offene Posten Summe
          RAST1 TYPE P,             "Rasterfeld 1
          RAST2 TYPE P,             "Rasterfeld 2
          RAST3 TYPE P,             "Rasterfeld 3
          RAST4 TYPE P,             "Rasterfeld 4
          RAST5 TYPE P,             "Rasterfeld 5
          RAST6 TYPE P,             "Rasterfeld 6
        END   OF RBUS.
    *---- 'RBUK' = Rastertabelle fuer Summen pro Buchungskreis  -
    DATA: BEGIN OF RBUK OCCURS 30,
            SORTK(1)   TYPE C,             "0 = Summe Gesber
                                           "1 = Summe aller Gesber
                                           "2 = Umsatzdaten
            BUKRS LIKE BSIK-BUKRS,
            GSBER LIKE BSIK-GSBER,
            WAERS LIKE BSIK-WAERS,
            RAART TYPE C,                  "Rasterart
                                           "1 = Netto-Faelligkeit
                                           "2 = Skonto1-Faelligkeit
                                           "3 = Zahlungseingang
                                           "4 = Ueber-Faelligkeit
            SPERR TYPE P,                  "gesprrte Posten
            KUMUM TYPE P,                  "Umsatz
            ANZAH TYPE P,                  "Anzahlungen
            OPSUM TYPE P,                  "Offene Posten Summe
            RAST1 TYPE P,                  "Rasterfeld 1
            RAST2 TYPE P,                  "Rasterfeld 2
            RAST3 TYPE P,                  "Rasterfeld 3
            RAST4 TYPE P,                  "Rasterfeld 4
            RAST5 TYPE P,                  "Rasterfeld 5
            RAST6 TYPE P,                  "Rasterfeld 6
          END   OF RBUK.
    ---- 'RSUM' = Rastertabelle pro Währung über alle Buchungskreise ---
    DATA: BEGIN OF RSUM OCCURS 30,
            SORTK(1)   TYPE C,             "0 = Summe Gesber
                                           "1 = Summe aller Gesber
          BUKRS LIKE BSIk-BUKRS,
          GSBER LIKE BSIk-GSBER,
            WAERS LIKE BSIK-WAERS,
            RAART TYPE C,                  "Rasterart
                                           "1 = Netto-Faelligkeit
                                           "2 = Skonto1-Faelligkeit
                                           "3 = Zahlungseingang
                                           "4 = Ueber-Faelligkeit
            SPERR TYPE P,                  "gesperrte Posten
            KUMUM TYPE P,                  "Umsatz
            ANZAH TYPE P,                  "Anzahlungen
            OPSUM TYPE P,                  "Offene Posten Summe
            RAST1 TYPE P,                  "Rasterfeld 1
            RAST2 TYPE P,                  "Rasterfeld 2
            RAST3 TYPE P,                  "Rasterfeld 3
            RAST4 TYPE P,                  "Rasterfeld 4
            RAST5 TYPE P,                  "Rasterfeld 5
            RAST6 TYPE P,                  "Rasterfeld 6
          END   OF RSUM.
    *---- interne Tabelle für Periodenabgrenzung----
    RANGES: BMONAT FOR RFPDO-DOPRBMON.
    ---- In die Felder RP01 bis RP05 werden dynamisch die von aussen ---
    *---- eingegebenen Rasterpunkte uebertragen -
    DATA: RP01(2)   TYPE P,                "   0
          RP02(2)   TYPE P,                "  20
          RP03(2)   TYPE P,                "  40
          RP04(2)   TYPE P,                "  80
          RP05(2)   TYPE P,                " 100
          RP06(3)   TYPE P,                "   1
          RP07(3)   TYPE P,                "  21
          RP08(3)   TYPE P,                "  41
          RP09(3)   TYPE P,                "  81
          RP10(3)   TYPE P.                " 101
    *---- In die Felder RC01 bis RC10 werden die Rasterpunkte in -
    ---- charakterform abgestellt. (fuer REPLACE-Funktion in Variabler -
    *---- Ueberschrift) -
    DATA: RC01(4)   TYPE C,                                     "  0
          RC02(4)   TYPE C,                "  20
          RC03(4)   TYPE C,                "  40
          RC04(4)   TYPE C,                "  80
          RC05(4)   TYPE C,                " 100
          RC06(4)   TYPE C,                "   1
          RC07(4)   TYPE C,                "  21
          RC08(4)   TYPE C,                "  41
          RC09(4)   TYPE C,                "  81
          RC10(4)   TYPE C.                " 101
    *---- Felder für Umsatzkennzeichen -
    *---- für Ausweis der Sonderumsätze----
    DATA: HUMKZ1    LIKE LFC3-SHBKZ,
          HUMKZ2    LIKE LFC3-SHBKZ,
          HUMKZ3    LIKE LFC3-SHBKZ,
          HUMKZ4    LIKE LFC3-SHBKZ,
          HUMKZ5    LIKE LFC3-SHBKZ,
          HUMKZ6    LIKE LFC3-SHBKZ,
          HUMKZ7    LIKE LFC3-SHBKZ,
          HUMKZ8    LIKE LFC3-SHBKZ,
          HUMKZ9    LIKE LFC3-SHBKZ,
          HUMKZ10   LIKE LFC3-SHBKZ.
    *---- GBZAEHL - In diesem Feld wird vermerkt, fuer wieviele Ge- -
    *----           schaeftsbereiche ein OP-Raster ausgegeben wird. -
    ----           Wird das Raster nur fuer einen Geschaeftsbereich ge- -
    *----           druckt, so entfaellt das Summen-Raster. -
    DATA: GBZAEHL(3) TYPE P.
    ---- TOP-FLAG '1' = bei TOP-OF-PAGE Einzelpostenueberschrift ausg. --
    *----          '2' = bei TOP-OF-PAGE Ueberschrift fuer Raster ausgeb. *
    *----          '3' = bei TOP-OF-PAGE ULINE ausgeben. -
    ----          '4' = bei TOP-OF-PAGE Stammsatzueberschrift ausgeben --
    DATA: TOP-FLAG(1) TYPE C.
    *---- SEL-STAMM  'J' = Stammsatz wird ausgewertet                     *
    *----            'N' = Stammsatz wird nicht ausgewertet               *
    *---- SEL-POSTN  'J' = Stammsatz hat Posten gerastert                 *
    *----            'N' = Stammsatz hat keine Posten gerastert           *
    DATA: BEGIN OF SEL,
            STAMM(1) TYPE C,
            POSTN(1) TYPE C,
            POST2(1) TYPE C,
          END   OF SEL.
    *---- SATZART  '1' = Stammdaten -
    *----          '2' = Faelligkeitsraster -
    *----          '3' = Einzelposten -
    DATA: SATZART(1) TYPE C.
    *---- RART  =  Erste ausgewaehlte Rasterart -
    DATA: RART(1)    TYPE C.
    *---- TAGE  =  Tage nach denen die Posten sortiert sind -
    DATA: TAGE(4)    TYPE P,
    *---- NTAGE =  Tage fuer Netto-Faelligkeit -
          NTAGE(4)   TYPE P,
    *---- STAGE =  Tage fuer Skonto1-Faelligkeit -
          STAGE(4)   TYPE P,
    *---- ATAGE =  Alter der Belege -
          ATAGE(4)   TYPE P,
    *---- UTAGE =  Tage fuer Ueber-Faelligkeit -
          UTAGE(4)   TYPE P.
    *---- RASTERUU dient zur Sortierung der Einzelposten. Die Posten -
    *----          gemaess ihrer Rasterung die Werte '1' bis '6' -
    DATA: RASTERUU(1) TYPE C.
    *---- RAART  Rasterart -
    ---- Die einzelnen Felder der Feldleiste werden bei SART-OF-SELECTION
    *---- mit 1 oder 0 bestueckt. -
    *ATA: BEGIN OF RAART,
          NET(1)   TYPE C,      "X = ausgewaehlt, ' ' = nicht ausgewaehlt
          SKT(1)   TYPE C,      "X = ausgewaehlt, ' ' = nicht ausgewaehlt
          UEB(1)   TYPE C,      "X = ausgewaehlt, ' ' = nicht ausgewaehlt
        END   OF RAART.
    DATA: BEGIN OF GB,
            GSBER  LIKE BSIK-GSBER,
            WAERS  LIKE BSIK-WAERS,
          END   OF GB.
    *---- Variable Ueberschriften -
    DATA: BEGIN OF VARUEB1,
            FELD1(45)   TYPE C,
            FELD2(14)   TYPE C,
            FELD3(14)   TYPE C,
            FELD4(14)   TYPE C,
            FELD5(14)   TYPE C,
            FELD6(14)   TYPE C,
            FELD7(14)   TYPE C,
          END   OF VARUEB1.
    DATA: BEGIN OF VARUEB2,
            FELD1(45)   TYPE C,
            FELD2(14)   TYPE C,
            FELD3(14)   TYPE C,
            FELD4(14)   TYPE C,
            FELD5(14)   TYPE C,
            FELD6(14)   TYPE C,
            FELD7(14)   TYPE C,
          END   OF VARUEB2.
    DATA: VARUEB3(132),
          VARUEB4(132),
          VARTXT1(40),
          VARTXT(40)  TYPE C.
    *---- Variable für Ausgabe der Sonderumsätze----
    DATA: SHBBEZ LIKE T074T-LTEXT.
    DATA: ASUMS  TYPE P.                                        "
    *---- Interne Tabelle für Bezeichnungen der SHBKZ----
    DATA: BEGIN OF BEZSHB OCCURS 10,
            SHBKZ LIKE T074T-SHBKZ,
            LTEXT LIKE T074T-LTEXT,
          END OF BEZSHB.
    *---- Interne Tabelle für Zwischenspeicherung -
    DATA: BEGIN OF BLKEY,
            BUKRS LIKE BSIK-BUKRS,
            BELNR LIKE BSIK-BELNR,
            GJAHR LIKE BSIK-GJAHR,
            BUZEI LIKE BSIK-BUZEI,
          END   OF BLKEY.
    DATA: BEGIN OF RTAGE,
            NTAGE LIKE NTAGE,
            STAGE LIKE STAGE,
            ATAGE LIKE ATAGE,
            UTAGE LIKE UTAGE,
         END   OF RTAGE.
    DATA: BEGIN OF HBSIK OCCURS 10.
            INCLUDE STRUCTURE BSIK.
            INCLUDE STRUCTURE BSEGA.
            INCLUDE STRUCTURE RTAGE.
    DATA: END   OF HBSIK.
    DATA: BEGIN OF REFBL OCCURS 10.
            INCLUDE STRUCTURE BLKEY.
            INCLUDE STRUCTURE RTAGE.
    DATA: END   OF REFBL.
    DATA: BEGIN OF HLFB1 OCCURS 10.
            INCLUDE STRUCTURE LFB1.
    DATA: END   OF HLFB1.
    DATA: BEGIN OF HT001 OCCURS 10.
            INCLUDE STRUCTURE T001.
    DATA: END   OF HT001.
    *---- Interne Tabelle für Ausgabe der Obligos -
    DATA: BEGIN OF AOBLIGO OCCURS 12,
            OBART TYPE C,             "Flag für Obligoart 1 = Kontokorrent
                                           "                   2 = SHBKZ
                                      "                   3 = sonstige SHB
            SHBKZ LIKE T074T-SHBKZ,        "SHB-Kennzeichen
            LTEXT LIKE T074T-LTEXT,        "Bezeichnung
            OBLIG TYPE P,                  "Obligobetrag
          END OF AOBLIGO.
    *---- Declarationen für Accessibility /ALV GRID -
    data: ACC_MODE type c.
    Data: UEBTEXT(22) type c.
    Data: UEKTEXT(15)  type c.
    Data: TITTEXT(100) type c.
    Data: DATTEXT(10) type c.
    DATA: BEGIN OF RTAB_ALV OCCURS 30,
          SORTK(1)   TYPE C,             "0 = Summe Gesber
                                         "1 = Summe aller Gesber
                                         "2 = Umsatzdaten
            BUKRS LIKE BSIk-BUKRS,
            lifnr LIKE LFA1-lifnr,
            busab like lfb1-busab,
            SORTL LIKE lfA1-SORTL,
            LAND1 LIKE lfA1-LAND1,
            GSBER LIKE BSIk-GSBER,
            WAERS LIKE BSIk-WAERS,
          hwaer like rf140-hwaer,
            RAART like RF140-RAART,        "Rasterart
          shkzg like bsik-shkzg,
          XGUTS TYPE C,                  "Gutschrift
            KUMUM LIKE RF140-KUMUMHW,      "Umsatz
            ANZAH like rf140-anzbthw,      "Anzahlungen
            OPSUM like RF140-gsaldd,       "Offene Posten Summe
            RAST1 like RF140-rast1,        "Rasterfeld 1
            RAST2 like RF140-rast2,        "Rasterfeld 2
            RAST3 like RF140-rast3,        "Rasterfeld 3
            RAST4 like RF140-rast4,        "Rasterfeld 4
            RAST5 like RF140-rast5,        "Rasterfeld 5
            RAST6 like RF140-rast6,        "Rasterfeld 6
          END   OF RTAB_ALV.
    *"General Data
    TYPE-POOLS: SLIS.
    *DATA: BEGIN OF GT_OUTTAB OCCURS 0.
           INCLUDE STRUCTURE rtab_alv.
    *DATA: END OF GT_OUTTAB.
    Data: GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
         G_EXIT_CAUSED_BY_CALLER,
         GS_EXIT_CAUSED_BY_USER TYPE SLIS_EXIT_BY_USER,
          G_REPID LIKE SY-REPID,
          G_GRID_TITLE TYPE  LVC_TITLE.
    *"Callback
    *Data: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
         G_STATUS_SET   TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',
    Data: G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
         G_TOP_OF_PAGE  TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
         G_TOP_OF_LIST  TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST',
         G_END_OF_LIST  TYPE SLIS_FORMNAME VALUE 'END_OF_LIST'.
    *"Variants
    DATA: GS_VARIANT LIKE DISVARIANT,
          G_SAVE.
    Global structure of list
    fieldcatalog
    DATA:   LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA:   GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
    sort
    *DATA:   GT_SORT     TYPE SLIS_T_SORTINFO_ALV.
    events
    *DATA:   GT_EVENTS   TYPE SLIS_T_EVENT.
    *----- Structure for specific color settings -
    *DATA:   COL_TAB_T TYPE SLIS_T_SPECIALCOL_ALV,
           COL_TAB   TYPE SLIS_SPECIALCOL_ALV.
    DATA:   G_TABNAME TYPE SLIS_TABNAME VALUE 'RTAB_ALV'.
    print
    *DATA:   GS_PRINT    TYPE SLIS_PRINT_ALV.
    *---- FIELD-GROUPS                            -
    FIELD-GROUPS:
              HEADER,
              STAMMDATEN,
              OP-RASTER,
              EINZELPOSTEN.
    INSERT
      LFB1-BUKRS                           " Buchungskreis
    lfB1-BUSAB         " Sachbearbeiter
      LFA1-LIFNR                           " Kontonummer
      SATZART                              " Satzart
      RTAB-SORTK                           " Sortkz fuer Tabelle RTAB
                                           " '0' = normale Eintraege
                                           " '1' = Summeneintraege
      GB                                   " Geschaeftsbereich
                                           " - GB-GSBER
                                           " - GB-WAERS
      RASTERUU         " Kennzeichen fuer Detailposten bzw Raster
    ab hier nur fuer Einzelposten -
      TAGE                                 " Rastertage  fuer Detailposten
      BSIK-UMSKZ                           " Umsatzkennzeichen
      BSIK-BLART                           " Belegart
    BSIK-ZUONR         " Zuordnungsnummer
      BSIK-BELNR                           " Belegnummer
      BSIK-BUZEI                           " Belegzeile
    INTO HEADER.
    INSERT
    Addressdaten
      ADRS-LINE0                           " 1. Zeile Adressenaufbereitung
      ADRS-LINE1                           " 2. "     "
      ADRS-LINE2                           " 3. "     "
      ADRS-LINE3                           " 4. "     "
      ADRS-LINE4                           " 5. "     "
      ADRS-LINE5                           " 6. "     "
      ADRS-LINE6                           " 7. "     "
    ADRS-LINE7         " 8. "     "
    ADRS-LINE8         " 9. "     "
    ADRS-LINE9         " 10."     "
    Umsatzdaten
      C-KUMUM                              " Umsatz
    C-BABZG          " Berechtigt. Abzuege
    C-UABZG          " Unberechtigt. Abzuege
    C-KZINS          " Zinszahlungen
    C-KUMAG          " Kum. Jahresausgleich
    Obligos
      C-SALDO                              " Saldo ohne SHB-Vorgänge
      C-UMKZ1                              "SHBKZ 1
      C-SUMS1                              "Sonderumsatz 1
      C-UMKZ2                              "SHBKZ 2
      C-SUMS2                              "Sonderumsatz 2
      C-UMKZ3                              "SHBKZ 3
      C-SUMS3                              "Sonderumsatz 3
      C-UMKZ4                              "SHBKZ 4
      C-SUMS4                              "Sonderumsatz 4
      C-UMKZ5                              "SHBKZ 5
      C-SUMS5                              "Sonderumsatz 5
      C-UMKZ6                              "SHBKZ 6
      C-SUMS6                              "Sonderumsatz 6
      C-UMKZ7                              "SHBKZ 7
      C-SUMS7                              "Sonderumsatz 7
      C-UMKZ8                              "SHBKZ 8
      C-SUMS8                              "Sonderumsatz 8
      C-UMKZ9                              "SHBKZ 9
      C-SUMS9                              "Sonderumsatz 9
      C-UMKZ10                             "SHBKZ 10
      C-SUMS10                             "Sonderumsatz 10
      C-SONOB                              " Sonst. Obligen
    Limits
      C-AGOBLI                             " Absolutes Gesamtobligo
    Zahlungdaten
      LFB1-ZTERM                           "Zahlungsbedingung
      LFB1-ZAHLS                           "Sperrschlüssel für Zahlung
      LFB1-ZWELS                           "Zahlwege
      LFB1-XVERR                           "Zahlungsverrechnung
      LFB1-WEBTR                           "Wechsellimit
      LFB1-BUSAB                           " Sachbearbeiter
      lfa1-sortl
      lfa1-land1
    INTO STAMMDATEN.
    INSERT
      RTAB-RAART                           "Rasterart
      RTAB-SPERR                           "gesperrte Posten
      RTAB-KUMUM                           "Umsatz
      RTAB-ANZAH                           "Anzahlungen
      RTAB-OPSUM                           "Offene Posten Summe
      RTAB-RAST1                           "Rasterfeld 1
      RTAB-RAST2                           "Rasterfeld 2
      RTAB-RAST3                           "Rasterfeld 3
      RTAB-RAST4                           "Rasterfeld 4
      RTAB-RAST5                           "Rasterfeld 5
      RTAB-RAST6                           "Rasterfeld 6
    INTO OP-RASTER.
    INSERT
      BSIK-BUDAT                           " Buchungsdatum
      BSIK-BLDAT                           " Belegdatum
      BSIK-CPUDT                           " CPU-Datum
    BKPF-USNAM         " User-ID
      BSIK-WAERS                           " Wahrungsschluessel
      BSEGA-NETDT                          " Nettofaelligkeitsdatum
    FAEDE-NETDT        " Nettofaelligkeitsdatum
      BSIK-ZFBDT                           " Zahlungsfristen-Basisdatum
      BSIK-BSCHL                           " Buchungsschluessel
      BSIK-ZLSCH                           " Zahlungsschluessel
    BSIK-MANST         " Mahnstufe
      SHBETRAG                             " Hauswaehrungsbetrag
      BSEGA-DMSHB                          " Hauswaehrungsbetrag
      BSEGA-WRSHB                          " Fremwaehrungsbetrag
    INTO EINZELPOSTEN.
    BEGIN_OF_BLOCK 1.
    *ELECT-OPTIONS:
         GESBER   FOR BSIK-GSBER.
    PARAMETERS:
           MONAT    LIKE RFPDO-DOPRBMON.
    SELECT-OPTIONS:
           KKSALDO2 FOR RFSDO-KOPRSAL2,    "Saldovortrag
           AGOBLIG2 FOR RFSDO-KOPRAGO2.    "Absolutes Obligo
         RGOBLIGO FOR RFSDO-DOPRRGOB.          "Relatives Obligo
    SELECT-OPTIONS:
         LAND     FOR LFA1-LAND1,
         KONTENGR FOR LFA1-KTOKK,
         SACHBEAR FOR LFB1-BUSAB,
           AKONTS   FOR LFB1-AKONT,
           AKONTP   FOR BSIK-HKONT.
    SELECT-OPTIONS:
           BUDAT    FOR BSIK-BUDAT,
           BLDAT    FOR BSIK-BLDAT,
           NETDT    FOR BSEGA-NETDT.
    PARAMETERS:     N_BELEGE    LIKE RFPDO-BPETNBEL
                                       DEFAULT 'X',   "Normale Belege.
                    STAT_BLG    LIKE RFPDO-BPETSBEL.  "Statistische Belege
    END_OF_BLOCK 1.
    *ELECT-OPTIONS:
         BERABZU1 FOR LFC1-BABZG,
         UNBABZU1 FOR LFC1-UABZG,
         ZINSE1   FOR LFC1-KZINS,
         JHRAUSG1 FOR LFC1-KUMAG.
         BERABZUG FOR BEABZUG NO-DISPLAY,       "Berechtigter Abzug
         UNBABZUG FOR UBABZUG NO-DISPLAY,       "Unberechtigter Abzug
         ZINSEN   FOR KUMZINS NO-DISPLAY,       "Kumulierter Zins
         JHRAUSGL FOR JAHRAUG NO-DISPLAY.       "Kumulierter Jahresausgl.
    BEGIN_OF_BLOCK 2.
    PARAMETERS:
           SORTART  LIKE RFPDO1-KOPRSOAR DEFAULT '1',          "Doku
           VERDICHT LIKE RFPDO1-KOPRVERD DEFAULT '1',          "Doku
           RASTVERD LIKE RFPDO1-KOPRRAST DEFAULT '0',          "Doku
           KONZVERS LIKE RFPDO-DOPOKONZ,   "Konzernversion
           XBUKRDAT LIKE RFPDO3-ALLGBUKD DEFAULT 0, "Bukr.daten
           KAUSGABE like rfpdo3-ALLGKAOR.
         SELECTION-SCREEN BEGIN OF LINE.
         SELECTION-SCREEN COMMENT 01(30) TEXT-030.
    PARAMETERS: RART-NET LIKE RFPDO-DOPRRNET DEFAULT 'X'.
         SELECTION-SCREEN COMMENT 33(01) TEXT-028.
    PARAMETERS: RART-SKT LIKE RFPDO-DOPRRSKT DEFAULT 'X'.
         SELECTION-SCREEN COMMENT 35(01) TEXT-028.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: RART-ALT LIKE RFPDO1-KOPRRALT DEFAULT 'X'.
    SELECTION-SCREEN COMMENT 03(28) TEXT-031.
    SELECTION-SCREEN POSITION POS_HIGH.
    PARAMETERS      RBLDAT   LIKE RFPDO2-KORD10BD.
    SELECTION-SCREEN COMMENT 61(12) TEXT-032.
    SELECTION-SCREEN END OF LINE.
         SELECTION-SCREEN COMMENT 37(01) TEXT-028.
    PARAMETERS: RART-UEB LIKE RFPDO-DOPRRUEB DEFAULT 'X'.
         SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 01(31) TEXT-026.
    PARAMETERS: RASTBIS1 LIKE RFPDO1-ALLGROGR DEFAULT '000'.
         SELECTION-SCREEN COMMENT 35(02) TEXT-027.
    PARAMETERS: RASTBIS2 LIKE RFPDO1-ALLGROGR DEFAULT '020'.
         SELECTION-SCREEN COMMENT 41(02) TEXT-027.
    PARAMETERS: RASTBIS3 LIKE RFPDO1-ALLGROGR DEFAULT '040'.
         SELECTION-SCREEN COMMENT 47(02) TEXT-027.
    PARAMETERS: RASTBIS4 LIKE RFPDO1-ALLGROGR DEFAULT '080'.
         SELECTION-SCREEN COMMENT 53(02) TEXT-027.
    PARAMETERS: RASTBIS5 LIKE RFPDO1-ALLGROGR DEFAULT '100'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 01(31) TEXT-029.
    PARAMETERS:  FAKTOR LIKE RFPDO-DOPRFAKT DEFAULT '0'.
    SELECTION-SCREEN COMMENT 35(1) TEXT-028.
    PARAMETERS:  STELLEN LIKE RFPDO-DOPRFAKT DEFAULT '0'.
    SELECTION-SCREEN END OF LINE.
    PARAMETERS: PZUOR    LIKE RFPDO2-DOPRZUOR.
    PARAMETERS: UMSATZKZ LIKE RFPDO1-DOPRSHBO. "DEFAULT 'WSABIMVD'.
    PARAMETERS:
           TITLE       LIKE RFPDO1-ALLGLINE,
           LISTSEP     LIKE RFPDO-ALLGLSEP,
           MIKFICHE    LIKE RFPDO-ALLGMIKF.
    PARAMETERS:
           P_LVAR    LIKE Gs_VARIANT-VARIANT DEFAULT SPACE modif id 508.
    END_OF_BLOCK 2.
    AT SELECTION-SCREEN OUTPUT.
    if acc_mode is initial.
      LOOP AT SCREEN.
        IF SCREEN-GROUP1 = '508'.
          SCREEN-active    = '0'.
          MODIFY SCREEN.
        ENDIF.
    ENDLOOP.
    endif.
    AT SELECTION-SCREEN ON AKONTS.
       Konvertierung der Kontonummer
      LOOP AT AKONTS.
        PERFORM ALPHAFORMAT(SAPFS000)
          USING AKONTS-LOW AKONTS-LOW.
        PERFORM ALPHAFORMAT(SAPFS000)
          USING AKONTS-HIGH AKONTS-HIGH.
        MODIFY AKONTS.
      ENDLOOP.
    AT SELECTION-SCREEN ON AKONTP.
       Konvertierung der Kontonummer
      LOOP AT AKONTP.
        PERFORM ALPHAFORMAT(SAPFS000)
          USING AKONTP-LOW AKONTP-LOW.
        PERFORM ALPHAFORMAT(SAPFS000)
          USING AKONTP-HIGH AKONTP-HIGH.
        MODIFY AKONTP.
      ENDLOOP.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_LVAR.
      Gs_VARIANT-REPORT  = SY-REPID.
      Gs_VARIANT-VARIANT = P_LVAR.
      PERFORM F4_FOR_S_LVAR   USING Gs_VARIANT.
      P_LVAR = Gs_VARIANT-VARIANT.
    AT SELECTION-SCREEN.
      IF NOT RASTBIS5 IS INITIAL.
        IF  RASTBIS5 GT RASTBIS4
        AND RASTBIS4 GT RASTBIS3
        AND RASTBIS3 GT RASTBIS2
        AND RASTBIS2 GT RASTBIS1.
        ELSE.
          MESSAGE E379.
        ENDIF.
      ELSE.
        IF NOT RASTBIS4 IS INITIAL.
          IF  RASTBIS4 GT RASTBIS3
          AND RASTBIS3 GT RASTBIS2
          AND RASTBIS2 GT RASTBIS1.
          ELSE.
            MESSAGE E379.
          ENDIF.
        ELSE.
          IF NOT RASTBIS3 IS INITIAL.
            IF  RASTBIS3 GT RASTBIS2
            AND RASTBIS2 GT RASTBIS1.
            ELSE.
              MESSAGE E379.
            ENDIF.
          ELSE.
            IF NOT RASTBIS2 IS INITIAL.
              IF  RASTBIS2 GT RASTBIS1.
              ELSE.
                MESSAGE E379.
              ENDIF.
            ELSE.
            nichts zu tun
            ENDIF.
          ENDIF.
        END

Maybe you are looking for