hi Martin ,
thanks for reply ,
I have completed employee list report and I am getting required fields in my output .
posting the code below, thank you for correcting my code.
[DataContractAttribute]
public class EmpDetailsContract
{
HcmPersonnelNumberId PersonnelNumber;
[DataMemberAttribute(identifierStr(HcmPersonnelNumberId))]
public HcmPersonnelNumberId parmHcmPersonnelNumberId(HcmPersonnelNumberId _HcmPersonnelNumberId = PersonnelNumber)
{
PersonnelNumber = _HcmPersonnelNumberId;
return PersonnelNumber;
}
}
class EmpDetailsController extends SrsReportRunController
{
EmpDetailsContract Contract;
HcmWorker dataTableOne;
protected void PrePromptModifyContract()
{
super();
if ( this.parmArgs() && this.parmArgs().record())
{
contract = this .parmReportContract().parmRdpContract() as EmpDetailsContract;
dataTableOne = this.parmArgs().record();
contract.parmHcmPersonnelNumberId(dataTableOne.PersonnelNumber);
}
}
static void main(Args args)
{
HcmWorker dataTableOne;
EmpDetailsController ssrsController;
datatableone = args.record() as HcmWorker;
ssrsController=new EmpDetailsController();
ssrsController.parmArgs(args);
ssrsController.parmReportName(ssrsReportStr(EmpDetailsRpt,PrecisionDesign1 ));
ssrsController.parmShowDialog(false);
ssrsController.parmLoadFromSysLastValue(false);
ssrsController.startOperation();
}
}
[SRSReportParameterAttribute(classstr(EmpDetailsContract))]
Public class EmpDetailsDp extends SRSReportDataProviderBase
{
HumanResourceTmp HumanResourceTmp;
[SrsReportDataSetAttribute(tableStr('HumanResourceTmp'))]
public HumanResourceTmp getHumanResourceTmp()
{
select * from HumanResourceTmp;
return HumanResourceTmp;
}
public void processReport()
{
HcmPersonnelNumberId PersonnelNumber;
EmpDetailsContract contract = this.parmDataContract();
PersonnelNumber = contract.parmHcmPersonnelNumberId();
Query q = new Query();
QueryBuildDataSource HcmWorkerDs = q.addDataSource(tableNum(HcmWorker));
QueryBuildDataSource dirPersonDs = HcmWorkerDs.addDataSource(tableNum(DirPerson));
dirPersonDs.addLink(fieldNum(DirPerson, RecId),fieldNum(HcmWorker,Person ));
dirPersonDs.joinMode(JoinMode::InnerJoin);
QueryBuildDataSource dirPartyTableDs = dirPersonDs.addDataSource(tableNum(DirPartyTable));
dirPartyTableDs.addLink(fieldNum(DirPartyTable, RecId),fieldNum(DirPerson, RecId));
dirPartyTableDs.joinMode(JoinMode::OuterJoin);
if (PersonnelNumber != "")
{
QueryBuildRange qbr = HcmWorkerDs.addRange(fieldNum(HcmWorker,PersonnelNumber));
qbr.value(queryValue(PersonnelNumber));
}
QueryRun qr = new QueryRun(q);
while(qr.next())
{
HcmWorker hcmWorker = qr.get(tableNum(HcmWorker));
DirPerson dirPerson = qr.get(tableNum(DirPerson));
DirPartyTable dirPartyTable = qr.get(tableNum(DirPartyTable));
LogisticsElectronicAddress logisticsElectronicAddress , logisticsElectronicAddress1;
SELECT
* FROM logisticsElectronicAddress
where logisticsElectronicAddress.RecId == dirPartyTable.PrimaryContactPhone;
SELECT
* FROM logisticsElectronicAddress1
where logisticsElectronicAddress1.RecId == dirPartyTable.PrimaryContactEmail;
{
HumanResourceTmp.clear();
HumanResourceTmp.PersonnelNumber = hcmWorker.PersonnelNumber;
HumanResourceTmp.Name = dirPartyTable.Name;
if (logisticsElectronicAddress1.Type == LogisticsElectronicAddressMethodType::Email)
{
HumanResourceTmp.Email = logisticsElectronicAddress1.Locator;
}
if (logisticsElectronicAddress.Type == LogisticsElectronicAddressMethodType::Phone)
{
HumanResourceTmp.Phone = logisticsElectronicAddress.Locator;
}
HumanResourceTmp.LocatorExtension = logisticsElectronicAddress.LocatorExtension;
//HumanResourceTmp.EmploymentType = hcmEmployment.EmploymentType;
HumanResourceTmp.insert();
}
}
}
}

