WDA演练一:用户登陆界面设计(二)
一,登陆界面设计:
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演练一:用户登陆界面设计(二)的更多相关文章
- WDA演练一:用户登陆界面设计(一)
一,新建用户表: 用户和密码参考标准的.这里给用户分了几个维度,以便后面进行接下来的业务设定. 二,新建ZLY_PORTAL 程序. 除了MAIN视图外,在添加LOGON视图. 1.导入预先做好的主页 ...
- QML与C++交互:登陆界面设计
QML与C++交互:登陆界面设计 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:Qt5.2.1 说明: QML设计前 ...
- Win7如何取消用户登陆界面
Window取消用户登陆界面 用户已设置密码状态下:删除密码即可. 用户无密码状态下: 运行 → control userpasswords2 → 找到“要使用本机,用户必须输入用户名与密码”这一项, ...
- 2017.10.20 jsp用户登陆界面连接数据库
用户登陆界面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8 ...
- 用java写一个用户登陆界面
一.课堂测试源代码及其结果截图 用java的swing写一个用户登录界面,采用网格布局.源代码如下: /** * */package LiuLijia; import java.awt.CardLay ...
- java web程序 上机考试登陆界面设计实现
今天是java web上机.做一个登陆注册的界面.要求:jsp.mysql数据库,js做一个美观的界面.功能.可以添加 更多啊.我做的界面被老师狠狠的扣了分.问题在于.当用户没有输入任何信息(没有输入 ...
- 基于WPF系统框架设计(5)-Ribbon整合Avalondock 2.0实现多文档界面设计(二)
AvalonDock 是一个.NET库,用于在停靠模式布局(docking)中排列一系列WPF/WinForm控件.最新发布的版本原生支持MVVM框架.Aero Snap特效并具有更好的性能. Ava ...
- 用户登陆界面(jquery)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 【Android】登陆界面设计
界面布局 布局其实很简单,用相对布局累起来就可以了,然后注册和记住密码这两个控件放在一个水平线性布局里 界面底部还设置了一个QQ一键登录的入口,可以直接用. 控件的ID命名有点乱 <?xml v ...
随机推荐
- React / Ant Design Pro 实现Canvas画布实时自适应
如何实现canvas根据父容器进行自适应? Ant Design的组件都提供了强大的自适应能力,为了对齐父组件,镶嵌在Ant Design组件里的canvas也需要能根据父级容器进行自适应的能力,页面 ...
- Qt常用类——QFrame类与QWidge类
QFrame与QWidget的区别: QFrame是基本控件的基类,QWidget是QFrame基类. QWidget类是所有用户界面对象的基类. Widget是用户界面的基本单元:它从窗口系统接收鼠 ...
- 【贪心】【P5521】[yLOI2019] 梅深不见冬
B [yLOI2019] 梅深不见冬 Background 风,吹起梅岭的深冬:霜,如惊涛一样汹涌:雪,飘落后把所有烧成空, 像这场,捕捉不到的梦. 醒来时已是多年之久,宫门铜环才长了铁锈, 也开始生 ...
- helm原理
Helm: helm就相当于Linux的包管理工具yum,但它管理的程序包是一些打包好的清单文件. 其核心术语: Chart:一个helm程序包,它里面可理解为,包含了一下定义Pod的清单文件,这些清 ...
- 批量转换文件字符编码(GBK转UTF-8)
今天收到一份代码,拖到IDE中发现乱码,看来下编码是GBK的(
- Linux将一个文件夹或文件夹下的所有内容复制或移动到另一个文件夹
1.将一个文件夹下的所有内容复制到另一个文件夹下 cp -r /home/packageA/* /home/cp/packageB/ 或 cp -r /home/packageA/. /home/cp ...
- Redis 动态字符串 SDS 源码解析
本文作者: Pushy 本文链接: http://pushy.site/2019/12/21/redis-sds/ 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可 ...
- linux alias写快捷键笔记
linux alias写快捷键笔记<pre>#vi ~/.bashrc ps:~找个代表当前登录用户的用户目录 pwd就知道了alias phpfpmrestart='/usr/local ...
- windows版mysql安装
https://blog.csdn.net/ycxzuoxin/article/details/80908447
- K-Means 聚类分析学习笔记
在之前分享的链家二手房数据分析的练习中用到了 K-Means 聚类分析方法,所以就顺道一起复习一下 K-Means 的基础知识好了. K-Means 聚类分析可将样本分为若干个集群,它的核心思想就是使 ...