函数封装

SAP 封装一个SE16N功能,直接修改数据库表数据

空扰寡人 提交于 2020-01-02 16:18:45
更多内容关注公众号:SAP Technical 各位可以关注我的公众号:SAP Technical 其实自建SE16N功能,并让它可以直接修改数据库表数据,其原理与在SE16N中DEBUG修改EDIT参数的原理一样,只是在调用标准的函数组时把入参稍作修改即可。 实现代码如下: REPORT zse16n. PARAMETERS:p_tabnm TYPE dd02l-tabname OBLIGATORY. AT SELECTION-SCREEN. SELECT COUNT(*) FROM dd02l WHERE tabname = p_tabnm. IF sy-subrc <> 0. MESSAGE '表不存在' TYPE 'E'. ENDIF. START-OF-SELECTION. CALL FUNCTION 'SE16N_INTERFACE' EXPORTING i_tab = p_tabnm i_edit = 'X' "参数修改 i_sapedit = 'X' "参数修改 EXCEPTIONS no_values = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 DISPLAY LIKE

转-js方法的封装

删除回忆录丶 提交于 2020-01-02 03:05:28
为什么要进行方法的封装? 在平时的生产环境中,我们经常写出这样的代码: function fAdd(iA,iB){ return iA+iB; } function fMul(iA,iB){ return iA-iB; } 其本质上是这样的: var fAdd = function(iA,iB){ return iA+iB; } var fMul = function(iA,iB){ return iA-iB; } 这样的话,我们就创建了两个全局变量,iA,iB.如果在大型的项目环境中,会有很多人对代码进行开发,很容易造成变量污染,从而引出很多问题.所以我们就要对方法进行封装. 封装方式1: 封装成对象 利用js中对象的特性来将我们的方法封装在对象中 var oFuncs = {   fAdd : function(iA,iB){   return iA+iB; } fMul:function(iA,iB){   return iA-iB;   } } 或者 var oFuncs = function(){};   oFuncs.fAdd = function(iA,iB){   return iA+iB; } oFuncs.fMul = function(iA,iB){   return iA-iB; } 这样,我们就可以这样调用函数了 oFuncs.fAdd(3,4);

canvas函数封装(画圆形图片、文字换行)

