IIf (day(now().... in rdlc expression shows error - expression

IIf (day(now().... in rdlc expression shows error.
I am using visual studio 2014..
here is my code:
=iff( day(now()) >= 1 AND day(now()) <=7, MonthName(month(dateadd("m",-1, Fields!MONTH.Value)),false), MonthName(month(Fields!MONTH.Value),false)))
here is the problem:
Error 1 The Value expression for the textrun
‘MONTH.Paragraphs[0].TextRuns[0]’ contains an error: [BC30451] 'iff'
is not declared. It may be inaccessible due to its protection
level. C:\Users\Anil\Documents\Visual Studio
2013\Projects\SyllRepo\SyllRepo\Report2.rdlc SyllRepo

Should be iif instead of iff:
=iif( day(now()) >= 1 AND day(now()) <=7, MonthName(month(dateadd("m",-1, Fields!MONTH.Value)),false), MonthName(month(Fields!MONTH.Value),false)))

To fix the error I have added the following Namespace to my file
Imports Microsoft.VisualBasic

Related

Errors with find_if() & mem_fun1()

I have code that worked well in Visual C++ 6.0. Now I need to get it working in VS 2017. I have some error messages when I compile, and I'm really not sure how to fix it. Here's the code:
class CTagDB : public CObject
{
...
bool SameTag (const CTagDB *TagDB) { return TagDB && *this == *TagDB; }
...
}
class CTagsDB : public CObject
{
...
std::vector<CTagDB*> m_Tags;
...
}
bool CTagsDB::IsDup(const CTagDB *TagDB) const
{
return std::find_if(m_Tags.begin(), m_Tags.end(),
std::bind2nd(std::mem_fun1(CTagDB::SameTag),
TagDB)) != m_Tags.end();
}
For this code I get the following errors:
error C2039: 'mem_fun1': is not a member of 'std' C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\map(16):
note: see declaration of 'std'
error C3867: 'CTagDB::SameTag': non-standard syntax; use '&' to create a pointer to member
error C3861: 'mem_fun1': identifier not found
error C2672: 'std::find_if': no matching overloaded function found
error C2780: '_InIt std::find_if(_InIt,_InIt,_Pr)': expects 3 arguments - 2 provided
Seeing the methods begin() & end(), I suspect that there is a problem with the way the vectors are being used, because originally the code was written without iterators. But this fragment of code is so clever as to be very difficult to decipher, let alone maintain (by me).
Can anyone help me figure out what is going on here and how to fix it?

Migration to CRM 2016: Unable to get property 'getPageData' of undefined or null reference

After migration from CRM 2013 to CRM 2016 (On Premise), we have error messages in the browser like:
Unable to get property 'getPageData' of undefined or null reference
Unable to get property 'className' of undefined or null reference
Unable to get property 'firstChild' of undefined or null reference
The error happens in components of CRM. Any idea, what the reason could be?
<ReportVersion>1.0</ReportVersion>
<ScriptErrorDetails>
<Message>Unable to get property 'getPageData' of undefined or null reference</Message>
<Line>2083</Line>
<URL>/_static/form/formcontrols.js?ver=1804820318</URL>
<PageURL>/form/page.aspx?lcid=1033&themeId=f499443d-2082-4938-8842-e7ee62de9a23&tstamp=197130723&updateTimeStamp=635905304768102438&userts=131002784247688030&ver=1804820318#etc=2&extraqs=%3fetc%3d2%26id%3d%257b7DE4DCC6-207F-E511-9528-005056A03927%257d&pagemode=iframe&pagetype=entityrecord&counter=1455804831411</PageURL>
<Function>anonymousr:Unabletogetproperty'getPageData'ofundefinedornullreference</Function>
<FunctionRaw>TypeError: Unable to get property 'getPageData' of undefined or null reference</FunctionRaw>
<CallStack>
<Function>anonymousr:Unabletogetproperty'getPageData'ofundefinedornullreference</Function>
</CallStack>
</ScriptErrorDetails>
Try suggestion provided at the end of thread - https://community.dynamics.com/crm/f/117/p/190275/482107
When do errors occur?
I' v had similar error [1] on 8.2.2.112 when pressing Next Stage on Business Process Flow. Much effort was put into debugging so wanted to document it somwhere.
Rollup field
The error was caused by rollup fields that provides SUM for Money fields. The HTML generated by CRM and javascript function didn't match.
Guilty line is within /_static/form/formcontrols.js called on line 28871:
XUI.Html.DomUtils.GetFirstChild(XUI.Html.DomUtils.GetFirstChild(XUI.Html.DomUtils.GetFirstChild(XUI.Html.DomUtils.GetFirstChild(XUI.Html.DomUtils.GetFirstChild(XUI.Html.DomUtils.GetNextSibling(this.get_controlValue().parentNode)))))).innerHTML = CrmEncodeDecode.CrmHtmlDecode((this.$5_1.$3_2).get_currencySymbol());
This one returns null and it therefore spits error: XUI.Html.DomUtils.GetNextSibling(this.get_controlValue().parentNode
Solution
FIX 1: Enable "Use legacy form rendering" under System Settings
OR Fix 2: Remove Currency rollup fields from form.
OR Fix 3: Create non-rollup fields that get calculated with workflow or plugin.
OR Fix 4: You may do some jQuery stuff and add some empty siblings which it -
expects. Except it may show duplicate currency symbol (at least for EUR currency) - one as prefix the other one as suffix.
OR Fix 5: Most undesirable way: patch that .js yourself if you're on-premises.
Replace line 28871:
XUI.Html.DomUtils.GetFirstChild(XUI.Html.DomUtils.GetFirstChild(XUI.Html.DomUtils.GetFirstChild(XUI.Html.DomUtils.GetFirstChild(XUI.Html.DomUtils.GetFirstChild(XUI.Html.DomUtils.GetNextSibling(this.get_controlValue().parentNode)))))).innerHTML = CrmEncodeDecode.CrmHtmlDecode((this.$5_1.$3_2).get_currencySymbol());
With:
if (XUI.Html.DomUtils.GetNextSibling(this.get_controlValue().parentNode) !== null) {
XUI.Html.DomUtils.GetFirstChild(XUI.Html.DomUtils.GetFirstChild(XUI.Html.DomUtils.GetFirstChild(XUI.Html.DomUtils.GetFirstChild(XUI.Html.DomUtils.GetFirstChild(XUI.Html.DomUtils.GetNextSibling(this.get_controlValue().parentNode)))))).innerHTML = CrmEncodeDecode.CrmHtmlDecode((this.$5_1.$3_2).get_currencySymbol());
}
[1] Error:
<ScriptErrorDetails>
<Message>Cannot read property 'firstChild' of null</Message>
<Line>0</Line>
<URL>/form/page.aspx?lcid=1033&themeId=2cf54f8a-be4d-477c-a1f5-29b894a487ca&tstamp=53798526&updateTimeStamp=636392540341784672&userts=131546192871874626&ver=-1991520363#etc=3&extraqs=%3f_gridType%3d3%26etc%3d3%26id%3d%257b586C2C21-E8F8-E611-80F5-005056BD19EE%257d%26opened%3dgrid%26process%3dc9426a91-9fc0-4c2d-a21c-4b9d2a38a6d5%26processts%3d51389819%26rskey%3d%257b00000000-0000-0000-00AA-000010003001%257d&pagemode=iframe&pagetype=entityrecord&rskey=%7b00000000-0000-0000-00AA-000010003001%7d&counter=1510145890205</URL>
<PageURL>/form/page.aspx?lcid=1033&themeId=2cf54f8a-be4d-477c-a1f5-29b894a487ca&tstamp=53798526&updateTimeStamp=636392540341784672&userts=131546192871874626&ver=-1991520363#etc=3&extraqs=%3f_gridType%3d3%26etc%3d3%26id%3d%257b586C2C21-E8F8-E611-80F5-005056BD19EE%257d%26opened%3dgrid%26process%3dc9426a91-9fc0-4c2d-a21c-4b9d2a38a6d5%26processts%3d51389819%26rskey%3d%257b00000000-0000-0000-00AA-000010003001%257d&pagemode=iframe&pagetype=entityrecord&rskey=%7b00000000-0000-0000-00AA-000010003001%7d&counter=1510145890205</PageURL>
<Function>anonymous(dirtyVisiblePropertyData){var$v_0=dirtyVisiblePropertyData.getKeys();for(var$v_1=0;$v_1<$v_0.length;$v_1++){var$v_2=$v_0[$v_1];if(IsNull(this.get_viewMap().get_item($v_2))){}else{try{this.get_viewMap().get_item($v_2).update(dirtyVisiblePropertyD</Function>
<FunctionRaw>function (dirtyVisiblePropertyData) {
var $v_0 = dirtyVisiblePropertyData.getKeys();
for (var $v_1 = 0; $v_1 < $v_0.length; $v_1++) {
var $v_2 = $v_0[$v_1];
if (IsNull(this.get_viewMap().get_item($v_2))) {
</FunctionRaw>
<CallStack>
<Function>anonymous(dirtyVisiblePropertyData){var$v_0=dirtyVisiblePropertyData.getKeys();for(var$v_1=0;$v_1<$v_0.length;$v_1++){var$v_2=$v_0[$v_1];if(IsNull(this.get_viewMap().get_item($v_2))){}else{try{this.get_viewMap().get_item($v_2).update(dirtyVisiblePropertyData.get_item($v_2));}catch($v_3){Mscrm.CrmDebug.fail(String.format('ExceptionencounteredupdatingUIelement{0}:{1}',$v_2,$v_3.message));catchError($v_3.message,window.location.href,0,true);}}}}</Function>
<Function>anonymous(){if(this.$AV_1){var$v_0=this.$4h_1;this.$4h_1=new(Mscrm.TurboForm.Control.TypedDictionary$1.$$(Mscrm.TurboForm.Control.PropertyBag))();this.ui.updateUI($v_0);}}</Function>
<Function>anonymous(){this.$7A_1++;var$v_0=null;if(!this.$AE_1){setPerformanceMarkerTimestamp(String.format('UIUpdate{0}StartTime',this.$7A_1));$v_0=Xrm.Internal.startMetricsStopwatch(String.format('UIUpdate{0}',this.$7A_1));$v_0.start();}this.$8w_1=false;for(var$v_1=0;$v_1<this.$2F_1.length;$v_1++){var$v_2=this.$2F_1[$v_1];if(!IsNull($v_2)){$v_2.flushVisibilityChanges();}}if($v_0){$v_0.stop();setPerformanceMarkerTimestamp(String.format('UIUpdate{0}EndTime',this.$7A_1));}window.top.TurboFormLoadStartTime=null;}</Function>
<Function>anonymous(){Mscrm.Performance.PerformanceMarkerManager.get_instance().addMarker('MDDEnd',1);try{var$v_0=Xrm.Internal.startMetricsStopwatch('PostOnLoadUIUpdate');$v_0.start();this.finishUIUpdate();$v_0.stop();}finally{this.$Ih_1();this.updateFormDirtyState();try{if(isOutlookHostedWindow()){getOutlookHostedWindow().handlePostOnLoad();}}catch($$e_1){}}}</Function>
<Function>anonymous(){var$v_0=Xrm.Internal.startMetricsStopwatch('HandlePostOnLoad');$v_0.start();if(Mscrm.TurboForm.Control.PageManager.get_instance().$L_1===this){this.get_pidRequestManager().clearRecords();Mscrm.TurboForm.Control.PageManager.get_instance().handlePostOnLoad();var$v_1=Mscrm.TurboForm.Control.PageBootstrapper.getPageState();if(!IsNull($v_1)&&$v_1.formType!==7&&!$v_1.recordId.equals(Microsoft.Crm.Client.Core.Framework.Guid.get_empty())){Mscrm.TurboForm.Control.PageBootstrapper.requestSubGridData();}this.get_pidRequestManager().requestPidPtsWithLookupService();setAttributeInWindow('FormEntityLogicalName',(this.data.getEntity())?this.data.getEntity().getEntityName()||'':'');setAttributeInWindow('FormEntityTypeCode',(this.data.getEntity()&&!Mscrm.InternalUtilities.JSTypes.isNull(this.data.getEntity().getEntityTypeCode()))?this.data.getEntity().getEntityTypeCode().toString():'');if(!Mscrm.InternalUtilities.JSTypes.isNullOrEmptyString(window.CUSTOM_ETC_LIST)&&JSON.parse(window.CUSTOM_ETC_LIST).indexOf(this.data.getEntity().getEntityTypeCode())>-1){setAttributeInWindow('IsCustomEntity','true');}else{setAttributeInWindow('IsCustomEntity','false');}if(!IsNull(window.turboHeaderScriptIncludes)){if(this.scriptIncludesSearch(window.turboHeaderScriptIncludes,'/_static/cs/articlesearchribbon/articlesearchribbon.js')){Mscrm.CrmHeader.setScriptFileForTurboForm(Mscrm.CrmUri.create('/_static/CS/ArticleSearchRibbon/ArticleSearchRibbon.js'));}}Mscrm.TurboForm.Control.PageManager.get_instance().loadActionHubIframe();window.setTimeout(this.$$d_$Ff_1,15);if(!IsNull($v_1)&&$v_1.formType!==7){Mscrm.MetricsCollector.collectAndReportClientMetrics(2);}}else{Mscrm.TurboForm.Control.PageManager.get_instance().finishUIUpdate();}$v_0.stop();}</Function>
<Function>anonymous(){returnb.apply(a,arguments)}</Function>
<Function>anonymous(c,d){for(varb=0,e=a.length;b<e;b++)a[b](c,d)}</Function>
<Function>anonymous(message){switch(message){case'TurboFormPostOnloadTimestamp':setPerformanceMarkerTimestamp('TurboFormPostOnloadTimestamp');Mscrm.Performance.PerformanceMarkerManager.get_instance().addMarker('TurboFormPostOnloadTimestamp',1);var$v_0=Mscrm.TurboForm.Control.CustomScriptsManager.get_instance().$7d_1.getHandler(String.format('MessageEventFormat_{0}',message));if(!IsNull($v_0)){$v_0();window.pageLoadedCheckForNavigateApi=true;if(!IsNull(window.parent)&&!IsNull(window.parent.parent)){window.parent.pageLoadedCheckForNavigateApi=true;window.parent.parent.pageLoadedCheckForNavigateApi=true;}}break;case'ScriptsAreLoaded':if(Mscrm.TurboForm.Control.CustomScriptsManager.get_instance().$57_1){Mscrm.TurboForm.Control.CustomScriptsManager.get_instance().$57_1=false;}var$v_1=Mscrm.TurboForm.Control.CustomScriptsManager.get_instance().$7d_1.getHandler(String.format('ScriptsAreLoaded',message));if(!IsNull($v_1)){$v_1();}break;}}</Function>
<Function>SendMessageToPageManager(message)</Function>
<Function>RunHandlerInternal(method,parameters,executionContext,executeIfAvailableOnly)</Function>
<Function>RunHandlers()</Function>
<Function>OnScriptTagLoaded(url)</Function>
<Function>anonymous(){OnScriptTagLoaded(url);}</Function>
</CallStack>
</ScriptErrorDetails>
Thanks to Andrii!
Removing a composite control in the header did the trick.
It seems to be a bug in CRM 2016, but our customers can live without this information in the header. All fine!
Kind regards,
Matthias

error c2228 left of '.ptr' must have class/struct/union

I have compilation error in MSVC express 2013, when including "filesystem.h" on any .cpp file.
"error c2228 left of '.ptr' must have class/struct/union ".
It points to error in filesystem.h file, which is part of "\microsoft visual studio 12.0\vc\include"
template<class _Path> inline
bool remove(const _Path& _Pval)
{ // remove _Pval
-->> return (_Unlink(_Pval._Ptr()) == 0);
}
Thank you for any suggestion.
After repairing the installation of visual studio, the problem disappeared.

Angular ui-select in ng-grid

I'm trying to use the ui-select dropdown inside an editable ng-grid.
This is what my editable cell template looks like:-
editableCellTemplate: "<ui-select ng-model=\"COL_FIELD\" ng-class=\"'colt' + col.index\" theme=\"bootstrap\"><match placeholder=\"Choose client Account..\"></match><choices repeat=\"client in clients | filter: $select.search\"><div ng-bind-html=\"client.clientAccount | highlight: $select.search\"></div></choices></ui-select>"
However, I am not able to bind the selected value to the class,
ng-class=\"'colt' + col.index\"
I am getting the following error on my console:
Error: [$parse:syntax] Syntax Error: Token '{' is an unexpected token
at column 20 of the expression ['colt' + col.index {open:
$select.open}] starting at [{open: $select.open}].
The HTML generated is as follows:
Basically the html is generated as ng-class="'colt' + col.index {open: $select.open}" and the curly braces produce a syntax error..
Anyone faced a similar problem?
You need to add ';' after the 'colt'+col.index expression

How can I concatenate multiple variables in my MVC3 Razor code?

I have some razor code and I am having a problem with getting the syntax working. The code is as follows:
else
{
#(x.RowKey.Substring(0, 2).TrimStart('0') + "." + x.RowKey.Substring(2, 2).TrimStart('0').PadLeft(1, '0')) - #Html.Raw(x.Title)<br>
}
This is giving me the following error:
Compiler Error Message: CS1002: ; expected
When you start your #(x.RowKey...., Razor still thinks that it's still in C# mode, not HTML mode (to use the totally non-technical terms). Nick Bork's suggestion about wrapping that stuff in the <text> tags gets the page back into HTML mode so you can go back to using your normal Razor syntax.
Try this:
else
{
var st = x.RowKey.Substring(0, 2).TrimStart('0') + "." + x.RowKey.Substring(2, 2).TrimStart('0').PadLeft(1, '0'));
#st - #Html.Raw(x.Title)<br/>
}

Resources