在单据体对象里只有唯一的一个多语言字段,但没有设置字段名。
不设置字段名的目的是为了实现代理字段类似的效果。
设置一切正常,_L的子表也没有创建。
但是,在打开时,出现了这样的提示:
详细的堆栈信息如下:
[code][{"operation":"BAH_BD_Material.LoadData"}]
发生时间: 14:05:40
错误编号: ec4ef407def94bc29db1face8ac44287
错误信息: 对象名 'BAH_T_BD_MATPACKAGE_L' 无效。
===================================================
调用堆栈:
Server stack trace:
在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
在 System.Data.SqlClient.SqlDataReader.TryHasMoreRows(Boolean& moreRows)
在 System.Data.SqlClient.SqlDataReader.TryReadInternal(Boolean setTimeout, Boolean& more)
在 System.Data.SqlClient.SqlDataReader.TryNextResult(Boolean& more)
在 System.Data.SqlClient.SqlDataReader.NextResult()
在 Kingdee.BOS.App.Data.Sql.KSql4SQLDataReader.NextResult()
在 Kingdee.BOS.Orm.DataManager.DataManagerImplement.<>c__DisplayClass34.
在 Kingdee.BOS.App.Data.OLEDbDriver.ExecuteReader(SelectCallback callback, IEnumerable`1 tablesSchema, DbMetadataTable rootTable, IList`1 selectSqls, ReadWhere where, OperateOption option)
在 Kingdee.BOS.Orm.Drivers.DbDriverBase.Select(SelectCallback callback, IEnumerable`1 tablesSchema, DbMetadataTable rootTable, ReadWhere where, OperateOption option) 位置 d:\k3cloudbuild\BOS_V7_PT\BOS\Common\Src\Kingdee.BOS.OrmEngine\Drivers\DbDriverBase.cs:行号 106
在 Kingdee.BOS.Orm.DataManager.DataManagerImplement.ReadToDataSet(IDbDriver driver, DbMetadataDatabase database, DbMetadataTable rootTable, ReadWhere where, OperateOption option) 位置 d:\k3cloudbuild\BOS_V7_PT\BOS\Common\Src\Kingdee.BOS.OrmEngine\DataManager\DataManagerImplement_Read.cs:行号 685
在 Kingdee.BOS.Orm.DataManager.DataManagerImplement.Read(ReadWhere where, OperateOption option) 位置 d:\k3cloudbuild\BOS_V7_PT\BOS\Common\Src\Kingdee.BOS.OrmEngine\DataManager\DataManagerImplement_Read.cs:行号 132
在 Kingdee.BOS.Orm.DataManager.DataManagerImplement.Read(Object oid, OperateOption option) 位置 d:\k3cloudbuild\BOS_V7_PT\BOS\Common\Src\Kingdee.BOS.OrmEngine\DataManager\DataManagerImplement_Read.cs:行号 40
在 Kingdee.BOS.App.Core.BusinessDataReader.LoadSingle(Object pk, DynamicObjectType type, Boolean loadReferenceData, OperateOption option) 位置 d:\k3cloudbuild\BOS_V7_PT\BOS\App\Src\Kingdee.BOS.App.Core\BusinessDataReader.cs:行号 42
在 Kingdee.BOS.App.Core.ViewService.LoadSingle(Context ctx, Object pk, DynamicObjectType type, OperateOption option) 位置 d:\k3cloudbuild\BOS_V7_PT\BOS\App\Src\Kingdee.BOS.App.Core\OperationService\ViewService.cs:行号 65
Exception rethrown at [0]:
在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
在 Kingdee.BOS.Contracts.IViewService.LoadSingle(Context ctx, Object pk, DynamicObjectType type, OperateOption option)
在 Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.LoadSingle(Context ctx, Object pk, DynamicObjectType type, OperateOption option) 位置 d:\k3cloudbuild\BOS_V7_PT\BOS\Common\Src\Kingdee.BOS.ServiceHelper\BusinessDataServiceHelper.cs:行号 110
在 Kingdee.BOS.Model.Bill.BillModel.Load(Object pk) 位置 d:\k3cloudbuild\BOS_V7_PT\BOS\Model\Src\Kingdee.BOS.Model\Bill\BillModel.cs:行号 156
在 Kingdee.BOS.Web.Bill.BillView.LoadData() 位置 d:\k3cloudbuild\BOS_V7_PT\BOS\Web\Src\Kingdee.BOS.Web\Bill\BillView.cs:行号 403
在 Kingdee.BOS.Web.DynamicForm.DynamicWebFormController.LoadData() 位置 d:\k3cloudbuild\BOS_V7_PT\BOS\Web\Src\Kingdee.BOS.Web\DynamicForm\DynamicWebFormController.cs:行号 608[/code]
我个人感觉这是个bug,因为平台既然允许字段名为空,即允许不创建真实的物理表字段,同样也应该支持取数。
推荐阅读