和自甴很熟 提交于 2019-12-31 13:41:36
1、画圆形图片 /** * 画圆形图片 * @param {object} ctx canvas * @param {number} width 图像宽度 * @param {number} height 图像高度 * @param {number} x 开始位置 * @param {number} y 结束位置 * @param {string} url 图片地址 */ function drawCircular(ctx,width,height,x,y,url) { var img_w = width; var img_h = height; var img_x = x; var img_y = y; ctx.save(); ctx.beginPath(); ctx.arc(img_w / 2 + img_x, img_h / 2 + img_y, img_w / 2, 0, Math.PI * 2, false); ctx.clip(); ctx.drawImage(url, img_x, img_y, img_w, img_h); ctx.restore(); } 2、根据每行字符长度换行,或者用\n换行 /** * 文字换行,特例可用\n * @param {Object} ctx 画布对象 * @param {String} text 文字 * @param

ajax的get和post二合一的封装

牧云@^-^@ 提交于 2019-12-30 21:16:17
<script> document.onclick = function(){ ajax({ // type:"get", //发送方式,可选,默认get url:"http://localhost/1908/ajax/data/data.php", //要请求的地址,必选 success:function(res){ //请求成功之后的函数,必选 console.log(res) }, // data:{ //要发送的数据,可选,默认不发 // user:"admin", // pass:13123121123 // }, // error:function(res){ //请求失败之后的函数,可选,默认不处理 // console.log(res) // }, // timeout:10 //请求超时的时间,可选,默认2000 }) } function ajax(options){ // 1.处理默认参数 var {type,url,success,error,data,timeout} = options; type = type || "get"; data = data || {}; timeout = timeout || 2000; // 2.解析要发送的数据 var str = ""; for(var i in data){ str += `${i}=${data

jq插件的封装

◇◆丶佛笑我妖孽 提交于 2019-12-30 05:11:09
jquery插件一般有三种开发方式: { 1. 通过$.extend()来扩展jQuery---------------------$.extend()添加的函数时直接通过$符号调用,而不需要选中DOM元素(相当于给jQuery身上添加了一个静态方法) 2. 通过$.fn 向jQuery添加新的方法-----------------能处理DOM元素以及将插件更好地运用于所选择的元素身上 3. 通过$.widget()应用jQuery UI的部件工厂方式创建 } 具体用法如下: $.extend({ sayHello: function(name) { console.log('Hello,' + (name ? name : 'Dude') + '!'); } }) $.sayHello(); //调用 $.sayHello('test'); //带参调用 2.形式如下: $.fn.pluginName = function() { //your code } 例子: var testObj= function(el, opt) { this.$element = el, this.defaults = { 'color': 'red', 'fontSize': '12px', 'textDecoration':'none' }, this.options = $.extend({

java封装AES加密算法

倾然丶 夕夏残阳落幕 提交于 2019-12-30 02:26:19
在实际coding中会常常遇到往数据库存入密码时加密。URL传參时的加密。由此简单封装了下java中的AES加密算法。 0、import类 import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import org.apache.axis.encoding.Base64; //非必须 1、加密接口 /** * 加密 * @param content 待加密内容 * @param password 加密密钥 * @return */ public static byte[] encrypt(String content, String password) { try { KeyGenerator kgen = KeyGenerator.getInstance("AES"); kgen.init(128, new SecureRandom(password.getBytes())); SecretKey secretKey = kgen.generateKey(); byte[] enCodeFormat =

类的封装和preperty装饰器

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-29 03:51:38
封装 封装数据的主要原因:保护隐私 封装方法的主要原因:隔离复杂度 提示:在编程语言里,对外提供的接口(入口函数),就是接口函数,这不同于于接口的函数,代表一组接口函数的集合体 两个层面的封装 ### 第一层面的封装(什么都不用做) 创建类和对象会分别创建二者的名称空间,我们只能用.类名或者.obj.的方法去访问 注意:对于这一层面的封装(隐藏):类名和实例名就是访问隐藏属性的接口 第二层面的封装: 类中把某些属性和方法隐藏(或者说定义为私有),只有在类的内部使用,外部无法访问,或者留下少量接口(函数)供外部访问 在python中用双下划綫的方式实现隐藏属性(设置为私有) property装饰器 property装饰器用于将被装饰的方法伪装成一个数据属性,在使用时可以不用加括号而直接使用 property属性的定义和调用需注意: 定义时,在实例方法的基础上添加@property装饰器,并且只有一个self参数 调用时无需括号 property属性的功能是:property属性内部进行一系列的逻辑运算,最终将计算结果返回 property属性的两种方式 装饰器,在方法上应用装饰器 类属性,在类中定义值为property对象的类属性 装饰器 经典中。具有一种@property装饰器 对应了一种访问方式,其对应被@property修饰的方法 新式类中,具有三种@property装饰器

常用函数封装

喜欢而已 提交于 2019-12-29 00:43:09
1. 获取元素ID var getDom = function(id){ return document.getElementById(id); } 2. 增加事件监听事件 var addEvent = function(id, event, fn){ var el = getDom(id) || document; if(el.addEventListener){ el.addEventListener(event, fn, false); }else if(el.attachEvent){ el.attachEvent('on'+event, fn); } } 3. 获取元素到body边缘的offsetLeft / offsetTop值 var getElementLeft = function(element){ var actualLeft = element.offsetLeft; var current = element.offsetParent; while(current !== null){ actualLeft += current.offsetLeft; current = current.offsetParent; } return actualLeft; } //获取的值是没有'px'单位的 var getElementTop = function

常用JS函数封装

ε祈祈猫儿з 提交于 2019-12-29 00:42:26
//获取元素属性 function getStyle(obj,attr) { return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj,0)[attr]; } //运动函数 function doMove(obj,attr,speed,target,endFn) { clearInterval(obj.timer); speed = parseInt(getStyle(obj,attr))<target ? speed:-speed; //alert(speed); obj.timer=setInterval(function(){ var curPosition=parseInt(getStyle(obj,attr))+speed; if(curPosition>target && speed>0 || curPosition<target && speed<0) curPosition=target; obj.style[attr]=curPosition + 'px'; if(curPosition==target) { clearInterval(obj.timer); endFn && endFn(); } },50); } //getElementByClassName函数

js常用函数的封装

喜你入骨 提交于 2019-12-29 00:41:25
/*--> */ /*--> */ 1://截取url带过来的参数 function getvl(name) { var reg = new RegExp("(^|\\?|&)" + name + "=([^&]*)(\\s|&|$)", "i"); return reg.test(location.href) ? decodeURI(RegExp.$2.replace(/\+/g, " ")) : '';};2://判断对象的长度 Object.size = function (obj) { var size = 0, key; for (key in obj) { if (obj.hasOwnProperty(key)) size++; } return size;};3:// 转换字符串成时间function changeTime(t, nohour) { if (String(t).indexOf("-") >= 0 || t == null) { return t = ''; } else { var date = new Date(t); Y = date.getFullYear() + '-'; M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-