2017-01-21 29 views
1

InfoクラスstartupPostメソッドをトリガーする必要があります。条件を検証する必要があります。条件が真(ユーザーの誕生日の場合)の場合は、形。
ユーザーのBDayを確認するために私が見つけた唯一の方法は、EmplTableから取得することです。また、私はユーザIDを私に与えるために、EmplTableUserInfoまたはSysUserInfoテーブルの間に何かを関連付ける必要があります。
問題は、テーブルに関連付ける適切な方法が見つからなかったことです。EmplTableDEL_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(); 
    } 
} 

答えて

1

EmplTableの従業員にUserInfoからシステムユーザーをマップするテーブルSysCompanyUserInfoを見てください。以下
は、現在のユーザーのために(存在する場合)DAXaholicたくさん

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

    emplId = EmplTable::userId2EmplId(curuserid()); 
    if (emplId != '') 
    { 
     emplTable = EmplTable::find(emplId); 
     // ... your birthday logic 
    } 
} 
+0

おかげEmplTableの関連するレコードを検索する例です。問題は、EmplIdが5文字のintで、UserIdが5文字(文字)の文字列であるということです。 私たちはそれらを解析することはできないと考えています... –

+0

以下のエラーメッセージ: https://www.dropbox.com/s/aeq2i9yn6fn2s2l/operandtypes%20error.JPG?dl=0 –

+0

あなたは従業員IDを割り当てようとしています従業員表へ上記のコードをコピーし、同じものを使用してください。 –

関連する問題