`
JerryWang_SAP
  • 浏览: 1043656 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

CRM WebClient UI的浏览器打印实现

阅读更多

WebClient UI上自带了一个打印按钮,按Ctrl + P后可以生成一个新的页面供打印。

 

 

如下图所示。可以看到这个页面里所有的超链接都已经被移除了。

 

这个页面的生成逻辑如下。

1. 按住ctrl + p之后,会触发WebClient UI框架的按键响应函数thtmlbKeyDown。浏览器传入的事件处理对象里ctrl属性为true,keycode为80(按键p对应的code),意思就是ctrl和p同时按下。

 

这个响应函数thtmlbKeyDown被注册到整个document对象上,因此您在页面任何位置点击ctrl+p都能得到响应。

 

从右上角的调用栈能发现crmFrwPrint被调用。crmFrwPrint会打开print.do这个控制器,位于BSP应用bspwd_basics里。

 

2. 打开print.do控制器的实现类CL_BSPWD_BASICS_PRINT

 

这个控制器会打开print.html页面

 

3. 我们按了ctrl+p后生成的页面的内容就是在print.html里生成的。核心代码在函数ppStartScripts里,被thtmlbRegisterOnLoad注册到页面的load事件里,意思是print.html加载时就执行。

 
 

 

thtmlUtil.addEventHandler就是SAP自己封装的事件注册函数,用于多浏览器的兼容支持。

最核心的两个函数:

CreateShield

生成一个height和width为100%的div,背景图片设置成SAP预定义好的1x1.gif。

 

运行时显示如下:

 

loadPage

通过window.opener拿到发生了ctrl+p按键的原始页面,然后把其th-l-wcsubheadercontainer下面的所有元素的html直接复制到打印输出页面的header元素下面。

这样就实现了把原始页面的内容搬到了打印输出页面。

 

 

然后得到打印页面所有超链接标签,然后把这些标签的href和onclick都置为一个函数体为return false的函数,这样超链接就不再能点击。

 

 

var nirvana = new Function ( "return false;" );

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

 
 
0
0
分享到:
评论
2 楼 JerryWang_SAP 2018-04-30  
masuweng 写道
这是java代码吗?


您好,都是JavaScript哈。
1 楼 masuweng 2018-04-19  
这是java代码吗?

相关推荐

    CRM7.0 WebClient UI config

    7. **集成与扩展**:WebClient UI可能与其他系统(如ERP、BI等)集成,实现数据同步和跨系统的业务流程。 8. **报表和分析**:配置UI以支持丰富的报表和仪表板,帮助用户快速获取关键业务指标。 9. **用户体验测试...

    UI Guidelines for CRM WebClient User Interface

    UI Guidelines for CRM WebClient User Interface

    SAP CRM WebClient UI cross component跳转的一个具体例子

    Sent: Thursday, April 18, 2013 3:59 PM Subject: 为什么design time时候看到的是ICQR,点了service之后看到02QR的代码被call到 这是cross component navigation在起作用。 Result list是model在ICQR里面,如果点...

    SAP CRM WebClient UI ON_NEW_FOCUS的用途

    Sent: Thursday, May 9, 2013 6:30 PM Subject: ON_NEW_FOCUS的用途 ROOT ———————————— Product ID PRODshortText ———————————— Product Description Genil Model hierarchy

    Creating a Dropdown in SAP CRM WebUI.docx

    在SAP CRM WebUI中创建下拉列表是一个关键任务,特别是在设计用户界面以提供更高效、用户友好的交互时。本教程将引导你通过一系列步骤来实现这一目标,特别是针对SEX(性别)属性创建一个下拉框。 首先,你需要获取...

    SAP_CRM中文自学笔记

    SAP CRM的基础知识通常包括对于其核心组件的理解,包括主数据(如账户、组织模型、产品等),交易处理、定价、开票、CRM中间件以及CRM WebClient UI。CRM中间件主要负责不同系统组件之间的信息交换,而CRM WebClient...

    SAPCRM基础培训教材.doc

    《SAP CRM基础培训教材详解》 ...总结来说,SAP CRM的基础培训涵盖了WebClient UI的演变及其丰富元素,以及CRM与ERP的集成策略。了解这些知识,有助于更好地理解和使用SAP CRM系统,提升企业的运营效率和服务质量。

    SAPCRM基础培训.doc

    这个阶段,WebClient UI利用SAP BSP(Business Server Pages)和BOL(Business Object Library)技术,通过HTTP协议使得用户可以通过网页浏览器访问SAP CRM,极大地提升了用户体验和跨平台兼容性。 CRM WebClient ...

    WebClient 的Post实现

    在本场景中,我们关注的是“WebClient的Post实现”,这通常涉及到使用Silverlight技术来模拟网页上的POST请求,从而实现数据上传。Silverlight是一种由微软开发的富互联网应用程序(RIA)平台,它允许开发者创建交互...

    C#中WebClient实现文件下载

    在C#编程中,WebClient类提供了一种简单的方式来实现文件下载。WebClient是一个高度封装的网络通信类,主要用于HTTP协议交互,包括上传和下载数据。以下是对标题和描述中涉及知识点的详细解释: 1. **WebClient下载...

    WebClientDemo_webclient_

    【WebClientDemo_webclient_】项目是一个C#编程示例,展示了如何使用`WebClient`类来实现文件的下载功能。在.NET Framework中,`WebClient`是System.Net命名空间下的一个类,它提供了一种简便的方法来上传和下载数据...

    使用WebClient实现文件下载

    在这个场景中,我们将探讨如何使用`WebClient`来实现文件的下载,并且展示如何在下载过程中显示进度条,以便用户了解下载进度。 1. **WebClient类的使用**: `WebClient`类提供了`DownloadFile`方法,可以直接将...

    WebClient下载文件展示进度条

    请注意,实际应用中可能需要处理错误和异常,以及考虑线程同步问题,确保UI线程安全地更新进度条。此外,如果要实现更复杂的功能,比如暂停和恢复下载,可能需要使用更高级的类如System.Net.Http.HttpClient,配合...

    C# 实现的个人浏览器

    【C#实现的个人浏览器】项目是一个典型的C#网络编程应用实例,主要展示了如何利用C#语言构建一个具有基本功能的浏览器。在这个项目中,开发者不仅需要掌握C#的基础语法,还需要深入理解网络请求、HTML解析、GUI界面...

    WebClient-2.2.5.exe

    WebClient安装文件。 在Java世界中,有许多用于发送HTTP请求的库。比较三种流行的HTTP客户端:WebClient,HttpClient和OkHttp。WebClient是Spring 5中引入的非阻塞,反应式的Web客户端。它是在Project Reactor和...

    C# WebClient 上传文件

    C#语言提供了多种方法来实现这一功能,其中`WebClient`类就是一种非常简便的方式。本文将详细介绍如何使用`WebClient`类上传文件,并对代码进行深入解析。 #### 二、`WebClient`类简介 `WebClient`是.NET Framework...

    htmlunit webclient下载资源

    在这个例子中,我们创建了一个WebClient实例,启用了JavaScript支持,然后打开了一个URL并打印了响应内容。 在你的场景中,你可能用WebClient实现了某种循环,每次迭代都下载一次资源,直到达到1000次。这可能是...

    基于C#设计的浏览器

    C#中的`System.Net.WebClient`或`HttpClient`类可以用来实现这一功能。这些类提供了异步的下载方法,使得在等待响应的同时,程序可以执行其他任务。 2. **用户界面(UI)设计**:C#中的Windows Presentation ...

    C# 使用WebClient类 下载网络指定资源

    在本教程中,我们将深入探讨如何使用WebClient类来实现一个功能完善的网络资源下载器,包括实时显示下载速度和进度,并在下载完成后提供提示。 首先,让我们了解WebClient类的基本用法。WebClient是System.Net命名...

    WebClient访问间歇性返回403解决方案.docx

    WebClient 是一个常用的网络访问类,它可以模拟浏览器的行为来访问网页。然而,在某些情况下,WebClient 访问间歇性返回 403 错误,这种情况非常让人讨厌。 分析错误信息,我们可以发现,403 错误是由于权限设置...

Global site tag (gtag.js) - Google Analytics