I'm not sure this will work, as your query does converts and casts, which are not supported by the DQEs, but if I'm not mistaken, SqlServer will try to cast implicitly first, so it might be this will work.
The code below is perhaps a bit verbose, but a lot is copy paste or intellisense's work so you won't have to type a lot. I've replaced parameters and some hardcoded values with _<name> elements, you have to fill these in yourself. I'm not sure if the 5th join of ApplicantFormFieldData is really necessary, but just in case, it's there:
ResultsetFields fields = new ResultsetFields(7);
fields.DefineField(ApplicantFieldIndex.ApplicantId, 0, "ApplicantId");
fields.DefineField(ApplicantFieldIndex.ApplicantStatusId, 1, "ApplicantStatusID");
fields.DefineField(ApplicantFieldIndex.ApplicantPrintDate, 2, "ApplicantPrintDate");
fields.DefineField(ApplicantFormFieldDataFieldIndex.FormElementData, 3, "ApplicantFirstName", "Affd1");
fields.DefineField(ApplicantFormFieldDataFieldIndex.FormElementData, 4, "ApplicantLastName", "Affd2");
fields.DefineField(ApplicantFormFieldDataFieldIndex.FormElementData, 5, "BrokerID", "Affd3");
fields.DefineField(ApplicantFormFieldDataFieldIndex.FormElementData, 6, "DateCompleted", "Affd4");
IPredicateExpression affd1Filter = new PredicateExpression(
PredicateFactory.CompareValue(
ApplicantFormFieldDataFIeldIndex.FormElementData, ComparisonOperator.Equal, "applicantFirstName", "Affd1");
IPredicateExpression affd2Filter = new PredicateExpression(
PredicateFactory.CompareValue(
ApplicantFormFieldDataFIeldIndex.FormElementData, ComparisonOperator.Equal, "applicantLastName", "Affd2");
IPredicateExpression affd3Filter = new PredicateExpression(
PredicateFactory.CompareValue(
ApplicantFormFieldDataFIeldIndex.FormElementData, ComparisonOperator.Equal, "brokerID", "Affd3");
IPredicateExpression affd4Filter = new PredicateExpression(
PredicateFactory.CompareValue(
ApplicantFormFieldDataFIeldIndex.FormElementData, ComparisonOperator.Equal, "currentDate", "Affd4");
IPredicateExpression affd5Filter = new PredicateExpression(
PredicateFactory.CompareValue(
ApplicantFormFieldDataFIeldIndex.FormElementData, ComparisonOperator.Equal, "applicantState", "Affd5");
IRelationcollection relations = new RelationCollection();
relations.Add(ApplicantEntity.Relations.ApplicantFormFieldDataUsingApplicantId, "Affd1").CustomFilter = affd1Filter;
relations.Add(ApplicantEntity.Relations.ApplicantFormFieldDataUsingApplicantId, "Affd2").CustomFilter = affd2Filter;
relations.Add(ApplicantEntity.Relations.ApplicantFormFieldDataUsingApplicantId, "Affd3").CustomFilter = affd3Filter;
relations.Add(ApplicantEntity.Relations.ApplicantFormFieldDataUsingApplicantId, "Affd4").CustomFilter = affd4Filter;
relations.Add(ApplicantEntity.Relations.ApplicantFormFieldDataUsingApplicantId, "Affd5").CustomFilter = affd5Filter;
IPredicateExpression filter = new PredicateExpression();
filter.Add(PredicateFactory.CompareValue(ApplicantFieldIndex.ApplicantStatusId, ComparisonOperator.Equal, _status);
filter.AddWithAnd(PredicateFactory.Between(
ApplicantFormFieldDataFIeldIndex.FormElementData, _dateFrom, _dateTo, "Affd4"));
filter.AddWithAnd(PredicateFactory.CompareValue(
ApplicantFormFieldDataFIeldIndex.FormElementData, ComparisonOperator.GreaterThan, _date2004125, "Affd4"));
SortExpression sorter = new SortExpression(
new SortClause(fields["dateCompleted"], SortOperator.Ascending));
DataTable dynamicList = new DataTable();
TypedListDAO dao = new TypedListDAO();
dao.GetMultiAsDataTable(fields, dynamicList, 0, sorter, filter, relations, true, null, null, 0, 0);