Quantcast
Channel: Martin Dráb's Activities
Viewing all articles
Browse latest Browse all 17532

How to passing parameter automatic using UI Builder Class to Develop SSRS Report ?

$
0
0
Hi all..

i have customize report with parameter Project Id and Name from modul Project management
and accounting. i use Contract class like this :

[
DataContractAttribute,
SysOperationContractProcessingAttribute(classstr(ProjTable_UI_Builder),
SysOperationDataContractProcessingMode::CreateUIBuilderForRootContractOnly)
]

public class ProjTable_contract
{
ProjId _projId;
DirPartyName _partyName;
DirPartyNumber _partyNumber;
}

[
DataMemberAttribute('ProjId')
]

public ProjId parmProjId(ProjId _projIdX = _projId)
{
_projId = _projIdX;
return _projId;
}

[
DataMemberAttribute("DirPartyName")
]

Public DirPartyName parmPersonnelName(DirPartyName _partyNameX = _partyName)
{
_partyName = _partyNameX;
return _partyName;
}

[
DataMemberAttribute("DirPartyNumber")
]

Public DirPartyNumber parmPersonnelNumber(DirPartyNumber _partyNumberX = _partyNumber)
{
_partyNumber = _partyNumberX;
return _partyNumber;
}

And then UI Builder class :
----------------------------

public class ProjTable_UI_Builder extends SrsReportDataContractUIBuilder
{
DialogField dialogPersonnelNumber, dialogPersonnelName;
}

 

public void personnelNameLookup(FormStringControl _lookup)
{
Query query = new Query();
QueryBuildDataSource qbds;
SysTableLookup sysTableLookup;

if (_lookup != null)
{
sysTableLookup = SysTableLookup::newParameters(tableNum(ProjTable_View), _lookup);
sysTableLookup.addLookupfield(fieldNum(ProjTable_View, PersonnelNumber));
sysTableLookup.addLookupfield(fieldNum(ProjTable_View, Name));
sysTableLookup.addLookupfield(fieldNum(ProjTable_View, PIL_Position));
qbds = query.addDataSource(tableNum(ProjTable_View));

sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
}

public void personnelNameModified(FormStringControl _formStringControl)
{
ProjTable_contract _ProjTable_contract;
DirPartyTable _DirPartyTable;
DirPerson _DirPerson;
HcmWorker _HcmWorker;

_formStringControl.modified();
_HcmWorker = HcmWorker::findByPersonnelNumber(dialogPersonnelNumber.value());
_DirPerson = DirPerson::find(_HcmWorker.Person);
_DirPartyTable = DirPartyTable::findRec(_DirPerson.RecId);
dialogPersonnelName.value(_DirPartyTable.Name);

if(this.dataContractObject())
{
_ProjTable_contract = this.dataContractObject() as ProjTable_contract;
_ProjTable_contract.parmPersonnelName(_DirPartyTable.Name);
}
}

public void postBuild()
{
super();

dialogPersonnelNumber = this.bindInfo().getDialogField(this.dataContractObject(), methodStr(ProjTable_contract, parmPersonnelNumber));
dialogPersonnelNumber.registerOverrideMethod(methodStr(FormStringControl, lookup),methodStr(ProjTable_UI_Builder, personnelNameLookup), this);
dialogPersonnelNumber.lookupButton(2);

dialogPersonnelName = this.bindInfo().getDialogField(this.dataContractObject(), methodStr(ProjTable_contract, parmPersonnelName));
dialogPersonnelName.allowEdit(false);
}

public void postRun()
{
Dialog dialogLocal = this.dialog();
ProjTable_contract contract = this.dataContractObject() as ProjTable_contract;

super();

dialogLocal.dialogForm().formRun().controlMethodOverload(false);

dialogPersonnelNumber = this.bindInfo().getDialogField(this.dataContractObject(), methodStr(ProjTable_contract, parmPersonnelNumber));
dialogPersonnelNumber.registerOverrideMethod(methodStr(FormStringControl, modified), methodStr(ProjTable_UI_Builder, personnelNameModified), this);
}



And then, i try for run my report.
in modul Project management and accounting.
example : i click one Project, YPP-PRJ/16/05/JL-FP2/AC-03.



And then i click button Test Print.


i want, parameter Project is disable and automatic get project based on record in form,
can not select parameter Project.
can i do it in SSRS Report?
and How ?

Thanks all.

Viewing all articles
Browse latest Browse all 17532

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>