1./// <summary>
/// The <c>StockOnHandController</c> class is a controller class for the <c>StockOnHandController report</c>
/// report.
/// </summary>
class StockOnHandController extends SrsReportRunController
{
StockOnHandContract StockOnHandContract;
Inventtable _Inventtable;
#define.ReportName('StockOnHand.design')
}
/// <summary>
/// Override this method to change the report contract before you run the report.
/// </summary>
public void preRunModifyContract()
{
SrsReportRdlDataContract rdlContractInfo;
rdlContractInfo = this.parmReportContract().parmRdlContract();
StockOnHandContract = this.parmReportContract().parmRdpContract() as StockOnHandContract;
_Inventtable = this.parmArgs().record();
StockOnHandContract.parmItemid(_Inventtable.ItemId);
}
protected boolean validate()
{
boolean ret;
ret = super();
if (! args.record())
{
ret = checkFailed("Windows must be called with active record buffer");
}
return ret;
}
public client static void main(Args _args)
{
StockOnHandController controller = new StockOnHandController();
controller.parmReportName(#ReportName);
controller.parmLoadFromSysLastValue(false);
controller.parmArgs(_args);
controller.parmShowDialog(false);
controller.startOperation();
}
2. Create the One out put type menuitem with this class
3. Go To your form and Create one Menuitembutton - select the properties like datasourceName,MenuitemType,MenuItemName
-----------------------------------------
Contract class:-
[
DataContractAttribute,
SysOperationContractProcessingAttribute(classStr(StockonHandUIBuilder))
]
class StockonHandContract implements SysOperationValidatable
{
EcoResCategoryName bpGroup;
EcoResCategoryName prodGroup;
EcoResCategoryName ProductCategory;
Itemid Itemid;
InventLocationId InventLocationId;
}
[
DataMemberAttribute('BPGroup'),
SysOperationLabelAttribute('BP Group')
]
public EcoResCategoryName parmBPGroup(EcoResCategoryName _bpGroup = bpGroup)
{
bpGroup = _bpGroup;
return bpGroup;
}
[
DataMemberAttribute('Itemid'),
SysOperationLabelAttribute('Item Number')
]
public Itemid parmItemid(Itemid _Itemid = Itemid)
{
Itemid = _Itemid;
return Itemid;
}
[
DataMemberAttribute('ProdGroup'),
SysOperationLabelAttribute('Product Group')
]
public EcoResCategoryName parmProdGroup(EcoResCategoryName _prodGroup = prodGroup)
{
prodGroup = _prodGroup;
return prodGroup;
}
[
DataMemberAttribute('EcoResCategoryName'),
SysOperationLabelAttribute('Prod Category')
]
public EcoResCategoryName parmProductCategory(EcoResCategoryName _ProductCategory = ProductCategory)
{
ProductCategory = _ProductCategory;
return ProductCategory;
}
[
DataMemberAttribute('InventLocationId'),
SysOperationLabelAttribute('Warehouse')
]
public InventLocationId parmWarehouse(InventLocationId _InventLocationId = InventLocationId)
{
InventLocationId = _InventLocationId;
return InventLocationId;
}
/// <summary>
/// Determines whether the parameters are valid.
/// </summary>
/// <returns>
/// true when the parameters are valid; otherwise, false.
/// </returns>
public boolean validate()
{
boolean isValid = true;
if (prodGroup && !bpGroup)
{
isValid = checkFailed(strFmt("BP Group to be filled in"));
}
if (ProductCategory && ! ProdGroup)
{
isValid = checkFailed(strFmt("Product Group to be filled in"));
}
return isValid;
}
public static StockonHandContract construct()
{
return new StockonHandContract();
}
-----------------------------------DP Class
[
SRSReportQueryAttribute(querystr(ProductDisplayView)),
SRSReportParameterAttribute(classStr(StockonHandContract))
]
public class StockOnHandDP extends SRSReportDataProviderBase
{
StockOnHandTMP StockonHandTMP;
EcoResCategoryName bpGrouploc,bpGrouplocvalue;
EcoResCategoryName prodGrouploc,prodGrouplocvalue;
EcoResCategoryName ProductCategoryloc,ProductCategorylocvalue;
Itemid Itemidloc;
InventLocationId InventLocationIdloc;
}
[SRSReportDataSetAttribute('StockOnHandTMP')]
public StockOnHandTMP getStockOnHandTMP()
{
select * from StockOnHandTMP;
return StockonHandTMP;
}
public void processreport()
{
Query query;
QueryBuildDataSource qbds;
QueryBuildRange qbr,qbr1,qbr2,qbr3,qbr4,qbr5;
QueryRun qr;
StockonHandContract datacontract;
InventTable inventtable;
ProductDisplayView _ProductDisplayView;
InventLocation inventlocation;
InventDim InventDim;
InventTableModule InventTableModule;
InventOnhand _inventonhand;
InventDimParm _inventDimParm;
InventQty _inventQty;
query = new query();
datacontract = this.parmDataContract();
bpGrouploc = datacontract.parmBPGroup();
prodGrouploc = datacontract.parmProdGroup();
ProductCategoryloc = datacontract.parmProductCategory();
Itemidloc = datacontract.parmItemid();
InventLocationIdloc= datacontract.parmWarehouse();
if(prodGrouploc)
{
prodGrouplocvalue = prodGrouploc +"_"+bpGrouploc;
}
if(ProductCategoryloc)
{
ProductCategorylocvalue =ProductCategoryloc+"_"+prodGrouploc +"_"+bpGrouploc;
}
qbds = query.addDataSource(tablenum(ProductDisplayView));
qbds.addSortField(fieldNum(ProductDisplayView,BPGroup),SortOrder::Ascending);
if(bpGrouploc)
{
qbr = qbds.findRange(fieldnum(ProductDisplayView, BPGroup));
if (!qbr)
{
qbr = qbds.addRange(fieldnum(ProductDisplayView, BPGroup));
}
if(!qbr.value())
qbr.value(queryValue(bpGrouploc));
}
if(prodGrouploc)
{
qbr1 = qbds.findRange(fieldnum(ProductDisplayView, ProductGroup));
if (!qbr1)
{
qbr1 = qbds.addRange(fieldnum(ProductDisplayView, ProductGroup));
}
if(!qbr1.value())
qbr1.value(queryValue(prodGrouplocvalue));
}
if(ProductCategoryloc)
{
qbr2 = qbds.findRange(fieldnum(ProductDisplayView, ProductCategory));
if (!qbr2)
{
qbr2 = qbds.addRange(fieldnum(ProductDisplayView, ProductCategory));
}
if(!qbr2.value())
qbr2.value(queryValue(ProductCategorylocvalue));
}
if(Itemidloc)
{
qbr3 = qbds.findRange(fieldnum(ProductDisplayView, ItemId));
if (!qbr3)
{
qbr3 = qbds.addRange(fieldnum(ProductDisplayView, ItemId));
}
if(!qbr3.value())
qbr3.value(queryValue(Itemidloc));
}
qr = new QueryRun(query);
while(qr.next())
{
_ProductDisplayView = qr.get(tableNum(ProductDisplayView));
select inventtable where inventtable.itemid == _ProductDisplayView.ItemId;
StockonHandTMP.BPGroup = inventtable.BPGroupName();
StockonHandTMP.ProdGroup = inventtable.productGroupName();
StockonHandTMP.ProdCategory = inventtable.productCategoryName();
StockonHandTMP.ItemCode = _ProductDisplayView.ItemId;
StockonHandTMP.ItemName = _ProductDisplayView.Name;
select InventTableModule where InventTableModule.ItemId == _ProductDisplayView.ItemId;
StockonHandTMP.UOM = InventTableModule.UnitId;
while select inventlocation where inventlocation.InventSiteId == SysUserInfo::find(curUserId()).InventSiteId
&& (((InventLocationIdloc) &&(inventlocation.InventLocationId == InventLocationIdloc))||(!InventLocationIdloc))
if(inventlocation.RecId)
{
StockonHandTMP.InventLocationId = inventlocation.InventLocationId;
StockonHandTMP.InventLocationName = inventlocation.Name;
StockonHandTMP.InventSiteId = InventLocation::find(StockonHandTMP.InventLocationId).InventSiteId;
StockonHandTMP.InventSiteName = InventSite::find(InventLocation::find(StockonHandTMP.InventLocationId).InventSiteId).Name;
select InventDim where InventDim.InventLocationId == inventlocation.InventLocationId;
_inventDimParm.initFromInventDim(InventDim);
_inventonhand = InventOnhand::newParameters(_ProductDisplayView.ItemId ,InventDim,_inventDimParm);
_inventQty =_inventonhand.availPhysical();
StockonHandTMP.AvailPhysical = _inventQty;//InventSum::find(_ProductDisplayView.ItemId,InventDim.inventDimId).AvailPhysical;
if(StockonHandTMP.AvailPhysical)
{
StockonHandTMP.insert();
}
}
}
}
------------------UI Builder:
class StockonHandUIBuilder extends SrsReportDataContractUIBuilder
{
DialogField dialogBPGroup,dialogProductGroup,dialogProductCategory,dialogItemid,dialogLocation;
StockonHandContract Contract;
}
public void build()
{
contract = this.dataContractObject();
dialogBPGroup = this.addDialogField(methodStr(StockonHandContract, parmBPGroup),contract);
dialogProductGroup = this.addDialogField(methodStr(StockonHandContract, parmProdGroup),contract);
dialogProductCategory = this.addDialogField(methodStr(StockonHandContract, parmProductCategory),contract);
dialogItemid = this.addDialogField(methodStr(StockonHandContract, parmItemid),contract);
dialogLocation = this.addDialogField(methodStr(StockonHandContract, parmWarehouse),contract);
}
public void getFromDialog()
{
contract = this.dataContractObject();
super();
}
public void initializeFields()
{
contract = this.dataContractObject();
}
public void lookupBPGroup(FormStringControl _control)
{
Query query = new Query();
SysTableLookup sysTableLookup;
QueryBuildDataSource qbds;
QueryBuildDataSource qbdsSet;
// Create an instance of SysTableLookup using the specified control.
sysTableLookup = SysTableLookup::newParameters(tableNum(EcoResCategory), _control);
// Add Name field to be shown in the lookup form.
sysTableLookup.addLookupfield(fieldNum(EcoResCategory, Name));
qbds = query.addDataSource(tableNum(EcoResCategory));
qbds.addRange(fieldNum(EcoResCategory, Level)).value(queryValue(2));
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
public void lookupItemid(FormStringControl _control)
{
Query query = new Query();
SysTableLookup sysTableLookup;
QueryBuildDataSource qbds;
QueryBuildDataSource qbdsSet;
EcoResCategory bpGroupNode,ProdGroupNode,ProdcategoryNode,ecoresCategory;
EcoResCategoryHierarchyId defaultCategory;
name _productvalue,productcat;
recid ecoresCategoryrecid;
;
defaultCategory = FTPParameters::find().DefaultCategory;
bpGroupNode = EcoResCategory::findByName(dialogBPGroup.value(), defaultCategory);
if(dialogProductGroup.value())
{
while select ProdGroupNode where ProdGroupNode.ParentCategory == bpGroupNode.RecId
{
if(dialogProductGroup.value() == ProdGroupNode.prodGroupDisplayName())
{
_Productvalue = ProdGroupNode.Name;
ecoresCategoryrecid = ProdGroupNode.RecId;
}
}
}
if(dialogProductCategory.value())
{
while select ProdcategoryNode where ProdcategoryNode.ParentCategory == ecoresCategoryrecid
{
if(dialogProductCategory.value() == ProdcategoryNode.prodCategorydisplayName())
{
productcat = ProdcategoryNode.Name;
}
}
}
sysTableLookup = SysTableLookup::newParameters(tableNum(ProductDisplayView), _control);
sysTableLookup.addLookupfield(fieldNum(ProductDisplayView,ItemId));
sysTableLookup.addLookupfield(fieldNum(ProductDisplayView,name));
// sysTableLookup.addLookupMethod(tableMethodStr(ProductDisplayView, itemName), true);
qbds = query.addDataSource(tableNum(ProductDisplayView));
if(dialogBPGroup.value())
{
qbds.addRange(fieldNum(ProductDisplayView, BPGroup)).value(queryValue(bpGroupNode.Name));
}
if(dialogProductGroup.value())
{
qbds.addRange(fieldNum(ProductDisplayView, ProductGroup)).value(queryValue(_Productvalue));
}
if(dialogProductCategory.value())
{
qbds.addRange(fieldNum(ProductDisplayView, ProductCategory)).value(queryValue(productcat));
}
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
public void lookupLocation(FormStringControl _control)
{
Query query = new Query();
SysTableLookup sysTableLookup;
QueryBuildDataSource qbds;
QueryBuildDataSource qbdsSet;
EcoResCategory bpGroupNode,ProdGroupNode;
EcoResCategoryHierarchyId defaultCategory;
;
sysTableLookup = SysTableLookup::newParameters(tableNum(InventLocation), _control);
sysTableLookup.addLookupfield(fieldNum(InventLocation,InventLocationId));
sysTableLookup.addLookupfield(fieldNum(InventLocation,Name));
qbds = query.addDataSource(tableNum(InventLocation));
qbds.addRange(fieldNum(InventLocation, InventSiteId)).value(queryValue(SysUserInfo::find(curUserId()).InventSiteId));
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
public void lookupProdGroup(FormStringControl _control)
{
Query query = new Query();
SysTableLookup sysTableLookup;
QueryBuildDataSource qbds;
QueryBuildDataSource qbdsSet;
EcoResCategory bpGroupNode;
EcoResCategoryHierarchyId defaultCategory;
defaultCategory = FTPParameters::find().DefaultCategory;
bpGroupNode = EcoResCategory::findByName(dialogBPGroup.value(), defaultCategory);
// Create an instance of SysTableLookup using the specified control.
sysTableLookup = SysTableLookup::newParameters(tableNum(EcoResCategory), _control);
// Add Name field to be shown in the lookup form.
sysTableLookup.addLookupMethod(tableMethodStr(EcoResCategory, prodGroupDisplayName), true);
qbds = query.addDataSource(tableNum(EcoResCategory));
qbds.addRange(fieldNum(EcoResCategory, Level)).value(queryValue(3));
if(dialogBPGroup.value())
{
qbds.addRange(fieldNum(EcoResCategory, ParentCategory)).value(queryValue(bpGroupNode.RecId));
}
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
public void lookupProductCategory(FormStringControl _control)
{
Query query = new Query();
SysTableLookup sysTableLookup;
QueryBuildDataSource qbds;
QueryBuildDataSource qbdsSet;
EcoResCategory bpGroupNode,ProdGroupNode;
EcoResCategoryHierarchyId defaultCategory;
RecId _Productvalue;
;
defaultCategory = FTPParameters::find().DefaultCategory;
bpGroupNode = EcoResCategory::findByName(dialogBPGroup.value(), defaultCategory);
while select ProdGroupNode where ProdGroupNode.ParentCategory == bpGroupNode.RecId
{
if(dialogProductGroup.value() == ProdGroupNode.prodGroupDisplayName())
{
_Productvalue = ProdGroupNode.RecId;
}
}
sysTableLookup = SysTableLookup::newParameters(tableNum(EcoResCategory), _control);
sysTableLookup.addLookupMethod(tableMethodStr(EcoResCategory, prodCategorydisplayName), true);
qbds = query.addDataSource(tableNum(EcoResCategory));
qbds.addRange(fieldNum(EcoResCategory, Level)).value(queryValue(4));
if(dialogProductGroup.value())
{
qbds.addRange(fieldNum(EcoResCategory, ParentCategory)).value(queryValue(_Productvalue));
}
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
/// <summary>
/// Overrides the default values in order to handle events on dialogs.
/// </summary>
public void postRun()
{
super();
dialogBPGroup.registerOverrideMethod(methodStr(FormStringControl, lookup),methodStr(StockonHandUIBuilder, lookupBPGroup),this);
dialogProductGroup.registerOverrideMethod(methodStr(FormStringControl, lookup),methodStr(StockonHandUIBuilder, lookupProdGroup),this);
dialogProductCategory.registerOverrideMethod(methodStr(FormStringControl, lookup),methodStr(StockonHandUIBuilder, lookupProductCategory),this);
dialogItemid.registerOverrideMethod(methodStr(FormStringControl, lookup),methodStr(StockonHandUIBuilder, lookupItemid),this);
dialogLocation.registerOverrideMethod(methodStr(FormStringControl, lookup),methodStr(StockonHandUIBuilder, lookupLocation),this);
//dialogShowCritical.value(NoYes::Yes);
}
/// The <c>StockOnHandController</c> class is a controller class for the <c>StockOnHandController report</c>
/// report.
/// </summary>
class StockOnHandController extends SrsReportRunController
{
StockOnHandContract StockOnHandContract;
Inventtable _Inventtable;
#define.ReportName('StockOnHand.design')
}
/// <summary>
/// Override this method to change the report contract before you run the report.
/// </summary>
public void preRunModifyContract()
{
SrsReportRdlDataContract rdlContractInfo;
rdlContractInfo = this.parmReportContract().parmRdlContract();
StockOnHandContract = this.parmReportContract().parmRdpContract() as StockOnHandContract;
_Inventtable = this.parmArgs().record();
StockOnHandContract.parmItemid(_Inventtable.ItemId);
}
protected boolean validate()
{
boolean ret;
ret = super();
if (! args.record())
{
ret = checkFailed("Windows must be called with active record buffer");
}
return ret;
}
public client static void main(Args _args)
{
StockOnHandController controller = new StockOnHandController();
controller.parmReportName(#ReportName);
controller.parmLoadFromSysLastValue(false);
controller.parmArgs(_args);
controller.parmShowDialog(false);
controller.startOperation();
}
2. Create the One out put type menuitem with this class
3. Go To your form and Create one Menuitembutton - select the properties like datasourceName,MenuitemType,MenuItemName
-----------------------------------------
Contract class:-
[
DataContractAttribute,
SysOperationContractProcessingAttribute(classStr(StockonHandUIBuilder))
]
class StockonHandContract implements SysOperationValidatable
{
EcoResCategoryName bpGroup;
EcoResCategoryName prodGroup;
EcoResCategoryName ProductCategory;
Itemid Itemid;
InventLocationId InventLocationId;
}
[
DataMemberAttribute('BPGroup'),
SysOperationLabelAttribute('BP Group')
]
public EcoResCategoryName parmBPGroup(EcoResCategoryName _bpGroup = bpGroup)
{
bpGroup = _bpGroup;
return bpGroup;
}
[
DataMemberAttribute('Itemid'),
SysOperationLabelAttribute('Item Number')
]
public Itemid parmItemid(Itemid _Itemid = Itemid)
{
Itemid = _Itemid;
return Itemid;
}
[
DataMemberAttribute('ProdGroup'),
SysOperationLabelAttribute('Product Group')
]
public EcoResCategoryName parmProdGroup(EcoResCategoryName _prodGroup = prodGroup)
{
prodGroup = _prodGroup;
return prodGroup;
}
[
DataMemberAttribute('EcoResCategoryName'),
SysOperationLabelAttribute('Prod Category')
]
public EcoResCategoryName parmProductCategory(EcoResCategoryName _ProductCategory = ProductCategory)
{
ProductCategory = _ProductCategory;
return ProductCategory;
}
[
DataMemberAttribute('InventLocationId'),
SysOperationLabelAttribute('Warehouse')
]
public InventLocationId parmWarehouse(InventLocationId _InventLocationId = InventLocationId)
{
InventLocationId = _InventLocationId;
return InventLocationId;
}
/// <summary>
/// Determines whether the parameters are valid.
/// </summary>
/// <returns>
/// true when the parameters are valid; otherwise, false.
/// </returns>
public boolean validate()
{
boolean isValid = true;
if (prodGroup && !bpGroup)
{
isValid = checkFailed(strFmt("BP Group to be filled in"));
}
if (ProductCategory && ! ProdGroup)
{
isValid = checkFailed(strFmt("Product Group to be filled in"));
}
return isValid;
}
public static StockonHandContract construct()
{
return new StockonHandContract();
}
-----------------------------------DP Class
[
SRSReportQueryAttribute(querystr(ProductDisplayView)),
SRSReportParameterAttribute(classStr(StockonHandContract))
]
public class StockOnHandDP extends SRSReportDataProviderBase
{
StockOnHandTMP StockonHandTMP;
EcoResCategoryName bpGrouploc,bpGrouplocvalue;
EcoResCategoryName prodGrouploc,prodGrouplocvalue;
EcoResCategoryName ProductCategoryloc,ProductCategorylocvalue;
Itemid Itemidloc;
InventLocationId InventLocationIdloc;
}
[SRSReportDataSetAttribute('StockOnHandTMP')]
public StockOnHandTMP getStockOnHandTMP()
{
select * from StockOnHandTMP;
return StockonHandTMP;
}
public void processreport()
{
Query query;
QueryBuildDataSource qbds;
QueryBuildRange qbr,qbr1,qbr2,qbr3,qbr4,qbr5;
QueryRun qr;
StockonHandContract datacontract;
InventTable inventtable;
ProductDisplayView _ProductDisplayView;
InventLocation inventlocation;
InventDim InventDim;
InventTableModule InventTableModule;
InventOnhand _inventonhand;
InventDimParm _inventDimParm;
InventQty _inventQty;
query = new query();
datacontract = this.parmDataContract();
bpGrouploc = datacontract.parmBPGroup();
prodGrouploc = datacontract.parmProdGroup();
ProductCategoryloc = datacontract.parmProductCategory();
Itemidloc = datacontract.parmItemid();
InventLocationIdloc= datacontract.parmWarehouse();
if(prodGrouploc)
{
prodGrouplocvalue = prodGrouploc +"_"+bpGrouploc;
}
if(ProductCategoryloc)
{
ProductCategorylocvalue =ProductCategoryloc+"_"+prodGrouploc +"_"+bpGrouploc;
}
qbds = query.addDataSource(tablenum(ProductDisplayView));
qbds.addSortField(fieldNum(ProductDisplayView,BPGroup),SortOrder::Ascending);
if(bpGrouploc)
{
qbr = qbds.findRange(fieldnum(ProductDisplayView, BPGroup));
if (!qbr)
{
qbr = qbds.addRange(fieldnum(ProductDisplayView, BPGroup));
}
if(!qbr.value())
qbr.value(queryValue(bpGrouploc));
}
if(prodGrouploc)
{
qbr1 = qbds.findRange(fieldnum(ProductDisplayView, ProductGroup));
if (!qbr1)
{
qbr1 = qbds.addRange(fieldnum(ProductDisplayView, ProductGroup));
}
if(!qbr1.value())
qbr1.value(queryValue(prodGrouplocvalue));
}
if(ProductCategoryloc)
{
qbr2 = qbds.findRange(fieldnum(ProductDisplayView, ProductCategory));
if (!qbr2)
{
qbr2 = qbds.addRange(fieldnum(ProductDisplayView, ProductCategory));
}
if(!qbr2.value())
qbr2.value(queryValue(ProductCategorylocvalue));
}
if(Itemidloc)
{
qbr3 = qbds.findRange(fieldnum(ProductDisplayView, ItemId));
if (!qbr3)
{
qbr3 = qbds.addRange(fieldnum(ProductDisplayView, ItemId));
}
if(!qbr3.value())
qbr3.value(queryValue(Itemidloc));
}
qr = new QueryRun(query);
while(qr.next())
{
_ProductDisplayView = qr.get(tableNum(ProductDisplayView));
select inventtable where inventtable.itemid == _ProductDisplayView.ItemId;
StockonHandTMP.BPGroup = inventtable.BPGroupName();
StockonHandTMP.ProdGroup = inventtable.productGroupName();
StockonHandTMP.ProdCategory = inventtable.productCategoryName();
StockonHandTMP.ItemCode = _ProductDisplayView.ItemId;
StockonHandTMP.ItemName = _ProductDisplayView.Name;
select InventTableModule where InventTableModule.ItemId == _ProductDisplayView.ItemId;
StockonHandTMP.UOM = InventTableModule.UnitId;
while select inventlocation where inventlocation.InventSiteId == SysUserInfo::find(curUserId()).InventSiteId
&& (((InventLocationIdloc) &&(inventlocation.InventLocationId == InventLocationIdloc))||(!InventLocationIdloc))
if(inventlocation.RecId)
{
StockonHandTMP.InventLocationId = inventlocation.InventLocationId;
StockonHandTMP.InventLocationName = inventlocation.Name;
StockonHandTMP.InventSiteId = InventLocation::find(StockonHandTMP.InventLocationId).InventSiteId;
StockonHandTMP.InventSiteName = InventSite::find(InventLocation::find(StockonHandTMP.InventLocationId).InventSiteId).Name;
select InventDim where InventDim.InventLocationId == inventlocation.InventLocationId;
_inventDimParm.initFromInventDim(InventDim);
_inventonhand = InventOnhand::newParameters(_ProductDisplayView.ItemId ,InventDim,_inventDimParm);
_inventQty =_inventonhand.availPhysical();
StockonHandTMP.AvailPhysical = _inventQty;//InventSum::find(_ProductDisplayView.ItemId,InventDim.inventDimId).AvailPhysical;
if(StockonHandTMP.AvailPhysical)
{
StockonHandTMP.insert();
}
}
}
}
------------------UI Builder:
class StockonHandUIBuilder extends SrsReportDataContractUIBuilder
{
DialogField dialogBPGroup,dialogProductGroup,dialogProductCategory,dialogItemid,dialogLocation;
StockonHandContract Contract;
}
public void build()
{
contract = this.dataContractObject();
dialogBPGroup = this.addDialogField(methodStr(StockonHandContract, parmBPGroup),contract);
dialogProductGroup = this.addDialogField(methodStr(StockonHandContract, parmProdGroup),contract);
dialogProductCategory = this.addDialogField(methodStr(StockonHandContract, parmProductCategory),contract);
dialogItemid = this.addDialogField(methodStr(StockonHandContract, parmItemid),contract);
dialogLocation = this.addDialogField(methodStr(StockonHandContract, parmWarehouse),contract);
}
public void getFromDialog()
{
contract = this.dataContractObject();
super();
}
public void initializeFields()
{
contract = this.dataContractObject();
}
public void lookupBPGroup(FormStringControl _control)
{
Query query = new Query();
SysTableLookup sysTableLookup;
QueryBuildDataSource qbds;
QueryBuildDataSource qbdsSet;
// Create an instance of SysTableLookup using the specified control.
sysTableLookup = SysTableLookup::newParameters(tableNum(EcoResCategory), _control);
// Add Name field to be shown in the lookup form.
sysTableLookup.addLookupfield(fieldNum(EcoResCategory, Name));
qbds = query.addDataSource(tableNum(EcoResCategory));
qbds.addRange(fieldNum(EcoResCategory, Level)).value(queryValue(2));
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
public void lookupItemid(FormStringControl _control)
{
Query query = new Query();
SysTableLookup sysTableLookup;
QueryBuildDataSource qbds;
QueryBuildDataSource qbdsSet;
EcoResCategory bpGroupNode,ProdGroupNode,ProdcategoryNode,ecoresCategory;
EcoResCategoryHierarchyId defaultCategory;
name _productvalue,productcat;
recid ecoresCategoryrecid;
;
defaultCategory = FTPParameters::find().DefaultCategory;
bpGroupNode = EcoResCategory::findByName(dialogBPGroup.value(), defaultCategory);
if(dialogProductGroup.value())
{
while select ProdGroupNode where ProdGroupNode.ParentCategory == bpGroupNode.RecId
{
if(dialogProductGroup.value() == ProdGroupNode.prodGroupDisplayName())
{
_Productvalue = ProdGroupNode.Name;
ecoresCategoryrecid = ProdGroupNode.RecId;
}
}
}
if(dialogProductCategory.value())
{
while select ProdcategoryNode where ProdcategoryNode.ParentCategory == ecoresCategoryrecid
{
if(dialogProductCategory.value() == ProdcategoryNode.prodCategorydisplayName())
{
productcat = ProdcategoryNode.Name;
}
}
}
sysTableLookup = SysTableLookup::newParameters(tableNum(ProductDisplayView), _control);
sysTableLookup.addLookupfield(fieldNum(ProductDisplayView,ItemId));
sysTableLookup.addLookupfield(fieldNum(ProductDisplayView,name));
// sysTableLookup.addLookupMethod(tableMethodStr(ProductDisplayView, itemName), true);
qbds = query.addDataSource(tableNum(ProductDisplayView));
if(dialogBPGroup.value())
{
qbds.addRange(fieldNum(ProductDisplayView, BPGroup)).value(queryValue(bpGroupNode.Name));
}
if(dialogProductGroup.value())
{
qbds.addRange(fieldNum(ProductDisplayView, ProductGroup)).value(queryValue(_Productvalue));
}
if(dialogProductCategory.value())
{
qbds.addRange(fieldNum(ProductDisplayView, ProductCategory)).value(queryValue(productcat));
}
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
public void lookupLocation(FormStringControl _control)
{
Query query = new Query();
SysTableLookup sysTableLookup;
QueryBuildDataSource qbds;
QueryBuildDataSource qbdsSet;
EcoResCategory bpGroupNode,ProdGroupNode;
EcoResCategoryHierarchyId defaultCategory;
;
sysTableLookup = SysTableLookup::newParameters(tableNum(InventLocation), _control);
sysTableLookup.addLookupfield(fieldNum(InventLocation,InventLocationId));
sysTableLookup.addLookupfield(fieldNum(InventLocation,Name));
qbds = query.addDataSource(tableNum(InventLocation));
qbds.addRange(fieldNum(InventLocation, InventSiteId)).value(queryValue(SysUserInfo::find(curUserId()).InventSiteId));
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
public void lookupProdGroup(FormStringControl _control)
{
Query query = new Query();
SysTableLookup sysTableLookup;
QueryBuildDataSource qbds;
QueryBuildDataSource qbdsSet;
EcoResCategory bpGroupNode;
EcoResCategoryHierarchyId defaultCategory;
defaultCategory = FTPParameters::find().DefaultCategory;
bpGroupNode = EcoResCategory::findByName(dialogBPGroup.value(), defaultCategory);
// Create an instance of SysTableLookup using the specified control.
sysTableLookup = SysTableLookup::newParameters(tableNum(EcoResCategory), _control);
// Add Name field to be shown in the lookup form.
sysTableLookup.addLookupMethod(tableMethodStr(EcoResCategory, prodGroupDisplayName), true);
qbds = query.addDataSource(tableNum(EcoResCategory));
qbds.addRange(fieldNum(EcoResCategory, Level)).value(queryValue(3));
if(dialogBPGroup.value())
{
qbds.addRange(fieldNum(EcoResCategory, ParentCategory)).value(queryValue(bpGroupNode.RecId));
}
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
public void lookupProductCategory(FormStringControl _control)
{
Query query = new Query();
SysTableLookup sysTableLookup;
QueryBuildDataSource qbds;
QueryBuildDataSource qbdsSet;
EcoResCategory bpGroupNode,ProdGroupNode;
EcoResCategoryHierarchyId defaultCategory;
RecId _Productvalue;
;
defaultCategory = FTPParameters::find().DefaultCategory;
bpGroupNode = EcoResCategory::findByName(dialogBPGroup.value(), defaultCategory);
while select ProdGroupNode where ProdGroupNode.ParentCategory == bpGroupNode.RecId
{
if(dialogProductGroup.value() == ProdGroupNode.prodGroupDisplayName())
{
_Productvalue = ProdGroupNode.RecId;
}
}
sysTableLookup = SysTableLookup::newParameters(tableNum(EcoResCategory), _control);
sysTableLookup.addLookupMethod(tableMethodStr(EcoResCategory, prodCategorydisplayName), true);
qbds = query.addDataSource(tableNum(EcoResCategory));
qbds.addRange(fieldNum(EcoResCategory, Level)).value(queryValue(4));
if(dialogProductGroup.value())
{
qbds.addRange(fieldNum(EcoResCategory, ParentCategory)).value(queryValue(_Productvalue));
}
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
/// <summary>
/// Overrides the default values in order to handle events on dialogs.
/// </summary>
public void postRun()
{
super();
dialogBPGroup.registerOverrideMethod(methodStr(FormStringControl, lookup),methodStr(StockonHandUIBuilder, lookupBPGroup),this);
dialogProductGroup.registerOverrideMethod(methodStr(FormStringControl, lookup),methodStr(StockonHandUIBuilder, lookupProdGroup),this);
dialogProductCategory.registerOverrideMethod(methodStr(FormStringControl, lookup),methodStr(StockonHandUIBuilder, lookupProductCategory),this);
dialogItemid.registerOverrideMethod(methodStr(FormStringControl, lookup),methodStr(StockonHandUIBuilder, lookupItemid),this);
dialogLocation.registerOverrideMethod(methodStr(FormStringControl, lookup),methodStr(StockonHandUIBuilder, lookupLocation),this);
//dialogShowCritical.value(NoYes::Yes);
}
No comments:
Post a Comment