YUSE_DOWN-批下载

*&---------------------------------------------------------------------*
*& Report YTST_CX_DOWN
*&
*&---------------------------------------------------------------------*
*@---------------------------------------------------------------------*
*@ Created by Xavery Hsueh on 2011-03-01
*@ Lasted Edited date:
*@---------------------------------------------------------------------*
*&---------------------------------------------------------------------*

report ytst_use_down no standard page heading.

***********************************************************************@
** 声明数据库表
***********************************************************************@
tables:rs38m,
trdir, "程序库
trdyse01cm.

***********************************************************************@
** 内表结构类型的定义
***********************************************************************@
data begin of dynpfields occurs 1.
include structure dynpread.
data end of dynpfields.

types:begin of typ_result,
box type c,
tabix type sytabix, "顺序号
name type char40, "程序名称
cnam type cnam, "创建人员
unam type unam, "最后修改人
code(72) type c, "程序描述
end of typ_result.
***********************************************************************@
** 变量与内表的定义
***********************************************************************@
data:gt_report type table of string with header line."TDLINE
data:gt_report1 type table of tdline with header line."TDLINE
*DATA:GT_REPORT2 TYPE TABLE OF CHAR1000 WITH HEADER LINE."TDLINE
data:gt_result type table of typ_result with header line.
data:gt_trdir type table of trdir with header line.
data:gt_btab type table of textpool with header line.

data:g_filenm type rlgrap-filename. "文件名称
ranges r_prog for rs38m-programm. "程序名称
*@------------------ ALV 相关的变量 -----------------------------------*
type-pools:slis.
data: g_repid like sy-repid,
wa_print type slis_print_alv,
gt_list_top_of_page type slis_t_listheader,
gt_events type slis_t_event with header line,
gt_sort type slis_t_sortinfo_alv,
wa_layout type slis_layout_alv,
gt_fieldcat type slis_t_fieldcat_alv with header line,
wa_fieldcat like line of gt_fieldcat,
g_save type c,
g_pos type i.
data:g_len type string.
data:g1(10000) type c.

***********************************************************************@
** 宏定义
***********************************************************************@
define mcr_field.
clear wa_fieldcat.
g_pos = g_pos + 1 .
wa_fieldcat-col_pos = g_pos.
wa_fieldcat-fieldname = &1.
wa_fieldcat-tabname = ‘I_RESULT‘.
* wa_fieldcat-no_out = ‘X‘. "field no display, choose from layout
wa_fieldcat-key = ‘ ‘. "SUBTOTAL KEY
wa_fieldcat-seltext_l = &2.
wa_fieldcat-outputlen = &3.
append wa_fieldcat to gt_fieldcat.
end-of-definition.
*@---------------------------------------------------------------------*
*@ MACRO MCR_RANGE 初始化选择条件
*@---------------------------------------------------------------------*
* &1 RANGE 变量
* &2 操作符
* &3 LOW
* &4 HIGH
*----------------------------------------------------------------------*
define mcr_range.
clear &1.
&1-sign = ‘I‘.
&1-option = &2.
&1-low = &3.
&1-high = &4.
append &1.
end-of-definition.
***********************************************************************@
** 屏幕定义
***********************************************************************@
selection-screen begin of block xavery with frame title text_001.
selection-screen begin of line.
*&p_prog.
selection-screen comment 1(15) text_002 for field s_prog.
select-options:s_prog for rs38m-programm memory id rid.
selection-screen end of line.

selection-screen begin of line.
selection-screen comment 1(15) text_003 for field s_cnam.
*PARAMETERS:P_CNAM TYPE CNAM DEFAULT SY-UNAME.
select-options:s_cnam for trdyse01cm-username. "MEMORY ID RID.
selection-screen end of line.

selection-screen begin of line.
selection-screen comment 1(15) text_004 for field p_filenm.
parameters:p_filenm type rlgrap-filename.
selection-screen end of line.
selection-screen end of block xavery.
***********************************************************************@
** 执行程序事件
***********************************************************************@
initialization.
perform f_init_condition.

at selection-screen on value-request for s_prog-low.
perform sub_get_program.

start-of-selection.
perform sub_query_report.
perform sub_process_report.

