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

QQ登录

只需一步,快速开始

guoqp

银牌会员

250

主题

941

帖子

2293

积分

银牌会员

积分
2293

时代开发者征文活动

guoqp
银牌会员   /  发表于:2025-1-15 13:44  /   查看:89  /  回复:4

因为个人电脑环境可能有点什么问题,不能设置资源权限,我把出问题的过程描述一下,看你们能否复现。

1、页面设置为所有人可访问
2、表中字段设为用户类型
3、在查询条件或者更新值之类填入%CurrentUser.UserName%
然后再运行则会直接出这个错,但我尝试将%CurrentUser.UserName%改为%CurrentUser%后问题解决

为了找到并解决这个问题,我反复导入测试,花了三天时间才找到这个问题,太坑了





## Overview
- Version: 10.0.103.0
- Exception: `Newtonsoft.Json.JsonSerializationException`
- DateTime: 2025/1/15 13:26:09
- Email: guoqp@scchenguang.cn
- Tags: #CN

## Exception
```json
{
  "ClassName": "Newtonsoft.Json.JsonSerializationException",
  "Message": "Error getting value from 'Row' on 'Forguncy.Common.FormulaCellLocation'.",
  "Data": {
    "$type": "System.Collections.ListDictionaryInternal, System.Private.CoreLib",
    "System.Object": null
  },
  "InnerException": {
    "$type": "GrapeCity.CalcEngine.CalcParseException, GrapeCity.WPF.CalcEngine",
    "Message": "The formula you typed contains an invalid token: '%'.
Error offset:0",
    "ErrorOffset": 0,
    "Data": {
      "$type": "System.Collections.ListDictionaryInternal, System.Private.CoreLib"
    },
    "InnerException": null,
    "HelpLink": null,
    "Source": "GrapeCity.WPF.CalcEngine",
    "HResult": -2146233088,
    "StackTrace": "   at GrapeCity.CalcEngine.CalcParser.ThrowParserError(FormulaToken token)
   at GrapeCity.CalcEngine.CalcParser.ProcessTokens(FormulaTokenList tokens, Boolean throwError)
   at GrapeCity.CalcEngine.CalcParser.ParseToTokens(String formula, Boolean throwError)
   at GrapeCity.CalcEngine.CalcParser.Parse(String text, CalcParserContext context)
   at jx.GetCellExpress(FormulaReferObject formulaReferObject)
   at Forguncy.Common.FormulaCellLocation.get_Row()
   at lambda_method5748(Closure , Object )
   at Newtonsoft.Json.Serialization.ExpressionValueProvider.GetValue(Object target)"
  },
  "HelpURL": null,
  "StackTraceString": "   at Newtonsoft.Json.Serialization.ExpressionValueProvider.GetValue(Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CalculatePropertyValues(JsonWriter writer, Object value, JsonContainerContract contract, JsonProperty member, JsonProperty property, JsonContract& memberContract, Object& memberValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
   at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)
   at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, JsonSerializer jsonSerializer)
   at my.c.cmh()
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location ---
   at my.clm(Worksheet a, mx b, Int32 c)
   at my.clf(PublishType a, TaskInfo b, PublishSettingsViewModel c)
   at my.GenerateAllPagesAsync(PublishType publishType, TaskInfo taskInfo, PublishSettingsViewModel settings)
   at my.GenerateAllPagesAsync(PublishType publishType, TaskInfo taskInfo, PublishSettingsViewModel settings)
   at Forguncy.Views.RibbonView.BrowserHomeExecutedWithProgressbarAsync(IBrowser browser, TaskInfo taskInfo, Boolean debug)
   at Forguncy.Views.RibbonView.<>c__DisplayClass402_0.<<BrowserHomeExecutedWithProgressbarAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at WPFBase.Common.TaskInfoHelper.CreateAThreadCrossedAutoClosedWindowAsync(TaskInfo taskInfo, Window owner, Func`1 action)
   at Forguncy.Views.RibbonView.BrowserHomeExecutedWithProgressbarAsync(IBrowser browser, TaskInfo taskInfo, Boolean debug)
   at Forguncy.Views.RibbonView.eb.ExecuteCommandAsync(DesignerCommand command, Object[] parameters)
   at Forguncy.Views.ObjectViews.PageItemViewModel.ViewInBrowser()
   at Forguncy.Views.ObjectViews.PageItemContextMenu.ViewInBrowser_Click(Object sender, RoutedEventArgs e)
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)",
  "RemoteStackTraceString": null,
  "RemoteStackIndex": 0,
  "ExceptionMethod": null,
  "HResult": -2146233088,
  "Source": "Newtonsoft.Json",
  "WatsonBuckets": null
}
```

## EventLog
- 13:26:07 `MouseL`:ObjectViewMenuItem:在浏览器中查看->在浏览器中查看
- 13:26:05 `MouseR`:Window:设计院数据管理系统AD域认证版1.6.fgcc - 活字格 (10.0.103.0)->PagesObjectView->MyTreeViewItem:个人->MyTreeViewItem:URL
- 13:26:04 `MouseL`:Window:命令窗口->Button:确定->确定
- 13:26:02 `MouseL`:Window:命令窗口->CheckBox:showConfirm->弹出确认对话框
- 13:25:59 `MouseL`:Window:命令窗口->Image:/FormulaSelector.png
- 13:25:57 `MouseL`:Window:设计院数据管理系统AD域认证版1.6.fgcc - 活字格 (10.0.103.0)->Spread[21,34]:R1 ,C5 ,Page=URL
- 13:25:56 `MouseL`:Window:命令窗口->Image:/FormulaSelector.png
- 13:25:54 `MouseL`:Window:命令窗口->新建条件
- 13:25:52 `MouseL`:Window:快速选择单元格->Button:确定->确定
- 13:25:49 `MouseL`:Window:设计院数据管理系统AD域认证版1.6.fgcc - 活字格 (10.0.103.0)->Spread[21,34]:R5 ,C6 ,Page=URL,CellType=Forguncy.TextCellType
- 13:25:48 `MouseL`:Window:设计院数据管理系统AD域认证版1.6.fgcc - 活字格 (10.0.103.0)->Spread[21,34]:R3 ,C7 ,Page=URL,CellType=Forguncy.TextCellType
- 13:25:47 `MouseL`:Window:快速选择单元格->TextBox:
- 13:25:45 `MouseL`:Window:设计院数据管理系统AD域认证版1.6.fgcc - 活字格 (10.0.103.0)->Spread[21,34]:R2 ,C7 ,Page=URL,CellType=Forguncy.TextCellType
- 13:25:45 `MouseL`:Window:设计院数据管理系统AD域认证版1.6.fgcc - 活字格 (10.0.103.0)->Spread:FormulaSelection,ActiveSheet=URL
- 13:25:44 `MouseL`:Window:快速选择单元格->TextBox:
- 13:25:42 `MouseL`:Window:设计院数据管理系统AD域认证版1.6.fgcc - 活字格 (10.0.103.0)->Spread[21,34]:R3 ,C8 ,Page=URL,CellType=Forguncy.TextCellType
- 13:25:38 `MouseL`:Window:快速选择单元格->TextBox:
- 13:25:37 `MouseL`:Window:设计院数据管理系统AD域认证版1.6.fgcc - 活字格 (10.0.103.0)->Spread[21,34]:R2 ,C8 ,Page=URL,CellType=Forguncy.TextCellType
- 13:25:35 `MouseL`:Window:快速选择单元格->TextBox:
- 13:25:34 `MouseL`:Window:命令窗口->Image:/IntelligentIcon.png
- 13:25:32 `MouseL`:Window:命令窗口->DropdownListBoxItem:%CurrentUser.UserName%->%CurrentUser.UserName%
- 13:25:31 `MouseL`:Window:命令窗口
- 13:25:29 `MouseL`:Window:命令窗口->添加字段
- 13:25:28 `MouseL`:Window:命令窗口->添加字段
- 13:25:28 `MouseL`:Window:命令窗口->添加字段
- 13:25:28 `MouseL`:Window:命令窗口->添加字段
- 13:25:27 `MouseL`:Window:命令窗口->RadioButton:添加/更新
- 13:25:25 `MouseL`:Window:命令窗口->GroupDropDownSearchSelector:commandSelector->数据表操作
- 13:25:22 `MouseL`:Window:命令窗口->GroupDropDownSearchSelector:commandSelector
- 13:25:21 `MouseL`:Window:设计院数据管理系统AD域认证版1.6.fgcc - 活字格 (10.0.103.0)->Tab:单元格设置->编辑命令...
- 13:25:20 `MouseL`:Window:设计院数据管理系统AD域认证版1.6.fgcc - 活字格 (10.0.103.0)->Spread[21,34]:R5 ,C25,Page=URL,CellType=Forguncy.ButtonCellType

## ActionList
- SetCommandAction
- SetCommandAction
- UnMergeAction
- DeleteAction
- SetCommandAction
- CellTypeAction



本帖子中包含更多资源

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

x

4 个回复

倒序浏览
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2025-1-15 18:00:02
沙发
大佬,比较遗憾,这边没能复现这个问题。
页面是匿名的:

表是用户字段:

运行没有报错。可能还有其他条件会触发这个问题,大佬看能否提供下您那边可以复现问题的 demo,这边调查一下。

本帖子中包含更多资源

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

x
回复 使用道具 举报
罗耀斌
金牌服务用户   /  发表于:2025-1-21 15:29:46
板凳
这个问题我们也出现过,一模一样的错误,后来把前面做好的几个页面全部删除,就不报错了,但页面上找不到任何错误,很奇怪的[10.0.102]发布出错
https://gcdn.grapecity.com.cn/showtopic-230670-1-1.html
(出处: 葡萄城开发者社区)
,需要提供源码这个不太好,毕竟我们已经是成品了
回复 使用道具 举报
guoqp
银牌会员   /  发表于:2025-1-21 15:39:42
地板
罗耀斌 发表于 2025-1-21 15:29
这个问题我们也出现过,一模一样的错误,后来把前面做好的几个页面全部删除,就不报错了,但页面上找不到任 ...

我也是用这个方法找到了是哪个文件后,再一个一个的控件删除测试,最后找到了这个控件,再将语句一个一个排除才找到的这个原因,我测试过哪怕新建一个工程,只要引入这个文件,再按这个配置,就会报错,不过重装系统后我还没有测试,我看能不能重现出来。
回复 使用道具 举报
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2025-1-22 08:50:16
5#
好的,这边测试没能复现,辛苦您那边复现了提供个 demo,这边调查一下。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部