博客首页
注册
建议与交流
排行榜
加入友情链接
推荐
投诉
搜索:
帮助
李海鑫的SAP博客
lihaixin.cublog.cn
管理博客
发表文章
留言
收藏夹
博客圈
音乐
相册
文章
· ABAP
· SAP
首页
关于作者
姓名:李海鑫 职业:SAP HR & ABAP 年龄:23 位置: 个性介绍:
||
<<
>>
||
我的分类
最新文章
·
同屏幕显示多个 ALV
·
通过Function module实现..
·
弹出对话框效果
·
关于 sy-lilli sy-c..
·
通过Function module RF..
最新留言
最新评论
·
您好 ,我在46C中测试这段代..
·
good
·
这个出来是什么效果?
我..
·
这个出来是什么效果?
我..
·
请您能写的详细一些吗?
..
最新收藏
统计信息
·
总访问量:12661
·
文章个数:50
·
评论条数:25
·
留言条数:0
·
网友推荐:
同屏幕显示多个 ALV
<P>CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'<BR> EXPORTING<BR> i_callback_program = sy-repid.</P> <P><BR> CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'<BR> EXPORTING<BR> it_fieldcat = field_catalog[]<BR> is_layout = layout<BR> i_tabname = 'ITAB'<BR> it_events = events[]<BR> TABLES<BR> t_outtab = itab[].</P> <P> </P> <P> CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'<BR> EXPORTING<BR> it_fieldcat = field_catalog[]<BR> is_layout = layout<BR> i_tabname = 'ITAB'<BR> it_events = events[]<BR> TABLES<BR>&nb……
查看全文
发表于:2008-07-23 ┆
阅读(134)
┆
评论(5)
通过Function module实现的alv,设定其status
<DIV>如不设定,则会使用默认的status.</DIV> <DIV>通过 I_CALLBACK_PF_STATUS_SET 参数设定子程序。 在子程序中使用set pf-status 'XX' excluding tab. 可以设定alv的status. </DIV> <DIV>一旦用了该子程序,alv则没有了status。所以一定要在子程序中set pf-status. excluding是用来排除的按钮。</DIV>
查看全文
发表于:2008-07-16 ┆
阅读(92)
┆
评论(0)
弹出对话框效果
CALL FUNCTION 'POPUP_TO_CONFIRM'<BR> EXPORTING<BR>* TITLEBAR = ' '<BR>* DIAGNOSE_OBJECT = ' '<BR> text_question = 'Anything else?'<BR> TEXT_BUTTON_1 = 'Yes?'<BR> ICON_BUTTON_1 = <A href="mailto:'@15@'">'@15@'</A><BR> TEXT_BUTTON_2 = 'No'(002)<BR> ICON_BUTTON_2 = <A href="mailto:'@16@'">'@16@'</A><……
查看全文
发表于:2008-07-08 ┆
阅读(111)
┆
评论(0)
关于 sy-lilli sy-curow sy-cucol 和 sy-lisel
<DIV>sy-lilli 在当前列表所选择的行的绝对行数(包括该行之前的所有页的所有行)。</DIV> <DIV>sy-curow 当前屏幕光标所在的行位置,仅仅是该屏幕。</DIV> <DIV>sy-cucol 列位置</DIV> <DIV>sy-lisel表示被选择行的整行内容</DIV> <DIV> </DIV> <DIV><STRONG>注意:</STRONG></DIV> <DIV><STRONG>报表中如果有报表头的行(文字和横线各占一行),正文就从第3行开始。 sy-lilli不计算页末的空行,而curow要计算。</STRONG></DIV> <DIV> </DIV>
查看全文
发表于:2008-07-04 ┆
阅读(115)
┆
评论(0)
通过Function module RFC_PING_AND_WAIT实现计时器功能
<PRE>该程序通过 RFC_PING_AND_WAIT和手动触发报表的user command事件,来完成每隔一个时间段报表刷新一次。(有两个按钮,t-code分别是start和 end)</PRE><PRE>RFC_PING_AND_WAIT 实际不做任何事,只是实现一个时间等待,把调用它的线程阻断一段时间。</PRE><PRE> CALL FUNCTION 'RFC_PING_AND_WAIT'<BR> STARTING NEW TASK '001'<BR> PERFORMING on_finished ON END OF TASK<BR> EXPORTING<BR> seconds = 3<BR> busy_waiting = ' '.</PRE><PRE>starting new task 'XXXXX' 表示函数在子线程里进行,即异步。</PRE><PRE>PERFORMING xxxxx ON END OF task 是指定子线程的回调函数(在子线程里执行,所以子线程里不能调用窗体等,如message)虽然可以调用ALV,但ALV出现之后回阻断当前线程。所以不能做到ALV每隔一段时间刷新。</PRE><PRE><STRONG><FONT color=#0000ff>注意:回调函数是在子线程里调用,所以回调函数中不能出现任何和画面有关的代码,如ALV,write语句,message等等,只能有数据处理代码和 SET USER-……
查看全文
发表于:2008-06-24 ┆
阅读(125)
┆
评论(1)
报表不管下钻多少层,通过BACK按钮回到指定的页面
<P>REPORT z_temp_demo7.<BR>DATA counter TYPE i.</P> <P>START-OF-SELECTION.<BR> WRITE: 'ok'.</P> <P>AT LINE-SELECTION.<BR> counter = counter + 1.<BR> WRITE: / 'lEE', counter.<BR> sy-lsind = 1.</P> <P>虽然不断双击,下钻层数会越来越多,但是通过手动设置sy-lsind的值可以控制BACK按钮回到指定的层,0表示最初的报表层。所以这里把当前层的lsind设为1,BACK之后就回到0.</P> <P><STRONG>注意:对于鼠标单击右键然后back不起作用。</STRONG></P> <DIV> </DIV>
查看全文
发表于:2008-06-20 ┆
阅读(129)
┆
评论(0)
在报表程序代码中直接触发某user command.
<DIV>通过 </DIV> <DIV><STRONG></STRONG> </DIV> <DIV><STRONG>SET USER-COMMAND 'xx'</STRONG> </DIV> <DIV> </DIV> <DIV>就可以在报表程序的代码中触发用户命令'XX',而不需要任何按钮。</DIV>
查看全文
发表于:2008-06-20 ┆
阅读(101)
┆
评论(0)
在不清楚内表结构的情况下 通过指针访问内表内容
<P><STRONG>不清楚内表内表到底是itab还是itab2,但是又要访问内表里的第2个字段。所以在loop的时候不能用to到一个结构体,而要用assigning一个指向ANY的指针,然后进行后面的操作。</STRONG></P> <P>IF n = 1.<BR> ASSIGN itab[] TO <tab_fs>. " <tab_fs>是指向standard table的<BR>ELSE.<BR> ASSIGN itab2[] TO <tab_fs>.<BR>ENDIF.<BR>LOOP AT itab[] ASSIGNING <wa_fs>.<BR> ASSIGN COMPONENT 2 OF STRUCTURE <wa_fs> TO <field_fs>. ”filed_fs是ANY的<BR> WRITE: / <field_fs>.<BR>ENDLOOP.</P> <DIV></DIV>
查看全文
发表于:2008-06-20 ┆
阅读(98)
┆
评论(0)
判断内表中有无名字叫'AGE'的字段,然后把所有age的值打出来
<DIV>本例子用到<STRONG>接口引用 </STRONG>和 <STRONG>动态分配字段符号到结构体的某个字段</STRONG> 的知识。</DIV> <DIV> </DIV> <P>REPORT z_temp_demo8.<BR>DATA: BEGIN OF itab OCCURS 0,<BR> num(10),<BR> name(20),<BR> age TYPE i,<BR> sex(6),<BR> END OF itab.</P> <P> </P> <P>DATA: type_ref TYPE REF TO cl_abap_typedescr,<BR> struct_ref TYPE REF TO cl_abap_structdescr,<BR> struct_info TYPE LINE OF abap_compdescr_tab,<BR> field_column TYPE i,<BR> tab_lines TYPE i.</P> <P>FIELD-SYMBOLS <age_fs> LIKE itab-age.</P> <P><BR>itab-num = '1'.<BR>itab-name = 'Lee'.<BR>itab-age = 23.<BR>itab-sex = 'male'.<BR>APPEND itab.</P> <P>itab-num = '2'.<BR>itab-name = 'Eason……
查看全文
发表于:2008-06-19 ┆
阅读(130)
┆
评论(2)
i_callback_top_of_page和i_callback_html_top_of_page
<DIV>REUSE_ALV_GRID_DISPLAY 可以通过注册events的处理子程序来显示表头,也可以通过参数i_callback_top_of_page或者I_CALLBACK_HTML_TOP_OF_PAGE来注册处理的子程序。但是两者不同的是:i_callback_top_of_page的效果非常有限,只是简单的文本,而且处理程序中只能用REUSE_ALV_COMMENTARY_WRITE来显示表头信息;</DIV> <DIV> </DIV> <DIV>而i_callback_html_top_of_page可以控制的效果比较复杂(颜色,字体,超连接,图片等),处理程序必须有个cl_dd_document类型的参数(TYPE REF TO cl_dd_document)。</DIV> <DIV> </DIV> <DIV> </DIV> <DIV><STRONG>但是在打印预览和打印里看不到html的。</STRONG></DIV>
查看全文
发表于:2008-06-19 ┆
阅读(135)
┆
评论(0)
ALV的 html_top_of_page
<DIV><STRONG>在使用 document->add_text的时候, 如果使用 SAP_STYLE 参数, 显示文本的效果就定了(字体,大大小,颜色等),用了其他的控制参数也没作用。如果要更详细的控制,就用其他的参数来一起控制。</STRONG></DIV> <DIV><STRONG></STRONG> </DIV> <DIV> </DIV> <DIV>REPORT z_temp_demo8.<BR><BR>TABLES : t001.<BR>TYPE-POOLS: slis.</DIV> <DIV>DATA : w_repid LIKE sy-repid.<BR>TYPES : BEGIN OF ty_comp.<BR> INCLUDE STRUCTURE t001.<BR>TYPES : END OF ty_comp.</DIV> <DIV>DATA: wa_layout TYPE slis_layout_alv.</DIV> <DIV>DATA: it_fieldcat TYPE slis_t_fieldcat_alv,<BR> wa_fieldcat TYPE slis_fieldcat_alv.</DIV> <DIV>DATA : it_comp TYPE TABLE OF ty_comp.</DIV> <DIV>INITIALIZATION.<BR> w_repid = sy-repid.</DIV> <DIV>START-OF-SELECTION.</DIV> <DIV> SELECT * FROM t001 INTO TABLE it_comp.</DIV> <DIV>END-OF-SELECTION.</DIV> <DIV> CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'<BR> ……
查看全文
发表于:2008-06-19 ┆
阅读(161)
┆
评论(0)
关于 REUSE_ALV_FIELDCATALOG_MERGE 的使用
<DIV>REUSE_ALV_FIELDCATALOG_MERGE 方法用来获得 内表或者DDIC表的field catalog.</DIV> <DIV> </DIV> <DIV>1. 如果是内表, i_program_name 和 i_inclname 参数都要写为本程序名 (sy-repid)。 而且内表中的字段,只有基本类型可以用TYPE声明,而其他类型只能用LIKE,(比如sy-ucomm,本来既可以用TYPE也可以用LIKE,但是这里只能用LIKE,因为sy-ucomm不是基本类型。一切data element用TYPE的也都不行),否则用该方法不能得到。 也就是除了基本类型,其他的只能用LIKE, 比如用 name TYPE char10,就不可以, 只能用 name LIKE xxx (或者xxxx-xxx)。</DIV> <DIV> </DIV> <DIV>2. 得到的结果是 slis_t_fieldcat_alv 类型的 ,只能用在ALV的 Function module, 要用object, 就只能把slis_t_fieldcat_alv中的结果取出来放到 vc_t_fcat中,因为alv的 object用的是这个类型。</DIV> <DIV> </DIV> <DIV> </DIV> <DIV><STRONG><FONT color=#000000>注意:</FONT></STRONG></DIV> <DIV><STRONG><FONT color=#000000>要得到 vc_t_fcat类型的field catalog本来可以用 LVC_FIELDCATALOG_MERGE 的, 但是他只能用来得到DDIC表的fieldcat, 虽……
查看全文
发表于:2008-06-18 ┆
阅读(203)
┆
评论(1)
关于payroll累计项目的视图 V_512W_D
<DIV><STRONG></STRONG> </DIV> <DIV><STRONG>payroll的有些项目不是直接从infotype得来, 而是累积得来 ,主要的累积项有5 个 , 通过视图 V_512W_D 可以查看。 累积后面打上勾的 就表示需要累积到该项。</STRONG></DIV> <DIV></DIV>
查看全文
发表于:2008-05-28 ┆
阅读(112)
┆
评论(0)
payroll相关部分 infotype
<P> 0007 计划工作日期</P> <P> 0008 基本工资</P> <P> 0014 静态数据,每个月都享有得补贴<BR> 0015 里面维护工资核算期间得补贴加班扣减<BR> 0530 公积金缴纳方式<BR> 0531 所得税</P> <P> 0532 社保缴纳方式</P> <DIV></DIV> <DIV></DIV>
查看全文
发表于:2008-05-27 ┆
阅读(115)
┆
评论(0)
关于 payroll result中和 PC00_M99_CWTR中的反算
<DIV>在payroll result的 RT中 如果有两条记录 分别是 A(in 200402, for 200401) 类型 和 其对应的 P(in 200401 , for 200401)。 那么 P中的数据是真实数据 而A中的只是 反算的计算过程数据,里面的net pay是P的,有要扣除或者补贴的 在 (in 200402 , for 200402) 中, 会出现 /552 , 也就是扣除或者补贴的钱。即补贴扣除的钱会在 当月的核算中加进去。</DIV>
查看全文
发表于:2008-05-23 ┆
阅读(105)
┆
评论(0)
关于用函数调的ALV中的top_of_list 和 end_of_page 事件
<DIV>对于LIST而言,事件顺序是 TOP_OF_LIST --> TOP_OF_PAGE ---> END_OF_PAGE. </DIV> <DIV>对于GRID TOP_OF_PAGE --> END_OF_PAGE ---> END_OF_LIST.</DIV> <DIV> </DIV> <DIV>而能够显示注释的只有TOP_OF_PAGE和END_OF_LIST. </DIV> <DIV> </DIV>
查看全文
发表于:2008-05-22 ┆
阅读(137)
┆
评论(0)
函数调用ALV,实现ALV上下方文字注释以及处理ALV的双击事件
<P>对于list和 grid都可用。 </P> <P>注册的事件分别是 TOP_OF_PAGE和 END_OF_LIST,只要注册了它们,就会在ALV的上下方分别出现注释区域。</P> <P><BR>REPORT z_temp_demo7.<BR>TYPE-POOLS slis.<BR>DATA: itab LIKE TABLE OF zstu_info,<BR> itab2 LIKE TABLE OF zscoreinfo WITH HEADER LINE,<BR> events TYPE slis_t_event WITH HEADER LINE,<BR> listheaders TYPE slis_t_listheader WITH HEADER LINE,<BR> listends TYPE slis_t_listheader WITH HEADER LINE.</P> <P>START-OF-SELECTION.<BR> write : 'ok'.<BR> CALL FUNCTION 'REUSE_ALV_EVENTS_GET'<BR> EXPORTING<BR> i_list_type = 4 "0代表 list 4代表grid<BR> IMPORTING<BR> et_events = events[].</P> <P><BR> READ TABLE events[] WITH KEY name = 'TOP_OF_PAGE' INTO events.<BR> events-form = 'PRINT_TOP_PAGE'.<B……
查看全文
发表于:2008-05-22 ┆
阅读(199)
┆
评论(0)
通过数据库表,结构 或者内表 得到Field catalog (fieldcat)
Function module: REUSE_ALV_FIELDCATALOG_MERGE <DIV></DIV>
查看全文
发表于:2008-05-08 ┆
阅读(152)
┆
评论(0)
实现 container bar
<DIV>*&---------------------------------------------------------------------*<BR>*& Report Z_TEMP_DEMO5<BR>*&<BR>*&---------------------------------------------------------------------*<BR>*&<BR>*&<BR>*&---------------------------------------------------------------------*</DIV> <DIV>REPORT z_temp_demo5.</DIV> <DIV>DATA: ok_code LIKE sy-ucomm,<BR> save_ok LIKE ok_code,<BR> container_bar TYPE REF TO cl_gui_container_bar,<BR> dock_container TYPE REF TO cl_gui_docking_container,<BR> text_edit TYPE REF TO cl_gui_textedit,<BR> cell_container TYPE REF TO cl_gui_container,<BR> grid TYPE REF TO cl_gui_alv_grid.</DIV> <DIV>DATA: captions TYPE sbptcaptns,<BR> captions2 LIKE captions,<BR> caption LIKE LINE OF captions.……
查看全文
发表于:2008-05-07 ┆
阅读(145)
┆
评论(0)
(转)在 REUSE_ALV_LIST_DISPLAY function里实现 event
<DIV><!--StartFragment --> <STYLE type=text/css> SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style: italic; color: #808080; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; } </STYLE> <SPAN><SPAN class=L1S31>*&---------------------------------------------------------------------*</SPAN><BR><SPAN class=L1S31>*& Report Z_ALV_ADV</SPAN><BR><SPAN class=L1S31>*&</SPAN><BR><SPAN class=L1S31>*&---------------------------------------------------------------------*</SPAN><BR><SPAN class=L1S31>*&</SPAN><BR><SPAN class=L1S31>*&</SPAN><BR><SPAN class=L1S31>*&---------------------------------------------------------------------*</SPAN><BR><BR><SPAN class=L1S52>REPORT</SPAN> z_alv_adv.<BR><BR><SPAN class=L1S31>***********************************************************************</SPAN><BR><SPAN class=L1S31>* TYPE-POOLS&……
查看全文
发表于:2008-05-07 ┆
阅读(171)
┆
评论(0)