在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1195|回复: 5

[求助] 关于hiCreateAppForm的问题求助

[复制链接]
发表于 2023-6-6 16:47:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 dilyyao 于 2023-6-6 16:53 编辑

我写了个小脚本,希望能把转换工艺的脚本用menu来实现,目前能弹出form,但是form却没法关联程序 replace_dev(),请帮忙看看哪里有问题,本人才刚学skill,  没人指导,自己摸索的:
            proceduce( firstformDefineFields()
                             myWorkLib=hiCreateStringField(
                             ?name 'myWorkLib
                             ?prompt "my work Lib"
                             ?value  " “
                             ?callback  "replace_dev(myWorkLib source_lib source_dev target_lib target_dev)"
                             ?editable  t
                             )
                            source_lib=hiCreateStringField(
                             ?name 'source_lib
                             ?prompt "source lib"
                             ?value  " “
                             ?callback  "replace_dev(myWorkLib source_lib source_dev target_lib target_dev)"
                             ?editable  t
                             )
                            source_dev=hiCreateStringField(
                             ?name 'source_dev
                             ?prompt "source cell"
                             ?value  " “
                             ?callback  "replace_dev(myWorkLib source_lib source_dev target_lib target_dev)"
                             ?editable  t
                             )
                            target_lib=hiCreateStringField(
                             ?name 'target_lib
                             ?prompt "target lib"
                             ?value  " “
                             ?callback  "replace_dev(myWorkLib source_lib source_dev target_lib target_dev)"
                             ?editable  t
                             )
                            target_dev=hiCreateStringField(
                             ?name 'target_dev
                             ?prompt "target cell"
                             ?value  " “
                             ?callback  "replace_dev(myWorkLib source_lib source_dev target_lib target_dev)"
                             ?editable  t
                             )
                          list( myWorkLib source_lib source_dev target_lib target_dev )
                     )
         proceduce( myreplacedevform()
                          replacedevForm = hiCreateAppForm(
                            ?name 'replacedevForm
                            ?fields firstformDefineFields()
                            ?formTitle "replace dev Form"
                            ?buttonlayout 'OKCancelApply
                            ?callback  "replace_dev(myWorkLib source_lib source_dev target_lib target_dev)"   
                               )
                        replacedevForm     
                       )
          proceduce(  myreplacedevformdisplayform()
                             myreplacedevform()      
                             hiDisplayForm( 'replacedevForm )
                          )
          procedure(replace_dev(myWorkLib source_lib source_dev target_lib target_dev)
let((cell_list sch_cv targetId w l)
cell_list=ddGetObj(myWorkLib)~>cells~>name
foreach(cell cell_list
   sch_cv = dbOpenCellViewByType(myWorkLlib cell "schematic" "schematic" "a")
   if(sch_cv then
      foreach(inst sch_cv~>instances
        if(inst~>cellName == source_dev && inst~>libName == source_lib then
          targetId=dbOpenCellViewByType(target_lib target_dev "symbol"  ""  "r")
          if(targetId then
             w=inst~>w
             l=inst~>l
             inst~>master=targetId
             inst~>w=w
             ;;need trigger callback for "w"
             inst~>l=l
            ;;need trigger callback  for "l“
           cdfgData = cdfGetInstCDF(instance)       ;;取CDF数据
           (foreach pName list("fw" "l" "m")            ;;要触发callBack的参数列表
            param = cdfFindParamByName(cdfgData pName)
           (when param~>callback
               evalstring(param~>callback)       ;;挨个触发
    )      
)
            dbClose(targetId)
          );if
        );if
        );foreach
     dbSave(sch_cv)
     dbClose(sch_cv)
   );if
);foreach
);let
);procedure
       弹出窗口如下图:点击OK未能运行 replace_dev(myWorkLib source_lib source_dev target_lib target_dev) ,求指教!!!谢谢

 楼主| 发表于 2023-6-6 17:09:04 | 显示全部楼层
弹出窗口如下图:点击OK未能运行 replace_dev(myWorkLib source_lib source_dev target_lib target_dev) ,求指教!!!谢谢
                  
微信图片_20230606170325.png
发表于 2023-6-6 17:14:07 | 显示全部楼层
本帖最后由 着着着火了 于 2023-6-6 17:42 编辑

replace_dev(myWorkLib source_lib source_dev target_lib target_dev)里的参数都需要你自己从field里取出来的,不是名字对上了就行,而且这些field好像没什么必要写callback
发表于 2023-6-6 19:38:46 | 显示全部楼层
你应该写一个比如button的Field,把button的callback写成替换device的procedure,这些stringFileld是不需要callback的,然后要把各个stringField的值通过formID->fieldID->Value的方式抓出来赋值给procedure对应的参数,点击button之后就会触发你的procedure
 楼主| 发表于 2023-6-7 10:21:03 | 显示全部楼层


freshworker 发表于 2023-6-6 19:38
你应该写一个比如button的Field,把button的callback写成替换device的procedure,这些stringFileld是不需要 ...


谢谢回复,确实是因为没有赋值给stringfield引起的,只需要在AppForm的callback里面把stringfield->value就可以了。
发表于 2023-12-21 12:29:25 | 显示全部楼层
Any final code ??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-2 07:35 , Processed in 0.022832 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表