2009-04-09 16 views
0

Comment exclure une valeur d'une somme de regroupement, en fonction d'une valeur d'un autre champ?Comment exclure une valeur d'une somme de regroupement, basée sur une valeur d'un autre champ?

ie j'ouvre Report => Propriétés du rapport => Code et insère mon code personnalisé, mais comment changer le code ci-dessous pour exclure une valeur numérique d'un autre champ pour le cas ci-dessous?

Public Function ChangeWord(ByVal s As String) As String 
    Dim strBuilder As New System.Text.StringBuilder(s) 
    If s.Contains("Others") Then 
     strBuilder.Replace("Others", "Other NOT INCL") 
     Return strBuilder.ToString() 
     Else : Return s 
    End If 
End Function 
+0

Le essayé les codes ci-dessous et le rapport s'exécute, mais les valeurs ne sont pas affectées dans les deux cas. Des idées pourquoi? – Fet

Répondre

4

Je suppose que vous voulez exclure une valeur numérique d'une somme où la valeur de chaîne d'une cellule sur la même ligne comprend « autres », et que la fonction que vous avez fourni est utilisé comme le regroupement critères pour une table dans le rapport. Toutes mes excuses si ce n'est pas correct.

Il ne sera pas possible de le faire sans utiliser une deuxième partie de la logique, soit une fonction, soit une condition Iif. Je n'ai pas SSRS disponible pour tester ce au moment, mais (en supposant que votre colonne de valeur est un entier, le code ressemblera à quelque chose comme:

Public Function ExcludeOthers(rowDesc As String, rowVal as integer) 
    if ChangeWord(rowDesc) = "Other NOT INCL" 
     Return 0 
    else 
     Return rowVal 
    end if 
End Function 

Puis, dans la cellule où vous voulez la somme conditionnelle apparaissent:

=Sum(ExcludeOthers(Fields!desc.Value,Fields!val.Value)) 

Sinon, vous pouvez le faire sans la fonction en utilisant Iif dans la cellule où la somme conditionnelle apparaît:

=Sum(Iif(ChangeWord(Fields!desc.Value) = "Other NOT INCL",0,Fields!desc.Value)) 

Selon Sur la nature de vos données source, vous pouvez également le faire en ajoutant des colonnes calculées à la requête source du rapport. Je préférerais la deuxième ou la troisième option - le code personnalisé semble être exagéré à cette fin.

+0

Vous êtes génial! Thanx un million d'Ed !!!! – Fet

Questions connexes