0

我在使用正确数据填充数据表时遇到问题。

我有一个我在表单中使用的数据表。它称为 userConfigProfiles。它有 2 个 FK 列 groupId(此连接到 UserGroupInfo)和 corpProfileId(这连接到我创建的表)。userConfigProfiles 中的数据是从另一个表单填充的,并且当前已适当填充。

问题是,我需要在 SalesTable 表单上创建一个下拉列表,根据当前用户所在的 UserGroups 显示 userConfigProfiles 中的行子集。

我尝试通过将以下代码添加到表中来做到这一点,即 SalesTable 表单中的 userConfigProfiles:

public void init()
{
    userConfigProfiles.data(userConfigProfiles::find());

    super();
}

然后我将此查找方法添加到表本身:

static public userConfigProfiles find()
{
    userConfigProfiles userProfile;
    UserGroupList userGroupList;

    str 8 u = curUserId();

    select *
    from userProfile
    order by userProfile.bdcProfileId
        join userGroupList
    where userProfile.groupId == userGroupList.groupId
        && userGroupList.userId == u;

    return userProfile;
}

但是,即使调用了我的 find 方法并且它返回了正确的数据,它似乎也不会影响进入我的表单下拉列表的数据。

我的下拉列表是一个 StringEdit 字段,其中包含 userConfigProfiles 的 DataSource 和 corpProfileId 的 DataField。

我很确定有几种方法可以解决我的问题,并且我对其中任何一种都持开放态度,即使这意味着删除我的所有代码并以完全不同的方式执行下拉框。

4

2 回答 2

2

到目前为止,关于查找方法的最佳教程是 Vanya 的:

http://kashperuk.blogspot.com/2009/04/lookup-methods-tutorial-custom-list.html

下载他的教程 XPO 并为您的表单使用他的选项之一。你的代码看起来有点像黑客工作。

如果您尝试在表上显示记录的子集,则应修改 query(),但如果您尝试通过查找更改显示的值,那么我会查看他的博客文章。

于 2012-02-17T21:25:49.863 回答
1

UserConfigProfiles使用带有与 table的存在连接(属性joinMode)的 table创建一个查询UserGroupList,使用适当的关系,然后在UserId带有 avalue的字段上添加一个范围(currentUserId())

该值是由SysQueryRangeUtil类提供的动态查询表达式

最后使用您的查询使用类SysTableLookup创建一个查找。

于 2012-02-18T07:10:31.750 回答