NX二次开发-自动另起单元格填写表格
适用版本:NX6以上版本
在NX表格中填写文本内容是常有的需求,比如工艺开发中对工艺卡、工序卡的表格填写工艺内容。而在填写内容时,可能存在工艺内容的信息量远远大于表格单元格可容纳量的情况,从用户角度考虑,希望程序能自动换行、调整字体或是直接另起单元格填写。前两种NX自带的功能可以快速实现,但另起单元格的人工操作较为复杂,因此本文将介绍如何快速实现自动另起单元格填写表格。
这个需求最简单的实现方式,就是事先确定单元格可以填写的字符串数量,从而在填写过程中将填写内容分割成多段填入其中。但这种方法存在较多问题,比如NX中每个字符在显示时的字符宽度是不同的,假设某一单元格的字符宽度都很小,这就会导致该单元格远远没有填满的情况。
为了实时获取单元格的填写状况,从UF函数中找到了获取填写结果的函数“AskEvaluatedCellText”。有了该方法后,在填写单元格时就可以逐步添加字符数量,并实时监控显示效果,确保填写的内容量没有超出单元格可容纳量。
但通过测试,发现“AskEvaluatedCellText”获取出的文本信息对中文存在乱码现象。运行如图1所示的程序,输出结果如图2所示。
图1
图2
为了绕开识别乱码的问题,我们采用其他方式识别输出结果。输出结果其实与单元格的合适方法设置息息相关,如图3所示。
图3
情况1:单元格的适合方法全部没有勾选,那么当填写的内容达到一定量时,输出结果就会全是“#”,如图4所示,那么只需要在出现这种结果时,把填写的内容减少一个字符即可实现“刚刚好填满”的效果,代码如图5所示。
图4
图5
情况2:单元格的适合方法只勾选“换行”和“自动调整行的大小”,那么当填写的内容达到一定量时,就会自动换行,如果仍然希望自动另起单元格填写,则可以判断输出结果是否包行换行符“n”,如图6所示。
图6
情况3:单元格的适合方法只勾选“自动调整文本的大小”,那么当填写的内容达到一定量时,就无论如何再也填写不进去新的内容,因此判断填写新的信息与之前的信息是否一致。若一致,则认为要另起单元格,如图7所示。

图7
免责声明:
1、本站所有资源文章出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
2、本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户擦亮眼睛自行鉴别,做一个有主见和判断力的用户。
3、本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
4、侵权违法和不良信息举报 举报邮箱:cnddit@qq.com
还没有评论,来说两句吧...