Inhalt


 

Der Bericht "Kreditübersicht" zeigt für die auswählten Kunden das Gesamtobligo, das hinterlegte Kreditlimit und die Ausschöpfung des Kredits in Prozent.

Datenbeschaffung und Layout

Für die Kreditübersicht gibt es im SAP Standard den ABAP-Report "RFDKLI40", den wir zur Datenbeschaffung nutzen wollen. Das Layout gestalten wir dann selbst in VB.NET mit HTML und CSS.

Es wäre auch möglich, die Ausgabe des ABAP Reports ohne Layoutänderung im SAP-Format anzuzeigen. Ein Beispiel dazu finden Sie im Bericht Änderungen.

Im SAP-System sieht die Ausgabe wie folgt aus:

Das Feld "Währung" bzw. "Whrg" ist dabei übrigens die Währung der letzten Zahlung des Debitors, die unterschiedlich von der Währung des Kreditlimits und Obligos sein kann. Das ist mißverständlich; zum Beispiel ist bei Kunde 1200 das Kreditlimit 500.000,- EUR und nicht DEM. Wir haben es in dem Beispiel aber übernommen, da es um das Prinzip geht, einen SAP-Report in CIS mobile abzubilden. Ansonsten wäre es besser, entweder die Währung anzuzeigen, auf die sich Kreditlimit und Obligo beziehen, oder die Überschrift zu ändern in "Währung letzte Zahlung".

Wir rufen in VB.NET den Report RFDKLI40 auf, übergeben unsere Kundennummern und Organisationsdaten und lassen uns die Ausgabe in ASCII-Form zurückgeben. Dort entnehmen wir die Daten, indem wir die Tabellenzeilen durch die Anweisung Split("|") in die einzelnen Spalten zerlegen. Zusätzlich zeigen wir noch jeweils den Kundennamen an.

VB.net
 ' Report Credit
    Public Function CreateReportCredit _
              (ByVal keys As Dictionary(Of String, String), _                                       
                ByVal id As String, ByVal customernumbers() As String, _
               ByVal customernames() As String) As String

        ' We use ABAP report RFDKLI40 to display basic credit data

        ' Clear input/output
        rfc_input.Clear()
        rfc_output.Clear()


        ' Build up input
        add_report_selection(rfc_input, "KKBER", _ 
                  GetItem(keys, "KKBER"), GetItem(keys, "KKBER"))

        For Each knr As String In customernumbers
            add_report_selection(rfc_input, "KONTO", knr, knr)
        Next


        ' Request report via RFC
        ic.RfcRequest("RFDKLI40", "R", rfc_input, rfc_output)


        ' Buld up HTML output table
        Dim sb As New StringBuilder


        'Title
        sb.Append("<div style='width:700px; font-size:12pt;
       font-weight:bold; margin: 10px 0px 10px 5px; color:#606060;'>")
        AppendString(sb, ic.MessageText("REPORT_CREDIT_TITLE"))
        sb.Append("</div>")

        ' column headings
        sb.Append("<div class='colhead01' style='width:740px; 
                             font-size:12px; margin-bottom:4px;'>")

        ' customer number
        sb.Append("<div class='colhead' 
             style='float:left; text-align:left; width:80px;'>")
        sb.Append("Nr")
        sb.Append("</div>")

        ' customer
        sb.Append("<div class='colhead' 
               style='float:left; text-align:left; 
                            width:190px; margin-right:4px;'>")
        AppendString(sb, ic.MessageText("REPORT_CREDIT_COL2"))
        sb.Append("</div>")


        ' Obligo
        sb.Append("<div class='colhead' 
                style='float:left; text-align:right; width:150px;'>")
        AppendString(sb, ic.MessageText("REPORT_CREDIT_COL3"))
        sb.Append("</div>")

        ' WAERS
        sb.Append("<div class='colhead' 
                 style='float:left; text-align:left; 
                        margin-left:10px;width:60px;'>")
        AppendString(sb, ic.MessageText("REPORT_CREDIT_COL4"))
        sb.Append("</div>")

        ' Limit
        sb.Append("<div class='colhead' 
              style='float:left; text-align:right; width:150px;'>")
        AppendString(sb, ic.MessageText("REPORT_CREDIT_COL5"))
        sb.Append("</div>")

        ' PERCENTAGE
        sb.Append("<div class='colhead' 
              style='float:left; text-align:right; width:80px;'>")
        AppendString(sb, ic.MessageText("REPORT_CREDIT_COL6"))
        sb.Append("</div>")


        sb.Append("</div>")



        Dim kunnr As String = ""
        Dim limit As String = ""
        Dim waers As String = ""
        Dim oblig As String = ""
        Dim percentage As String = ""

        Dim header As Boolean = True

        For Each line As addonsimplestring In rfc_output
            Dim fields() As String = line.content.Split("|")

            If fields.Length > 7 Then
                If header Then
                    header = False
                Else
                    kunnr = fields(1).Trim.PadLeft(10, "0")
                    waers = fields(5).Trim
                    limit = fields(6).Trim
                    oblig = fields(7).Trim
                    percentage = fields(8).Trim


                    sb.Append("<div style='width:740px; 
                      font-size:13px; margin-left:8px; clear:both;'>")

                    ' customer nr
                    sb.Append("<div class='outputcelldiv'  
                        style='text-align:left; width:80px;'>")
                    AppendString(sb, kunnr.TrimStart("0"))
                    sb.Append("</div>")


                    ' customer
                    sb.Append("<div class='outputcelldiv'  
                         style='text-align:left; width:190px; 
                    margin-right:4px; text-overflow: ellipsis;'>")
                    AppendString(sb, customername(kunnr, 
                                customernumbers, customernames))
                    sb.Append("</div>")


                    ' total obligo
                    sb.Append("<div  class='outputcelldiv'  
                            style='text-align:right; width:150px;'>")
                    AppendString(sb, oblig)
                    sb.Append("</div>")

                    ' waers
                    sb.Append("<div  class='outputcelldiv'  
                              style='text-align:left; 
                                margin-left:10px; width:60px;'>")
                    AppendString(sb, waers)
                    sb.Append("</div>")


                    ' limit
                    sb.Append("<div  class='outputcelldiv'  
                           style='text-align:right; width:150px;'>")
                    AppendString(sb, limit)
                    sb.Append("</div>")


                    ' percentage
                    sb.Append("<div  class='outputcelldiv'  
                         style='text-align:right; width:80px;'>")
                    AppendString(sb, percentage & "%")
                    sb.Append("</div>")


                    sb.Append("</div>")


                End If


            End If

        Next

        sb.Append("<div style='clear:both;'></div>")

        ' Clear input/output
        rfc_input.Clear()
        rfc_output.Clear()




        ' return report output in HTML format
        Return sb.ToString

    End Function


 

Zusatzparameter

Keine Zusatzparameter.