• 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 place report field and string field in same form...

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 143
  • Views 9827
  • 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 place report field and string field in same form.

Purbayan
Purbayan over 3 years ago

How can i create a Window like this 

Below results i want to have report field but somehow  i am not able to place report field and string field in same form, whenever i try to place report field and string field in same form only the report field is being executed.

Thank you in advance if anyone can help me with the code. Rest callback functions i will design myself.

  • Cancel
  • AurelBuche
    AurelBuche over 3 years ago

    Hi,

    Are you using layout forms? They are based on Qt and make it very simple to achieve this kind of result

    Are you using different field names? If not make sure all your fields have a unique name so they can be referenced afterwards. If two fields have the same name only one will appear on the GUI, this might be the source of your problem

    (I don't think this is documented but you should definitely avoid some field names: 'name or 'type at least !

    Otherwise you will encounter tricky errors...

    I advise you to use prefixed names using underscores, this way you are sure to never raise this kind of error)

    Here is a code snippet doing something like what you ask:

    (hiDisplayForm
      (hiCreateLayoutForm 'my_custom_form "Custom Form"
        (hiCreateFormLayout 'main_layout ?items (list
            (hiCreateStringField ?name 'pin_name ?prompt "Pin Name\n(Full Path)")
            (hiCreateReportField ?name 'pin_results ?title "Results")
            (hiCreateMLTextField ?name 'pin_value ?prompt "Value")
            ));main_layout
        ));display_form

    Hope this helps

    Cheers,

    Aurélien

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Purbayan
    Purbayan over 3 years ago in reply to AurelBuche

    Actually this is not what i want, I just wat to create a window just like SKILL API FINDER and in the list i want to list all my pins with various other information.
    hiCreateAppForm is throwing error

    ERROR IS hiCreateAppForm: Item "(reportStruct@0x28c6d5f0)" in this list of items is not a form field or field symbol and will be ignored: (stringStruct@0x28c6d5c0 stringStruct@0x28c6d5d8 buttonStruct@0x28c6d638 separatorStruct@0x28c6d608 (reportStruct@0x28c6d5f0) stringStruct@0x28c6d620)

    The highlighted parts are creating problem

    Here is my code

    InternalNetname= hiCreateStringField(
    ?name 'InternalNetname
    ?prompt "Internal net name"
    ?defValue "Net_name"
    ?editable t
    )


    TargetPinname= hiCreateStringField(
    ?name 'TargetPinname
    ?prompt "Target Pin name"
    ?defValue "PIN"
    ?editable t
    )


    ListNetPins=hiCreateReportField(
    ?name 'ListNetPins
    ?title "List of Netnames and Pin names"
    ?titleAlignment 'left
    ?headers list(list("Net name" 200 'center )
    list("Pin name" 100 'center )
    list("NPN parasite model" 200 'center ))
    ?choices list(
    list(1 "I0" "INM" "NPN_PAR")
    list(2 "I0.I98" "INM" "NPN_PAR")
    list(3 "I1" "INP" "NPN_PAR")
    ?selectMode ’single
    ))

    sep1=hiCreateSeparatorField(?name 'sep1)

    ResultField=hiCreateStringField(
    ?name 'ResultField
    ?prompt "Result"
    )
    Go=hiCreateButton(
    ?name 'Go
    ?buttonText "GO"
    )

    form=hiCreateAppForm(
    ?name 'TrFileForm
    ?formTitle "NPN Parasite manager"
    ?fields list(InternalNetname TargetPinname Go sep1 list(ListNetPins t) ResultField)
    ?help ""
    ?unmapAfterCB t
    ?initialSize t
    )


    hiDisplayForm(form)

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

    Why are you putting list(ListNetPins t) in the field list? That's completely invalid and I've no idea why you think that would work.

    If you just use the field directly:

    ?fields list(InternalNetname TargetPinname Go sep1 ListNetPins ResultField)

    it tells you:

    *Error* hiCreateAppForm: form TrFileForm, field ListNetPins: report field invalid in 1D forms

    So you either need to specify each field as a list with coordinate information (see the 2D form documentation), or use a layout form as Aurélien suggested (which is far easier). I don't really see why what he suggested is "not what you want". It sounds exactly like what you want!

    Andrew

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

    Thank you Andrew and Aurelien for the suggestions and clearing my doubt and i am able to implement my code. :)

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • AurelBuche
    AurelBuche over 3 years ago in reply to Purbayan

    If you want to create a window (like the SKILL Finder), you can use:

    win=(hiOpenWindow ?type "form" ?form form)

    Instead of hiDisplayForm(form) but I don't believe you need this as it is more complicated than a standard form.

    The advantages it gives you is that you can then set the window icon using hiSetWindowIcon and/or dock toolbars and other forms in it.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Purbayan
    Purbayan over 3 years ago in reply to AurelBuche

    Thank you for the suggestions.

    Also thank you on the code It helped me a lot Smiley.

    • 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