使用按键将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 文件夹中,以查看输出,即从"列表"屏幕复制的数据,如下图所示。
相关推荐
图片转成excel表格1 分钟前
wps怎么算出一行1和0两种数值中连续数值1的个数,出现0后不再计算?
excel·wps
别拿曾经看以后~11 分钟前
【el-form】记一例好用的el-input输入框回车调接口和el-button按钮防重点击
javascript·vue.js·elementui
川石课堂软件测试17 分钟前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
JerryXZR31 分钟前
前端开发中ES6的技术细节二
前端·javascript·es6
q24985969336 分钟前
前端预览word、excel、ppt
前端·word·excel
problc1 小时前
Flutter中文字体设置指南:打造个性化的应用体验
android·javascript·flutter
Gavin_9151 小时前
【JavaScript】模块化开发
前端·javascript·vue.js
懒大王爱吃狼2 小时前
Python教程:python枚举类定义和使用
开发语言·前端·javascript·python·python基础·python编程·python书籍
待磨的钝刨3 小时前
【格式化查看JSON文件】coco的json文件内容都在一行如何按照json格式查看
开发语言·javascript·json
前端青山8 小时前
Node.js-增强 API 安全性和性能优化
开发语言·前端·javascript·性能优化·前端框架·node.js