找回密码
 立即注册

QQ登录

只需一步,快速开始

fqelven

金牌服务用户

42

主题

166

帖子

574

积分

金牌服务用户

积分
574
fqelven
金牌服务用户   /  发表于:2022-11-11 08:18  /   查看:3113  /  回复:16
1金币
数据保存问题:在“组件1”的Save按钮中会先调用服务端命令保存O对象,这是主表记录,然后返回新的ID,再调用另一个服务端命令保存KR对象,这是从表。如果新建一个O,也不添加任何KR(KR是子表),直接点Save,理论上KRTable应该是空的,可是不知道为什么会把O1对应四条KR记录传到后台,就会莫名其妙新增四条KR记录在新建的O下面。


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

最佳答案

查看完整内容

大佬,这个现象已经确认是活字格的一个小问题了,和这个帖子是同一个问题。 [F-11627]8.0update组件应用存在的一些问题 https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=153819&fromuid=63496 (出处: 葡萄城产品技术社区) 开发也给了咱们一个临时的解决问题的方案: 在页面加载时命令中,执行这段JS:

16 个回复

倒序浏览
最佳答案
最佳答案
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-11-11 08:18:04
来自 15#
大佬,这个现象已经确认是活字格的一个小问题了,和这个帖子是同一个问题。
[F-11627]8.0update组件应用存在的一些问题
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=153819&fromuid=63496
(出处: 葡萄城产品技术社区)

开发也给了咱们一个临时的解决问题的方案:
在页面加载时命令中,执行这段JS:
  1. Forguncy.ForguncyPage.prototype.getListView = function (name, includeSubPage) {
  2.             var _a;
  3.             if (includeSubPage === void 0) { includeSubPage = true; }
  4.             var currentRunTimePageName = (_a = Forguncy.ForguncyData.commandExcutor.getCommandExecuteInfo()) === null || _a === void 0 ? void 0 : _a.runTimePageName;
  5.             if (currentRunTimePageName) {
  6.                 var listview = this._elements.getListView(name, [currentRunTimePageName]);
  7.                 if (listview) {
  8.                     return listview;
  9.                 }
  10.             }
  11.             return this._elements.getListView(name, this._getRunTimePageNames(includeSubPage));
  12.         };
复制代码

本帖子中包含更多资源

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

x
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-11-11 11:53:35
2#
大佬,你这逻辑大大的有问题鸭~

o和kr为什么要分两个命令执行呢?
并且还重新加载了KR的数据,那编辑的数据就全丢了。
在添加K的时候,是可以直接获取到ID的。


我们有一个付费进阶培训的课程,里面会讲相关的知识。大佬有兴趣的话,可以了解一下。

本帖子中包含更多资源

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

x
回复 使用道具 举报
fqelven
金牌服务用户   /  发表于:2022-11-11 14:54:24
3#
重新加载数据是当时做测试的一个动作,可以删掉,也是一样的错误结果。
或者你直接在我的Demo上改一下,到底应该怎么做
回复 使用道具 举报
fqelven
金牌服务用户   /  发表于:2022-11-11 14:57:40
4#
其实一开始我是把O和KR的保存放到一个服务端命令的,但是发现他会莫名奇妙的把另一个O(O1)下的KR传到服务端命令中去,后面才想着是不是分开两个服务端命令会正常,发现也是一样的问题。
你可以帮忙在这个Demo上改一下,看能不能达到预想的效果。谢谢了。
回复 使用道具 举报
fqelven
金牌服务用户   /  发表于:2022-11-11 15:54:24
5#
这个Demo我又改了一下,只用一个服务端命令同时保存主从表记录,仍然会出现子表数据不对的情况,请帮忙再看一下。谢谢。

本帖子中包含更多资源

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

x
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-11-11 16:12:22
6#
大佬,你这样,你先看看这个帖子和公开课。
数组类型 - 活字格V8帮助手册 - 葡萄城产品文档中心 (grapecity.com.cn)



【已结束】活字格6.0新功能演练-服务端命令
https://gcdn.grapecity.com.cn/fo ... 4&fromuid=63496
(出处: 葡萄城产品技术社区)



回复 使用道具 举报
fqelven
金牌服务用户   /  发表于:2022-11-11 16:29:16
7#
谢谢,看过这个了。能否请你再这个Demo上试一下,因为我确实传过去的是一个空的Table,可是从浏览器数出来看传过去的参数变成了几条其他O所属的KR,就是关于这一点有点疑问。或者是我哪里设置不对。
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-11-11 17:47:53
8#
你说说看复现步骤,怎么操作?
我试了一下直接点保存,是直接走了else的逻辑,



至少你这个命令只能在新增的时候使用,修改的时候都不行。

本帖子中包含更多资源

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

x
回复 使用道具 举报
fqelven
金牌服务用户   /  发表于:2022-11-11 18:21:46
9#
我重新描述一下复现的步骤如下:

运行此回复中的附件工程,页面出现后直接点击最上方的"Add Objective",然后滚动到下面,发现新增了一条空的O。


随便输入一个O的Title,比如"O6",点O6下面的Save按钮。


此时期望的结果应该是直接新增这条O6到数据库(Objective表的结果是正常的)。
因为这条新增的O6我并没有添加任何KR,理论上KR表应该没有O6所属的KR被新增进去。而实际执行结果是KR表也会被新增四条KR进去,OID就是O6的ID,这一点我就有点疑惑了,这4条KR是哪里来的?

本帖子中包含更多资源

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

x
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部