To avoid using a long-winded IIF - what I would recommend and do myself is to create a separate dataset with the values I need based on the key values.
This dataset would contain a row with a key value to identify the grade and language - for example:
PreK-English
PreK-Spanish
Kindergarten-English
Kindergarten-Spanish
01-English
01-Spanish
02-English
02-Spanish
...
12-English
12-Spanish
The dataset would have 2 columns - the key value (StatementID) and the text (StatementText) to be returned.
You then utilize a LOOKUP to get the appropriate row from the dataset - the lookup will concatenate the grade with the language and returns the appropriate text value from the dataset.
=Lookup(Fields!Grade.Value & "-" & Fields!Language.Value, Fields!StatementID.Value, Fields!StatementText.Value, "Statements")
To create the dataset - you just need a query like this:
Select concat(ag.GradeID, '-', st.StatementLanguage) As StatementID, st.StatementText
From (
Values ('K', 'PreK')
, ('K', 'Kindergarten')
, ('05', '01')
, ('05', '02')
, ('05', '03')
, ('05', '04')
, ('05', '05')
, ('08', '06')
, ('08', '07')
, ('08', '08')
, ('12', '09')
, ('12', '10')
, ('12', '11')
, ('12', '12')
) As ag(GradeKey, GradeID)
Inner Join (
Values ('K', 'English', 'English version of text')
, ('K', 'Spanish', 'Spanish version of text')
, ('05', 'English', 'English Version of Text')
, ('05', 'Spanish', 'Spanish Version of Text')
, ('08', 'English', 'English Version of Text')
, ('08', 'Spanish', 'Spanish Version of Text')
, ('12', 'English', 'English Version of Text')
, ('12', 'Spanish', 'Spanish Version of Text')
) As st(StatementKey, StatementLanguage, StatementText) On st.StatementKey = ag.GradeKey