一,登陆界面设计:
1.将系统编号灰显,默认初值
2.密码栏勾选密码显示,这样就不会明文显示在页面上了:
Init方法中添加默认值代码:
METHOD wddoinit . DATA lo_nd_zhis_user TYPE REF TO if_wd_context_node. DATA lo_el_zhis_user TYPE REF TO if_wd_context_element. DATA ls_zhis_user TYPE wd_this->element_zhis_user. DATA lv_sys TYPE wd_this->element_zhis_user-sys. lo_nd_zhis_user = wd_context->get_child_node( name = wd_this->wdctx_zhis_user ). lo_el_zhis_user = lo_nd_zhis_user->get_element( ). *默认登陆系统为当前服务器系统 IF lo_el_zhis_user IS INITIAL. EXIT. ENDIF. lv_sys = sy-mandt. lo_el_zhis_user->set_attribute( name = `SYS` value = lv_sys ). ENDMETHOD.
二、登陆验证:
1.新建函数组ZLY_PORTAL
定义全局结构用来存储用户数据:
2.新建函数ZLY_SET_LOGON将用户信息存到函数组全局中:
3.回到WDA里 新建MSG方法,视图中统一显示消息:
METHOD msg . * get message manager DATA lo_api_controller TYPE REF TO if_wd_controller. DATA lo_message_manager TYPE REF TO if_wd_message_manager. DATA message TYPE string. lo_api_controller ?= wd_this->wd_get_api( ). lo_message_manager = lo_api_controller->get_message_manager( ). * report message message = lo_message_manager->report_message( message_text = msg message_type = type ). ENDMETHOD.
4.定义登陆按钮事件,并做相关检查:
METHOD onactionlogon . DATA lo_nd_zhis_user TYPE REF TO if_wd_context_node. DATA lo_el_zhis_user TYPE REF TO if_wd_context_element. DATA ls_zhis_user TYPE wd_this->element_zhis_user. DATA:lv_len TYPE i, lv_hash TYPE md5_fields-hash, gw_user TYPE zlyuser. * navigate from <CONTEXT> to <ZHIS_USER> via lead selection lo_nd_zhis_user = wd_context->get_child_node( name = wd_this->wdctx_zhis_user ). lo_el_zhis_user = lo_nd_zhis_user->get_element( ). IF lo_el_zhis_user IS INITIAL. EXIT. ENDIF. lo_el_zhis_user->get_static_attributes( IMPORTING static_attributes = ls_zhis_user ). IF ls_zhis_user-usern IS NOT INITIAL AND ls_zhis_user-pwd IS NOT INITIAL. lv_len = strlen( ls_zhis_user-pwd ). CALL FUNCTION 'MD5_CALCULATE_HASH_FOR_CHAR' EXPORTING data = ls_zhis_user-pwd length = lv_len version = 1 IMPORTING hash = lv_hash * TABLES * DATA_TAB = EXCEPTIONS no_data = 1 internal_error = 2 OTHERS = 3. IF sy-subrc <> 0. wd_this->msg( EXPORTING type = 3 msg = 'Fcuntion error!'). ELSE. SELECT SINGLE * INTO gw_user FROM zlyuser WHERE userid = ls_zhis_user-usern AND passwd = lv_hash. IF sy-subrc = 0. CALL FUNCTION 'ZLY_SET_LOGON' EXPORTING iw_user = gw_user. ls_zhis_user-usern = gw_user-userid. ls_zhis_user-persnumber = gw_user-partner. ls_zhis_user-augrp = gw_user-user_group. lo_el_zhis_user->set_static_attributes( static_attributes = ls_zhis_user ). wd_this->fire_tomain_plg( ). ELSE. wd_this->msg( EXPORTING type = 3 msg = 'User name OR Password error!'). ENDIF. ENDIF. ELSE. wd_this->msg( EXPORTING type = 3 msg = 'Please fill user and password!'). ENDIF. ENDMETHOD.
^_^很多人都把资料锁进了note里,以后还怎么百度呢^_^