Dynamically Set Visible in a report

MorilenMorilen 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.

Comments

  • jolly_manjolly_man Member Posts: 12
    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)
  • bbrownbbrown Member Posts: 3,268
    Have a look at the standard address functions used in the base sales and purchase documents.
    There are no bugs - only undocumented features.
  • MorilenMorilen Member Posts: 30
    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.

    :D
  • jolly_manjolly_man Member Posts: 12
    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.

    :D
    =D> you're welcome
    Have a nice day,
    Cosmin Poiana
    Microsoft Certified Business Management Solutions Professional


    do{
    repair_problem();
    optimize_code();
    }
    while (broken)
  • vijay_gvijay_g Member Posts: 884
    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 Gupta
Sign In or Register to comment.