end-of-selection.
perform sub_init_layout.
perform sub_create_fieldcat.
perform sub_display_as_alv. "以ALV的方式输出结果表
*@---------------------------------------------------------------------*
*@ Form F_INIT_CONDITION
*@---------------------------------------------------------------------*
* 初始化选择条件
*----------------------------------------------------------------------*
form f_init_condition .
text_001 = ‘查询条件‘.
text_002 = ‘程序名称‘.
text_003 = ‘程序创建人‘.
text_004 = ‘下载文件名称‘.
* 选择屏幕初始值
s_prog-low = ‘Z*‘.
p_filenm = ‘C:\ABAP\‘.
endform. " F_INIT_CONDITION
*&---------------------------------------------------------------------*
*& Form SUB_GET_PROGRAM
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form sub_get_program .
data: repid like sy-repid.
dynpfields-fieldname = ‘P_PROG‘.
append dynpfields.
repid = sy-repid.
call function ‘DYNP_VALUES_READ‘
exporting
dyname = repid
dynumb = sy-dynnr
tables
dynpfields = dynpfields
exceptions
others.
read table dynpfields index 1.
s_prog = dynpfields-fieldvalue.
perform program_directory using s_prog-low ‘X‘.
endform. " SUB_GET_PROGRAM

*---------------------------------------------------------------------*
* FORM PROGRAM_DIRECTORY *
*---------------------------------------------------------------------*
form program_directory using programm like rs38m-programm
f4_call.
data: info_object like euobj-id,
l_programm like rs38m-programm.
if sy-tcode(4) = ‘SE38‘.
info_object = ‘PROG‘.
if f4_call = ‘X‘.
call function ‘REPOSITORY_INFO_SYSTEM_F4‘
exporting
object_type = info_object
object_name = programm
suppress_selection = ‘X‘
importing
object_name_selected = programm
exceptions
cancel = 01.
else.
call function ‘REPOSITORY_INFO_SYSTEM‘
exporting
object_type = info_object
action = ‘S‘
object_name = programm
importing
object_name_selected = programm
exceptions
cancel = 01
wrong_type = 02.
endif.
else.
l_programm = programm.
if l_programm = space.
submit rsabadab and return via selection-screen
with f4_call = f4_call.
else.
submit rsabadab and return via selection-screen
with repname cp l_programm
with f4_call = f4_call.
endif.
get parameter id ‘RID‘ field s_prog-low.
endif.
endform. "program_directory
*&---------------------------------------------------------------------*
*& Form SUB_QUERY_REPORT
*&---------------------------------------------------------------------*
* 查询程序代码
*----------------------------------------------------------------------*
form sub_query_report .
mcr_range r_prog ‘CP‘ s_prog-low ‘‘.
*&程序库中找程序
select *
from trdir
into table gt_trdir
where name in r_prog
and cnam in s_cnam
and subc ne ‘X‘.

*&条目数
g_len = lines( gt_trdir[] ).
if g_len eq 0.
message i000(oo) with ‘没有找到符合条件的数据!‘.
stop.
else.
message s000(oo) with ‘找到数据条目数:‘ g_len.
endif.

endform. " SUB_QUERY_REPORT
*&---------------------------------------------------------------------*
*& Form SUB_DOWNLOAD_REPORT
*&---------------------------------------------------------------------*
* 下载程序代码
*----------------------------------------------------------------------*
form sub_download_report using l_filenm type rlgrap-filename.
data: binfilesize type i.
data: l_file type string.
data: l_message type char100.
concatenate ‘文件已下载到:‘ p_filenm ‘文件夹中!‘
into l_message.
l_file = l_filenm.
call function ‘GUI_DOWNLOAD‘
exporting
bin_filesize = binfilesize
filename = l_file
filetype = ‘ASC‘
tables
data_tab = gt_report[]
exceptions
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
others = 22.

if sy-subrc = 0.
message l_message type ‘S‘.
endif.
endform. " SUB_DOWNLOAD_REPORT
*&---------------------------------------------------------------------*
*& Form SUB_PROCESS_REPORT
*&---------------------------------------------------------------------*
* 处理文件名称,并放到内表中
*----------------------------------------------------------------------*
form sub_process_report .
sort gt_trdir by name.
loop at gt_trdir.
clear gt_result.
gt_result-name = gt_trdir-name.
gt_result-cnam = gt_trdir-cnam.
gt_result-unam = gt_trdir-unam.
gt_result-tabix = sy-tabix.
refresh gt_btab.
read textpool gt_trdir-name into gt_btab language sy-langu.
clear gt_btab.
read table gt_btab with key ‘R‘.
if sy-subrc = 0.
move gt_btab-entry to gt_result-code.
endif.
append gt_result.
endloop.
* 清空内表
free gt_trdir.
endform. " SUB_PROCESS_REPORT
*&---------------------------------------------------------------------*
*& Form SUB_CREATE_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form sub_create_fieldcat .
clear gt_fieldcat[].
mcr_field ‘TABIX‘ ‘顺序号‘ ‘10‘.
mcr_field ‘NAME‘ ‘程序名称‘ ‘15‘.
mcr_field ‘CNAM‘ ‘程序创建人‘ ‘20‘.
mcr_field ‘UNAM‘ ‘最后修改人‘ ‘20‘.
mcr_field ‘CODE‘ ‘程序描述‘ ‘30‘.
endform. " SUB_CREATE_FIELDCAT
*&---------------------------------------------------------------------*
*& Form SUB_INIT_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form sub_init_layout .
wa_layout-zebra = ‘X‘.
wa_layout-window_titlebar = ‘开发程序名称清单‘.
wa_layout-colwidth_optimize = ‘X‘.
wa_layout-box_fieldname = ‘BOX‘.
*WA_LAYOUT-SEL_FIELDNAME = ‘BOX‘.
endform. " SUB_INIT_LAYOUT
*&---------------------------------------------------------------------*
*& Form SUB_DISPLAY_AS_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form sub_display_as_alv .
g_repid = sy-repid.
*ABAP List Viewer

