Seltsames Problem im Groupband
Meike Schlenker
Hallo zusammen,das Groupband verhält sich sehr seltsam und stellt ein Feld nur in den ersten 10 Zeilen falsch dar.
Der Bericht ist wie folgt aufgebaut:
Äußerstes Datenband1 hat folgende Datenquelle:
SELECT * FROM OSLP T0
Alle Vertriebsmitarbeiter.
Das Datenband5 enthält ein weiteres Datenband mit folgender Datenquelle:
SELECT T0.[OpprId], T1.[SlpName], T0.[WtSumLoc], T0.[Step_Id], T2.[CardName], T0.[CloseDate] FROM OPR1 T0 INNER JOIN OSLP T1 ON T0.SlpCode = T1.SlpCode INNER JOIN OOPR T2 ON T0.OpprId = T2.OpprId WHERE T0.[Step_Id] BETWEEN 1 AND 4
Diese Abfrage zeigt die Opportunitynr, Vertriebsmitarbeiter, Gewichteter Betrag, Stufennr zwischen 1 und 4, Kundenname und Abschlussdatum an.
Filterexpression: Vertriebsmitarbeiter Datenband5 = Vertriebsmitarbeiter Datenband1
Instance Count = 0
Das Datenband5 enthält ein Groupband mit folgender GroupExpression:
Stufennummer Datenband5
In dem Groupband wird ein Header mit dem Feld Stufennr aus dem Groupband angezeigt sowie ein Detailbereich mit den Feldern Opportunitynr und Kundenname aus dem Groupband.
Das funktioniert auch soweit. Jetzt kommt das Problem:
Desweiteren habe ich im Detailbereich 6 verschiedene Textfelder in denen, je nach dem in welchem Quartal sich die Opportunity befindet, der gewichtete Betrag angezeigt wird.
Dies habe ich wie folgt gelöst:
Beispiel aus einem Textfeld:
Dim total As Double
Dim qnow, qdate, ynow, ydate As String
qnow = DatePart("q",Now)
qdate = DatePart("q",advancedGroupBand1("CloseDate"))
ynow = DatePart("yyyy",Now)
ydate = DatePart("yyyy",advancedGroupBand1("CloseDate"))
total = advancedDataBand5("WtSumLoc")
If qnow = 1 Then
If qdate=4 And ydate=ynow-1 Then
textbox133.Value = total
Else
textbox133.Value = 0
End If
Else If qnow = 2 Then
If qdate=1 And ydate=ynow Then
textbox133.Value = total
Else
textbox133.Value = 0
End If
Else If qnow = 3 Then
If qdate=2 And ydate = ynow Then
textbox133.Value = total
Else
textbox133.Value = 0
End If
Else If qnow=4 Then
If qdate=3 And ydate=ynow Then
textbox133.Value = total
Else
textbox133.Value = 0
End If
End If
Wenn ich nun den Bericht ausführe, wird in den erstel 10 Zeilen eine 0 als gewichteter Betrag angezeigt und danach die richtigen Werte.
Ich kann das Problem leider nicht nachvollziehen.
Wenn ich mir zu dem gewichteten Betrag die LineNUm ausgeben lasse, steht in den ersten 10 Zeilen immer der gleiche Wert und ab 11 zählt er dann hoch.
Als Anhang siehe Ausschnitt aus Bericht und Layout.
Attachment
[url=http://www.coresystems.ch/wp-content/../wp-content/forum-image-uploads/meikeschlenker/bericht.JPG]bericht.JPG[/url]
Meike Schlenker
LayoutauschnittAttachment
[url=http://www.coresystems.ch/wp-content/../wp-content/forum-image-uploads/meikeschlenker/layout.JPG]layout.JPG[/url]
Philipp Knecht
Hallo MeikeDanke für Deine Ausführungen.
Kannst du uns noch das Supportpackage schicken?
(Ctrl & Floppy Symbol im Preview betätigen)
hth
Meike Schlenker
Hallo Philipp,habe das Support Package soeben per email verschickt.
Gruß Meike
Attachment
[url=http://www.coresystems.ch/wp-content/../wp-content/forum-file-uploads/meikeschlenker/SupportPackage_U0000068.zip]SupportPackage_U0000068.zip[/url]
Philipp Knecht
Hi MeikeErste Feststellung:
Das DataBand hat gar keine Datensource bzw. steht nur auf B1_Data?
hth
Meike Schlenker
Gut, dabei handelt es sich aber um die erste Seite.Der Bericht besteht aus insgesamt 3 Seiten und auf der dritten tritt das Problem auf.
Philipp Knecht
Hi MeikeDanke für die Informationen.
Weitere Feststellung:
Mach anstelle:
total = advancedDataBand5("WtSumLoc")
dieses:
total = advancedGroupBand1("WtSumLoc")
Deseiteren sind sehr viele LD.QueryData's vorhanden.
Du musst dir bewusst sein dass diese jedesmal ne Query zum Server schicken (für jede Zeile...)
Könnte man ev. alles schon in der Query (Datensource) mitgeben.
hth
Meike Schlenker
Hallo Philipp,ich habe beides getestet: AdvancedGroupBand1 und AdvancedDataBand5, jedoch macht es keinen Unterschied.
Ich bin mir durchaus bewusst, dass der Bericht durch die LD.QueryDatas sehr viel Leistung beansprucht. Jedoch ist es in manchen Situationen einfacher, direkt eine Abfrage zu schreiben.
Aber ich werde den Bericht optimieren, sobald er voll funktionstüchtig ist.
Diese Dinge sind aber wahrscheinlich nicht die Ursache für das Problem?
Schonmal vielen Dank für deine Antwort.
Philipp Knecht
Hallo MeikeDer Fehler müsste dann in der Logik zu finden sein...
(Ich hab an diversen Orten DataBand mit GroupBand ersetzt)
Hab dir mein Testcase angehängt der das ganze auf ein Minimum reduziert und veranschaulicht.
Weiter kann ich dann aber auch nicht gehen bzw. mehr Support ist kostenpflichtig.
hth
Attachment
[url=http://www.coresystems.ch/wp-content/../wp-content/forum-file-uploads/philipp/reproduce.rst]reproduce.rst[/url]
Meike Schlenker
Vielen Dank für die Mühe. Ich werde die Logik nochmal überarbeiten und melde ich ggf., falls das Problem gelöst wurde.Schönes Wochenende,
Meike
0
Please sign in to leave a comment.
Comments
0 comments