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.
0
Comments
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';
Cosmin Poiana
Microsoft Certified Business Management Solutions Professional
do{
repair_problem();
optimize_code();
}
while (broken)
I went with:
IF "Sales Header"."Bill-to Contact" = '' THEN
attn := ''
ELSE
attn := 'Attn';
as the solution and it worked like a charm.
Cosmin Poiana
Microsoft Certified Business Management Solutions Professional
do{
repair_problem();
optimize_code();
}
while (broken)
Vijay Gupta