找回密码
 立即注册

QQ登录

只需一步,快速开始

knight9

注册会员

7

主题

17

帖子

88

积分

注册会员

积分
88
knight9
注册会员   /  发表于:2020-12-24 15:20  /   查看:2576  /  回复:5

spread版本:13.0.0
下拉题因为选项过多,自定义了一个单元格类型,可以弹出窗口进行选择,该单元格的值是对象类型,页面上显示正常,打印时单元格上显示为[object Object]请问如何让打印也正常显示
效果图:
image.png934680786.png

代码如下:
function create_select_window() { }
create_select_window.prototype = new GC.Spread.Sheets.CellTypes.Base();
create_select_window.prototype.createEditorElement = function (cell) {
      //弹出窗口
};
create_select_window.prototype.paint = function (ctx, value, x, y, w, h, style, options) {
     // value 是一个object类型,{code: "...", name: "..."}
     GC.Spread.Sheets.CellTypes.Base.prototype.paint.apply(this, [ctx, value.code, x, y, w, h, style, options]);
};
create_select_window.prototype.getEditorValue = function (editorContext) {
     // 返回弹出窗口选择的对象
     return {code: "...", name: "..."};
};
let myCellType = new create_select_window();





5 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-12-24 15:47:54
沙发
你好,您可以参考这个Demo,演示了如何打印出自定义单元格类型,

您可以在自定义单元格类型中利用canvas绘制您的单元格,然后打印出来。

自定义单元格打印.zip

3.18 MB, 下载次数: 50

回复 使用道具 举报
knight9
注册会员   /  发表于:2020-12-24 16:12:34
板凳
不是这种情况,我的value是一个对象,打印时触发了paint中这句:
GC.Spread.Sheets.CellTypes.Base.prototype.paint.apply(this, [ctx, value.code, x, y, w, h, style, options]);
这句传进去的是value.code也是字符串,怎么到了打印预览里就变成了[object Object]?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-12-24 16:24:03
地板
knight9 发表于 2020-12-24 16:12
不是这种情况,我的value是一个对象,打印时触发了paint中这句:
GC.Spread.Sheets.CellTypes.Base.protot ...

请问该单元格在表单中显示是什么样的呢?

为了有效提高沟通效率,建议您提供一个直接能够复现问题的demo
回复 使用道具 举报
knight9
注册会员   /  发表于:2020-12-24 17:04:44
5#
感谢,解决了,问题复现.zip可以查看打印出[object Object]的情况,只要改成77行的写法即可正常打印

总结:
自定义单元格类型的构造函数中,需要指定this.typeName = 构造函数名
并且该构造函数必须在全局能访问,我的问题出在没有指定typename且该函数不能在全局访问。

问题复现.zip

5.8 MB, 下载次数: 36

评分

参与人数 1金币 +66 收起 理由
Derrick.Jiao + 66 感谢您分享您的方法

查看全部评分

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-12-24 17:15:27
6#
knight9 发表于 2020-12-24 17:04
感谢,解决了,问题复现.zip可以查看打印出[object Object]的情况,只要改成77行的写法即可正常打印

总 ...

不用客气,解决了就好,那这边先给您结贴了,有新问题欢迎继续交流~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部