IBM Support

HD93099: THE METHOD OF REFRESHDISPLAY IN A CATVBA DOES NOT WORK CORRECTLY

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • SCENARIO:-
    1.Create the folder with name called TEST under the F
    drive.And put the given data in TEST folder, before starting
    this
        scenario.
    2. The method of CATIA.RefreshDisplay = False
    3. Start CATIA R19SP6.
    4. Open "F:\TEST\MacroTEST.CATPart".
    5. Select "Tools/Macro/Macros" in menu bar.
           "Macros" window is displayed.
    6.  Select "MacroTEST.catvba" from "F:\TEST" folder.
    7.  Select "NoRefreshModeless" and click "Run" button.
            "Modeless" window is displayed.
    8.  Click "CommandButton1" in the "Modeless" window.
            Display is refreshed after each method call. This is
    problem
    .
    PROBLEM:- If the method of "CATIA.RefreshDisplay" sets to
    "False" in a catvba,
    Display should not be refreshed after each method call.
    The method of RefreshDisplay in a catvba should work
    correctly in 32bit and 64bit CATIA
    .
    

Local fix

  • empty
    

Problem summary

  • SCENARIO:-
    1.Create the folder with name called TEST under the F
    drive.And put the given data in TEST folder, before starting
    this
        scenario.
    2. The method of CATIA.RefreshDisplay = False
    3. Start CATIA R19SP6.
    4. Open "F:\TEST\MacroTEST.CATPart".
    5. Select "Tools/Macro/Macros" in menu bar.
           "Macros" window is displayed.
    6.  Select "MacroTEST.catvba" from "F:\TEST" folder.
    7.  Select "NoRefreshModeless" and click "Run" button.
            "Modeless" window is displayed.
    8.  Click "CommandButton1" in the "Modeless" window.
            Display is refreshed after each method call. This is
    problem
    .
    PROBLEM:- If the method of "CATIA.RefreshDisplay" sets to
    "False" in a catvba,
    Display should not be refreshed after each method call.
    The method of RefreshDisplay in a catvba should work
    correctly in 32bit and 64bit CATIA
    .
    

Problem conclusion

  • NOTE THAT THIS PROBLEM WILL ALSO BE FIXED ON V5R19 SP8.
    NOTE THAT THIS PROBLEM WILL ALSO BE FIXED ON V5R20 SP2.
    Additional Closure Information:
    Technical explanation of the defect:
    modified VBA integration in 64 bits to be coherent with 32
    bits.
    Technical explanation of the correction:
    Refresh of the display is now under control of property
    RefreshDisplay.
    Possible by-pass and/or correction limitation:
    none
    The below description is applicable for running the 32 bit
    CATIA on 64 bit OS.
    Now the behavior of Refresh Display on 64 bit  is same as on
    32 bit machine.
    A refresh of the display is done for all "late binding" calls
    whatever if the form is modal or modeless
    (but of course depending on the RefreshDisplay property
    value).
    The property RefreshDisplay allows to enable/disable the
    refresh of the display while a macro is executed but only for
    automation methods that are called using the late binding
    protocol and if this method is not a get method.
    VBScript and CATScript macros use always the late binding
    protocol but VBA uses it only for non typed variables.
    Hence to get the correct behavior of RefreshDisplay customer
    has to modified the code in VBA file.
    The modification will be the use non typed variable in VBA.
    .
    For 64 bit CATIA, the RefreshDisplay property will not work
    for Modeless window. This is PRS  refer the following
    description:-
    Modeless form in VBA.
    let's see a macro example to well understand
    Sub CATMain()
    UserForm.Show vbModeless
    End Sub
    When this VBA macro is executed in CNEXT, it returns
    immediately because the form is modeless then in CNEXT the
    macro execution is seen has ended. But the form still exists
    until the user closes it and can communicate with CNEXT. This
    can lead to some difficulties for example if the form tries
    to modify the currently opened document while the user
    modifies it interactively. This is particularly true with a
    64 bit version where VBA is an outprocess application (VBA
    only exists in a 32 bit version) that communicates with CNEXT
    using COM ; in this case some user interactions can be
    executed while the macro is also executed. In 32 bit this is
    less true because the user interactions are not taken into
    account while a VBA form is in action.
    -> This kind of form (modeless) must be used with care,
    specially in 64 bits, and modal forms must be preferred.
    So the correction will not work for the modeless window on 64
    bit CATIA.RefreshDisplay property will work as per it's value
    for Model window on 64 bit CATIA.
    

Temporary fix

Comments

APAR Information

  • APAR number

    HD93099

  • Reported component name

    CATIA V5 NT>XP

  • Reported component ID

    569151000

  • Reported release

    519

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-01-29

  • Closed date

    2010-05-14

  • Last modified date

    2010-06-10

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    CATIA V5 NT>XP

  • Fixed component ID

    569151000

Applicable component levels

  • R519 PSN SP51908

       UP10/06/10 I 1000

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSVJ2K","label":"CATIA V5"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"519","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
10 June 2010