Axapta 如何仅显示表的子集

Axapta 如何仅显示表的子集,axapta,x++,dynamics-ax-2012,Axapta,X++,Dynamics Ax 2012,我在用正确的数据填充数据表时遇到问题 我在表单中使用了一个数据表。它被称为userConfigProfiles。它有两个FK列groupId(这连接到UserGroupInfo)和corpProfileId(这连接到我创建的表)。userConfigProfiles中的数据是从另一个表单填充的,并且当前已正确填充 问题是,我需要在SalesTable表单上创建一个下拉列表,根据当前用户所在的用户组显示userConfigProfiles中的行子集 我试图通过在SalesTable表单中的user

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

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

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

我试图通过在SalesTable表单中的userConfigProfiles表中添加以下代码来实现这一点:

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


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

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

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


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

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

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


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

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

该值是由类提供的动态值


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

使用表
用户配置文件
创建一个查询,表
用户组列表
中存在一个联接(属性
joinMode
),使用适当的关系,然后在字段
用户ID
上添加一个范围,其值
(currentUserId())

该值是由类提供的动态值


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

我正在尝试显示记录的子集,但我不知道如何执行。您说“我需要在SalesTable窗体上创建一个显示行子集的下拉列表”,这称为查找。查找的一个例子是,如果您转到SalesTable,然后在销售行中,点击项目单位旁边的下拉箭头,这样您就可以看到每个单位、英尺、英寸等。这是您试图创建的吗?是的,除了下拉列表中的项目外,下拉列表与登录的当前用户相关,而与销售行本身无关。我试图显示记录的子集,但不知道如何显示。您说“我需要在SalesTable窗体上创建一个下拉列表,显示行的子集”,这称为查找。查找的一个例子是,如果您转到SalesTable,然后在销售行中,点击项目单位旁边的下拉箭头,这样您就可以看到每个单位、英尺、英寸等。这是您试图创建的吗?是的,除此之外,下拉列表中的项目与当前登录的用户相关,而与销售线本身无关。感谢您的帮助!我能够利用你给我的东西,找出如何解决我的问题!谢谢你的帮助!我能够利用你给我的东西,找出如何解决我的问题!