使用按键将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
    <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;这允许您访问其中包含的功能。
    <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 脚本添加到此文件,并保存它。
    <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 文件夹中,以查看输出,即从“列表”屏幕复制的数据,如下图所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值