![](/img/trans.png)
[英]Loop through list of URLs (29 .xls files) to open and paste data into 1 single sheet
[英]ALV List Viewer for single entry in IW29/39 transaction
我正在從 VBA 調用 SAP 事務來自動生成報告。 當我使用 IW39 之類的事務時,我的輸出顯示是一個使用 SAP ALV 列表查看器顯示的列表。 導出到 VBA 非常有用,我有一個功能可以自動執行此操作。
但有時在某些特定情況下我會遇到問題:當我的命中列表僅包含一行時。 SAP 用 VBA 導出不太有用的東西替換了 ALV。
我的問題是:當命中列表中只有一行時,有沒有辦法將顯示模式更改為“ALV-always”?
一條線索:當我啟動 IW39 tcode 並且只有一行時,結果顯示為 IW33 tcode。 所以當我回到事務時,我停留在 IW33 查詢中。
正如您的屏幕截圖所示,您談論的是 IW 29 (顯示通知),而不是 IW39,但是,它們的邏輯非常相似。
定義如何顯示結果的開關 - 通過 ALV 或直接通過 IW23/IW33 - 在IW29
邏輯(這是RIQMEL20
報告)中硬編碼,不能那么容易更改。
但是,在學習代碼的過程中,發現結果是正確列出的,在ALV中,即使是在后台模式下執行tcode的單項,源代碼中也存在相應的程序檢查。
所以這些是我所看到的可能的解決方案:
創建虛擬事務(例如ZIW29)並像這樣批量執行目標報告
SUBMIT RIQMEL20 AND RETURN.
創建虛擬事務並運行目標報告將結果導出到內存
SUBMIT RIQMEL20 EXPORTING LIST TO MEMORY.
直接批量調用目標事務(IW29/39)並將結果導出到內存
DATA: lt_bdcdata TYPE TABLE OF bdcdata, ls_options TYPE ctu_params. ls_options-dismode = 'N'. " This is to set the batch input mode CALL TRANSACTION 'IW29' USING lt_bdcdata OPTIONS FROM ls_options. IMPORT data_tab TO it_out FROM MEMORY ID 'XYZ'.
以上任意組合。
使用 AS ABAP 操作模式(對話框/后台),從而強制服務器將sy-binpt
變量設置為X
。
撤銷在前台啟動 IW*9 事務的授權,並僅通過SA38
啟動它們。
總的來說,可以得出結論,通過 VBA(即沒有 ABAP 或 BASIS 干預)來實現這一目標是無法實現的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.