使用按键将SAP列表屏幕数据复制到Excel文件中

目的

了解如何使用在 SAP 屏幕上创建的按钮将列表屏幕数据复制到 excel。为了解释这一点,我们将指导您完成以下步骤。

  1. 添加按钮以调用函数
  2. 创建一个函数以从"列表"屏幕复制数据,并将其分配给数组
  3. 创建将数据复制到 excel 文件的函数


注意: 确保放置wsoffice.dllRVKRED02。E1000.sjs 文件。
用户界面

//在脚本文件夹中创建此文件,用于自定义 SD 文档屏幕RVKRED01。E0120.sjs

//现在,让我们开始将 Liquid UI 脚本添加到上面的文件中并保存它。

定制屏幕
  1. 登录 SAP,然后导航到 VKM1(阻止的 SD 文档) 屏幕。
屏幕脚本
  1. 添加一个标签为滚动按钮 ,以在单击时执行进程z_readfromlist

    pre 复制代码
    <span style="color:#333333"><span style="background-color:#f5f5f5"><span style="color:#888888">// Creates a pushbutton with the label as <strong>scroll</strong> to call a function when clicked.</span> 
    pushbutton([<span style="color:#f00000">TOOLBAR</span>],"<span style="color:#f00000">"scroll"</span>",{<span style="color:#848484">"process":z_readfromlist</span>});</span></span>
  2. 使用 load 命令将 wsoffice.dll 文件添加到RVKRED01。E0120.sjs ;这允许您访问其中包含的功能。

    pre 复制代码
    <span style="color:#333333"><span style="background-color:#f5f5f5"><span style="color:#888888">// wsoffice.dll is required to be installed</span>
    load('<span style="color:#f00000">wsoffice</span>');  </span></span>
  3. 现在,将以下 Liquid UI 脚本添加到此文件,并保存 它。

    pre 复制代码
    <span style="color:#333333"><span style="background-color:#f5f5f5">// function to read data from the List screen and assign it to an array
    
    functionz_readfromlist(){
     z_doc = [];                // array to store data 
     z_doc1 = [];               // array to store data 
     z_doc2 = [];               // array to store data 
    
    ifvrow = 1; 
     onscreen '<span style="color:#f00000">RVKRED01.0120</span>' 
     SCROLL_NEXT:; 
     enter("<span style="color:#f00000">/scrolltoline=&V[lfvrow]"</span>);       //scroll the list vertically 
     
     onscreen '<span style="color:#f00000">RVKRED01.0120</span>' 
     enter("<span style="color:#f00000">/hscrollto=0"</span>);                   //scroll list horizontally 
     
    //To go to the end of the function when the end of the List screen is reached.
    
    if(lfvrow >= _listlastvisiblerow){ 
    goto END; 
    }
     START:; 
     ifvrow = _listfirstvisiblerow; 
     llvrow = _listlastvisiblerow; 
     z_row = 3; 
     LOOP:; 
     set("<span style="color:#f00000">V</span>[<span style="color:#f00000">V[doc_val]</span>]","<span style="color:#f00000">&#["+z_row+",30]</span>");
     set("<span style="color:#f00000">V</span>[<span style="color:#f00000">V[doc_val1]</span>]","<span style="color:#f00000">&#["+z_row+",72]</span>");
     set("<span style="color:#f00000">V</span>[<span style="color:#f00000">V[doc_val2]</span>]","<span style="color:#f00000">&#["+z_row+",97]</span>");
     z_doc.push(doc_val);
     z_doc1.push(doc_val1);
     z_doc2.push(doc_val2);
     lfvrow = lfvrow+1; 
     if(lfvrow <= _listlastvisiblerow){ 
     z_row = z_row+1;
     goto LOOP;
     }
     else{ 
    goto SCROLL_NEXT 
     } 
    END;
     
     // To display array elements on Cornelius output window
    
    for(i=0;i<z_doc.length;i++){
     println("*******************************************************");
     println("document number at z_doc["+i+"]="+z_doc[i]); 
     println("document Name at z_doc["+i+"]="+z_doc1[i]);
     println("document City at z_doc["+i+"]="+z_doc2[i]);
     println("*******************************************************");
     } 
     copy_To_Excel(zdoc,zdoc1,zdoc2)
     }
     
    //function to copy the data from list screen to excel file. 
    
     function copy_To_Excel(zdoc,zdoc1,zdoc2)
     var ExcelApp = new ActiveXObject("Excel.Application"); 
     var ExcelSheet = new ActiveXObject("Excel.Sheet"); 
     
     ExcelSheet.ActiveSheet.Cells(1,1).Value = "Document Number"; 
     ExcelSheet.ActiveSheet.Cells(1,2).Value = "Name of the Person";
     ExcelSheet.ActiveSheet.Cells(1,3).Value = "City"; 
     for(i=2;i<z_doc.length;i++) { 
     ExcelSheet.ActiveSheet.Cells(i,1).Value = z_doc[i]; 
     ExcelSheet.ActiveSheet.Cells(i,2).Value = z_doc1[i];
     ExcelSheet.ActiveSheet.Cells(i,3).Value = z_doc2[i]; 
     } 
     var str = "C:\\LiquidUI\\scripts\LISTSCREENDATA.XLS"; 
     var fso = new ActiveXObject("Scripting.FileSystemObject"); 
     if(fso.FileExists(str)){ 
     message(<span style="color:#f00000">"E:FILE ALREADY EXISTS PLEASE REMOVE OLD FILE"</span>); 
     } 
     else{ 
     ExcelSheet.SaveAs(str); 
     ExcelSheet.Application.Quit(); 
     } 
     }</span></span>
SAP流程
  1. 现在,刷新 SAP 屏幕,然后单击**"执行** "按钮,如下所示。
  2. 然后出现以下屏幕,现在单击滚动 工具栏按钮将值存储到数组中。
  3. 然后出现一个屏幕,其中包含存储的数据,如下图所示。


    注意: 将在脚本目录中创建一个名称为 LISTSCREENDATA.xls 的新 excel 文件。
  4. 现在,打开 Cornelius 窗口以查看输出,即从列表屏幕复制到数组的数据,如下图所示。
  5. 最后,打开 excel 文件LISTSCREENDATA.xls ,该文件创建并存储在 scripts 文件夹中,以查看输出,即从"列表"屏幕复制的数据,如下图所示。
相关推荐
黄毛火烧雪下8 分钟前
React返回上一个页面,会重新挂载吗
前端·javascript·react.js
zh路西法13 分钟前
【Matlab绘图】从Excel导入表格并进行三维绘图
开发语言·matlab·excel
程序员大金2 小时前
基于SpringBoot+Vue+MySQL的旅游网站
javascript·vue.js·spring boot·后端·mysql·intellij-idea·旅游
安冬的码畜日常2 小时前
【D3.js in Action 3 精译_025】3.4 让 D3 数据适应屏幕(中)—— 线性比例尺的用法
前端·javascript·信息可视化·数据可视化·d3.js·d3比例尺·javascript可视化
fury_1232 小时前
nodejs:实现大文件的分段上传
开发语言·前端·javascript
百事牛2 小时前
防止错误输入!Excel单元格限制输入内容的三种有效方式
windows·excel
DefineJ3 小时前
EXCEL图片链接快速批量转成图片
excel
anyup_前端梦工厂3 小时前
JS设计模式之状态模式:优雅地管理应用中产生的不同状态
前端·javascript·设计模式
LJ小番茄5 小时前
TS(type,属性修饰符,抽象类,interface)一次性全部总结
前端·javascript·vue.js·typescript
Moshow郑锴5 小时前
KaTeX.js渲染数学公式
开发语言·javascript·ecmascript