本帖最后由 IT-Weaver 于 2021-12-27 15:40 编辑
在上图中,第二列是celltype的 paint 方法根据注册celltype时传递的一个数据源,动态映射的。
- CZElementCellType.prototype.paint = function (ctx, value, x, y, w, h, style, options) {
- if (value) {
- if (value == "0") {
- GC.Spread.Sheets.CellTypes.Text.prototype.paint.apply(this, [ctx, "", x, y, w, h, style, options]);
- return;
- }
- let findvalue = this.CSList.find(t => t.dispCode == value || t.guid == value);
- if (findvalue != null && findvalue != 'undefined') {
- if (this.ShowStyle == 1) {
- GC.Spread.Sheets.CellTypes.Text.prototype.paint.apply(this, [ctx, findvalue.dispCode, x, y, w, h, style, options]);
- } else if (this.ShowStyle == 2) {
- GC.Spread.Sheets.CellTypes.Text.prototype.paint.apply(this, [ctx, findvalue.dispName, x, y, w, h, style, options]);
- } else {
- GC.Spread.Sheets.CellTypes.Text.prototype.paint.apply(this, [ctx, '[' + findvalue.dispCode + ']' + findvalue.dispName, x, y, w, h, style, options]);
- }
- options.sheet.getCell(options.row, options.col,).tag(findvalue.guid);
- } else {
- GC.Spread.Sheets.CellTypes.Text.prototype.paint.apply(this, [ctx, value, x, y, w, h, style, options]);
- }
- } else {
- if (value == "0") {
- GC.Spread.Sheets.CellTypes.Text.prototype.paint.apply(this, [ctx, "", x, y, w, h, style, options]);
- } else {
- GC.Spread.Sheets.CellTypes.Text.prototype.paint.apply(this, [ctx, value, x, y, w, h, style, options]);
- }
- }
- };
复制代码
这是映射的那段代码。
但是打印和导出时,发现只打印出来了列的原本的值,也就是业务的流水号,并没有打印出来他的显示值,请问我应该如何设置,才可以让打印时,获取的是显示值,而不是他的原本value。还是说我必须把cell的value改了才可以正常打印出来? 按照当时你们产品的描述,v12的打印和导出应该是既见既所得啊。
|