Thursday, 15 December 2016
Thursday, 13 October 2016
Multiple builds in the same machine
Let's say you have Installed Nav 2016 with CU1 and you want to run CU10 side by side then follow the below steps:
1)Go to the below path
C:\Program Files\Microsoft Dynamics NAV\
Create a new folder Say(90CU10)
Copy Service folder from C:\Program Files\Microsoft Dynamics NAV\90\ to
C:\Program Files\Microsoft Dynamics NAV\90CU10\
Copy the all the files from Service Folder of Cumulative Package 10
E:\Dynamics.90.AU.CU10.46621.DVD\ServiceTier\program files\Microsoft Dynamics NAV\90\Service\
and replace the files in below path
C:\Program Files\Microsoft Dynamics NAV\90CU10\Service\
Run the Dynamics NAV 2016 Administration Shell as administrator and execute the below powershell script
Say your new instance name is (INS_90CU10)
New-Service 'MicrosoftDynamicsNAVServer$INS_90CU10' -BinaryPathName '"C:\Program Files\Microsoft Dynamics NAV\90CU10\Service\Microsoft.Dynamics.Nav.Server.exe" $INS_90CU10 /config "C:\Program Files\Microsoft Dynamics NAV\90CU10\Service\Microsoft.Dynamics.NAV.Server.exe.config"' -DependsOn 'HTTP' -Description 'Service handling requests to Microsoft Dynamics NAV application.' -DisplayName 'Microsoft Dynamics NAV Server [INS_90CU10]' -StartupType Manual
To Modify Customsetting.config file using powershell script execute the below script:
Set-NAVServerConfiguration INS_90CU10 -KeyName DatabaseServer -KeyValue PC003
Set-NAVServerConfiguration INS_90CU10 -KeyName DatabaseInstance -KeyValue SQL2014
Set-NAVServerConfiguration d -KeyName DatabaseName -KeyValue 90CU10_DEMO
Set-NAVServerConfiguration INS_90CU10 -KeyName ClientServicesPort -KeyValue 9045
netsh http add urlacl url=http://+:99046/INS_90CU10/ user= “NT AUTHORITY\NETWORK SERVICE” listen=yes delegate=no sddl=”D:(A;;GX;;;NS)”
Set-NAVServerConfiguration INS_90CU10 -KeyName SOAPServicesPort -KeyValue 9046 -FORCE
netsh http add urlacl url=http://+:9047/INS_90CU10/ user= “NT AUTHORITY\NETWORK SERVICE” listen=yes delegate=no sddl=”D:(A;;GX;;;NS)”
Set-NAVServerConfiguration INS_90CU10 -KeyName ODataServicesPort -KeyValue 9047 -FORCE
Set-NAVServerConfiguration INS_90CU10 -KeyName managementServicesPort -KeyValue 9048
Open the CustomSettings.config file from the below path
C:\Program Files\Microsoft Dynamics NAV\90CU10\Service . check configuration of Database and Port numbers
go to <add key="ServerInstance" value="InstanceName"/>
change it to
<add key="ServerInstance" value="INS_90CU6" />
go to <add key="ServerInstance" value="InstanceName"/>
change it to
<add key="ServerInstance" value="INS_90CU6" />
Run Services.msc and Start the Service INS_90CU10
Friday, 28 August 2015
RDLC REPORTING:
· Display fixed decimal places =FormatNumber(ROUND(SUM(Fields!Line_CBM.value),3),3)
· DISPLAY ONLY DATE: =format(Fields!Date.Value,"dd/MM/yyyy")
· Display data on header nav 2009 rdlc
· Add text box in body =Fields!COMPINFO_GSTREGNO.Value and set to hidden
Then go to header add textbox =reportitems!companyGstRegNo.Value
· If the report is going to multiple blank pages set the Top ,Left,right and bottom margin in report properties.
· Print new line
· Fields!customeridname.Value & vbcrlf & Fields!address1_line1.Value & vbcrlf & Fields!address1_line2.Value & vbcrlf & Fields!address1_line3.Value
Hide Dublicate values in
=iif(Fields!YourField.Value = Previous(Fields!YourField.Value), True, False)
01/01/2001 AS MONTH YEAR
=Format(CDate(Fields!A.Value), "MMMM yyyy")
SSRS - Serial number for the group column
We were developing a report which contain a group (grouped by Product) and the group contain a detail row in it. We wanted to show Serial Number for the Products, we trying to use RowNumber function in SSRS but it didn’t come up as expected. Finally we found the solution from Web which was written by Bilal Hani- a Microsoft Community Contributor as how to “add serial number to grouping column in SSRS Tablix”.
1. Open the report properties (right click on blank area outside the layout and click properties) or (Menu-->Report-->Report Properties)
2. Click on the code pane on the left
3. In the code window enter below script
Dim Counter as integer=0
public function getGroupCounter() as Integer
Counter=Counter+1
return Counter
end function
4. Go to the properties of the group (based on which group you need the group serial number)
5. Click the variables tab on the left
6. Click on Add and set Name as GroupCountValue and set the expression (in the expression window) as =Code.getGroupCounter, click ok and close the window.
7. Now in the textbox where you want to display the group number, set the expression as =Variables!GroupCountValue.Value
Make 0 as blank
Iif(quantity=0,””,quantity)
Repeat Table Header on each page:
1)in the grouping pane, click on the small triangle and select "Advanced Mode" to show static members:
1. verify that you have the properties grid turned on (in BI Development Studio use F4, in Report Builder go to the "View" tab and select "Properties")
2. select the corresponding (static) item in the row group hierarchy
3. in the properties grid:
- set KeepWithGroup to After
- set RepeatOnNewPage to true for repeating headers
- set FixedData to true for keeping headers visible
- set KeepWithGroup to After
- set RepeatOnNewPage to true for repeating headers
- set FixedData to true for keeping headers visible
=======================================================================
Shared Data50000 as Object
Public Function GetData(Num as Integer, Group as integer) as Object
if Group = 50000 and Cstr(Choose(2, Split(Cstr(Data50000),Chr(177))))>"" then
Return Cstr(Choose(Num, Split(Cstr(Data50000),Chr(177))))
end if
End Function
Public Function SetData(NewData as Object,Group as integer)
If Group = 50000 and NewData <> "" Then
Data50000 = NewData
end if
End Function
In Body:(CustDet) and set to hidden
add expression
=Fields!BilltoCustomerNo_SalesHeader.Value+ chr(177) +
Fields!BilltoName_SalesHeader.Value+ chr(177)
In Header add expression
=code.SetData(reportitems!CustDet.Value, 50000)
Header Values
=code.GetData(1, 50000)
=code.GetData(2, 50000)
(Fields!GroupingField.Value = ReportItems!LastValueOfGroup.Value)
=====================================================================
RTC
======================================================================
RTC:
Add report in Page:
Add Cardpart in Card
Create a page as Cardpart and in designer after the Container add Group type indent the fields.
Make CardPart sourcetable primary key same as Card sourcetable
InCard source table on insert trigger add below code
IF NOT ins.GET("Document Type","No.") THEN
BEGIN
ins.INIT;
ins."Document Type":="Document Type";
ins."No.":="No.";
ins.INSERT;
END;
· Make relationship between two pages (part)
User ProviderID
http://plataan.typepad.com/microsoftdynamics/2010/04/linking-parts-on-a-page-using-the-providerid-property.html
2)
Search for Salesperson is disabled.
Add a new secondary key (salesperson code) in the table
3) Nav 2009 RTC Add field in Header or Footer
Add a field in Body and give name to text box and change it to hidden
In Header or Footer add field expression as reportitems!field.Value
For Dates, the Regional and Language Options in Windows is used to select the actual format that is used. The table below shows the Fields that will be used to build the various formats. This table, incidentally, corresponds to the Regional setting for a European country/region.
Date
Format
Example
<Closing><Day,2>-<Month,2>-<Year>
0
05-04-03
<Closing><Day,2>-<Month,2>-<Year>
1
05-04-03
<Day,2><Month,2><Year><Closing>D
2
050403D
<Closing><Year>-<Month,2>-<Day,2>
3
03-04-05
<Closing><Day>. <Month Text> <Year4>
4
5. April 2003
<Closing><Day,2><Month,2><Year>
5
050403
<Closing><Year><Month,2><Day,2>
6
030405
<Day,2><Filler Character, >. <Month Text,3> <Year4>
7
5. Apr 2003
XML format
9
2003-04-05
The following table shows how these formats will change if the Regional and Language Options is set to "United States."
US Date
Format
Example
<Closing><Month,2>/<Day,2>/<Year>
0
04/05/03
<Closing><Month,2>/<Day,2>/<Year>
1
04/05/03
<Month,2><Day,2><Year><Closing>D
2
040503D
<Closing><Year>/<Month,2>/<Day,2>
3
03/04/05
<Month Text> <Closing><Day>, <Year4>
4
April 5, 2003
<Closing><Month,2><Day,2><Year>
5
040503
<Closing><Year><Month,2><Day,2>
6
030405
<Day,2><Filler Character, >. <Month Text,3> <Year4>
7
5. Apr 2003
use dotnet class Regex.
variables:
Name DataType Subtype Length
Regex | DotNet | System.Text.RegularExpressions.Regex.'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
Match | DotNet |System.Text.RegularExpressions.Match.'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
Name DataType Subtype Length
Regex | DotNet | System.Text.RegularExpressions.Regex.'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
Match | DotNet |System.Text.RegularExpressions.Match.'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
the code:
Match := Regex.Match('h123xxx', '\d+'); // text value = h123xxx
MESSAGE(Match.Value); // gives you 123
Match := Regex.Match('h123xxx', '\d+'); // text value = h123xxx
MESSAGE(Match.Value); // gives you 123
How to Set View Mode on Pages as Defau
...
Declare WshShell as Automation Variable for 'Windows Script Host Object Model'.WshShell
In OnOpenPage Trigger:
...
IF ISCLEAR(WshShell) THEN
CREATE(WshShell,FALSE,TRUE);
WshShell.SendKeys('^+V');//Ctrl+Shift+V
here the command for the Edit in case of
WshShell.SendKeys('^+E') //Ctrl+Shift+E
Declare WshShell as Automation Variable for 'Windows Script Host Object Model'.WshShell
In OnOpenPage Trigger:
...
IF ISCLEAR(WshShell) THEN
CREATE(WshShell,FALSE,TRUE);
WshShell.SendKeys('^+V');//Ctrl+Shift+V
here the command for the Edit in case of
WshShell.SendKeys('^+E') //Ctrl+Shift+E
Function key
WshShell.SendKeys('{F5}{F5}'); //Ctrl+Shift+E
Replace string function in Navision
ReplaceString(String:Text[250];FindWhat:Text[250];ReplaceWith:Text[250]) NewString:Text[250]
WHILE STRPOS(String,FindWhat) > 0 DO
String := DELSTR(String,STRPOS(String,FindWhat)) + ReplaceWith + COPYSTR(String,STRPOS(String,FindWhat) + STRLEN(FindWhat));
NewString := String;
Subform setselectionfilter:
Create a variable PurchaseLine
CurrPage . SETSELECTIONFILTER ( PurchaseLine );
// you can also test purposes here MESSAGE (FORMAT (PurchaseLine.COUNT)) settle.
IF PurchaseLine . FindSet THEN BEGIN
REPEAT
// whatever you intends test with the selected records
UNTIL PurchaseLine . NEXT = 0 ;
END ;
// you can also test purposes here MESSAGE (FORMAT (PurchaseLine.COUNT)) settle.
IF PurchaseLine . FindSet THEN BEGIN
REPEAT
// whatever you intends test with the selected records
UNTIL PurchaseLine . NEXT = 0 ;
END ;
========================================================================
FILTER RECORDS ON PAGE
OnFindRecord(Which : Text[1024]) : Boolean
exit(find(which) and ShowThisRecord);
OnNextRecord(Steps : Integer) : Integer
create a local variable
Local Variables
Name | DataType
ResultSteps | Integer
then add the following code
REPEAT
ResultSteps := NEXT(Steps);
UNTIL (ResultSteps = 0) OR (ShowThisRecord);
EXIT(ResultSteps);
exit(find(which) and ShowThisRecord);
OnNextRecord(Steps : Integer) : Integer
create a local variable
Local Variables
Name | DataType
ResultSteps | Integer
then add the following code
REPEAT
ResultSteps := NEXT(Steps);
UNTIL (ResultSteps = 0) OR (ShowThisRecord);
EXIT(ResultSteps);
ShowThisRecord() : Boolean
g_recPH2.GET("Document Type","Document No.")
IF g_recPH2."Assigned User ID" = USERID THEN
EXIT(TRUE)
===============================================================================
* NAV 2009 Run Report From RUN
Dynamicsnav:////runreport?report=50000
User ProviderID
http://plataan.typepad.com/microsoftdynamics/2010/04/linking-parts-on-a-page-using-the-providerid-property.html
RTC:
How to Set View Mode on Pages as Defau lt
RTC:
Attach report in Page:
g_recSH.GET("Document Type","No.");
CurrPage.SETSELECTIONFILTER(g_recSH);
REPORT.RUNMODAL(50000,TRUE,FALSE,g_recSH);
Or
CLEAR(g_recSIH);
g_recSIH.SETRECFILTER;
REPORT.RUNMODAL(REPORT::"Invoice",TRUE,FALSE,g_recSIH);
CurrPage.SETSELECTIONFILTER(g_recSH);
REPORT.RUNMODAL(50000,TRUE,FALSE,g_recSH);
Or
CLEAR(g_recSIH);
g_recSIH.SETRECFILTER;
REPORT.RUNMODAL(REPORT::"Invoice",TRUE,FALSE,g_recSIH);
Add Cardpart in Card
Create a page as Cardpart and in designer after the Container add Group type indent the fields.
Make CardPart sourcetable primary key same as Card sourcetable
InCard source table on insert trigger add below code
IF NOT ins.GET("Document Type","No.") THEN
BEGIN
ins.INIT;
ins."Document Type":="Document Type";
ins."No.":="No.";
ins.INSERT;
END;
Search for Salesperson is disabled.
Add a new secondary key (salesperson code) in the table
use dotnet class Regex.
variables:
Name DataType Subtype Length
Regex | DotNet | System.Text.RegularExpressions.Regex.'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
Match | DotNet |System.Text.RegularExpressions.Match.'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
Name DataType Subtype Length
Regex | DotNet | System.Text.RegularExpressions.Regex.'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
Match | DotNet |System.Text.RegularExpressions.Match.'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
the code:
Match := Regex.Match('h123xxx', '\d+'); // text value = h123xxx
MESSAGE(Match.Value); // gives you 123
Match := Regex.Match('h123xxx', '\d+'); // text value = h123xxx
MESSAGE(Match.Value); // gives you 123
How to Set View Mode on Pages as Defau
...
Declare WshShell as Automation Variable for 'Windows Script Host Object Model'.WshShell
In OnOpenPage Trigger:
...
IF ISCLEAR(WshShell) THEN
CREATE(WshShell,FALSE,TRUE);
WshShell.SendKeys('^+V');//Ctrl+Shift+V
here the command for the Edit in case of
WshShell.SendKeys('^+E') //Ctrl+Shift+E
Declare WshShell as Automation Variable for 'Windows Script Host Object Model'.WshShell
In OnOpenPage Trigger:
...
IF ISCLEAR(WshShell) THEN
CREATE(WshShell,FALSE,TRUE);
WshShell.SendKeys('^+V');//Ctrl+Shift+V
here the command for the Edit in case of
WshShell.SendKeys('^+E') //Ctrl+Shift+E
Function key
WshShell.SendKeys('{F5}{F5}'); //Ctrl+Shift+E
Replace string function in Navision
ReplaceString(String:Text[250];FindWhat:Text[250];ReplaceWith:Text[250]) NewString:Text[250]
WHILE STRPOS(String,FindWhat) > 0 DO
String := DELSTR(String,STRPOS(String,FindWhat)) + ReplaceWith + COPYSTR(String,STRPOS(String,FindWhat) + STRLEN(FindWhat));
NewString := String;
Subform setselectionfilter:
Create a variable PurchaseLine
CurrPage . SETSELECTIONFILTER ( PurchaseLine );// you can also test purposes here MESSAGE (FORMAT (PurchaseLine.COUNT)) settle.IF PurchaseLine . FindSet THEN BEGIN
REPEAT
// whatever you intends test with the selected records UNTIL PurchaseLine . NEXT = 0 ;END ;
REPEAT
// whatever you intends test with the selected records UNTIL PurchaseLine . NEXT = 0 ;END ;
FILTER RECORDS ON PAGE
OnFindRecord(Which : Text[1024]) : Boolean
exit(find(which) and ShowThisRecord);
OnNextRecord(Steps : Integer) : Integer
create a local variable
Local Variables
Name | DataType
ResultSteps | Integer
then add the following code
REPEAT
ResultSteps := NEXT(Steps);
UNTIL (ResultSteps = 0) OR (ShowThisRecord);
EXIT(ResultSteps);
exit(find(which) and ShowThisRecord);
OnNextRecord(Steps : Integer) : Integer
create a local variable
Local Variables
Name | DataType
ResultSteps | Integer
then add the following code
REPEAT
ResultSteps := NEXT(Steps);
UNTIL (ResultSteps = 0) OR (ShowThisRecord);
EXIT(ResultSteps);
ShowThisRecord() : Boolean
g_recPH2.GET("Document Type","Document No.")
IF g_recPH2."Assigned User ID" = USERID THEN
EXIT(TRUE)
Subscribe to:
Posts (Atom)