call function ‘REUSE_ALV_GRID_DISPLAY‘
exporting
i_callback_program = g_repid
i_structure_name = ‘TYP_RESULT‘
i_callback_user_command = ‘SUB_USER_COMMAND‘
i_callback_pf_status_set = ‘SUB_SET_PF_STATUS‘
i_save = g_save
is_layout = wa_layout
it_fieldcat = gt_fieldcat[]
tables
t_outtab = gt_result
exceptions
program_error = 1
others = 2.
endform. " SUB_DISPLAY_AS_ALV
*@--------------------------------------------------------------------*
*@ Form sub_user_command
*@--------------------------------------------------------------------*
* -->R_UCOMM 事务功能码
* -->RS_SELFIELD ALV相关的数据
*---------------------------------------------------------------------*
form sub_user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield.

case r_ucomm.
when ‘&IC1‘. "双击事件的功能码
read table gt_result index rs_selfield-tabindex.
set parameter id ‘RID‘ field gt_result-name.
call transaction ‘SE38‘ and skip first screen.

when ‘&DATA_SAVE‘. "下载代码
perform sub_ucomm_down.
endcase.
* 刷新ALV屏幕报表
rs_selfield-refresh = ‘X‘.
endform. "sub_user_command
*@---------------------------------------------------------------------*
*@ FORM SUB_SET_PF_STATUS *
*@---------------------------------------------------------------------*
* 设置ALV菜单
* 通过SE41,拷贝程序SAPLSLVC_FULLSCREEN的状态STANDARD_FULLSCREEN过来
*@---------------------------------------------------------------------*
form sub_set_pf_status using rt_extab type slis_t_extab.
set pf-status ‘STANDARD_FULLSCREEN‘.
endform. "sub_set_pf_status
*&---------------------------------------------------------------------*
*& Form SUB_UCOMM_DOWN
*&---------------------------------------------------------------------*
* 下载选中的行的程序代码
*----------------------------------------------------------------------*
form sub_ucomm_down .
loop at gt_result where box = ‘X‘.
* 得到文件名称
clear g_filenm.
concatenate p_filenm gt_result-name ‘-‘
gt_result-code ‘.txt‘
into g_filenm.
* 得到程序代码
clear gt_report[].
if gt_result-name is not initial.
read report gt_result-name into gt_report.
* LOOP AT GT_REPORT.
* CONCATENATE GT_REPORT G1 INTO G1.
* ENDLOOP.
endif.
* 下载程序
perform sub_download_report using g_filenm.
endloop.
endform. " SUB_UCOMM_DOWN

时间: 2024-08-07 08:39:54

YUSE_DOWN-批下载的相关文章

Facebook下载总结

Facebook是美国的一个社交网络服务网站,至今注册用户已超越20亿,月活用户更是惊人的突破3亿. 这样庞大的一个社交类网站,每日产生的社交数据当然也是非常可观,而这些社交数据,更接近口语,所以是比较好的一些英文语料数据. 然而,面对这样好的一个语料来源,它的下载难度也是超越了我的预期. 起初,因为使用facebook需要FQ的原因,我们放弃了从app端解析数据的方式. 因为这种方式需要手机app端和电脑连接在同一个网络下,并且手机端需要设置代理为电脑ip.然而经过测试,这样设置以后手机端不能

用c#编写爬虫在marinetraffic下载船仅仅图片

近期在做船仅仅识别方面的事情,须要大量的正样本来训练adaboost分类器. 于是到marinetraffic这个站点上下载船仅仅图片.写个爬虫来自己主动下载显然非常方便. 站点特点 在介绍爬虫之前首先了解一下marinetraffic这个站点的一些特点: 1. 会定期检測爬虫行为.假设觉得有爬虫大量下载图片. 会把该连接增加黑名单,后几天都没办法下载. 2. 船仅仅图片资源差异大.有的船仅仅有1000多张图,有的船仅仅没有一张图,我们须要的是非常多船仅仅的非常多张图.所以须要对下载的船仅仅按优

