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

作者 : admin 本文共2820个字,预计阅读时间需要8分钟 发布时间: 2024-06-3 共2人阅读
目的

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

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

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

注意:确保放置wsoffice.dllRVKRED02。E1000.sjs 文件。


用户界面

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

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

定制屏幕
  1. 登录 SAP,然后导航到 VKM1(阻止的 SD 文档)屏幕。

    使用按键将SAP列表屏幕数据复制到Excel文件中插图(1)

屏幕脚本
  1. 添加一个标签为滚动按钮,以在单击时执行进程z_readfromlist
    // Creates a pushbutton with the label as scroll to call a function when clicked. 
    pushbutton([TOOLBAR],""scroll"",{"process":z_readfromlist});

    使用按键将SAP列表屏幕数据复制到Excel文件中插图(2)

  2. 使用 load 命令将 wsoffice.dll 文件添加到RVKRED01。E0120.sjs;这允许您访问其中包含的功能。
    // wsoffice.dll is required to be installed
    load('wsoffice');  
  3. 现在,将以下 Liquid UI 脚本添加到此文件,并保存它。
    // 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 'RVKRED01.0120' 
     SCROLL_NEXT:; 
     enter("/scrolltoline=&V[lfvrow]");       //scroll the list vertically 
     
     onscreen 'RVKRED01.0120' 
     enter("/hscrollto=0");                   //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("V[V[doc_val]]","&#["+z_row+",30]");
     set("V[V[doc_val1]]","&#["+z_row+",72]");
     set("V[V[doc_val2]]","&#["+z_row+",97]");
     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("E:FILE ALREADY EXISTS PLEASE REMOVE OLD FILE"); 
     } 
     else{ 
     ExcelSheet.SaveAs(str); 
     ExcelSheet.Application.Quit(); 
     } 
     }
SAP流程
  1. 现在,刷新 SAP 屏幕,然后单击“执行”按钮,如下所示。

    使用按键将SAP列表屏幕数据复制到Excel文件中插图(3)

  2. 然后出现以下屏幕,现在单击滚动工具栏按钮将值存储到数组中。

    使用按键将SAP列表屏幕数据复制到Excel文件中插图(4)

  3. 然后出现一个屏幕,其中包含存储的数据,如下图所示。

    使用按键将SAP列表屏幕数据复制到Excel文件中插图(5)

    使用按键将SAP列表屏幕数据复制到Excel文件中插图(6)

    注意:将在脚本目录中创建一个名称为 LISTSCREENDATA.xls 的新 excel 文件。

  4. 现在,打开 Cornelius 窗口以查看输出,即从列表屏幕复制到数组的数据,如下图所示。

    使用按键将SAP列表屏幕数据复制到Excel文件中插图(7)

  5. 最后,打开 excel 文件LISTSCREENDATA.xls,该文件创建并存储在 scripts 文件夹中,以查看输出,即从“列表”屏幕复制的数据,如下图所示。

    使用按键将SAP列表屏幕数据复制到Excel文件中插图(8)

本站无任何商业行为
个人在线分享 » 使用按键将SAP列表屏幕数据复制到Excel文件中
E-->