一,登陆界面设计:

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. CSV读取

    可以在Excel中编辑好后  另存为CVS文件

  2. Educational Codeforces Round 78 (Rated for Div. 2) B. A and B

    链接: https://codeforces.com/contest/1278/problem/B 题意: You are given two integers a and b. You can pe ...

  3. 使用plv8+ shortid npm包构建一个短唯一id服务

    plv8 是一个很强大的pg 扩展插件,我们可以直接额使用js 增强sql ,shortid 是一个用来生成短连接id 很方便的类库 因为shortid 是一个npm 模块,我们需要使用一种方法使用r ...

  4. dos下编辑过sh脚本后无法运行

    情景: 同样的的脚本,在不同的机器下运行有的可以成功,有的运行失败, 前提:sh脚本windos下编辑过. 脚本在windows上修改之后,在每行尾部多了个 ^M,导致sh脚本在执行的时候可能shba ...

  5. C实现Linux中copy功能

    /* mycp.c */ #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<f ...

  6. 每日一问:你了解 Java 虚拟机结构么?

    对于从事 C/C++ 程序员开发的小伙伴来说,在内存管理领域非常头疼,因为他们总是需要对每一个 new 操作去写配对的 delete/free 代码.而对于我们 Android 乃至 Java 程序员 ...

  7. quantmod

    -quantmod(数据和图形) -TTR(技术分析) -blooter(账户管理) -FinancialInstrument(金融产品) -quantstrast(策略模型) -Performanc ...

  8. [技术博客]海报图片生成——小程序canvas画布

    目录 背景介绍 canvas简介 代码实现 难点讲解 圆角矩形裁剪失败之PS的妙用 编码不要过硬 对过长的文字进行截取 真机首次生成时字体不对 drawImage只能使用本地图片 背景介绍 目标:利用 ...

  9. UE4命令行参数解析

    转自:https://blog.csdn.net/u012999985/article/details/53544389 一 .命令行参数简述命令行参数是一连串的关键字字符串,当运行可执行文件时可以通 ...

  10. nginx负载均衡原理

    负载均衡在服务端开发中算是一个比较重要的特性.因为Nginx除了作为常规的Web服务器外,还会被大规模的用于反向代理前端,因为Nginx的异步框架可以处理很大的并发请求,把这些并发请求hold住之后就 ...