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 ...
随机推荐
- C++中typedef和define的区别
typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: ...
- HDU2650 A math problem——高斯素数
题意 给你一个数 $a+bj, \ j=\sqrt {-2}$,如果它只能被1.-1.本身和本身的相反数整除,则输出Yes,否则输出No. 分析 高斯整数 $a+bi$ 是素数当且仅当: (1)$a, ...
- Invalid connection string format, a valid format is: "host:port:sid"
报错信息: Caused by: java.sql.SQLException: Io 异常: Invalid connection string format, a valid format is: ...
- RabbitMQ消息确认机制
文章目录 1. 事务机制2. Confirm模式2.1 生产者2.1.1 普通Confirm模式2.1.2 批量Confirm模式2.1.3 异步Confirm模式2.2 消费者3. 其他 消费者如何 ...
- vultr的防火墙注意事项
如下图所示,你设置让任意IP的TCP,UDP,GRE,ESP,ICMP都允许访问,并不表示开放了任意协议和端口了. 下图只是表示开放了TCP,UDP,GRE,ESP,ICMP五个协议,比如ROS路由的 ...
- es 内存占用优化
对6.3: 修改Elasticsearch中JVM配置文件jvm.options: Dlog4j2.enable.threadlocals=false 注: 本文主要针对ES 2.x. “该给ES分配 ...
- CentOS环境设置Hbase自启动
1.在/etc/init.d/目录创建hbase文件 #!/bin/bash # chkconfig: #export JAVA_HOME=/usr/local/jdk1.8.0_191 HBASE_ ...
- SpringMvc通过controller上传文件代码示例
上传文件这个功能用的比较多,不难,但是每次写都很别扭.记录在此,以备以后copy用. package com.**.**.**.web.api; import io.swagger.annotatio ...
- PHP生成正则表达式的类
正则表达式,写起来还是比较费劲的,于是封装个类,初稿,抛砖引玉. 关于正则,建议参考 https://github.com/CyC2018/CS-Notes/blob/master/notes/%E6 ...
- CloseableHttpClient方式配置代理服务器访问外网
小编最近在负责银行内部项目.其中有模块需要访问天眼查API接口,但由于公司全部内网,所以需要配置代理服务器才可以访问外网接口. 又到了激动人心的上码时刻! public void Connect(Ht ...