一,登陆界面设计:

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 =
IMPORTING
hash = lv_hash
* TABLES
* DATA_TAB =
EXCEPTIONS
no_data =
internal_error =
OTHERS = .
IF sy-subrc <> .
wd_this->msg( EXPORTING type = msg = 'Fcuntion error!').
ELSE.
SELECT SINGLE * INTO gw_user FROM zlyuser WHERE userid = ls_zhis_user-usern AND passwd = lv_hash.
IF sy-subrc = .
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 = msg = 'User name OR Password error!').
ENDIF.
ENDIF.
ELSE.
wd_this->msg( EXPORTING type = msg = 'Please fill user and password!').
ENDIF. ENDMETHOD.

WDA演练一:用户登陆界面设计(二)的更多相关文章

  1. WDA演练一:用户登陆界面设计(一)

    一,新建用户表: 用户和密码参考标准的.这里给用户分了几个维度,以便后面进行接下来的业务设定. 二,新建ZLY_PORTAL 程序. 除了MAIN视图外,在添加LOGON视图. 1.导入预先做好的主页 ...

  2. QML与C++交互:登陆界面设计

    QML与C++交互:登陆界面设计 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:Qt5.2.1 说明: QML设计前 ...

  3. Win7如何取消用户登陆界面

    Window取消用户登陆界面 用户已设置密码状态下:删除密码即可. 用户无密码状态下: 运行 → control userpasswords2 → 找到“要使用本机,用户必须输入用户名与密码”这一项, ...

  4. 2017.10.20 jsp用户登陆界面连接数据库

    用户登陆界面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8 ...

  5. 用java写一个用户登陆界面

    一.课堂测试源代码及其结果截图 用java的swing写一个用户登录界面,采用网格布局.源代码如下: /** * */package LiuLijia; import java.awt.CardLay ...

  6. java web程序 上机考试登陆界面设计实现

    今天是java web上机.做一个登陆注册的界面.要求:jsp.mysql数据库,js做一个美观的界面.功能.可以添加 更多啊.我做的界面被老师狠狠的扣了分.问题在于.当用户没有输入任何信息(没有输入 ...

  7. 基于WPF系统框架设计(5)-Ribbon整合Avalondock 2.0实现多文档界面设计(二)

    AvalonDock 是一个.NET库,用于在停靠模式布局(docking)中排列一系列WPF/WinForm控件.最新发布的版本原生支持MVVM框架.Aero Snap特效并具有更好的性能. Ava ...

  8. 用户登陆界面(jquery)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. 【Android】登陆界面设计

    界面布局 布局其实很简单,用相对布局累起来就可以了,然后注册和记住密码这两个控件放在一个水平线性布局里 界面底部还设置了一个QQ一键登录的入口,可以直接用. 控件的ID命名有点乱 <?xml v ...

随机推荐

  1. Apache tomcat高可用web集群搭建过程配置记录

    说明,本文仅作为个人搭建配置保存,问题处理没有一一列出,过程也未见详尽,有问题的朋友可以直接留言给我,会一一回复,谢谢. 小目标: 支持故障转移(或主备,扩展性不佳),保证故障转移后,对前端用户透明, ...

  2. java并发编程(九)ThreadLocal & InheritableThreadLocal

    参考文档: https://blog.csdn.net/u012834750/article/details/71646700 threadlocal内存泄漏:http://www.importnew ...

  3. 【操作系统之六】Linux常用命令之less

    一.概念less 工具也是对文件或其它输出进行分页显示的工具,是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more .tail更加的有弹性.在 more 的时候,我们并没有 ...

  4. Lab3:虚拟内存管理

    前言 虚拟内存是计算机系统内存管理的一种技术.它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要 ...

  5. 一文带你了解 Flink 的基本组件栈

    作为实时计算领域的佼佼者,Flink 的基本组件同样值得我们仔细研究. Flink 同样遵循着分层的架构设计理念,在降低系统耦合的同时,也为上层用户构建 Flink 应用提供了丰富且友好的接口. Fl ...

  6. Jmeter之Bean shell使用(二)(转载)

    转载地址:https://www.cnblogs.com/puresoul/p/4949889.html 上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean she ...

  7. 修改ssh服务器默认端口号

    1.查看当前ssh服务器端口号 在修改ssh服务器的端口号之前,首先查看ssh服务器监听的端口号,使用netstat命令: $ sudo netstat -tunlp | grep "ssh ...

  8. idea pycharm 常用快捷键

    Ctrl + P 方法参数提示显示 (必备)Alt + Enter 根据光标所在问题,提供快速修复选择,光标放在的位置不同提示的结果也不同 (必备)Ctrl + / 行注释(可选中多行)Ctrl + ...

  9. 第四节:配置的读取、StartUp类、内置依赖注入和扩展改造

    一. 配置的读取 在Asp.Net Core中,有一个 appsettings.json 文件,用于存储相应的配置信息,读取的时,要通过构造函数注入:IConfiguration Configurat ...

  10. Java四种权限修饰符 在创建类中的使用

    四种权限修饰符 Java中有四种权限修饰符 public > protected > (default) >private 同一个类(我自己) YES YES YES YES同一个包 ...