问题描述
代理程序本地执行或调试都没有问题,自动跑后总是报错“TypeMismatch”.已经确定是CDAT函数使用问题.doc.GetItemValue("K_AgentTime")(0)的值为“2011/7/1902:30:02AM”代码如下,哪位高手帮忙看看。SubInitializeadmin="……………"REMdefineobjectDimsessionAsNewNotesSessionDimdbAsNotesDatabaseDimviewAsNotesViewDimconfigviewAsnotesviewDiminfoviewAsNotesViewDimdocAsNotesDocumentDimerrorsenddocAsNotesDocumentDimsenddocAsNotesDocumentDimnoticedocAsNotesDocumentDimusernoticedocAsnotesdocumentDimtempdocAsNotesDocumentDimtimeoutdocAsNotesDocumentDimrtitemAsNotesRichTextItemDimitemAsNotesRichTextItemDimritemAsNotesRichTextItemDimnrtiAsNotesRichTextItemDimfindkey,key(),cckey(1),errorkey(1)AsStringDimi,kAsIntegerDimtempAsStringDimNextStep,NextSigner,Notes,Period,SignType,stepresultAsStringDimmdocAsNotesDocumentDimmviewAsNotesViewDimmkeyAsStringDimsdocAsNotesDocumentDimnAsIntegerDimtemptimeAsStringDimEr1AsStringSetdb=session.CurrentDatabaseSetview=db.GetView("A_NoteWaitingSign")Setdoc=view.GetFirstDocumentSetconfigview=db.GetView("SignerInfor")OnErrorGotoerrormailWhileNot(docIsNothing)Settimeoutdoc=NewNotesDocument(db)Setrtitem=NewNotesRichTextItem(timeoutdoc,"Body")Callrtitem.AppendText("請點擊鏈接進行查看﹕")Callrtitem.AppendDocLink(doc,"")findkey=doc.GetItemValue("F_Group")(0)Setmdoc=Configview.GetDocumentByKey(findkey)Er1="A"Er1="A11"'Er1=Day(Now)Ifdoc.GetItemValue("K_AgentTime")(0)<>""ThenEr1=Cstr(Trim(doc.GetItemValue("K_AgentTime")(0)))Er1=Cdat(Er1)'《====执行到这行代码时候报错.EndIfEr1=Cstr(mdoc.GetItemValue("T_Period")(0))Er1=Cdat(Trim(doc.GetItemValue("K_AgentTime")(0)))+Cint(Trim(mdoc.GetItemValue("T_Period")(0)))/24Er1="A2"Er1=Cdat(Trim(doc.GetItemValue("K_AgentTime")(0)))+Cint(Trim(mdoc.GetItemValue("T_Period")(0)))/24timeoutdoc.subject="由您負責的單"+"超過24小時沒有簽核﹐請及時簽核!"timeoutdoc.sendto=adminCalltimeoutdoc.Send(False)Setdoc=view.GetNextDocument(doc)WendExitSuberrormail:Seterrorsenddoc=NewNotesDocument(db)Setrtitem=NewNotesRichTextItem(errorsenddoc,"Body")Callrtitem.AppendText("錯誤信息:"+Error(Err)+"行號:"+Er1+"請點擊鏈接查看相關單﹕")Callrtitem.AppendDocLink(doc,"")errorkey(0)=adminerrorkey(1)=""errorsenddoc.subject="証明單"+doc.GetItemValue("Charge_NO")(0)+"發生錯誤!"errorsenddoc.sendto=errorkeyCallerrorsenddoc.Send(False)ExitSub'ResumeNextEndSub
解决方案
本帖最后由 jirim 于 2011-07-20 11:00:02 编辑
解决方案二:
没有哪位高手碰到过这种情况吗?
解决方案三:
你已经定义DimEr1AsString作为字符串变量了,怎么可以给它再赋时间类型的值。另外定义一个Variant类型的变量吧。
解决方案四:
自动跑的时候,是不是doc没获取到,你把doc的unid打出来来看看
解决方案五:
“Er1=Cdat(Er1)'《====执行到这行代码时候报错.”你erl是字符串,而Cdat(Er1)这个是时间,类型都不一样····
解决方案六:
将自动运行代理的电脑系统时间改为24小时制看看1、进入控制面板-区域和语言选项,在弹出的区域和语言选项界面中,点击自定义按钮;2、进入自定义区域选项界面,点击时间标签,然后进入时间设置页面;3、在时间格式框框中将h:mm:ss改为HH:mm:ss