白羊座 发表于 2017-4-5 14:14:12

asc()函数必须是非空的,我先提前判断下是否长度大于零,然后再执行有asc的判断,...


asc()函数必须是非空的,我先提前判断下是否长度大于零,然后再执行有asc的判断,为什么还跑错呢


=IIF(len(Ltrim(Fields!programer_name.Value))>0,IIF(asc(Left(Ltrim(Fields!programer_name.Value),1))>=65,"英文","汉语"),"")



错误明细:
GrapeCity.ActiveReports.ReportException: 发生了一个意外错误。更多信息: '调用的目标发生了异常。' ---> System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.ArgumentException: 参数“String”的长度必须大于 0。
   在 Microsoft.VisualBasic.Strings.Asc(String String)
   --- 内部异常堆栈跟踪的结尾 ---
   在 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   在 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   在 #9wA.#DXe.Invoke(InvokeArgs e)
   在 GrapeCity.ActiveReports.Expressions.FunctionExpressionInfo.Invoke(#nZe context, Object instance, Object[] arguments)
   在 GrapeCity.ActiveReports.Expressions.FunctionExpressionInfo.#FDk(#nZe context)
   在 GrapeCity.ActiveReports.Expressions.FunctionExpressionInfo.#34(#nZe context)
   在 GrapeCity.ActiveReports.Expressions.CompoundExpressionInfo.#34(#nZe context)
   在 GrapeCity.ActiveReports.Expressions.FunctionExpressionInfo.#FDk(#nZe context)
   在 GrapeCity.ActiveReports.Expressions.FunctionExpressionInfo.#34(#nZe context)
   在 GrapeCity.ActiveReports.Expressions.FunctionExpressionInfo.#FDk(#nZe context)
   在 GrapeCity.ActiveReports.Expressions.FunctionExpressionInfo.#34(#nZe context)
   在 #XwA.#mZe.Evaluate(ExpressionInfo expression)
   在 #wxA.#VzA.#7LA(ExpressionInfo expressionToEvaluate, IDataScopeInternal dataScope)
   在 GrapeCity.ActiveReports.Rendering.Components.LightTextBox.get_Value()
   在 GrapeCity.ActiveReports.Rendering.Components.LightTextBox.get_ContentValue()
   在 GrapeCity.ActiveReports.Layout.TextLayoutManager.#wsf(ITextContentRange range, LayoutDirection direction, SizeF availableSize)
   在 GrapeCity.ActiveReports.Layout.TextLayoutManager.<>c__DisplayClass1.<Measure>b__0()
   在 GrapeCity.ActiveReports.Layout.TextLayoutManager.#nGE(ITextItem textItem, Func`1 func)
   在 GrapeCity.ActiveReports.Layout.TextLayoutManager.Measure(LayoutContext context)
   在 #sxA.#l3e.#Nvf(LayoutContext context, Single width, Single height)
   在 #sxA.#l3e.Measure(LayoutContext context)
   在 #sxA.#U3e.#9Zx(ITableRow row, Int32 rowIndex, Single maxVerticalExtent, Boolean cacheLayoutManagers, Boolean cacheMeasureResults)
   在 #sxA.#U3e.#9Zx(ITableRow row, Int32 rowIndex)
   在 #sxA.#Q3e.#Tae(Int32 index)
   在 #sxA.#Q3e.#Pmx()
   在 #sxA.#O3e.#hyf(Single contentPageHeight, List`1 rowsCache, Single& verticalExtent)
   在 #sxA.#P3e.#hyf(Single contentPageHeight, List`1 rowsCache, Single& verticalExtent)
   在 #sxA.#W3e.#yuf(Single contentPageHeight)
   在 GrapeCity.ActiveReports.Layout.TableLayoutManager.Layout(#92e tableArea)
   在 GrapeCity.ActiveReports.Layout.TableLayoutManager.Run(LayoutContext layoutContext, #e4e spaceManager)
   在 #sxA.#l3e.#Rvf(LayoutContext context, #e4e spaceManager)
   在 #sxA.#83e.#Rvf(LayoutContext context, #e4e masterSpaceManager)
   在 #sxA.#93e.Run(LayoutContext context, #e4e spaceManager)
   在 #sxA.#93e.#Xyf(LayoutContext context)
   在 #sxA.#93e.#Dxf(#S2e masterTree)
   在 #sxA.#93e.BuildLayout()
   在 GrapeCity.ActiveReports.Layout.Engine.BuildLayout(LayoutInfo layoutInfo)
   在 #GPr.#RLf.#NNf(IReport report, TargetDeviceCapabilities targetDevice, LayoutNotificationCallback callback)
   在 GrapeCity.ActiveReports.Export.Image.Page.ImageRenderingExtension.Render(IReport report, StreamProvider streams, NameValueCollection settings)
   在 GrapeCity.ActiveReports.Document.PageDocument.Render(IRenderingExtension renderingExtension, StreamProvider streams, NameValueCollection settings, Boolean forceDataRefresh, Boolean forceParameterDataRefresh)
   --- 内部异常堆栈跟踪的结尾 ---
   在 GrapeCity.ActiveReports.Document.PageDocument.Render(IRenderingExtension renderingExtension, StreamProvider streams, NameValueCollection settings, Boolean forceDataRefresh, Boolean forceParameterDataRefresh)
   在 GrapeCity.ActiveReports.Viewer.Win.Rdlx.RdlReport.<>c__DisplayClassf.<LoadImpl>b__b()
   在 GrapeCity.ActiveReports.Viewer.Win.AsyncLoader.<>c__DisplayClass7.#cAz(Object , DoWorkEventArgs )
   在 System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
   在 System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

Lenka.Guo 发表于 2017-4-5 17:05:34

同样的问题在这个帖子中继续讨论:http://gcdn.gcpowertools.com.cn/forum.php?mod=viewthread&tid=36731&extra=page%3D1
页: [1]
查看完整版本: asc()函数必须是非空的,我先提前判断下是否长度大于零,然后再执行有asc的判断,...