标签: lookupfield

如何在运行时创建TDataSet查找字段?

我正在使用TADODataSet(D7).
我没有使用我的DataSet在设计模式下创建持久字段.

dsItems.CommandText := 'select ID, ItemName, UserIDCreate from Items';
dsUsers.CommandText := 'select  ID, LoginName from Users'; // lookup dataset
Run Code Online (Sandbox Code Playgroud)

如果我双击dsItems并"添加所有文件",然后单击"新建文件"并定义我的查找字段,一切正常.结果dsItems应包含:ID, ItemName, UserIDCreate, LoginName_Lookup

如何在设计时避免完成所有这些操作,并在打开DataSet之后(或不确定)之前添加查找字段.

换句话说:如何模拟"添加所有文件"然后"新建文件"以在运行时添加查找文件?


注意: 从IDE运行John的代码时出现异常.尝试打开DataSet时发生异常:EOleException with message 'An unknown error has occured'.

function TCustomADODataSet.LocateRecord (ADODB.pas) 排队 if FieldCount = 1 then FLookupCursor.Find...

我接受答案,因为已编译的程序正在运行.
如果有人在IDE中运行表单时可以验证是否获得异常,那将是很好的.

delphi delphi-7 lookupfield tadodataset

6
推荐指数
1
解决办法
5750
查看次数

以编程方式生成的查找字段导致"System.ArgumentException:Value不在预期范围内"创建新项目时

我创建了一个内容类型TypeA,它具有基本ListB的查找字段.然后我创建一个使用TypeA的ListA.一切都是以编程方式创建的.

当ListA的'添加新项'模态应该加载时抛出异常.它只发生在ListB中有项目的情况下.如果ListB为空,则listA的'添加新项'模态加载,并且正确显示ListB的查找字段(None)

堆栈跟踪:

System.ArgumentException: Value does not fall within the expected range.

at Microsoft.SharePoint.SPFieldMap.GetColumnNumber(String strFieldName, Boolean bThrow)
at Microsoft.SharePoint.SPListItemCollection.GetColumnNumber(String groupName, Boolean bThrowException)
at Microsoft.SharePoint.SPListItemCollection.GetRawValue(String fieldname, Int32 iIndex, Boolean bThrow)
at Microsoft.SharePoint.SPListItem.GetValue(SPField fld, Int32 columnNumber, Boolean bRaw, Boolean bThrowException)
at Microsoft.SharePoint.SPListItem.GetValue(String strName, Boolean bThrowException)
at Microsoft.SharePoint.SPListItem.get_Item(String fieldName)
at Microsoft.SharePoint.WebControls.LookupField.get_DataSource()
at Microsoft.SharePoint.WebControls.LookupField.CreateChildControls()
at System.Web.UI.Control.EnsureChildControls()
at Microsoft.SharePoint.WebControls.BaseFieldControl.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive() …
Run Code Online (Sandbox Code Playgroud)

c# lookupfield sharepoint-2010

5
推荐指数
1
解决办法
6649
查看次数