找回密码
 注册成为天翎用户
查看: 1061|回复: 9

新建一条记录的同时把这条记录插入到另一个表单

[复制链接]
jianjia 发表于 2012-11-19 16:55:42 | 显示全部楼层 |阅读模式
本帖最后由 jianjia 于 2012-11-20 16:20 编辑


新建一条记录的同时把这条记录插入到另一个表单,结果出现错误,发现是插入的那个表单中有些字段在值脚本中的代码导致的,如:
var pdoc = getRelateDocument();  
var date = pdoc.getItemValueAsDate("工作日期");
var doc = getCurrentDocument();
var  rtn = doc.getItemValueAsDate("工作日期");
if(date!=null && date!= "" && (rtn==null || rtn== "") )
{
   rtn = date;
}
rtn;
测试发现插入时不能执行var date = pdoc.getItemValueAsDate("工作日期");语句,该怎么解决?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册成为天翎用户

×
purple 发表于 2012-11-19 16:59:09 | 显示全部楼层
请先确认您“工作日期”字段是有值,并且是否能正常取到值。谢谢。
回复

使用道具 举报

spiral 发表于 2012-11-19 17:00:39 | 显示全部楼层
你应该先判断了rtn(当前控件)的值 ,如果没有值的情况下才去读取关联文档中“工作日期”的值
回复

使用道具 举报

 楼主| jianjia 发表于 2012-11-19 17:24:50 | 显示全部楼层
回复 3# spiral
var doc = getCurrentDocument();
var  rtn = doc.getItemValueAsDate("工作日期");
if(rtn==null || rtn== "")
{
  var pdoc = getRelateDocument();  
  var date = pdoc.getItemValueAsDate("工作日期");
  if(date!=null && date!= ""){
    rtn = date;
  }
}
rtn;
代码修改后还是出现同样错误。
回复

使用道具 举报

purple 发表于 2012-11-19 17:35:16 | 显示全部楼层
您好,请在两句getItemValueAsDate语句前,分别加上打印语句标识,先定位具体是乃一句报错的。
回复

使用道具 举报

 楼主| jianjia 发表于 2012-11-19 17:56:51 | 显示全部楼层
回复 5# purple
    var doc = getCurrentDocument();
println("111================='"+doc.getItemValueAsDate("工作日期")+"'");
var  rtn = doc.getItemValueAsDate("工作日期");
if(rtn==null || rtn== "")
{
  var pdoc = getRelateDocument();  
  println("222================='"+pdoc.getItemValueAsDate("工作日期")+"'");
  var date = pdoc.getItemValueAsDate("工作日期");
  if(date!=null && date!= ""){
    rtn = date;
  }
}
rtn;
控制台没出现打印语句,如下

