2016-04-06 24 views
0

Ich mag würde ein Formelfeld haben, wie die folgendenCrystal Reports: Sumarize Formelfeld

If Count(Employees.Trainings, Employees.EmployeeID)>=1 Then 
    Employees.EmployeeID 
Else 
    Null 

Mein Ziel ist es, eine Zählung dieser Formel zu tun, damit ich weiß, wie viele Mitarbeiter mindestens eine Ausbildung abgeschlossen hat . Scheinbar ist dies in Crystal Reports nicht möglich. Gibt es eine Problemumgehung? Ich möchte meinen Bericht so etwas wie folgt aussehen:

Department Employees Sum(days) Employees who have at least one training 
Department A  25  120          20 
Department B  12  34           10 

ich die letzte Spalte zu verpassen. Mein Bericht ist nach Abteilung und Mitarbeiter-ID gruppiert. Vielen Dank!

+0

Frage nicht, dass ist clear..can Ihnen zeigen, wie Design aussieht und wie Sie möchten, dass – Siva

+0

Hallo, sorry für die späte Antwort haben. Ich habe meine Frage bearbeitet. –

+0

ok das Problem verstanden ... jetzt Frage ist, wollen Sie Mitarbeiter ID anzeigen, die mehr als 1 Training abgeschlossen sind, wollen Sie nur die Datensätze zeigen, die mehr als ein Training hat ... weil nach Ihrem Beispiel es aussieht Sie zeigen nur die Anzahl der Trainings an – Siva

Antwort

0

Am besten erstellen Sie eine Hilfsabfrage, um einige Aggregate zu berechnen und diese Abfrage in CR zu verknüpfen.

Wenn dies nicht möglich ist, könnten Sie SQL-Ausdruck Feld erstellen, um innere Anzahl zu finden - das kann etwas schwierig sein, wenn Sie zusätzliche Bedingungen haben, Mitarbeiter zu filtern.

Die nächste Möglichkeit besteht darin, einen Unterbericht zu verwenden, um die Anzahl der Mitarbeiter mit Training zu berechnen, Daten zwischen Haupt- und Unterbericht mithilfe von gemeinsamen Variablen auszutauschen und sie mit Druckzeitformeln zusammenzufassen.

+0

Vielen Dank für Ihre Antwort. Ich bin ein totaler Anfänger mit Crystal-Reports-Berichten, also habe ich versucht, Unterberichte zu verwenden und herauszufinden, wie viele Schulungen die Mitarbeiter absolviert haben. Aber ich bin mir nicht sicher, wie man die Leute zählen soll, wie man mehr als eine Ausbildung hat und dass man auf die Gruppenüberschrift (Abteilungsgruppe) der Mitarbeitergruppe zählen kann. Ich habe auch versucht, einen Befehl hinzuzufügen (ich denke, das ist, was Sie mit "Hilfsabfrage, um einige Aggregate zu berechnen") und ich arbeite derzeit auf diese Weise. –

+0

"Hilfsabfrage" bedeutet Ansicht in Datenbank - nicht Crystal-Datenbank-Befehl. – Arvo

0

Der beste und einfachste Weg, den ich Ihnen rate, ist die Erweiterung auf das, was Sie bereits getan haben.

da Sie bereits durch die gruppiert haben Department und Employee ID

Platz Ausbildung des im Detail zusammen mit anderen Bereichen, jetzt nehmen Sie die Summe der Ausbildung der in der Gruppe Fußzeile der Gruppe, die Sie anzeigen möchten, wird diese geben Sie die Nummer von Schulungen zusammen mit Mitarbeitern und Anzahl der Tage.

if employeehastrainings //use condition (as I am not aware how is your database data for this field)to check trainings are there are not..here you don't what kind of training just needed whether training is presenet are not 
then 1 
else 0 

Diese Summe in der Fußzeile finden Sie Anzahl der Trainings die geben von 0 zu einer beliebigen Anzahl.

Jetzt müssen Sie nur noch die Datensätze unterdrücken, deren Training gleich oder geringer ist als die Anzahl der Trainingseinheiten.

gehen zu supress der Gruppe Fußzeile und schreiben unter Formel

If sum(Employees.Trainings, Employees.EmployeeID)<=1 Then 
true 
else 
false 

Dies wird nur die Mitarbeiter zeigen, die die mehr als 1 Training des haben und ruhen alle unterdrückt werden.

Versuch und lassen Sie mich wissen

+0

Hallo! Vielen Dank für die Antwort und Entschuldigung für die verspätete Antwort. Ihre Lösung (wenn ich verstanden und alles richtig gemacht habe) zeigt den Namen der Mitarbeiter an, die Trainings> = 1 haben. Allerdings brauche ich die Namen nicht. Ich muss nur wissen, wie viele sie sind. Wenn es in meinem Bericht hilft, habe ich auch die Anzahl der Trainings, die sie in einem "count" Zusammenfassung Feld auf der Ebene der Mitarbeitergruppe abgeschlossen haben. Gibt es eine Möglichkeit, dieses Zusammenfassungsfeld wieder zu zählen, aber für die Abteilungsgruppe? –

+0

Es gibt einen Weg, aber leider heute ist für mich Tag frei, so kann ich nicht Crystal Report zugreifen, aber morgen, wenn ich im Amt sein werde, wird die Lösung testen und posten. – Siva

+0

Keine Sorgen! Dies ist ein Projekt von vielen. Ich möchte jedoch hinzufügen, dass es mir gelungen ist, die Anzahl der Mitarbeiter mit mehr als 1 Schulung in der Mitarbeitergruppe mit den Formelfeldern/Methode "Initialize-Count-Reset" zu ermitteln. Gibt es eine Möglichkeit, diese Anzahl in die obige Gruppe zu verschieben ("Abteilung")? –