SAP_ABAP学习实例讲解part3.docx
第八章A1.V控件的使用A1.V(SAP1.istViewer)控件是SAP业务中景常用的控件之一,本章先用一个简单的例子介貂用A1.V控件显示数据,再以实例方式介绍A1.Y的强大功能,例如程序可以直接使用.本章主要内容有:O离单的A1.V控件实例;O自定义输出字段的A1.Y控件实例:<)在屏摹上建立A1.Y控件;O自定义A1.V控件的工具条按钮:O处理A1.V控件双击事件:O通过A1.V控仲编辑内表和数据库更斫;OA1.VTree的使用。8.1 简单的A1.V控件实例以航班表<SPF1.I)为例,使用她凫字典定义转构,通itA1.Y控件显示效抠.【例8.1】REPORTYTEST26.* 定义内表DATAIA_SPF1.I1.IKETAB1.EOFSPF1.IWITHHEADER1.INE.* 内表鼠值SE1.ECT*INTOTAB1.EWA_SPF1.IROMSPH.I.* 通过数据字典结构显示A1.VCA1.1.FUNCTION'REUSEA1.V1.ISTDISP1.AY'EXTORTING1.STRUCTURE_NAME='SPH.I'TAB1.ESTOUTTAB=WASPF1.IexceixionsPROGRAM_ERROR=IOTHERS=2.IFSY-SIIBRcO0.»MESSAGEIDSY-MSGIDTYPESY-MSGTYNUMBERSY-MSGNO*WITHSY-MSGV1.SY-MSGV2SY-MSGV3SY-MSGV4.EXDIF.输出结果如图8T所示。e1.YTEST26Gi)C3OiaGgQs)30©ff1.SARa三mah>>Cty(NX12C1.tTF1.AtTiBeIDomzcJUtivU019XbceIIn即ceWfTJICXSCOrvwx11UMKPWT11un11P0三PWKTOKTOB011uxrRTrcvwKEVYCXmYCwC3AVFTAMCISCOTOKYORUIKrcRTrvjrvInRTWKfwjkfurt11uk11rtBEF1.IVrFirwKCTwMJrFPAjrcncoMEVTOMCBAIKToTKVTOKIai1.Tunc11三三11FTTOKYOMItt0AUISVTUMt11SA三11FTr>Ain*sjjtFpaicijcowoarvjmFTOKTOIEIfTUW汴AwmTKVTOMtWP1.:«reJBJWTMEVTUW11*JFTOT6J01S:217:“?1.247:24Z1.OS12:SS15:4013:3S7:247247:“613S:2512:05I1.1.1.S7:247:U7:351:0$HOS7:247SSz.sn$ie6U212:0011:450000IOj35:0019:01:20IO1.360019:35:0017:U:0010:00:0013:30:002O25OO10:10:00IB:30:0013:30:0010:30:000?!IO1.OO12:31:202305:0000:39:0019US:OO08:10:0010:43:2023:06:4009:30:0020:37:0018:25:0017:33:001S40i0011:34:0007:45x0015:05:0011:33:00081.IS1.OO01:02:0013:30:00e.iM%】x60Wc.1.«6,K23.6U2S72z.sn9.1.9AW6K26K26.U2>.s1.X.K8-1.8.2自定义输出字段的A1.V控件实例cm2)REPORTYTEST27.*A1.Y使用到的类库TYPE-PoO1.S:S1.IS.* -列描述DATAIAA1.VFIE1.DTYPES1.ISFIE1.DCATA1.V.* 列描述内表,列清单DATAWA_A1.V_FIE1.DCATTYPES1.ISTFIEI.DCT1.V.碇义内展DATAWASPF1.I1.IKETAB1.EOFSPF1.IWITHHEADER1.INE.* 内表就值SE1.ECT*INTOTAB1.EWA_SPF1.IFROMSPF1.I.*定义第一到第四个字段=,CARRID'.='航线承运人'.WAA1.VFIE1.DCAT.WA_A1.V_FIE1.D-CO1._POS=iA_A1.Y_FIE1.D-EIE1.DNAMEWA_A1.V_FIE1.D-SE1.TEXTMAPPENDWAA1.VFIE1.DTOWA_A1.V_FIE1.D-CO1._POS=2.IA_A1.V_FIE1.D-nE1.DNAME=,CONNID'.RAA1.VFIE1.D-SE1.TEXTM='航班连接'.SAP8.4自定义A1.V控件的工具条按钮在A1.Y的工具条上堆加一个自定义的按钮,单击它弹出窗口提示选择行数据内容.执行站果如图8-5所示.1205IuaowSAPCOa2'3cnIWTO41."355:TrerITWP:790:Y'31.e'e031.6:8”.:W99小】W45:MPSANHW/KISCOSFOJStewYW1三WYC«KJKFR*RATFRA>iXRTFRANEWYW:FRA>>?1.RTMAkjBr三wYWKOpeRA*RBTKOP*WYOvTYO!TRC*RO三KOP'C6KAFRA>>XRT1.£WYC*mabJAKDC*NEWYERW"7t£WYC<WMQC松二SANHtAIKfXO二TOKVoFKCK90标'*1.W*FOT加acco逐.H>:wqMTJFK521严0081121.-FPAm16308;68JH:,MI1.ZXWI018JR:'MB44:0I2108R»A205*190002105TYO12WIUOOOT!re¾KO,nW'1.1.45O0;19KK;1335»35:00:»:,724190120jIBCA>AF10X8I238R»A乂19孙8I$»o',1M3<O",5»100OCIOf"RA图8-5单击自定义按钮后批出如图8-6所示。SAPC1.C1.C1.50031f(CD3.Sf1C6Sr1609.S?EYC*>I了4:07'P6:225:2512:05SAN印AJS,gWYCKFPR.PT063017:1£:0020另Isfous"c10:OC0018Z.13*xm17三bS图8f程序处理流程的说明:定义A1.V控件相关事件、接口和实现方法等,主要定义以下事件.(I)A1.Y控件的工具条处理事件,定义了新按钮和功能码:<2)A1.Y控件的功能码处理事件,定义用户单击按钮产生的功能码事件。主程序:REPORTYTEST29.INC1.UDE<ICON>.C1.ASS1.C1.EVENTRECEIVERDEFINITIONDEFERRED.DATA:O1.CeoDETYPESY-ICOMM.SAYE-OKTYPESY-UCOMM.DATAEVENTRECEIVERTYPEKEFTO1.C1.EVENTRECEIVER.DATA:IA_SPF1.ITYPETAB1.EOFSP1.I,ASPF1.I1.IKESPF1.1.SE1.ECT*INTOTAB1.EWA_SPF1.IROMSPH.I.DATA:IACONTAINERTYPESCRFNAMEVA1.UE'A1.VDATA',A1.VGRIDTYPEREFTOC1.GUIA1.VGRID.IFSY-SUBRCO0.*MESSAGEIDSY-MSGIDTYPESY-MSGTYNUMBERSY-MSGNOWITHSY-MSGVISY-MSGV2SY-MSGV3SY-MSGV4.ENDIF.ENDFORM.'CREATEjrREE9.3通过右键菜单完成TreeContrO1.节点的增删改功能Tree节点的岩用改是很更要的功能,包括:增加本级节点,增加子节点,修改节点,划除节点.完成后效果如下:选择根节点,单击右”.洋出右键荚单.如选择“北京*节点,选择“北加本级节点”菜单,如图9-5所示。图9-5在单击文本情人“广州”后,单击"更新"按钮,物图9-6所示.C1.ASS1.CJAPP1.ICATIoNDEFINITION.PUB1.ICSECTION.METHODS:HAND1.E_NODEDOUB1.E_C1.ICKFOREVENTNODEDOUB1.EC1.ICKOFe1._GU1.S1.MP1.EjrREEIMPORTINGNODEKEY.METHODS:HAND1.ENODECONTEXTMENUREQFOKEVENTNODE_CONTEXT_MENUREQUESTOFC1.-GU1.S1.MP1.EjREEIMPORTINGNODE_KEYMENU,HAND1.ENODECONTEXTMENUSE1.FOREVENTNoDE_C0NTEXT_MENI1.SE1.ECTOFC1._GUI_SIMP1.E_TREEIMPORTINGNODE-KEYFCODE.ENDC1.ASS."1.C1._APP1.ICATIONDEFINITIONC1.ASSIc1.app1.icationIMP1.EMENTATIONC1.ASS1.C1.APP1.ICATIONIMP1.EMENTATION.METHODHAND1.E_NODE_DOCB1.E_C1.ICK.NODEKEY=NODE_KEY.READTAB1.ENODEJrAB1.EWITHKEYNODEKEY=NODE_KEYINTONODE1.NODETEXT=NODE1-TEXT.ENDMETHOD.'HAND1.E_NODE_DOUB1.E_C1.ICKmethodHand1.i1.nodecontextmenureq.CA1.1.METHODMENU->ADDFVNCTIONEXPORTINGTEXT='增加本级节点'FCoDE=,CODE.CA1.1.MHHoDMEN1.->ADD_FUNCTIONEXTORTINGTEXT='增加子节点'FCODE='C0DE2'.CA1.1.MI-THODMENU->ADD_FUNCTIoNEXPORTINGTEXT='修改当前节点'FCODE='C0DE3'.CA1.1.METHODMENU->ADDRINCT