利用SD_SALESDOCUMENT_CREATE 批导动态数据SO

期初上线时,SO作为动态数据,是批导入系统必须做的一步,好多朋友利用bdc.lsmw.scatt等工具都可以做,下面是项目中利用SD_SALESDOCUMENT_CREATE 进行批导的一些代码,分享一下,希望对用到的朋友有帮助. *&---------------------------------------------------------------------* *& Report  ZSD_BATCH_SO *& *&---------------------

咦?这些产品当年都是怎么抢到第一批用户的

昨天我们发了一篇名为<Dropbox与用户的故事:如果你已经有100个用户,如何获取1000个?>的文章,讲得就是用户获取.许多互联网公司在创业初期,最难的事不是产品研发,而是如何发展第一批有价值的用户,即种子用户(seed users).这一批人最接近产品定位,并直接影响产品日后的口碑传播及辐射范围,更重要的是,他们可能是社区平台类产品优质内容的主要提供者.在Dropbox的案例中,他们的老大在有狂热粉丝们聚集的Digg发布了一个充满geek才懂的暗语"彩蛋"视频,该视频

DirectUI 学习笔记1-源码下载与环境配置

我们可以通过Github上下载开源的duilib库 下载地址:https://github.com/duilib/duilib 源代码中可以到一些DEMO示例工程以及属性描述的XML,这个后面再说. A:编译现在我们通过VS打开解决方案文件后,开始编译项目. 打开项目后,点击生成-批生成,看见图中的窗口后点击“全选”按钮与“生成按钮”. 等待编译完成. B:查看编译后的文件 /bin 文件夹中有我们需要的4个DLL文件(unicode版debug/release 与 非unicode版debug

产品没上线前,如何吸引到第一批种子用户?

给冯大辉关注的所有人发私信,邀请内测,因为觉得他有影响力,关注的人大多又是移动互联网方面的,当初我就是这样做,的确邀请了大批的人,有些人非常 nice,下载了那个app,使用过程中有什么问题我都会积极的沟通,赢得一批优质的种子用户,同时他们还用自己的影响力帮忙推荐. 后来我用这个方法又邀请了一些科技网站的作者采访报道,微博发体验评测,文章多了曝光多了,然后又吸引了大批的种子用户.基本没有花过钱.下载量最大的时候我被邀请的人挖了. 再 邀请的过程中,邀请到了现在的老板,我就被挖到了现在这个很好的公

客户/供应商主数据批导

客户/供应商主数据维护中,SAP提供了两个强大的类cmd_ei_api=>maintain_bapi和VMD_EI_API 下面是客户主数据维护的例子,供应商的类似.当客户编码为数据类型时,一定要将客户编码补0,否则系统会出现莫名其妙的错误. *&---------------------------------------------------------------------* *& 程序名称:ZSDB0002 *& 作者    : *& 开发日期: *&am

记一次TFS 的 垃圾提示(无法下载 未获取项目 的 代码)

提示 “ 所有文件都是最新的 ”,但是在 源码管理 里面 确是 “未下载” 我艹,第一次遇到.如图.~~ 最后发现是 TFS 的项目权限设置问题. 你妈个马批的,啥子鸡巴破B提示,太阳你妈B 的 .要没权限就告诉老子 没权限.提示上面的干你娘啊~ 艹~

VG.net矢量图和矢量动画开发平台拓扑图软件免费下载

VG.net拓扑图软件是一个基于.net平台的矢量图开发工具,可广泛应用于包括:电力.军工.煤炭.化工.科研.能源等各种监控软件.工作流设计器.电力.化工.煤炭.工控组态软件.仿真.地理信息系统.工作流.复杂报表 工业SCADA系统.ERP流程设计系统.图形管理.图形拓扑分析.GIS地理信息系统系统.工程制图等领域. VG.net 设计器是一个在Visual Studio .NET集成的图形编辑器.用户无需编写代码即可设计制图. 制图对象包括: 矩形,圆角矩形,椭圆形,弧形,扇形,多边形,折线,

【Oracle经典】132个oracle热门精品资料——下载目录

电子书为网友wglzaj精心整理,这批资料下载量好评率都非常高,广受oracle学习者欢迎.文档共整理了12个精品专题和120个热门资料的下载地址,推荐给大家希望大家喜欢. 目录0豆下载地址:http://down.51cto.com/data/428209目录部分预览: Oracle数据库性能优化指南大全 http://down.51cto.com/zt/91 Oracle数据库备份与恢复实例教程 http://down.51cto.com/zt/102 Oracle 10G数据库系统教程(中