Inhalt
Der Bericht "Umsätze" gibt für die ausgewählten Kunden den
Umsatz der letzten 5 Jahre aus. |
Datenbeschaffung
Wir entnehmen die Statistikdaten für die Umsätze der SAP-Tabelle
S001, die Teil des Vertriebsinformationssystems VIS ist. Im Schlüssel dieser
Standardtabelle ist die Artikelnummer enthalten, die wir nicht
benötigen. Um weniger Sätze in der Datenbank lesen zu müssen, können Sie
im VIS eine eigene Statistiktabelle, z.B."S950",
definieren, die wie S001 aussieht aber die Artikelnummer nicht enthält,
und die Umsätze dann daraus entnehmen.
Die Datenbeschaffung erfolgt
über die CIS ABAP Schnittstelle:

VB.net
' Report Sales1
Public Function CreateReportSales1(ByVal keys _
As Dictionary(Of String, String), _
ByVal id As String, _
ByVal customernumbers() As String, _
ByVal customernames() As String) As String
' We use CIS addon ABAP function to read the VIS statistics
' Clear input/output
rfc_input.Clear()
rfc_output.Clear()
' Build up input
Dim s As addonsimplestring = DirectCast(rfc_input.AddNew(),_
addonsimplestring)
s.content = GetItem(keys, "VKORG")
s = DirectCast(rfc_input.AddNew(), addonsimplestring)
s.content = GetItem(keys, "VTWEG")
s = DirectCast(rfc_input.AddNew(), addonsimplestring)
s.content = GetItem(keys, "SPART")
' following parameters: customer numbers
For Each cn As String In customernumbers
s = DirectCast(rfc_input.AddNew(), addonsimplestring)
s.content = cn
Next
' Request data
ic.RfcRequest("CISADDON.VIS01", "S", rfc_input, rfc_output, _
deferred:=True)
' execute all requests (one only in our case)
ic.RfcExecuteDeferredCalls(rfcmessages)'
....
|
In der ABAP-Routine erhalten wir die Organisationsschlüssel VKORG, VTWEG,
SPART und anschließend alle selektierten Kundennummern. Es ist nun
aus Performance-Gründen wichtig, nicht pro Kundennummer einen separaten Select-Zugriff
abzusetzen, sondern in einem einzigen Select alle Kundennummern
anzufordern. Dazu nutzen wir die Option "for all entries in table" der
ABAP Select-Anweisung. Die zentrale Stelle im ABAP-Coding ist die
folgende:

ABAP
data: begin of r1 occurs 10,
kunnr like s001-kunnr,
spmon like s001-spmon,
umnetwr like s001-umnetwr,
stwae like s001-stwae,
end of r1.
Select kunnr spmon umnetwr stwae
from S001
into corresponding fields of table r1
for all entries in customers
where kunnr = customers-kunnr
and vkorg = vkorg
and vtweg = vtweg
and spart = spart
and spmon GE spmon.
|
Bitte schauen Sie für die weiteren Details direkt in den mit CIS mobile
ausgelieferten ABAP-Funktionsbaustein /GUIXT/CISADDON_INTERFACE.
|
Layout
Die Ausgabetabelle bauen wir in VB.NET als
HTML-String auf, wobei
über CSS die Angaben für Fonts, Abmessungen, Farben etc. gesetzt werden. Ein typischer
Ausschnitt aus dem VB.NET Coding:

VB.net
' 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_SALES_TITLE1")
& year4 & " - " & year0 & ic.MessageText
("REPORT_SALES_TITLE2"))
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;'>")
AppendString(sb, ic.MessageText("REPORT_SALES_COL1"))
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_SALES_COL2"))
sb.Append("</div>")
' year4
sb.Append("<div class='colhead' style='float:left;
text-align:right; width:80px;'>")
sb.Append(year4.ToString)
sb.Append("</div>")
' year3
sb.Append("<div class='colhead' style='float:left;
text-align:right; width:80px;'>")
sb.Append(year3.ToString)
sb.Append("</div>")
...
|
|
Zusatzparameter
Keine Zusatzparameter
|