Dynamically Set Visible in a report

Morilen
Member Posts: 30
Is there a way to code a Report to dynamically set the visible property to true or false based on a certain field's output? My boss wants to have an Attn: label before any contact that is listed on the Sales order and Sales Invoice. However since they are not all filled in this will cause it to display Attn: "Address" as opposed to Attn: "Contact" where contact is blank.
The Addresses on those reports are currently populated using the following code and corresponding "BillToAddress#" & "ShipToAddress#" text boxes.
CLEAR(BillToAddress4);
CLEAR(BillToAddress5);
CLEAR(BillToAddress6);
CLEAR(ShipToAddress2);
CLEAR(ShipToAddress3);
CLEAR(ShipToAddress4);
CLEAR(ShipToAddress5);
CLEAR(ShipToAddress6);
CLEAR(ShipToAddress7);
CLEAR(ShipToAddress8);
IF BillToAddress[2] = 'US' THEN
BillToAddress[2] := ''
ELSE IF BillToAddress[3] = 'US' THEN
BillToAddress[3] := ''
ELSE IF BillToAddress[4] = 'US' THEN
BillToAddress[4] := ''
ELSE IF BillToAddress[5] = 'US' THEN
BillToAddress[5] := ''
ELSE IF BillToAddress[6] = 'US' THEN
BillToAddress[6] := '';
IF ShipToAddress[2] = 'US' THEN
ShipToAddress[2] := ''
ELSE IF ShipToAddress[3] = 'US' THEN
ShipToAddress[3] := ''
ELSE IF ShipToAddress[4] = 'US' THEN
ShipToAddress[4] := ''
ELSE IF ShipToAddress[5] = 'US' THEN
ShipToAddress[5] := ''
ELSE IF ShipToAddress[6] = 'US' THEN
ShipToAddress[6] := '';
BillCSZ := "Sales Header"."Bill-to City" + ', ' + "Sales Header"."Bill-to County" + ' ' + "Sales Header"."Bill-to Post Code";
BillToAddress2 := "Sales Header"."Bill-to Address";
BillToAddress3 := BillCSZ;
BillToAddress4 := "Sales Header"."Ship-To Phone";
IF ("Sales Header"."Bill-to Contact" <> '') AND ("Sales Header"."Bill-to Address 2" <> '')THEN BEGIN
BillToAddress2 := "Sales Header"."Bill-to Contact";
BillToAddress3 := "Sales Header"."Bill-to Address";
BillToAddress4 := "Sales Header"."Bill-to Address 2";
BillToAddress5 := BillCSZ;
BillToAddress6 := "Sales Header"."Ship-To Phone"
END;
IF ("Sales Header"."Bill-to Contact" <> '') AND ("Sales Header"."Bill-to Address 2" = '')THEN BEGIN
BillToAddress2 := "Sales Header"."Bill-to Contact";
BillToAddress3 := "Sales Header"."Bill-to Address";
BillToAddress4 := BillCSZ;
BillToAddress5 := "Sales Header"."Ship-To Phone"
END;
IF ("Sales Header"."Bill-to Contact" = '') AND ("Sales Header"."Bill-to Address 2" <> '')THEN BEGIN
BillToAddress2 := "Sales Header"."Bill-to Address";
BillToAddress3 := "Sales Header"."Bill-to Address 2";
BillToAddress4 := BillCSZ;
BillToAddress5 := "Sales Header"."Ship-To Phone"
END;
ShipCSZ := "Sales Header"."Ship-to City" + ', ' + "Sales Header"."Ship-to County" + ' ' + "Sales Header"."Ship-to Post Code";
ShipToAddress2 := "Sales Header"."Ship-to Address";
ShipToAddress3 := ShipCSZ;
ShipToAddress4 := ShipToPhone;
ShipToAddress7 := "Sales Header"."Ship-to Cross Street";
IF ("Sales Header"."Ship-to Contact" <> '') AND ("Sales Header"."Ship-to Address 2" <> '')THEN BEGIN
ShipToAddress2 := "Sales Header"."Ship-to Contact";
ShipToAddress3 := "Sales Header"."Ship-to Address";
ShipToAddress4 := "Sales Header"."Ship-to Address 2";
ShipToAddress5 := ShipCSZ;
ShipToAddress6 := "Sales Header"."Ship-To Phone"
END;
IF ("Sales Header"."Ship-to Contact" <> '') AND ("Sales Header"."Ship-to Address 2" = '')THEN BEGIN
ShipToAddress2 := "Sales Header"."Ship-to Contact";
ShipToAddress3 := "Sales Header"."Ship-to Address";
ShipToAddress4 := ShipCSZ;
ShipToAddress5 := "Sales Header"."Ship-To Phone"
END;
IF ("Sales Header"."Ship-to Contact" = '') AND ("Sales Header"."Ship-to Address 2" <> '')THEN BEGIN
ShipToAddress2 := "Sales Header"."Ship-to Address";
ShipToAddress3 := "Sales Header"."Ship-to Address 2";
ShipToAddress4 := ShipCSZ;
ShipToAddress5 := "Sales Header"."Ship-To Phone"
END;
I was hoping I could just include an "If" statement that checked the contact for any value and if it is Null have it set the label's visible property to No/False/Invisible or whatever the proper syntax is.
Navision version is 5.0.
Any help would be greatly appreciated.
Thanks.
The Addresses on those reports are currently populated using the following code and corresponding "BillToAddress#" & "ShipToAddress#" text boxes.
CLEAR(BillToAddress4);
CLEAR(BillToAddress5);
CLEAR(BillToAddress6);
CLEAR(ShipToAddress2);
CLEAR(ShipToAddress3);
CLEAR(ShipToAddress4);
CLEAR(ShipToAddress5);
CLEAR(ShipToAddress6);
CLEAR(ShipToAddress7);
CLEAR(ShipToAddress8);
IF BillToAddress[2] = 'US' THEN
BillToAddress[2] := ''
ELSE IF BillToAddress[3] = 'US' THEN
BillToAddress[3] := ''
ELSE IF BillToAddress[4] = 'US' THEN
BillToAddress[4] := ''
ELSE IF BillToAddress[5] = 'US' THEN
BillToAddress[5] := ''
ELSE IF BillToAddress[6] = 'US' THEN
BillToAddress[6] := '';
IF ShipToAddress[2] = 'US' THEN
ShipToAddress[2] := ''
ELSE IF ShipToAddress[3] = 'US' THEN
ShipToAddress[3] := ''
ELSE IF ShipToAddress[4] = 'US' THEN
ShipToAddress[4] := ''
ELSE IF ShipToAddress[5] = 'US' THEN
ShipToAddress[5] := ''
ELSE IF ShipToAddress[6] = 'US' THEN
ShipToAddress[6] := '';
BillCSZ := "Sales Header"."Bill-to City" + ', ' + "Sales Header"."Bill-to County" + ' ' + "Sales Header"."Bill-to Post Code";
BillToAddress2 := "Sales Header"."Bill-to Address";
BillToAddress3 := BillCSZ;
BillToAddress4 := "Sales Header"."Ship-To Phone";
IF ("Sales Header"."Bill-to Contact" <> '') AND ("Sales Header"."Bill-to Address 2" <> '')THEN BEGIN
BillToAddress2 := "Sales Header"."Bill-to Contact";
BillToAddress3 := "Sales Header"."Bill-to Address";
BillToAddress4 := "Sales Header"."Bill-to Address 2";
BillToAddress5 := BillCSZ;
BillToAddress6 := "Sales Header"."Ship-To Phone"
END;
IF ("Sales Header"."Bill-to Contact" <> '') AND ("Sales Header"."Bill-to Address 2" = '')THEN BEGIN
BillToAddress2 := "Sales Header"."Bill-to Contact";
BillToAddress3 := "Sales Header"."Bill-to Address";
BillToAddress4 := BillCSZ;
BillToAddress5 := "Sales Header"."Ship-To Phone"
END;
IF ("Sales Header"."Bill-to Contact" = '') AND ("Sales Header"."Bill-to Address 2" <> '')THEN BEGIN
BillToAddress2 := "Sales Header"."Bill-to Address";
BillToAddress3 := "Sales Header"."Bill-to Address 2";
BillToAddress4 := BillCSZ;
BillToAddress5 := "Sales Header"."Ship-To Phone"
END;
ShipCSZ := "Sales Header"."Ship-to City" + ', ' + "Sales Header"."Ship-to County" + ' ' + "Sales Header"."Ship-to Post Code";
ShipToAddress2 := "Sales Header"."Ship-to Address";
ShipToAddress3 := ShipCSZ;
ShipToAddress4 := ShipToPhone;
ShipToAddress7 := "Sales Header"."Ship-to Cross Street";
IF ("Sales Header"."Ship-to Contact" <> '') AND ("Sales Header"."Ship-to Address 2" <> '')THEN BEGIN
ShipToAddress2 := "Sales Header"."Ship-to Contact";
ShipToAddress3 := "Sales Header"."Ship-to Address";
ShipToAddress4 := "Sales Header"."Ship-to Address 2";
ShipToAddress5 := ShipCSZ;
ShipToAddress6 := "Sales Header"."Ship-To Phone"
END;
IF ("Sales Header"."Ship-to Contact" <> '') AND ("Sales Header"."Ship-to Address 2" = '')THEN BEGIN
ShipToAddress2 := "Sales Header"."Ship-to Contact";
ShipToAddress3 := "Sales Header"."Ship-to Address";
ShipToAddress4 := ShipCSZ;
ShipToAddress5 := "Sales Header"."Ship-To Phone"
END;
IF ("Sales Header"."Ship-to Contact" = '') AND ("Sales Header"."Ship-to Address 2" <> '')THEN BEGIN
ShipToAddress2 := "Sales Header"."Ship-to Address";
ShipToAddress3 := "Sales Header"."Ship-to Address 2";
ShipToAddress4 := ShipCSZ;
ShipToAddress5 := "Sales Header"."Ship-To Phone"
END;
I was hoping I could just include an "If" statement that checked the contact for any value and if it is Null have it set the label's visible property to No/False/Invisible or whatever the proper syntax is.
Navision version is 5.0.
Any help would be greatly appreciated.
Thanks.
0
Comments
-
Morilen wrote:Is there a way to code a Report to dynamically set the visible property to true or false based on a certain field's output? My boss wants to have an Attn: label before any contact that is listed on the Sales order and Sales Invoice. However since they are not all filled in this will cause it to display Attn: "Address" as opposed to Attn: "Contact" where contact is blank.
The Addresses on those reports are currently populated using the following code and corresponding "BillToAddress#" & "ShipToAddress#" text boxes.
CLEAR(BillToAddress4);
CLEAR(BillToAddress5);
CLEAR(BillToAddress6);
CLEAR(ShipToAddress2);
CLEAR(ShipToAddress3);
CLEAR(ShipToAddress4);
CLEAR(ShipToAddress5);
CLEAR(ShipToAddress6);
CLEAR(ShipToAddress7);
CLEAR(ShipToAddress8);
IF BillToAddress[2] = 'US' THEN
BillToAddress[2] := ''
ELSE IF BillToAddress[3] = 'US' THEN
BillToAddress[3] := ''
ELSE IF BillToAddress[4] = 'US' THEN
BillToAddress[4] := ''
ELSE IF BillToAddress[5] = 'US' THEN
BillToAddress[5] := ''
ELSE IF BillToAddress[6] = 'US' THEN
BillToAddress[6] := '';
IF ShipToAddress[2] = 'US' THEN
ShipToAddress[2] := ''
ELSE IF ShipToAddress[3] = 'US' THEN
ShipToAddress[3] := ''
ELSE IF ShipToAddress[4] = 'US' THEN
ShipToAddress[4] := ''
ELSE IF ShipToAddress[5] = 'US' THEN
ShipToAddress[5] := ''
ELSE IF ShipToAddress[6] = 'US' THEN
ShipToAddress[6] := '';
BillCSZ := "Sales Header"."Bill-to City" + ', ' + "Sales Header"."Bill-to County" + ' ' + "Sales Header"."Bill-to Post Code";
BillToAddress2 := "Sales Header"."Bill-to Address";
BillToAddress3 := BillCSZ;
BillToAddress4 := "Sales Header"."Ship-To Phone";
IF ("Sales Header"."Bill-to Contact" <> '') AND ("Sales Header"."Bill-to Address 2" <> '')THEN BEGIN
BillToAddress2 := "Sales Header"."Bill-to Contact";
BillToAddress3 := "Sales Header"."Bill-to Address";
BillToAddress4 := "Sales Header"."Bill-to Address 2";
BillToAddress5 := BillCSZ;
BillToAddress6 := "Sales Header"."Ship-To Phone"
END;
IF ("Sales Header"."Bill-to Contact" <> '') AND ("Sales Header"."Bill-to Address 2" = '')THEN BEGIN
BillToAddress2 := "Sales Header"."Bill-to Contact";
BillToAddress3 := "Sales Header"."Bill-to Address";
BillToAddress4 := BillCSZ;
BillToAddress5 := "Sales Header"."Ship-To Phone"
END;
IF ("Sales Header"."Bill-to Contact" = '') AND ("Sales Header"."Bill-to Address 2" <> '')THEN BEGIN
BillToAddress2 := "Sales Header"."Bill-to Address";
BillToAddress3 := "Sales Header"."Bill-to Address 2";
BillToAddress4 := BillCSZ;
BillToAddress5 := "Sales Header"."Ship-To Phone"
END;
ShipCSZ := "Sales Header"."Ship-to City" + ', ' + "Sales Header"."Ship-to County" + ' ' + "Sales Header"."Ship-to Post Code";
ShipToAddress2 := "Sales Header"."Ship-to Address";
ShipToAddress3 := ShipCSZ;
ShipToAddress4 := ShipToPhone;
ShipToAddress7 := "Sales Header"."Ship-to Cross Street";
IF ("Sales Header"."Ship-to Contact" <> '') AND ("Sales Header"."Ship-to Address 2" <> '')THEN BEGIN
ShipToAddress2 := "Sales Header"."Ship-to Contact";
ShipToAddress3 := "Sales Header"."Ship-to Address";
ShipToAddress4 := "Sales Header"."Ship-to Address 2";
ShipToAddress5 := ShipCSZ;
ShipToAddress6 := "Sales Header"."Ship-To Phone"
END;
IF ("Sales Header"."Ship-to Contact" <> '') AND ("Sales Header"."Ship-to Address 2" = '')THEN BEGIN
ShipToAddress2 := "Sales Header"."Ship-to Contact";
ShipToAddress3 := "Sales Header"."Ship-to Address";
ShipToAddress4 := ShipCSZ;
ShipToAddress5 := "Sales Header"."Ship-To Phone"
END;
IF ("Sales Header"."Ship-to Contact" = '') AND ("Sales Header"."Ship-to Address 2" <> '')THEN BEGIN
ShipToAddress2 := "Sales Header"."Ship-to Address";
ShipToAddress3 := "Sales Header"."Ship-to Address 2";
ShipToAddress4 := ShipCSZ;
ShipToAddress5 := "Sales Header"."Ship-To Phone"
END;
I was hoping I could just include an "If" statement that checked the contact for any value and if it is Null have it set the label's visible property to No/False/Invisible or whatever the proper syntax is.
Navision version is 5.0.
Any help would be greatly appreciated.
Thanks.
Try a different aproach to solve the problem. Use a text box instead of a label and bound it to a text variable.
Then, in your code you can make an if statement like this:
IF contactname = '' THEN
<your variable> := ''
else
<your variable> := 'Attn';Have a nice day,
Cosmin Poiana
Microsoft Certified Business Management Solutions Professional
do{
repair_problem();
optimize_code();
}
while (broken)0 -
Have a look at the standard address functions used in the base sales and purchase documents.There are no bugs - only undocumented features.0
-
Thank you both for the help.
I went with:
IF "Sales Header"."Bill-to Contact" = '' THEN
attn := ''
ELSE
attn := 'Attn';
as the solution and it worked like a charm.0 -
Morilen wrote:Thank you both for the help.
I went with:
IF "Sales Header"."Bill-to Contact" = '' THEN
attn := ''
ELSE
attn := 'Attn';
as the solution and it worked like a charm.Have a nice day,
Cosmin Poiana
Microsoft Certified Business Management Solutions Professional
do{
repair_problem();
optimize_code();
}
while (broken)0 -
you can also use text box property blankzero for other data type except text because text box does not show value when it is blank but in case of integer it show's zero so,for look blank text box you can also use blankzero property.
Vijay Gupta0
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions