• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. How to update Report field after ?choices list is updated...

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 144
  • Views 9154
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to update Report field after ?choices list is updated.

Purbayan
Purbayan over 3 years ago

As you can see i have my report field, i want to update my report field with new value of NPN parasite(basically instead of NPN_PAR it would show new value in a specific row) after someone edits the value of NPN parasite. My question is how can i update report field only.

What i am doing as of now is i created a list called TABLE_LIST_FORM_RESULTS which have all the data like this

(("IPRB24955" "OUT1" "Q26846" "NPN_PAR" "I0.LDO_LV_dig")
("IPRB24956" "OUT1" "Q26847" "NPN_PAR" "I0.LDO_LV_dig"))

and i pass this TABLE_LIST_FORM_RESULTS variable to ?choices keyword to display my data in report field

after editing the value for example of Q26847 to pipo and then again  i check the list by calling variable TABLE_LIST_FORM_RESULTS i see the list is updated

("IPRB24955" "OUT1" "Q26846" "NPN_PAR" "I0.LDO_LV_dig")
("IPRB24956" "OUT1" "Q26847" "pipo" "I0.LDO_LV_dig")

but but my report field still remain same. 

it usually shows this error:

*WARNING* hiDeleteForm: Cannot delete a form that is mapped or from within the form's callback (NPN_parasite_manager)
*WARNING* hiCreateLayoutForm: Could not delete previously created form NPN_parasite_manager

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 3 years ago

    You wouldn't normally achieve this by recreating the form - because to do that you'd have to cancel the current form and recreate it - otherwise you get exactly the error you are getting - it needs to be able to delete the form before recreating it, and you can't delete a form that is currently mapped (i.e. displayed on the screen).

    Instead, you'd normally update the ->choices of the report field. Here's a silly made-up example:

    procedure( MYreportField()
    let((reportField)
        reportField = hiCreateReportField(
          ?name 'reportField
          ?title "Report Field"
          ?selectMode 'single
          ?headers '(("Property" 120 'left)
    	  ("Operator" 70 'left)
    	  ("Value" 120 'left))
          ?choices '(("test" "==" "argh")
    	  ("test2" ">" "argh")
    	  ("test3" "<" "test4"))
    ;      ?callback 'MYreportCB
        )
    
        hiDisplayForm(
    	hiCreateAppForm(
    	   ?name 'MYreportForm
    	   ?fields list(list(reportField 0:0 500:400 200))
    	   )
    	)
        )
    )
    
    ; example of adding a new value onto the beginning of the list
    ; of choices
    procedure(MYchangeChoices()
      MYreportForm->reportField->choices=
          cons(list("fred" "!=" "jim") 
    	  MYreportForm->reportField->choices)
    )

    Call MYreportField() to create and display the form, and then MYchangeChoices() to add another row on the beginning.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 3 years ago

    You wouldn't normally achieve this by recreating the form - because to do that you'd have to cancel the current form and recreate it - otherwise you get exactly the error you are getting - it needs to be able to delete the form before recreating it, and you can't delete a form that is currently mapped (i.e. displayed on the screen).

    Instead, you'd normally update the ->choices of the report field. Here's a silly made-up example:

    procedure( MYreportField()
    let((reportField)
        reportField = hiCreateReportField(
          ?name 'reportField
          ?title "Report Field"
          ?selectMode 'single
          ?headers '(("Property" 120 'left)
    	  ("Operator" 70 'left)
    	  ("Value" 120 'left))
          ?choices '(("test" "==" "argh")
    	  ("test2" ">" "argh")
    	  ("test3" "<" "test4"))
    ;      ?callback 'MYreportCB
        )
    
        hiDisplayForm(
    	hiCreateAppForm(
    	   ?name 'MYreportForm
    	   ?fields list(list(reportField 0:0 500:400 200))
    	   )
    	)
        )
    )
    
    ; example of adding a new value onto the beginning of the list
    ; of choices
    procedure(MYchangeChoices()
      MYreportForm->reportField->choices=
          cons(list("fred" "!=" "jim") 
    	  MYreportForm->reportField->choices)
    )

    Call MYreportField() to create and display the form, and then MYchangeChoices() to add another row on the beginning.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Purbayan
    Purbayan over 3 years ago in reply to Andrew Beckett

    Thank you Andrew for such a great example, it really helped me a lot.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information