Chọn layout SAP theo tên bằng VBA

Liên hệ QC

hunglee17

Thành viên mới
Tham gia
15/8/18
Bài viết
2
Được thích
0
Hi cả nhà,

Chả là tôi đang có tập tọe làm một vài file VBA kết nối với SAP để tự động down báo cáo. Nhưng tôi đang gặp một vấn đề về việc chọn layout SAP khi report. Vì hiện tại scripting của SAP cho phép record lại theo vị trí của layout. Điều này dẫn đến việc khi người khác tạo layout mới ( Default setting) ở trên layout của tôi thì phần record của tôi sẽ lấy sai layout. Vậy mong có anh chị nào biết về vấn đề này , có thể viết giúp tôi 1 đoạn code chọn theo tên của layout.

Đây là đoạn scripting mà tôi record từ SAP:

Session.findById("wnd[1]/usr/ssubD0500_SUBSCREEN:SAPLSLVC_DIALOG:0501/cntlG51_CONTAINER/shellcont/shell").currentCellRow = 64
Session.findById("wnd[1]/usr/ssubD0500_SUBSCREEN:SAPLSLVC_DIALOG:0501/cntlG51_CONTAINER/shellcont/shell").firstVisibleRow = 60
Session.findById("wnd[1]/usr/ssubD0500_SUBSCREEN:SAPLSLVC_DIALOG:0501/cntlG51_CONTAINER/shellcont/shell").selectedRows = "64"
Session.findById("wnd[1]/usr/ssubD0500_SUBSCREEN:SAPLSLVC_DIALOG:0501/cntlG51_CONTAINER/shellcont/shell").clickCurrentCell

Nếu bài viết gây khó hiểu, mong mọi người bỏ qua vì kiến thức của tôi với VBA còn rất hạn hẹp.

Xin chân thành cảm ơn!
 
Hi cả nhà,

Chả là tôi đang có tập tọe làm một vài file VBA kết nối với SAP để tự động down báo cáo. Nhưng tôi đang gặp một vấn đề về việc chọn layout SAP khi report. Vì hiện tại scripting của SAP cho phép record lại theo vị trí của layout. Điều này dẫn đến việc khi người khác tạo layout mới ( Default setting) ở trên layout của tôi thì phần record của tôi sẽ lấy sai layout. Vậy mong có anh chị nào biết về vấn đề này , có thể viết giúp tôi 1 đoạn code chọn theo tên của layout.

Đây là đoạn scripting mà tôi record từ SAP:

Session.findById("wnd[1]/usr/ssubD0500_SUBSCREEN:SAPLSLVC_DIALOG:0501/cntlG51_CONTAINER/shellcont/shell").currentCellRow = 64
Session.findById("wnd[1]/usr/ssubD0500_SUBSCREEN:SAPLSLVC_DIALOG:0501/cntlG51_CONTAINER/shellcont/shell").firstVisibleRow = 60
Session.findById("wnd[1]/usr/ssubD0500_SUBSCREEN:SAPLSLVC_DIALOG:0501/cntlG51_CONTAINER/shellcont/shell").selectedRows = "64"
Session.findById("wnd[1]/usr/ssubD0500_SUBSCREEN:SAPLSLVC_DIALOG:0501/cntlG51_CONTAINER/shellcont/shell").clickCurrentCell

Nếu bài viết gây khó hiểu, mong mọi người bỏ qua vì kiến thức của tôi với VBA còn rất hạn hẹp.

Xin chân thành cảm ơn!

Nói keyuser phân quyền lại về việc tạo layout, không cho người khác đè lên layout của bạn là được rồi.
 
Vì không phân quyền tạo layout được nên tôi cần sử dụng VBA để chọn theo tên layout bạn ạ.

Tôi có tìm kiếm trên google được đoạn code này, nhưng khi gán vào thay thế thì không chạy được:

Set Layout = session.findById("wnd[1]/usr/ssubD0500_SUBSCREEN:SAPLSLVC_DIALOG:0501/cntlG51_CONTAINER/shellcont/shell")
Rows = Layout.RowCount()
For i = 0 To Rows - 1
LayoutVariant = Layout.getCellValue(i, "VARIANT")
If LayoutVariant = "STEFAN3" Then
Layout.currentCellRow = i
Layout.clickCurrentCell
Exit For
End If
 
Web KT

Bài viết mới nhất

Back
Top Bottom