资源描述
1) PROCESS BEFORE OUTPUT(简称PBO):进行屏幕初始化工作,如数据库选择,屏幕元素属性动态设定等,如根据用户权限和继电定值申请单的状态确定哪些屏幕字段是输入状态,哪些字段是显示状态;PBO模块结束后,系统显示当前用户屏幕。
2) PROCESS AFTER INPUT(简称PAI):当用户在屏幕上执行某些功能后被触发,PAI结束后,屏幕可能进入后续或返回上一个屏幕序列;
3) PROCESS ON HELP-REQUEST (简称POH):当用户按下F1键要求查看帮助信息时触发;
4) PROCESS ON VALUE-REQUEST(简称POV):当用户按下F4键要求查看搜索帮助时触发。
5) 如何实现f4帮助
方法一:
a. .事务码SE11打开数据字典,选中搜索帮助,填写名称,点击创建.(前提先把表格和数据元素以及域都建好了)
2.填写基本相关信息,搜索帮助描述,取数的表,显示的对话框类型.
3.填写搜索帮助参数,字段名称,输入输出属性,显示位置次序,数据元素.
4.保存,激活.
5.打开要建立搜索帮助的表,选中要建立搜索帮助的字段,点击SRCH HELP,填入你建立好的搜索帮助的名称.
6.保存,激活表.
7.重新保存要用到表中搜索帮助的程序,激活后就可以使用搜索帮助来选择值了.
Ps:在建立屏幕程序的时候要填上屏幕中你所填变量的f4的名字
注:此方法比较直观,但是有相关的前提:要添加搜索帮助的表中的字段,必须要有参照的数据元素. 没有数据元素无法建立搜索帮助.所以前提就是我们要事先维护好数据元素.
方法二:
在ABAP程序中直接写相关代码来实现.
具体步骤:
1.添加VALUE-REQUEST事件.
示例代码:
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_XILEI-LOW.
PERFORM FRM_XILEI_SELECT.
2.在子程序中实现搜索帮助功能.
示例代码:
FORM FRM_XILEI_SELECT .
*细类的搜索帮助
DATA: RT_TAB LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF IT_XILEI OCCURS 0,
XILEI LIKE ZSFQ10-XILEI,
END OF IT_XILEI.
SELECT XILEI INTO CORRESPONDING FIELDS OF TABLE IT_XILEI FROM ZSFQ10.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'XILEI'
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'S_XILEI-LOW'
VALUE_ORG = 'S'
CALLBACK_PROGRAM = SY-REPID
TABLES
VALUE_TAB = IT_XILEI
RETURN_TAB = RT_TAB
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " FRM_XILEI_SELECT
3.保存,激活程序后,即可在屏幕上使用搜帮助了.
注:此方法不是太直观,但是不用在数据字典中建立相关的数据,只需在程序中动态提取显示.
方法三:
固定值。 我们在Domain 中可以定义 value range ,在 value range 中定义的值,就可以出现在f4帮助中。这是最简单的实现f4帮助的方法
方法四:数据类型关联。 加入我们在选择屏幕上定义一个 dats 类型的 参数,她就自动调用了日期类型的f4帮助。
6) 如何实现事务码分配给程序
Se93
7) sap中如何实现数据的批量录入
a. lsmw-----事务码lsmw
b.bdc---- 事务码shdb(bdc调用的时候一般自动生成的程序对于一个BDC程序来说,
有两个固定的internal table 需要声明:bdcdata和messtab,名称可以变,但是声明时一定要
* Batchinputdata of single transaction
data: abc like bdcdata occurs 0 with header line.
* messages of call transaction
data: def like bdcmsgcoll occurs 0 with header line.
Like 后面的table type(这里是一个structure)是不能改变的。
有两个固定功能的form:bdc_dynapro和 bdc_field
名称同样是任意的,但是程序代码应该是相同的,
(强烈建议不要改动,因为会给自己添加麻烦)
另个还有一个Internal Table或者work area是用来放从外部读进来的数据的,结构应该和你的外部文件的有相关的字段结构。
一次读进全部的记录然后循环处理 loop at [internal table] …… process……endloop。
或者一条一条读进并处理,然后循环读下一条 do …… process…… enddo。
其中Process 分为两个部分:1.填充bdcdata表。
2.Call transaction or Call Function ‘BDC_Insert’返回消息放入Messtab.
Bdc的运行方式:N---后台更新;A-----表示显示所有bdc录制屏幕执行过程及数据;E-----仅显示出错事务屏幕
更新模式:L------本地更新;A------异步更新模式 S-----异同步更新模式
b. bapi函数
c. catt 或是ecatt 现在多用ecatt 取代catt
8) sap创建类的步骤
1. 声明类并定义类的使用方法
2. 使用data语句中的type ref to来表示引用某一具体类以声明新的对象
3. 使用create object语句创建类实例化对象。
4. 通过“->”或“=>”运算符访问类对象或组件,可以通过变量对方法名进行指定,实现动态调用。
Class<class> definition
Public section.
…..
Protexted section.
…….
Private section.
……..
Method …. Endmethod.
…..
Endclass.
当所声明的类中包含方法时,需要通过下列代码对方法的实现行为进行定义
Class <class> implementation
Method … endmethod.
…..
Endclass.
9) sap实现增强的几种方式:
方式有:表增强、屏幕变式和事务变式、程序增强(用户出口和客户定制出口、业务增强badi、业务事件bte、增强点、img后台配置)、菜单增强。
10) sap query
创建步骤:
1、 创建用户组user group(SQ03)
2、 创建infoset,即设定列表关联的数据表及字段(SQ02)
3、 Basic list的创建
Sq01是创建query的事务码
11) Alv通过标准函数调用,它通过程序传递数据内表的方式来显示数据。Alv输出的方式有两种grid和list。Alv中的layout主要用于设定alv的输出格式,而fieldcat主要用于alv结构定义,包括具体的字段名称、类型、格式等属性。Layout和fieldcat同属于类型池slis。Alv调用主要是通过以下几个函数实现:REUSE_ALV_FIELDCATALOG_MERGE(根据内表结构返回fieldcat字段结构信息)、REUSE_ALV_GRID_DISPLAY/REUSE_ALV_LIST_DISPLAY:输出alv报表、
12) 数据分析方法:(找表的18种方法)--------包括F1字段分析方法、 ST05数据追踪方法、where-used list方法、数据词典分析方法、调试分析方法、文本方法等。
13) 。
Sap工作流构建步骤:查找、创建触发事件;构建业务对象;构建程序/屏幕;构建工作流引擎;构建规则;测试
创建任务(事务码pftc)、业务工作台(事务码SW11)
工作流系统的配置----事务码SWU3
工作流设计器-------事务码swdd
14) smartform
其工具主要分为三大部分,分别用于创建form(板式)、style(样式)、text module(文本模块).
如果想要实现系统可以直接打印出来自己配置的smartform,需要通过nace(事务码)进行后台配置。
Scriptform: 格式绘制器-----se71;标准文本--------SO10;style体例设计--------se72
Sap script与abap连接通过三个function实现:OPEN_FORM; WRITE_FORM; CLOSE_FORM
事务码se78是对sap系统上传图片和文本的事务码。
Scriptform无法直接复制,需要先使用工具将相关scriptform导出为本地文件,在开启的需求系统中将文件导入,由此实现scriptform的复制。(通过se38,输入程序名RSTXSCRP,)
步骤复杂,见书
15) 屏幕程序开发
精通Dialog屏幕标准元素实现的界面,主要包括:TABLE CTROL, TAB STRIP,Dropdown List, F1功能、F4功能等。精通CLASS方式实现复杂的界面,包括:Container 控件(Custom Container、Splitter Container、Docking Container等;ALV Tree 控件;ALV GRID 控件(该控件可以通过调用ALV Class中的方法和属性实现对ALV的复杂控制(如增加用户按钮,双击事件,对话框显示详细等);以及Picture 控件,TEXT EDIT控件等的实现;熟练掌握Collapsible Area技术实现界面可折叠的复杂屏幕设计。
16) 接口开发:RFC
关于ABAP利用OLE连接外部数据库的范例 参见程序 ZPRG_CONNET_SQL_BY_OLE_ADO
17) 业务总结
SD常用命令集合
客户主数据
XD01--创建
XD02-修改
XD03--显示
销售订单
VA01--创建
VA02--修改
VA03--显示
对销售订单交货
VL01N--创建
VL02N--修改
VL03N--显示
VL09取消发货
MBST(取消凭证)
对销售订单开票
一种参照销售订单开票
参照交货单开票
VF01--开票
VF02--修改
Vf03-显示
VF11冲销发票
表:
交货
LIKP
LIPO
销售订单:
VBAK
VBAP
发票
MKPF
MSEG
客户余额
FD10N
销售定价过程(客户信息记录)
VK31--创建
VK32-修改
VK33-显示
财务简介
做凭证
F-02
凭证类型
RV--销售发票凭证
DZ-收款凭证
PP模块常用命令集合
BOM:
CS01--创建
CS02-修改
CS03-查看
BOM展开
CS12--BOM展开
CS13--展开汇总
CS14--BOM比较
CSMB--按树状展开
CS15-BOM反查
工作中心
CR01--创建工作中心
CR02--修改
CR03--查看
工艺路线
CA01--创建
CA02--修改
CA03-查看
手工创建生产订单
CO01--创建
CO02--修改
CO03--查看
对生产订单发货
MIGO
MB26
MB1A
MMSC--扩充库位
对生产订单报工
CO11
CO11N
CO13-冲销报工
CO14--查询报工
对生产订单收货
MIGO
MB31
对生产订单关闭
CO02---技术实现TECO
订单状态 :
REL---下达
CNF--PCNF
DLV--PDLV
TECO--技术实现
CLSD--关闭
预留表--RESB
通过生产订单号查询到预留单号,再查找物料
在制品----针对自制件不在DLV
在途----采购件--(未清采购订单)
查询作业类型价格
KP26
作业类型
KL01--创建
KL02--维护
KL03--显示
MRP运算代码
M61--创建物料主计划
MD01--运行MRP
18) 屏幕元素
Parameters的用法
…..as checkbox:创建checkbox对象
…….obligatry:限制该select-options为必输项,执行中系统会提示
……radiobutton group radi:建立分组单选框
……visible length vlen:定义显示长度
……as listbox visible length vlen :创建一个下拉列表,并指定输出长度
Selection-screen 对象:
Select-screen 语句用于创建屏幕的框架结构,主要包括屏幕元素的创建、子屏幕的创建等。子屏幕主要分两种,一种为include screen,可以通过report端程序直接调用;另一种为subscreen,需要通过screen painter 所创建的屏幕引用。具体语法如下:
1) selection-screen begin of screen scr.
……..
Selection-screen end of screen scr.
该语法用于定义一个include screen,可以通过call方法在report程序中引用,call屏幕窗体时加入staring at …ending at…参数可以将所定义屏幕窗体作为一个新的对话框窗体来引用,并指定其创建的具体大小及位置。
当从一个主屏幕中来调用其程序中的另一窗体时,必须使用call selection-screen的方法。
2) selection-screen begin of screen scr as subscreen。
该语法用于定义一个subscreen。
3) selection-screen begin of block block。
………
Selection-screen end of block.
该语法在屏幕中定义一个block,其扩展语法如下:
……with frame:创建一个框架
……Title title:创建一个带标题的框架
…….NO INTERVALS: 所创建的框架中限制select 只有一个输入项。
4) selection-screen include
参照某一个已经定义的屏幕元素来创建。
屏幕事件的中止:
1) exit :中止某一事件模块,但不影响其他事件的执行。
2) reject:功能与exit基本一致。
3) stop:强制中止所有事件。
内表的清空:
Clear<itab>:仅清空header line,对内表数据存储空间不影响。
Refresh<itab>:清空内表数据存储空间,对header line不影响
Refresh<iab> from table <dbtab>:清空内表存储空间,填空从数据库表所获数据。
FREE<itab> :清空内表数据存储空间,对header line不影响
Message
Message w000(mid).----------语法,mid为类名
Pbo用于控制屏幕输出前的事件,如数据初始化、赋值等。
PAI 用于控制屏幕输出后的事件。包括相关控件操作以及数据处理等。
下拉列表框:步骤
1) 在屏幕新增一文本控件,设置其属性dropdown为listbox
2) 在flow logic PAI中增加下列代码
PRO AFTER INPUT.
PROCESS ON VALUE-REQUEST. “定义调用F4帮助或单击该栏位时触发事件
FIELD LANG MODULE SET_VALUE.
3) 定义set_value模块,编辑abap代码。下拉列表的原理是先将列表中需要的数据保存在内表,再将内表的值传递给屏幕中的文本字段。
对列表赋值需要调用功能函数F4IF_INT_TABLE_VALUE_REQUEST
屏幕工具条和菜单栏的设计可以通过事务码se41实现
Picture control的构造思想 :
上传图片的事务码是 smw0,
CALL FUNCTION 'DP_PUBLISH_WWW_URL' “长传图片的位置函数
EXPORTING
OBJID = 'ZTEXT1' “这个是你上传图片的名字
LIFETIME = cndp_lifetime_transaction
IMPORTING
URL = url
EXCEPTIONS
OTHERS = 1.
详见自己的程序————ZWSCR_PIC
子屏幕相关问题
Subscreen
START-OF-SELECTION.--------------------------在单击执行按钮后触发该事件
END-OF-SELECTION------------------------------该事件应用于所有数据处理完成,即START-OF-SELECTION相关事件执行完成,但输出屏幕还未显示之前。
展开阅读全文