Hi André Arnaud de Calavon,
Please check DP and Contract classe
[
SRSReportParameterAttribute(classstr(VacationTypeContract))
]
class VacationtypeDP extends SRSReportDataProviderBase
{
VacationsTmp vacationsTmp;
RSVacationIdType rsVacationId;
RSVacationIdType rsVacationIdFrom;
RSVacationIdType rsVacationIdTo;
date rsVacationFromDate1, rsVacationFromDate2;
date rsVacationToDate1, rsVacationToDate2;
EmplId emplFrom, emplTo;
RSIsEmployed _isEmployed;
NotReturnedFromVacation _isReturned;
}
private void getReportParameters()
{
VacationTypeContract contract = this.parmDataContract();
;
if (contract)
{
rsVacationIdFrom = contract.parmRsVacationIdFrom();
rsVacationIdTo = contract.parmRsVacationIdTo();
emplFrom = contract.parmEmplIdFrom();
emplTo = contract.parmEmplIdTo();
rsVacationFromDate1 = contract.parmRsVacationFromDate1();
rsVacationFromDate2 = contract.parmRsVacationFromDate2();
rsVacationToDate1 = contract.parmRsVacationToDate1();
rsVacationToDate2 = contract.parmRsVacationToDate2();
_isEmployed = contract.parmIsEmployed();
_isReturned = contract.parmNotReturnedFromVacation();
}
if (rsVacationIdFrom =='')
rsVacationIdFrom = '00';
if (rsVacationIdTo=='')
rsVacationIdTo = '99';
if (emplFrom=='')
emplFrom = '000000';
if (emplTo=='')
emplTo ='999999';
}
[SRSReportDataSetAttribute("VacationsTmp")]
public VacationsTmp getVacationsTmp()
{
select * from vacationsTmp;
return vacationsTmp;
}
public RSIsEmployed IsEmployed(EmplId _emplId, RSExtendedHRMEmplStatus _status)
{
RSIsEmployed ret;
switch (_status)
{
case 1,3,4,7:
ret = 0;
break;
default:
ret = 1;
break;
}
//info(strFmt("Status for %1 is %2",_emplId,_status));
return ret;
}
[SysEntryPointAttribute]
public void processReport()
{
ResultSet RS;
str fromDate1, toDate1, fromDate2, toDate2;
str strSql;
int serialNumber=0;
;
this.getReportParameters();
fromDate1 = date2String(rsVacationFromDate1);
toDate1 = date2String(rsVacationToDate1);
fromDate2 = date2String(rsVacationFromDate2);
toDate2 = date2String(rsVacationToDate2);
if (_isEmployed == RSIsEmployed::Both)
{
if (!_isReturned)
{
strSql = "SELECT T1.EMPLID, T1.RSVACATIONID, T1.RSVACATIONFROMDATE, T1.RSVACATIONTODATE, T1.RSTOTALDAYS, T1.RSVACATIONACTUALRETURNDATE, T1.NOTES, T2.ISEMPLOYED " +
"FROM RSVACATIONREQUESTTABLE AS T1 INNER JOIN " +
" RSEXTENDEDDIRPERSON1 AS T2 ON T1.EMPLID = T2.EMPLID " +
"WHERE T1.RSVACATIONFROMDATE >= '" + fromDate1 +
"' AND T1.RSVACATIONFROMDATE <= '" + fromDate2 +
"' AND T1.RSVACATIONTODATE >= '" + toDate1 +
"' AND T1.RSVACATIONTODATE <= '" + toDate2 +
"' AND T1.RSVACATIONID >= N'" + rsVacationIdFrom +
"' AND T1.RSVACATIONID <= N'" + rsVacationIdTo +
"' AND T1.EMPLID >= N'" + emplFrom +
"' AND T1.EMPLID <= N'" + emplTo +
"' ORDER BY T1.EMPLID";
}
else
{
strSql = "SELECT T1.EMPLID, T1.RSVACATIONID, T1.RSVACATIONFROMDATE, T1.RSVACATIONTODATE, T1.RSTOTALDAYS, T1.RSVACATIONACTUALRETURNDATE, T1.NOTES, T2.ISEMPLOYED " +
"FROM RSVACATIONREQUESTTABLE AS T1 INNER JOIN " +
" RSEXTENDEDDIRPERSON1 AS T2 ON T1.EMPLID = T2.EMPLID " +
"WHERE T1.RSVACATIONFROMDATE >= '" + fromDate1 +
"' AND T1.RSVACATIONFROMDATE <= '" + fromDate2 +
"' AND T1.RSVACATIONTODATE >= '" + toDate1 +
"' AND T1.RSVACATIONTODATE <= '" + toDate2 +
"' AND T1.RSVACATIONID >= N'" + rsVacationIdFrom +
"' AND T1.RSVACATIONID <= N'" + rsVacationIdTo +
"' AND T1.EMPLID >= N'" + emplFrom +
"' AND T1.EMPLID <= N'" + emplTo +
"' AND T1.RSVACATIONACTUALRETURNDATE = '' ORDER BY T1.EMPLID";
}
}
else
{
if (_isEmployed == RSIsEmployed::OnService)
{
if (!_isReturned)
{
strSql = "SELECT T1.EMPLID, T1.RSVACATIONID, T1.RSVACATIONFROMDATE, T1.RSVACATIONTODATE, T1.RSTOTALDAYS, T1.RSVACATIONACTUALRETURNDATE, T1.NOTES, T2.ISEMPLOYED " +
"FROM RSVACATIONREQUESTTABLE AS T1 INNER JOIN " +
" RSEXTENDEDDIRPERSON1 AS T2 ON T1.EMPLID = T2.EMPLID " +
"WHERE T1.RSVACATIONFROMDATE >= '" + fromDate1 +
"' AND T1.RSVACATIONFROMDATE <= '" + fromDate2 +
"' AND T1.RSVACATIONTODATE >= '" + toDate1 +
"' AND T1.RSVACATIONTODATE <= '" + toDate2 +
"' AND T1.RSVACATIONID >= N'" + rsVacationIdFrom +
"' AND T1.RSVACATIONID <= N'" + rsVacationIdTo +
"' AND T1.EMPLID >= N'" + emplFrom +
"' AND T1.EMPLID <= N'" + emplTo +
"' AND T2.ISEMPLOYED = 0 ORDER BY T1.EMPLID";
}
else
{
strSql = "SELECT T1.EMPLID, T1.RSVACATIONID, T1.RSVACATIONFROMDATE, T1.RSVACATIONTODATE, T1.RSTOTALDAYS, T1.RSVACATIONACTUALRETURNDATE, T1.NOTES, T2.ISEMPLOYED " +
"FROM RSVACATIONREQUESTTABLE AS T1 INNER JOIN " +
" RSEXTENDEDDIRPERSON1 AS T2 ON T1.EMPLID = T2.EMPLID " +
"WHERE T1.RSVACATIONFROMDATE >= '" + fromDate1 +
"' AND T1.RSVACATIONFROMDATE <= '" + fromDate2 +
"' AND T1.RSVACATIONTODATE >= '" + toDate1 +
"' AND T1.RSVACATIONTODATE <= '" + toDate2 +
"' AND T1.RSVACATIONID >= N'" + rsVacationIdFrom +
"' AND T1.RSVACATIONID <= N'" + rsVacationIdTo +
"' AND T1.EMPLID >= N'" + emplFrom +
"' AND T1.EMPLID <= N'" + emplTo +
"' AND T2.ISEMPLOYED = 0 AND T1.RSVACATIONACTUALRETURNDATE = '' ORDER BY T1.EMPLID";
}
}
else
{
if (!_isReturned)
{
strSql = "SELECT T1.EMPLID, T1.RSVACATIONID, T1.RSVACATIONFROMDATE, T1.RSVACATIONTODATE, T1.RSTOTALDAYS, T1.RSVACATIONACTUALRETURNDATE, T1.NOTES, T2.ISEMPLOYED " +
"FROM RSVACATIONREQUESTTABLE AS T1 INNER JOIN " +
" RSEXTENDEDDIRPERSON1 AS T2 ON T1.EMPLID = T2.EMPLID " +
"WHERE T1.RSVACATIONFROMDATE >= '" + fromDate1 +
"' AND T1.RSVACATIONFROMDATE <= '" + fromDate2 +
"' AND T1.RSVACATIONTODATE >= '" + toDate1 +
"' AND T1.RSVACATIONTODATE <= '" + toDate2 +
"' AND T1.RSVACATIONID >= N'" + rsVacationIdFrom +
"' AND T1.RSVACATIONID <= N'" + rsVacationIdTo +
"' AND T1.EMPLID >= N'" + emplFrom +
"' AND T1.EMPLID <= N'" + emplTo +
"' AND T2.ISEMPLOYED = 1 ORDER BY T1.EMPLID";
}
else
{
strSql = "SELECT T1.EMPLID, T1.RSVACATIONID, T1.RSVACATIONFROMDATE, T1.RSVACATIONTODATE, T1.RSTOTALDAYS, T1.RSVACATIONACTUALRETURNDATE, T1.NOTES, T2.ISEMPLOYED " +
"FROM RSVACATIONREQUESTTABLE AS T1 INNER JOIN " +
" RSEXTENDEDDIRPERSON1 AS T2 ON T1.EMPLID = T2.EMPLID " +
"WHERE T1.RSVACATIONFROMDATE >= '" + fromDate1 +
"' AND T1.RSVACATIONFROMDATE <= '" + fromDate2 +
"' AND T1.RSVACATIONTODATE >= '" + toDate1 +
"' AND T1.RSVACATIONTODATE <= '" + toDate2 +
"' AND T1.RSVACATIONID >= N'" + rsVacationIdFrom +
"' AND T1.RSVACATIONID <= N'" + rsVacationIdTo +
"' AND T1.EMPLID >= N'" + emplFrom +
"' AND T1.EMPLID <= N'" + emplTo +
"' AND T2.ISEMPLOYED = 1 AND T1.RSVACATIONACTUALRETURNDATE = '' ORDER BY T1.EMPLID";
}
}
}
RS = jadSQLUtility::executeQuery(strSql);
//delete_from vacationsTmp;
while(RS.next())
{
serialNumber++;
vacationsTmp.SN = serialNumber;
vacationsTmp.EmplId = RS.getString(1);
vacationsTmp.EmplName = RSExtendedEmplTable::find(vacationsTmp.EmplId).name();
vacationsTmp.RSVacationId = RS.getString(2);
vacationsTmp.VacationTypeDesc = RSVacationSetupTable::find(vacationsTmp.RSVacationId).Description;
vacationsTmp.RSVacationFromDate = RS.getDate(3);
vacationsTmp.RSVacationToDate = RS.getDate(4);
vacationsTmp.RSTotalDays = RS.getInt(5);
vacationsTmp.RSVacationActualReturnDate = RS.getDate(6);
vacationsTmp.IsEmployed = this.IsEmployed(vacationsTmp.EmplId, RSExtendedEmplTable::find(vacationsTmp.EmplId).Status);
vacationsTmp.Notes = RS.getString(7);
vacationsTmp.insert();
vacationsTmp.clear();
}
}
Data Contract class details
[
DataContractAttribute,
SysOperationGroupAttribute("VacationIdGroup", "@RPF1651", "1", FormArrangeMethod::HorizontalFlushRight),
SysOperationGroupAttribute("EmplGroup", "@SYS36113", "2", FormArrangeMethod::HorizontalFlushRight),
SysOperationGroupAttribute("DateFromGroup", "@SYS4008338", "3", FormArrangeMethod::HorizontalFlushRight),
SysOperationGroupAttribute("DateToGroup", "@SYS4008335", "4", FormArrangeMethod::HorizontalFlushRight)
]
public class VacationTypeContract
{
EmplId emplIdFrom, emplIdTo;
RSVacationIdType rsVacationIdFrom, rsVacationIdTo;
date rsVacationFromDate1, rsVacationFromDate2;
date rsVacationToDate1, rsVacationToDate2;
RSIsEmployed isEmployed;
NotReturnedFromVacation notReturnedFromVacation;
}
[DataMemberAttribute("EmplFrom"),
SysOperationLabelAttribute(literalStr("@JAD370")),
SysOperationHelpTextAttribute(literalStr("@JAD67")),
SysOperationGroupMemberAttribute("EmplGroup"),
SysOperationDisplayOrderAttribute('3')]
public EmplId parmEmplIdFrom(EmplId _emplIdFrom = emplIdFrom)
{
emplIdFrom = _emplIdFrom;
return emplIdFrom;
}
[DataMemberAttribute("EmplTo"),
SysOperationLabelAttribute(literalStr("@JAD371")),
SysOperationHelpTextAttribute(literalStr("@JAD68")),
SysOperationGroupMemberAttribute("EmplGroup"),
SysOperationDisplayOrderAttribute('4')]
public EmplId parmEmplIdTo(EmplId _emplIdTo = emplIdTo)
{
emplIdTo = _emplIdTo;
return emplIdTo;
}
[DataMemberAttribute("RSIsEmployed"),
SysOperationLabelAttribute(literalStr("@JAD174")),
SysOperationHelpTextAttribute(literalStr("@JAD174")),
//SysOperationGroupMemberAttribute("DateToGroup"),
SysOperationDisplayOrderAttribute('9')]
public RSIsEmployed parmIsEmployed(RSIsEmployed _isEmployed = isEmployed)
{
isEmployed = _isEmployed;
return isEmployed;
}
[DataMemberAttribute("RSIsEmployed"),
SysOperationLabelAttribute(literalStr("@JAD174")),
SysOperationHelpTextAttribute(literalStr("@JAD174")),
//SysOperationGroupMemberAttribute("DateToGroup"),
SysOperationDisplayOrderAttribute('9')]
public RSIsEmployed parmIsEmployed(RSIsEmployed _isEmployed = isEmployed)
{
isEmployed = _isEmployed;
return isEmployed;
}
[DataMemberAttribute("RsVacationFromDate1"),
SysOperationLabelAttribute(literalStr("@JAD370")),
SysOperationHelpTextAttribute(literalStr("@RPF8185")),
SysOperationGroupMemberAttribute("DateFromGroup"),
SysOperationDisplayOrderAttribute('5')]
public TransDate parmRsVacationFromDate1(TransDate _rsVacationFromDate1 = rsVacationFromDate1)
{
rsVacationFromDate1 = _rsVacationFromDate1;
return rsVacationFromDate1;
}
[DataMemberAttribute("RsVacationFromDate2"),
SysOperationLabelAttribute(literalStr("@JAD371")),
SysOperationHelpTextAttribute(literalStr("@RPF8185")),
SysOperationGroupMemberAttribute("DateFromGroup"),
SysOperationDisplayOrderAttribute('6')]
public TransDate parmRsVacationFromDate2(TransDate _rsVacationFromDate2 = rsVacationFromDate2)
{
rsVacationFromDate2 = _rsVacationFromDate2;
return rsVacationFromDate2;
}
[DataMemberAttribute("RSVacationIdFrom"),
SysOperationLabelAttribute(literalStr("@JAD370")),
SysOperationHelpTextAttribute(literalStr("@RPF8180")),
SysOperationGroupMemberAttribute("VacationIdGroup"),
SysOperationDisplayOrderAttribute('1')]
public RSVacationIdType parmRsVacationIdFrom(RSVacationIdType _rsVacationIdFrom = rsVacationIdFrom)
{
rsVacationIdFrom = _rsVacationIdFrom;
return rsVacationIdFrom;
}
[DataMemberAttribute("RSVacationIdTo"),
SysOperationLabelAttribute(literalStr("@JAD371")),
SysOperationHelpTextAttribute(literalStr("@RPF8180")),
SysOperationGroupMemberAttribute("VacationIdGroup"),
SysOperationDisplayOrderAttribute('2')]
public RSVacationIdType parmRsVacationIdTo(RSVacationIdType _rsVacationIdTo = rsVacationIdTo)
{
rsVacationIdTo = _rsVacationIdTo;
return rsVacationIdTo;
}
[DataMemberAttribute("RsVacationToDate1"),
SysOperationLabelAttribute(literalStr("@JAD370")),
SysOperationHelpTextAttribute(literalStr("@RPF8186")),
SysOperationGroupMemberAttribute("DateToGroup"),
SysOperationDisplayOrderAttribute('7')]
public TransDate parmRsVacationToDate1(TransDate _rsVacationToDate1 = rsVacationToDate1)
{
rsVacationToDate1 = _rsVacationToDate1;
return rsVacationToDate1;
}
[DataMemberAttribute("RsVacationToDate2"),
SysOperationLabelAttribute(literalStr("@JAD371")),
SysOperationHelpTextAttribute(literalStr("@RPF8186")),
SysOperationGroupMemberAttribute("DateToGroup"),
SysOperationDisplayOrderAttribute('8')]
public TransDate parmRsVacationToDate2(TransDate _rsVacationToDate2 = rsVacationToDate2)
{
rsVacationToDate2 = _rsVacationToDate2;
return rsVacationToDate2;
}