使用按键将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 文件夹中,以查看输出,即从"列表"屏幕复制的数据,如下图所示。
相关推荐
前端小巷子几秒前
JS实现丝滑文字滚动
前端·javascript·面试
写不出来就跑路22 分钟前
基于 HTML+CSS+JavaScript 的薪资实时计算器(含本地存储和炫酷动画)
javascript·css·html
m0_5557629023 分钟前
Excel ——INDEX + MATCH 组合
excel
焚 城25 分钟前
Excel数据导出小记二: [大数据示例]
大数据·excel
醉方休1 小时前
React Fiber 风格任务调度库
前端·javascript·react.js
华仔啊1 小时前
摸鱼神器!前端大佬私藏的 11 个 JS 神级 API,复制粘贴就能用,效率翻倍
前端·javascript
念念不忘 必有回响1 小时前
js设计模式-状态模式
javascript·设计模式·状态模式
小桥风满袖2 小时前
极简三分钟ES6 - 箭头函数
前端·javascript
bug_kada2 小时前
前端后端3步联调:Cookie认证实战,让登录功能完美上线!
前端·javascript
hj5914_前端新手2 小时前
深入分析 —— JavaScript 深拷贝
前端·javascript