如何仅显示表格的子集

发布于 2025-01-06 12:29:11 字数 1100 浏览 2 评论 0原文

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

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

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

我尝试通过将以下代码添加到表 userConfigProfiles 中来实现此目的在 SalesTable 表单中:

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

    super();
}

然后我将此 find 方法添加到表本身中:

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,数据字段为 corpProfileId。

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

I am having an issue populating a data table with the correct data.

I have a Data Table that I am using in a form. It is called userConfigProfiles. It has a 2 FK columns groupId(this joins to UserGroupInfo) and corpProfileId(this joins to a table I created). That data in userConfigProfiles is populated from another form and is currently populated appropriately.

The issue is, I need to create a drop down on the SalesTable form that shows a subset of the rows in userConfigProfiles based off of what UserGroups the current user is in.

I tried to do this by adding the below code to the table, userConfigProfiles in the SalesTable form:

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

    super();
}

Then I added this find method to the Table itself:

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;
}

However, it appears that even though my find method is called and it returns the correct data it is not affecting the data that goes into the drop down list on my form.

My drop down list is a StringEdit field with a DataSource of userConfigProfiles and a DataField of corpProfileId.

I am pretty sure there are several ways to solve my problem and I am open to any of them, even if it means removing all of my code and doing the drop down box completely differently.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

霊感 2025-01-13 12:29:11

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

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

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

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

By far the best tutorial on lookup methods is by Vanya:

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

Download his tutorial XPO and use one of his options for your form. Your code looks a bit like a hack job.

If you're trying to display a subset of records on the table, you should modify the query(), but if you're trying to change the displayed values from a lookup, then I'd check out his blog post.

看春风乍起 2025-01-13 12:29:11

使用表 UserConfigProfiles 和表 UserGroupList 的现有联接(属性 joinMode)创建查询,使用适当的关系,然后在字段上添加范围UserId(currentUserId())

该值是一个动态 查询表达式,由类 SysQueryRangeUtil

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

Create a query using table UserConfigProfiles with an exist join (property joinMode) to table UserGroupList, use the appropriate relation, then add a range on field UserId with a value of (currentUserId()).

This value is a dynamic query expression which is provided by the class SysQueryRangeUtil.

Finally create a lookup using class SysTableLookup using your query.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文