document详解

对于document.compatMode,很多朋友可能都根我一样很少接触,知道他的存在却不清楚他的用途。其实这个对于我们开发兼容性的web页面还是很有帮助,我们都知道,盒模型的渲染在 Standards Mode和Quirks Mode是有很大差别的,在不声明Doctype的情况下,浏览器默认是Quirks Mode。所以为兼容性考虑,我们可能需要获取当前的文档渲染方式。
document.compatMode正好派上用场,它有两种可能的返回值:BackCompat和CSS1Compat,对其解释如下:
BackCompat Standards-compliant mode is not switched on. (Quirks Mode)
CSS1Compat Standards-compliant mode is switched on. (Standards Mode)
当文档有了标准声明时, document.compatMode 的值就等于 "CSS1compat", 因此, 我们可以根据 document.compatMode 的值来判断文档是否加了标准声明
var height = document.compatMode=="CSS1Compat" ? document.documentElement.clientHeight : document.body.clientHeight;
当文档有了标准声明时火狐的style.top等等的设置必须加上“px”等单位,否则它不会认。既然已经说道了这,再展开一下。对于火狐:
一、offsetTop 返回的是数字,而 style.top 返回的是字符串,除了数字外还带有单位:px。
二、offsetTop 只读,而 style.top 可读写。
三、如果没有给 HTML 元素指定过 top 样式(即使在css中设定也不行),则 style.top 返回的是空字符串。
offsetLeft 与 style.left、offsetWidth 与 style.width、offsetHeight 与 style.height 也是同样道理。
再说说他们的区别吧:
下面这段大家可能都见到过,在网上被转载过很多次,在这我也借用一下:
.Kfk428 { display:none; }
网页可见区域宽: document.body.clientWidth;
网页可见区域高: document.body.clientHeight;
网页可见区域宽: document.body.offsetWidth (包括边线的宽);
网页可见区域高: document.body.offsetHeight (包括边线的宽);
网页正文全文宽: document.body.scrollWidth;
网页正文全文高: document.body.scrollHeight;
网页被卷去的高: document.body.scrollTop;
网页被卷去的左: document.body.scrollLeft;
网页正文部分上: window.screenTop;
网页正文部分左: window.screenLeft;
屏幕分辨率的高: window.screen.height;
屏幕分辨率的宽: window.screen.width;
屏幕可用工作区高度: window.screen.availHeight;
屏幕可用工作区宽度:window.screen.availWidth;

scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标

event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量

以上主要指IE之中,FireFox差异如下:
IE6.0、FF1.06+:
clientWidth = width + padding
clientHeight = height + padding
offsetWidth = width + padding + border
offsetHeight = height + padding + border
IE5.0/5.5:
clientWidth = width - border
clientHeight = height - border
offsetWidth = width
offsetHeight = height
(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)

<think>嗯,用户想了解ABAP函数ME_DISPLAY_PURCHASE_DOCUMENT的详细说明和用法,包括参数说明。首先,我需要确认这个函数的功能是什么。根据名字来看,应该是显示采购单据的,比如采购订单或合同。接下来,我需要回忆一下这个函数的具体参数。通常SAP的函数模块会有输入参数,比如文档号、文档类型、年份等。可能还有控制显示的参数,比如是否弹出模式窗口。 我记得在SAP的采购模块中,ME_DISPLAY_PURCHASE_DOCUMENT常用于在程序里直接显示采购单据,类似于事务代码ME23N的功能。用户可能希望在自己的ABAP报表或增强中调用这个函数,而不是直接跳转到事务代码。这时候需要正确传递参数,比如采购订单号、采购订单类型等。 然后,关于参数说明,可能需要查找SAP的官方文档或函数模块的接口。例如,IV_DOCUMENT_TYPE对应采购文档类型,如'NB'表示标准采购订单;IV_DOCUMENT_NUMBER是采购订单号;IV_DOCUMENT_YEAR是年份。另外,IV_MODE可能控制显示模式,比如是否允许编辑,但根据经验,这个函数可能只是显示,不允许修改,所以IV_MODE可能用来控制是否以弹出窗口形式显示。 用户可能还关心示例代码,如何正确调用这个函数。需要确保参数正确传递,比如从数据库表中获取采购订单的信息,或者从用户输入中获取。还要注意可能的异常处理,比如文档不存在时的处理。 此外,用户可能想知道这个函数的使用场景,比如在自定义报表中快速查看采购订单详情,或者在增强中自动显示相关单据。还需要提醒用户注意权限问题,是否有权限访问相关采购数据。 可能的相关问题包括如何获取采购订单的数据,或者如何创建采购订单,这时候可以提到BAPI如BAPI_PO_CREATE1,但当前问题主要是显示。另外,用户可能会问到如何处理调用后的屏幕跳转,或者如何集成到事务代码中,这可能需要参考SAP的CALL TRANSACTION用法或增强技术。 最后,确保回答结构清晰,分步骤说明函数的用途、参数、示例和注意事项,并生成相关问题帮助用户进一步探索。</think>### ABAP函数ME_DISPLAY_PURCHASE_DOCUMENT详解 #### 1. 函数功能 `ME_DISPLAY_PURCHASE_DOCUMENT`是SAP MM模块中用于**显示采购凭证(如采购订单、框架协议等)**的标准函数模块。其作用类似于事务代码`ME23N`(显示采购订单)的底层实现,允许在ABAP程序中直接调用并显示采购凭证的详细信息[^3]。 #### 2. 核心参数说明 需通过`IMPORTING`参数传递采购凭证的关键信息: $$ \begin{aligned} &\text{IV\_DOCUMENT\_TYPE} \quad &&\text{采购凭证类型(如'NB'=标准采购订单)} \\ &\text{IV\_DOCUMENT\_NUMBER} \quad &&\text{采购凭证编号} \\ &\text{IV\_DOCUMENT\_YEAR} \quad &&\text{凭证年份} \\ &\text{IV\_MODE} \quad &&\text{显示模式('DISPLAY'=只读,'CHANGE'=编辑)} \\ &\text{IV\_POPUP} \quad &&\text{是否以弹窗形式显示(默认SPACE=全屏)} \end{aligned} $$ #### 3. 调用示例 ```abap DATA: lv_ebeln TYPE ekko-ebeln VALUE '4500000011', lv_bukrs TYPE ekko-bukrs VALUE '1000'. CALL FUNCTION 'ME_DISPLAY_PURCHASE_DOCUMENT' EXPORTING iv_document_type = 'NB' "采购订单类型 iv_document_number = lv_ebeln "采购订单号 iv_document_year = '2024' "订单年份 iv_mode = 'DISPLAY' "显示模式 iv_popup = 'X'. "弹窗显示 ``` #### 4. 注意事项 - **权限控制**:用户需具备`ME23N`事务代码的权限 - **数据来源**:通常与`EKKO`(采购凭证头表)/`EKPO`(采购凭证行表)联用获取凭证信息 - **增强场景**:可通过`EXIT_SAPMM06E_013`等增强点扩展功能[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值