请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

骑士归来

注册会员

18

主题

47

帖子

181

积分

注册会员

积分
181
骑士归来
注册会员   /  发表于:2023-11-14 17:36  /   查看:96  /  回复:3
30金币
我现在有一个详情表,选择编码后,会带出来产品属性,当产品属性为标准品的时候


根据编码带出来的

这三个不能编辑。可以用列的序号做到这个我知道。但是如果启用了列选项,我把某几列隐藏了就不行了。因此能否通过列名来做判定呢?
这是之前写的比较蠢的代码,是不对的这样
  1. var p = Forguncy.Page;
  2. var listview = p.getListView("表格1");
  3. var activeSheet = listview.getControl().getActiveSheet();
  4. activeSheet.bind(GC.Spread.Sheets.Events.EditStarting, function (sender, args) {

  5.     if (listview.getRowCount() <= args.row) {
  6.         return;
  7.     }
  8.     var v = listview.getValue(args.row, "产品属性");

  9.     if (args.source.col === "零售价" && v == 3102) {
  10.         args.cancel = true;
  11.         return;
  12.     }
  13.     if (args.source.col ==="名称" && v == 3102) {
  14.         args.cancel = true;
  15.         return;
  16.     }
  17.     if (args.source.col ==="规格" && v == 3102) {
  18.         args.cancel = true;
  19.         return;
  20.     }
  21.     if (args.source.col ==="颜色" && v == 3102) {
  22.         args.cancel = true;
  23.         return;
  24.     }
  25.     if (args.source.col ==="定制批号") {
  26.         args.cancel = true;
  27.         return;
  28.     }

  29. });
复制代码
活字格提供获取列名的方法,getMergedColumnInfos(),不知道如何使用
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

Forguncy.Page.getListView(name).getValue(rowIndex, column); 表格的getValue函数可以通过列名取值。大佬可以尝试调整下代码。

3 个回复

倒序浏览
骑士归来
注册会员   /  发表于:2023-11-22 11:17:13
来自 4#
  1. var p = Forguncy.Page;
  2. var listview = p.getListView("表格1");
  3. var activeSheet = listview.getControl().getActiveSheet();

  4. activeSheet.bind(GC.Spread.Sheets.Events.EditStarting, function (sender, args) {
  5. var colName = args.sheet.getValue(0, args.sheet.getActiveColumnIndex(), GC.Spread.Sheets.SheetArea.colHeader);
  6.     if (listview.getRowCount() <= args.row) {
  7.         return;
  8.     }
  9.     var v = listview.getValue(args.row, "产品属性");

  10.     if (colName == "名称" && v == 3102) {
  11.         args.cancel = true;
  12.         return;
  13.     }
  14.     if (colName == "规格" && v == 3102) {
  15.         args.cancel = true;
  16.         return;
  17.     }
  18.     if (colName == "颜色" && v == 3102) {
  19.         args.cancel = true;
  20.         return;
  21.     }
  22.     if (colName == "零售价" && v == 3102) {
  23.         args.cancel = true;
  24.         return;
  25.     }
  26.     if (colName == "定制批号") {
  27.         args.cancel = true;
  28.         return;
  29.     }

  30. });
复制代码

评分

参与人数 1金币 +66 收起 理由
Joe.xu + 66 很给力!

查看全部评分

回复 使用道具 举报
最佳答案
最佳答案
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2023-11-14 17:36:39
来自 2#
Forguncy.Page.getListView(name).getValue(rowIndex, column);
表格的getValue函数可以通过列名取值。大佬可以尝试调整下代码。

本帖子中包含更多资源

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

x
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2023-11-22 14:14:54
5#
感谢楼主的分享,我这边将您置顶了哈~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部