JsUtil:111================='select * from tlk_技术服务部工作内容今日工作表单 where DATE_FORMAT(ITEM_填写时间,'%Y-%m-%d %T')='2012-11-19 15:50' and ITEM_工作人员='管理员' and ITEM_工作日期='2012-11-14''
JsUtil:111888================='Wed Nov 14 00:00:00 CST 2012'
JsUtil:111888================='Wed Nov 14 00:00:00 CST 2012'
JsUtil:111================='null'
org.mozilla.javascript.EcmaError: TypeError: Cannot call method "getItemValueAsDate" of null (11e2-2dfd-07e52702-a3fb-b5a0f56129c9).工作日期.ValueScript#7)
at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3350)
at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3340)
at org.mozilla.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3356)
at org.mozilla.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3375)
at org.mozilla.javascript.ScriptRuntime.undefCallError(ScriptRuntime.java:3394)
at org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThis(ScriptRuntime.java:2026)
at org.mozilla.javascript.gen.c56._c0(Form.技术服务部工作内容今日工作表单.Field(11e2-2dfd-07e52702-a3fb-b5a0f56129c9).工作日期.ValueScript:7)
at org.mozilla.javascript.gen.c56.call(Form.技术服务部工作内容今日工作表单.Field(11e2-2dfd-07e52702-a3fb-b5a0f56129c9).工作日期.ValueScript)
at org.mozilla.javascript.gen.c56.exec(Form.技术服务部工作内容今日工作表单.Field(11e2-2dfd-07e52702-a3fb-b5a0f56129c9).工作日期.ValueScript)
at cn.myapps.core.macro.runner.JavaScriptRunner.run(JavaScriptRunner.java:117)
at cn.myapps.core.dynaform.form.ejb.FormField.runValueScript(FormField.java:461)
at cn.myapps.core.dynaform.form.ejb.DateField.recalculate(DateField.java:393)
at cn.myapps.core.dynaform.form.ejb.Form.recalculateDocument(Form.java:2105)
at cn.myapps.core.dynaform.form.ejb.Form.createDocument(Form.java:1173)
at cn.myapps.core.dynaform.form.ejb.Form.createDocument(Form.java:1102)
at cn.myapps.core.dynaform.form.ejb.Form.createDocument(Form.java:1080)
at cn.myapps.core.dynaform.document.ejb.DocumentProcessBean.doNew(DocumentProcessBean.java:130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:155)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:243)
at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:86)
at org.mozilla.javascript.gen.c52._c0(FormName:四创工作流系统/工作流/技术服务部工作内容明日计划表单 Activity Action(11e2-31f2-7270d575-a7f8-c9cd81f952de).保存afterActionScript:42)
at org.mozilla.javascript.gen.c52.call(FormName:四创工作流系统/工作流/技术服务部工作内容明日计划表单 Activity Action(11e2-31f2-7270d575-a7f8-c9cd81f952de).保存afterActionScript)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:393)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2834)
at org.mozilla.javascript.gen.c52.call(FormName:四创工作流系统/工作流/技术服务部工作内容明日计划表单 Activity Action(11e2-31f2-7270d575-a7f8-c9cd81f952de).保存afterActionScript)
at org.mozilla.javascript.gen.c52.exec(FormName:四创工作流系统/工作流/技术服务部工作内容明日计划表单 Activity Action(11e2-31f2-7270d575-a7f8-c9cd81f952de).保存afterActionScript)
at cn.myapps.core.macro.runner.JavaScriptRunner.run(JavaScriptRunner.java:117)
at org.apache.jsp.portal.share.dynaform.activity.after_jsp._jspService(after_jsp.java:355)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
at com.opensymphony.webwork.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:114)
at cn.myapps.base.web.ServletResult.OBPMServletDispatcherResult.doExecute(OBPMServletDispatcherResult.java:32)
at com.opensymphony.webwork.dispatcher.WebWorkResultSupport.execute(WebWorkResultSupport.java:101)
at com.opensymphony.xwork.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:312)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:207)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:233)
at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
at com.opensymphony.webwork.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:114)
at cn.myapps.base.web.ServletResult.OBPMServletDispatcherResult.doExecute(OBPMServletDispatcherResult.java:32)
at com.opensymphony.webwork.dispatcher.WebWorkResultSupport.execute(WebWorkResultSupport.java:101)
at com.opensymphony.xwork.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:312)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:207)
at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:137)
at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:171)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
回复

使用道具 举报

bess 发表于 2012-11-19 18:30:24 | 显示全部楼层
您好,看您的打印语句,貌似您的第一句
println("111================='"+doc.getItemValueAsDate("工作日期")+"'");
就没有获取到值,请您通过打印语句,打印一下您的对象看看是否对象中能否获取到该字段的值.

同时,请确认您的数据库中,ITEM_工作日期字段是日期类型的字段.
回复

使用道具 举报

spiral 发表于 2012-11-20 16:13:32 | 显示全部楼层
您好,您的这个错误是在您执行动作执行后脚本的时候出现的嘛?
您这个段是表单的日期控件的值脚本,麻烦那您贴出该按钮动作执行后脚本
回复

使用道具 举报

 楼主| jianjia 发表于 2012-11-20 16:20:06 | 显示全部楼层
回复 8# spiral


    已经解决了。由于关联文档对象还没生成,故会出现以上错误。代码修改为:
var doc = getCurrentDocument();
println("111================='"+doc.getItemValueAsDate("工作日期")+"'");
var  rtn = doc.getItemValueAsDate("工作日期");
if(rtn==null || rtn== "")
{
  if(getRelateDocument()!=null && getRelateDocument()!= ""){
    var pdoc = getRelateDocument();
    var date = pdoc.getItemValueAsDate("工作日期");
    if(date!=null && date!= ""){
      rtn = date;
    }
  }
}
rtn;
回复

使用道具 举报

spiral 发表于 2012-11-20 16:21:36 | 显示全部楼层
感谢楼主反馈
回复

使用道具 举报

本版积分规则

手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-14 14:50

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表