2016-02-09 1 views
0

Je fais une facture automatique dans les services de reporting pour notre société mais je commence à rencontrer quelques problèmes. Les factures sont faites mensuellement et la plupart d'entre elles consistent simplement en un «tarif horaire x heures travaillées». Cependant, nous avons aussi des contrats avec des partenaires qui nous facturent un montant fixe chaque mois, peu importe le temps que nous avons passé à travailler pour eux. Ceci est le code qui est écrit dans le champ où le montant à payer apparaît:Plusieurs iifs dans une grille dans Microsoft SQL ReportBuilder 2012 3.0

=SUM(Fields!DurationHours.Value * Fields!HourlyRate.Value) 

Serait-il possible de faire sur le terrain avec une Iif expression (par exemple: =IIf(Fields!Customerid.Value = 30,"7000","0") ou est-ce pas faisables Dans ce exemple client 30 devrait payer 7000 fixe.Mais je ne sais pas quoi mettre au lieu de la cause zéro, il devrait afficher 'Heure Taux x heures travaillées' si le client n'est pas 30. Si cela est possible, comment dois-je entrer plus de clients Parce que nous avons environ 10 partenaires qui paient un prix fixe Merci d'avance

Répondre

1

La fonction de commutation est utile lorsque vous avez trois conditions ou plus à tester. La fonction h renvoie la valeur associée à la première expression d'une série évaluée à true:

=Switch(Fields!Customerid.value= 1,"1000", Fields!Customerid.value= 2,"2000", Fields!Customerid.value= 3,"3000", Fields!Customerid.value= 4,"4000", Fields!RCustomerid.value= 5,"5000", Fields!Customerid.value= 6,"6000", Fields!Customerid.value= 7,"7000", Fields!Customerid.value= 8,"8000", Fields!Customerid.value= 9,"9000", Fields!Customerid.value= 10,"10000",Fields!Customerid.value<>1 or Fields!Customerid.value<>2 or Fields!Customerid.value<>3 or Fields!Customerid.value<>4 or Fields!Customerid.value<>5 or Fields!Customerid.value<>6 or Fields!Customerid.value<>7 or Fields!Customerid.value<>8 or Fields!Customerid.value<>9 or Fields!Customerid.value<>10,SUM(Fields!DurationHours.Value * Fields!HourlyRate.Value)) 

Remplacez simplement votre client par Customerid.

1

Si je comprends bien votre question.

Vous pouvez écrire somme ELSE comme celui-ci

=IIF(Fields!Customerid.Value = 30 
    , "7000" 
    , SUM(Fields!DurationHours.Value * Fields!HourlyRate.Value) 
)