如何找到系统用户的员工

问题描述 投票:0回答:1

我有一个必须从

Info
startupPost
方法触发的表单,因为它必须验证条件,如果条件为真(如果是用户的生日),则触发我的表单。
我发现验证用户 BDay 的唯一方法是从
EmplTable
获取它。另外,我需要将
EmplTable
UserInfo
SysUserInfo
表之间的某些内容关联起来,以便为我提供用户 ID。

问题是我没有找到关联表格的正确方法,因为在我的

EmplTable
中,我有一个
DEL_userId
字段未填充且未使用。

总之,以下代码块中的

if
块不会被执行。

我还故意没有声明

emplTable
变量,因为我不确定声明它的最佳方式是什么。

提前感谢大家的任何想法!

void startupPost()
{
    EmplTable           emplTable     ; //intentionally left undeclared

    int                 dayOfBirth    = dayOfMth(emplTable.BirthDate);
    int                 monthOfBirth  = mthOfYr(emplTable.BirthDate);
    int                 dayOfMonth    = dayOfMth(systemdateget());
    int                 monthOfYear   = mthOfYr(systemdateget());
    str                 emplName      = emplTable.name();
    Args                args          = new Args(); //formrun
    FormRun             formrun;
    ;

    if (dayOfBirth == dayOfMonth && monthOfBirth == monthOfyear )
    {
        info("ok"); //just to verify if my loop is working
        new MenuFunction(menuitemDisplayStr(NET_PALIN_001_HBDay),   MenuItemType::Display).run();
        //        args.name(formStr(NET_PALIN_001_HBDay));
        //        formRun = classFactory.formRunClass(args);
        //        formRun.init();
        //        formrun.run();
    }
}
axapta microsoft-dynamics x++ dynamics-ax-2009
1个回答
1
投票

查看表

SysCompanyUserInfo
,它将系统用户从
UserInfo
映射到
EmplTable
的员工。
以下是查找当前用户
EmplTable
(如果存在)的关联记录

的示例
static void FindCurUserEmplTable(Args _args)
{
    EmplId emplId;
    EmplTable emplTable;
    ;

    emplId = EmplTable::userId2EmplId(curuserid());
    if (emplId != '')
    {
        emplTable = EmplTable::find(emplId);
        // ... your birthday logic
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.