• ABAPALV(4)


    通过上面三节,我们大致了解了ALV开发中与用户端直接交互的选择屏幕的开发。从这节开始,就进入ALV 的开发讲解咯。

    一、ALV简介

         ALV--SAP LIST VIEWER 是SAP提供的一种报表方式。

    二、ALV开发

          ALV 的开发可以通过多种方式实现,下面先讲以类型池SLIS为开头的AVL类型报表的开发。

          2.1   SLIS

          以这种方式开发的ALV 报表需要预先声明SLIS:Type-pools:slis.

          在该类型池下会有相应的结构或表类型供我们参考调用,如下:

          SLIS_T_LISTHEADER:用于设置ALV的抬头信息的表结构;

          SLIS_FIELDCAT_ALV:用于设置ALV输出字段信息的结构;

          SLIS_T_FIELDCAT_ALV:用于设置ALV输出字段信息的表结构;

          SLIS_T_SORTINFO_ALV:用于指定ALV输出数据按指定的字段进行排序的表结构;

          SLIS_LAYOUT_ALV:用于设置ALV 输出的报表布局的结构;

          SLIS_T_EVENT:用于ALV事件设置的表结构;

          该ALV报表调用到的显示函数有:REUSE_ALV_GRID_DISPLAYREUSE_ALV_LIST_DISPLAY,这两个函数的区别在于ALV显示的模式不同,个人而言前者比较没有、实用。

          2.1.1 应用实例

          需求提出:SD部门提出开发一张销售订单跟踪报表来反映销售订单的终止。

          可以从中看出ALV的开发过程:

           第一步,要定义Type-pools:slis.

          

           事件处理子程序,(一般的开发中,我对于这个字模块都是直接COPY,不做修改)      

          

           ALV布局设置子程序,     

           

           ALV输出字段定义,由于输出的字段太多,因此我只截取了其中几个字段,输出字段的设置还可以通过宏定义进行调用设置。      

           

            ALV 输出调用函数,在该例子中使用的函数是 : REUSE_ALV_GRID_DISPLAY,调用该函数显示比较美观       

          

          以下是该程序的具体代码,供参考:不足之处请指点,谢谢!

    View Code
       1 report  zsdr0010.
       2 
       3 *----------------------------------------------------------------------*
       4 * 包含                                                                 *
       5 *----------------------------------------------------------------------*
       6 include zsdr0010_define.    "全局定义
       7 include zsdr0010_sel.       "选择界面定义
       8 include zsdr0010_frm.       "子例程
       9 
      10 
      11 *&---------------------------------------------------------------------*
      12 *&  Include           ZSDR0010_DEFINE
      13 *&---------------------------------------------------------------------*
      14 *----------------------------------------------------------------------*
      15 *表声明                                                                *
      16 *----------------------------------------------------------------------*
      17 tables: vbap,vbep,vbkd,vbak.
      18 *----------------------------------------------------------------------*
      19 *结构定义                                                              *
      20 *----------------------------------------------------------------------*
      21 types:  begin of gs_xsgz,
      22          sortl   type kna1-sortl, "客户检索
      23          kunnr   type vbak-kunnr, "售达方
      24          kunnr1  type vbpa-kunnr, "付款方
      25          kunnr2  type vbpa-kunnr, "收货方/送达方
      26          bezei   type tvakt-bezei,"订单类型秒送
      27          vkorg   type vbak-vkorg, "销售组织
      28          spart   type vbak-spart, "产品组
      29          erdat   type vbak-erdat, "凭证日期
      30          vbeln   type vbak-vbeln, "销售订单
      31          posnr   type vbap-posnr, "订单行项目
      32          matnr   type vbap-matnr, "物料ID
      33          zkhwl   type c length 200,"客户物料描述
      34          arktx   type vbap-arktx, "物料描述
      35          zpsdat1 type zsdt0011-zpsdat1, "订单评审提交日期
      36          zpsdat2 type zsdt0011-zpsdat2, "订单评审完成日期
      37          zpsdat3 type zsdt0011-zpsdat3, "订单签发完成日期
      38          kwmeng  type vbap-kwmeng,"订单数量
      39          bstkd   type vbkd-bstkd, "采购订单编号
      40          edatu   type vbep-edatu, "交货日期
      41          kpein   type vbap-kpein, "单位
      42          kbetr   type konv-kbetr, "单价
      43          netwr   type vbap-netwr, "金额
      44          waerk   type vbak-waerk, "币种
      45          vkbur   type vbak-vkbur, "销售部门
      46          zaed    type tvgrt-bezei,"AE
      47          zomd    type tvv2t-bezei,"OM
      48          zstau   type tvbst-bezei,"订单行状态
      49          wjhsl   type vbap-kwmeng,"未计划数量
      50          gsmng   type plaf-gsmng, "在计划数量
      51          zwqcg   type eket-menge, "未清采购订单
      52          psmng   type afpo-psmng, "在制生产订单
      53          rfmng   type vbfa-rfmng, "已出货数量
      54          wchsl   type vbap-kwmeng,"未出货数量
      55          kalab   type mska-kalab, "库存数量
      56         end of gs_xsgz,
      57 
      58         begin of gs_vbap,
      59          vbeln  type vbak-vbeln, "销售订单
      60          auart  type vbak-auart, "订单类型
      61          vkorg  type vbak-vkorg, "销售组织
      62          vkgrp  type vbak-vkgrp, "销售组
      63          spart  type vbak-spart, "产品组
      64          erdat  type vbak-erdat, "凭证日期
      65          kunnr  type vbak-kunnr, "售达方
      66          waerk  type vbak-waerk, "币种
      67          vkbur  type vbak-vkbur, "销售部门
      68          knumv  type vbak-knumv, "单据条件数
      69          kvgr2  type vbak-kvgr2, "OM
      70          posnr  type vbap-posnr, "订单行项目
      71          matnr  type vbap-matnr, "物料ID
      72          arktx  type vbap-arktx, "物料描述
      73          werks  type vbap-werks, "工厂
      74          kwmeng type vbap-kwmeng,"订单数量
      75          kpein  type vbap-kpein, "单位
      76          netwr  type vbap-netwr, "金额
      77          lfsta  type vbup-lfsta, "行项目状态标识
      78         end of gs_vbap,
      79 
      80         begin of gs_kna1,
      81          kunnr  type kna1-kunnr,"客户号
      82          sortl  type kna1-sortl,"客户检索
      83         end of gs_kna1,
      84 
      85         begin of gs_vbkd,
      86          vbeln  type vbkd-vbeln, "销售订单
      87          "posnr  TYPE vbkd-posnr, "订单行项目
      88          bstkd  type vbkd-bstkd, "采购订单编号
      89          bzirk  type vbkd-bzirk, "销售地区  
      90         end of gs_vbkd,
      91 
      92         begin of gs_vbep,
      93          vbeln  type vbep-vbeln, "销售订单
      94          posnr  type vbep-posnr, "销售订单
      95          edatu  type vbep-edatu, "交货日期
      96         end of gs_vbep,
      97 
      98         begin of gs_vbpa,
      99          vbeln  type vbpa-vbeln,  "销售订单
     100          posnr  type vbpa-posnr,  "订单行项目
     101          parvw  type vbpa-parvw,  "合作伙伴功能
     102          kunnr  type vbpa-kunnr,  "客户
     103         end of gs_vbpa,
     104 
     105         begin of gs_zsdt0011,
     106           vbeln   type zsdt0011-vbeln, "销售订单
     107           posnr   type zsdt0011-posnr, "订单行项目
     108           zpsdat1 type zsdt0011-zpsdat1, "订单评审提交日期
     109           zpsdat2 type zsdt0011-zpsdat2, "订单评审完成日期
     110           zpsdat3 type zsdt0011-zpsdat3, "订单签发完成日期
     111         end of gs_zsdt0011,
     112 
     113         begin of gs_konv,
     114           knumv type konv-knumv, "单据条件数
     115           kposn type konv-kposn, "条件项目号
     116           kschl type konv-kschl, "条件类型
     117           kbetr type konv-kbetr, "价格( 条件金额或百分数 )
     118         end of gs_konv,
     119 
     120         begin of gs_plaf,
     121           kdauf type plaf-kdauf, "销售订单
     122           kdpos type plaf-kdpos, "订单行项目
     123           auffx type plaf-auffx, "计划订货数据的确定的标识
     124           gsmng type plaf-gsmng, "全部的计划订单数量
     125         end of gs_plaf,
     126 
     127        begin of gs_afpo,
     128         aufnr type afpo-aufnr,"订单号
     129         posnr type afpo-posnr,"订单项目编号
     130         kdauf type afpo-kdauf,"销售订单号
     131         kdpos type afpo-kdpos,"销售订单行项
     132         psmng type afpo-psmng,"订单项数量
     133         wemng type afpo-wemng,"此订单项的收货数量
     134        end of gs_afpo,
     135 
     136        begin of gs_mska,
     137         matnr type mska-matnr,"物料号
     138         vbeln type mska-vbeln,"销售和分销凭证号
     139         posnr type mska-posnr,"销售和分销凭证的项目号
     140         charg type mska-charg,"批号
     141         kalab type mska-kalab,"非限制使用的估价的库存
     142         kains type mska-kains,"
     143        end of gs_mska,
     144 
     145 *定义存放销售组织的结构
     146        begin of gs_tvko,
     147         bukrs type tvko-bukrs, "公司代码
     148         vkorg type tvko-vkorg, "销售组织
     149        end of gs_tvko.
     150 
     151 *----------------------------------------------------------------------*
     152 *DSEC;表定义                                                           *
     153 *----------------------------------------------------------------------*
     154 data: gt_xsgz     type standard table of gs_xsgz,
     155       gt_vbap     type standard table of gs_vbap,
     156       gt_kna1     type standard table of gs_kna1,
     157       gt_vbkd     type standard table of gs_vbkd,
     158       gt_vbep     type standard table of gs_vbep,
     159       gt_vbpa     type standard table of gs_vbpa,
     160       gt_konv     type standard table of gs_konv,
     161       gt_zsdt0011 type standard table of gs_zsdt0011,
     162       gt_tvakt    type standard table of tvakt,
     163       gt_tvgrt    type standard table of tvgrt,
     164       gt_tvv2t    type standard table of tvv2t,
     165       gt_tvbst    type standard table of tvbst,
     166       gt_line     type standard table of tline with header line,
     167       gt_plaf     type standard table of gs_plaf,
     168       gt_afpo     type standard table of gs_afpo,
     169       gt_mska     type standard table of gs_mska,
     170       gt_tvko     type standard table of gs_tvko. 
     171 data: gt_zbos001  type standard table of zbos001. "操作人员权限公司    
     172 
     173 *&---------------------------------------------------------------------*
     174 *& DESC:ALV 变量定义                                                    *
     175 *&---------------------------------------------------------------------*
     176 type-pools: slis.
     177 data: gt_fieldcat    type slis_t_fieldcat_alv with header line,  "定义存放输出字段的内表
     178       gw_layout      type slis_layout_alv, "定义ALV布局设置的工作区
     179       g_repid        type sy-repid.        "定义系统当前程序名变量
     180 data: gw_stru_disvar type disvariant,        "ALV 显示格式
     181       gt_events      type slis_t_event.      "ALV 事件
     182 
     183 *----------------------------------------------------------------------*
     184 *DESC:字段符号                                                          *
     185 *----------------------------------------------------------------------*
     186 field-symbols: <fs_vbap> type gs_vbap,
     187                <fs_kna1> type gs_kna1,
     188                <fs_vbkd> type gs_vbkd,
     189                <fs_vbep> type gs_vbep,
     190                <fs_vbpa> type gs_vbpa,
     191                <fs_konv> type gs_konv,
     192                <fs_tvak> type tvakt,
     193                <fs_tvgr> type tvgrt,
     194                <fs_tvv2> type tvv2t,
     195                <fs_tvbs> type tvbst,
     196                <fs_zsdt0011> type gs_zsdt0011,
     197                <fs_afpo> type gs_afpo.
     198 
     199 *----------------------------------------------------------------------*
     200 *DESC:全局变量                                                          *
     201 *----------------------------------------------------------------------*
     202 data: g_date  type d.
     203 data: gw_xsgz type gs_xsgz.
     204 data: gw_plaf type gs_plaf.
     205 data: g_name  type c length 70.
     206 data: gw_zbos001 type zbos001. "定义权限公司工作区  
     207 data: gw_tvko type gs_tvko.    "定义销售组织工作区  
     208 ranges: r_vkorg for tvko-vkorg.
     209 data: g_amta type c."设置金额显示权限标识
     210 
     211 
     212 
     213 *&---------------------------------------------------------------------*
     214 *&  Include           ZSDR0010_SEL
     215 *&---------------------------------------------------------------------*
     216 *----------------------------------------------------------------------*
     217 *DESC:选择屏幕定义                                                      *
     218 *----------------------------------------------------------------------*
     219 selection-screen begin of block blk1 with frame title text-001.
     220 select-options: s_vbeln for vbap-vbeln,"销售订单
     221                 s_posnr for vbap-posnr,"订单行项目
     222                 s_matnr for vbap-matnr,"物料ID
     223                 s_edatu for vbep-edatu obligatory,"交货日期
     224                 s_audat for vbak-audat,"创建日期     
     225                 s_bzirk for vbkd-bzirk,"销售地区__
     226                 s_kunnr for vbak-kunnr."售达方
     227 selection-screen end of block blk1.
     228 
     229 *&---------------------------------------------------------------------*
     230 *& Initialization
     231 *&---------------------------------------------------------------------*
     232 initialization.
     233   perform frm_init.
     234 
     235 *&---------------------------------------------------------------------*
     236 *& At selection-screen
     237 *&---------------------------------------------------------------------*
     238 at selection-screen.
     239   "PERFORM frm_check_input.
     240 
     241 *&---------------------------------------------------------------------*
     242 *& start-of-selection
     243 *&---------------------------------------------------------------------*
     244 start-of-selection.
     245   perform frm_fetch_data.
     246   perform frm_get_event.           "设置自定义事件处理程序
     247   perform frm_init_layout.         "设置输出格式
     248   perform frm_init_fieldcat.       "设置输出字段
     249   perform frm_output.              "输出
     250 
     251 
     252 
     253 
     254 *&---------------------------------------------------------------------*
     255 *&  Include           ZSDR0010_FRM
     256 *&---------------------------------------------------------------------*
     257 *----------------------------------------------------------------------*
     258 *DESC:初始化选择日期                                                    *
     259 *----------------------------------------------------------------------*
     260 form frm_init.
     261   clear: g_date.
     262   call function 'MONTH_PLUS_DETERMINE'
     263     exporting
     264       months  = '-1'
     265       olddate = sy-datum
     266     importing
     267       newdate = g_date.
     268   s_edatu-low = g_date.
     269   s_edatu-high = sy-datum.
     270   append s_edatu.
     271 endform.                    "frm_init
     272 
     273 *----------------------------------------------------------------------*
     274 *DESC:对操作人员进行权限处理                                             *
     275 *----------------------------------------------------------------------*
     276 form frm_check_input.
     277   "定义临时变量
     278   ranges:l_bukrs for tvko-bukrs.
     279 
     280   call function 'ZBO_AUTHORITY_CHECK'
     281     exporting
     282 *     HIGH       =
     283 *     LOW        =
     284       uname      = sy-uname
     285     tables
     286       pt_zbot001 = gt_zbos001.
     287 
     288   "判断
     289   if gt_zbos001 is initial.
     290     message '当前用户没有授予权限查询该报表!' type 'E'.
     291   else.
     292     "组合公司代码范围
     293     sort gt_zbos001 by bukrs.
     294     read table gt_zbos001 into gw_zbos001 index 1.
     295     l_bukrs-low = gw_zbos001-bukrs.
     296     sort gt_zbos001 by bukrs descending.
     297     read table gt_zbos001 into gw_zbos001 index 1.
     298     l_bukrs-high = gw_zbos001-bukrs.
     299     l_bukrs-sign = 'I'.
     300     l_bukrs-option = 'BT'.
     301     append l_bukrs.
     302     "根据公司代码获取销售组织
     303     select bukrs "公司代码
     304            vkorg "销售组织
     305       into corresponding fields of table gt_tvko
     306       from tvko
     307       where bukrs in l_bukrs.
     308     "组合销售组织范围
     309     sort gt_tvko by vkorg.
     310     read table gt_tvko into gw_tvko index 1.
     311     r_vkorg-low = gw_tvko-vkorg.
     312     sort gt_tvko by vkorg descending.
     313     read table gt_tvko into gw_tvko index 1.
     314     r_vkorg-high = gw_tvko-vkorg.
     315     r_vkorg-sign = 'I'.
     316     r_vkorg-option = 'BT'.
     317     append r_vkorg.
     318   endif.
     319 
     320   "金额权限判定
     321   authority-check object 'ZAMTA' for user sy-uname id 'NETWR' dummy.
     322   if sy-subrc = 0.
     323     g_amta = 'X'.
     324   endif.
     325 
     326 endform.                    "frm_check_input
     327 
     328 *&---------------------------------------------------------------------*
     329 *&DESC: Form  FRM_Fetch_Data 获取数据库的相关数据                        *
     330 *&---------------------------------------------------------------------*
     331 form frm_fetch_data.
     332 *定义临时变量:
     333   data: l_rfmng1 type vbfa-rfmng,"存放正值出货数量
     334         l_rfmng2 type vbfa-rfmng,"存放负值出货数量
     335         l_kalab  type mska-kalab,"存放销售订单库存数据1
     336         l_kains  type mska-kains,"存放销售订单库存数据2
     337         l_menge  type eket-menge,"存放未清销售订单数据1
     338         l_wemng  type eket-wemng,"存放未清销售订单数据2
     339         l_objnr  like jsto-objnr,"对象号
     340         lw_jstat type jstat,"状态工作区
     341         lt_jstat type table of jstat."状态内表
     342   data: lt_vbap type standard table of gs_vbap."____lyf 09-04
     343 *先根据选择屏幕筛选出相应字段到内表gt_vbap
     344   select vbak~vbeln   "销售订单
     345          vbak~auart   "订单类型
     346          vbak~vkorg   "销售组织
     347          vbak~vkgrp   "销售组
     348          vbak~spart   "产品组
     349          vbak~erdat   "凭证日期
     350          vbak~kunnr   "售达方
     351          vbak~waerk   "币种
     352          vbak~vkbur   "销售部门
     353          vbak~knumv   "单据条件数
     354          vbak~kvgr2   "OM
     355          vbap~posnr   "订单行项目
     356          vbap~matnr   "物料ID
     357          vbap~arktx   "物料描述
     358          vbap~kwmeng  "订单数量
     359          vbap~werks   "工厂
     360          vbap~kpein   "单位
     361          vbap~netwr   "金额
     362     into corresponding fields of table gt_vbap             
     363     from vbak join vbap on vbak~vbeln = vbap~vbeln
     364 *    JOIN vbkd ON vbkd~vbeln = vbap~vbeln      
     365 *              AND vbkd~posnr = vbap~posnr    
     366     where vbak~vbeln in s_vbeln
     367       and vbap~posnr in s_posnr
     368       and vbap~matnr in s_matnr
     369       "AND vbkd~bzirk IN s_bzirk
     370       and vbak~kunnr in s_kunnr
     371       and vbak~audat in s_audat.
     372   "AND vbak~vkorg IN r_vkorg."根据操作人员的权限而对应的销售组织  
     373 
     374   sort gt_vbap by vbeln posnr.
     375 
     376 *删除不在选择范围内的记录
     377   if gt_vbap[] is not initial.
     378     select vbeln  "销售订单
     379            posnr  "订单行项目
     380            edatu  "交货日期
     381       into corresponding fields of table gt_vbep
     382       from vbep
     383       for all entries in gt_vbap
     384       where vbeln = gt_vbap-vbeln
     385         and posnr = gt_vbap-posnr
     386         and etenr = 1.
     387     sort gt_vbep by vbeln posnr.
     388 
     389     loop at gt_vbap assigning <fs_vbap>.
     390       read table gt_vbep assigning <fs_vbep> with key vbeln = <fs_vbap>-vbeln
     391                                                       posnr = <fs_vbap>-posnr binary search.
     392       if sy-subrc = 0."该销售订单存在交货日期
     393         if <fs_vbep>-edatu not in s_edatu.  "交货日期不在选择范围内
     394           delete gt_vbap.
     395         else.    "如果在选择范围内,则维护订单行项目状态
     396           select single lfsta
     397             into <fs_vbap>-lfsta
     398             from vbup
     399             where vbeln = <fs_vbap>-vbeln
     400               and posnr = <fs_vbap>-posnr.
     401         endif.
     402       else.    "交货日期为空,删除
     403         delete gt_vbap.
     404       endif.
     405     endloop.
     406   endif.
     407 
     408 *获取采购订单编号并删除不在范围内的记录                
     409 
     410   if gt_vbap[] is not initial.
     411     select vbeln   "销售订单
     412            bstkd   "采购订单编号
     413            bzirk   "销售地区
     414       into corresponding fields of table gt_vbkd
     415       from vbkd
     416       for all entries in gt_vbap
     417       where vbeln = gt_vbap-vbeln.
     418     sort gt_vbkd by vbeln.
     419 
     420     if s_bzirk is not initial."如果筛选条件有销售地区
     421       delete gt_vbkd where bzirk not in s_bzirk."删除销售地区不在选择范围内的记录
     422       loop at gt_vbap assigning <fs_vbap>.
     423         read table gt_vbkd assigning <fs_vbkd> with key vbeln = <fs_vbap>-vbeln binary search.
     424         if sy-subrc <> 0."销售地区不在选择范围内,删除
     425           delete gt_vbap.
     426         endif.
     427       endloop.
     428     endif.
     429   endif.                             
     430 *获取客户检索号
     431   if gt_vbap[] is not initial.
     432     select kunnr  "客户号
     433            sortl  "客户检索号
     434       into corresponding fields of table gt_kna1
     435       from kna1
     436       for all entries in gt_vbap
     437       where kunnr = gt_vbap-kunnr.
     438   endif.
     439 
     440 *获取客户号
     441   if gt_vbap[] is not initial.
     442     select vbeln  "销售订单
     443            posnr  "订单行项目
     444            parvw  "客户类型
     445            kunnr  "客户号
     446       into corresponding fields of table gt_vbpa
     447       from vbpa
     448       for all entries in gt_vbap
     449       where  vbeln = gt_vbap-vbeln.
     450     "AND  posnr = gt_vbap-posnr.
     451   endif.
     452 
     453 *获取订单评审日期
     454   if gt_vbap[] is not initial.
     455     select vbeln    "销售订单
     456            posnr    "订单行项目
     457            zpsdat1  "订单评审提交日期
     458            zpsdat2  "订单评审完成日期
     459            zpsdat3  "订单签发完成日期
     460       into corresponding fields of table gt_zsdt0011
     461       from zsdt0011
     462       for all entries in gt_vbap
     463       where vbeln = gt_vbap-vbeln
     464         and posnr = gt_vbap-posnr.
     465   endif.
     466 
     467 *获取销售凭证单价
     468   if gt_vbap[] is not initial.
     469     select knumv   "单据条件数
     470            kposn   "条件项目号
     471            kschl   "条件类型
     472            kbetr   "价格
     473       into  corresponding fields of table gt_konv
     474       from konv
     475       for all entries in gt_vbap
     476       where knumv = gt_vbap-knumv
     477         and kposn = gt_vbap-posnr
     478         and kschl = 'PR00'.
     479   endif.
     480 
     481 *获取销售订单类型描述
     482   if gt_vbap[] is not initial.
     483     select *
     484       into corresponding fields of table gt_tvakt
     485       from tvakt
     486       for all entries in gt_vbap
     487       where auart = gt_vbap-auart
     488         and spras = '1'.
     489   endif.
     490 
     491 *获取AE描述
     492   if gt_vbap[] is not initial.
     493     select *
     494       into corresponding fields of table gt_tvgrt
     495       from tvgrt
     496       for all entries in gt_vbap
     497       where vkgrp = gt_vbap-vkgrp
     498         and spras = '1'.
     499   endif.
     500 
     501 *获取OM
     502   if gt_vbap[] is not initial.
     503     select *
     504       into corresponding fields of table gt_tvv2t
     505       from tvv2t
     506       for all entries in gt_vbap
     507       where kvgr2 = gt_vbap-kvgr2
     508         and spras = '1'.
     509   endif.
     510 
     511 *获取订单行项目状态
     512   if gt_vbap[] is not initial.
     513     select *
     514       into corresponding fields of table gt_tvbst
     515       from tvbst
     516       for all entries in gt_vbap
     517       where spras = '1'
     518         and tbnam = 'VBUP'
     519         and fdnam = 'LFSTA'
     520         and statu = gt_vbap-lfsta.
     521   endif.
     522 
     523 *维护主数据
     524   sort gt_kna1  by kunnr.
     525   sort gt_tvakt by auart.
     526   sort gt_tvgrt by vkgrp.
     527   sort gt_tvv2t by kvgr2.
     528   sort gt_vbkd  by vbeln." posnr.
     529   sort gt_vbpa  by vbeln posnr parvw.
     530   sort gt_vbep  by vbeln posnr.
     531   sort gt_konv  by knumv kposn.
     532   sort gt_tvbst by statu.
     533   loop at gt_vbap assigning <fs_vbap>.
     534     clear: gw_xsgz.
     535     "维护主结构的一般数据
     536     gw_xsgz-vbeln  = <fs_vbap>-vbeln.  "销售订单
     537     gw_xsgz-posnr  = <fs_vbap>-posnr.  "销售订单行项目
     538     gw_xsgz-vkorg  = <fs_vbap>-vkorg.  "销售组织
     539     gw_xsgz-spart  = <fs_vbap>-spart.  "产品组
     540     gw_xsgz-erdat  = <fs_vbap>-erdat.  "凭证日期
     541     gw_xsgz-matnr  = <fs_vbap>-matnr.  "产品ID
     542     gw_xsgz-arktx  = <fs_vbap>-arktx.  "产品描述
     543     gw_xsgz-kunnr  = <fs_vbap>-kunnr.  "售达方
     544     gw_xsgz-kpein  = <fs_vbap>-kpein.  "单位
     545     gw_xsgz-netwr  = <fs_vbap>-netwr.  "金额
     546     gw_xsgz-waerk  = <fs_vbap>-waerk.  "币种
     547     gw_xsgz-vkbur  = <fs_vbap>-vkbur.  "销售部门
     548     "gw_xsgz-kvgr2  = <fs_vbap>-kvgr2.  "OM
     549     gw_xsgz-kwmeng = <fs_vbap>-kwmeng. "订单数量
     550     "维护客户检索
     551     read table gt_kna1 assigning <fs_kna1> with key kunnr = <fs_vbap>-kunnr binary search.
     552     if sy-subrc = 0.
     553       gw_xsgz-sortl = <fs_kna1>-sortl.
     554     endif.
     555     "订单类型描述
     556     read table gt_tvakt assigning <fs_tvak> with key auart = <fs_vbap>-auart binary search.
     557     if sy-subrc = 0.
     558       gw_xsgz-bezei = <fs_tvak>-bezei.
     559     endif.
     560     "获取采购订单编号
     561     read table gt_vbkd assigning <fs_vbkd> with key vbeln = <fs_vbap>-vbeln binary search.
     562     if sy-subrc = 0.
     563       gw_xsgz-bstkd = <fs_vbkd>-bstkd.
     564     endif.
     565     "获取AE
     566     read table gt_tvgrt assigning <fs_tvgr> with key vkgrp = <fs_vbap>-vkgrp binary search.
     567     if sy-subrc = 0.
     568       gw_xsgz-zaed = <fs_tvgr>-bezei.
     569     endif.
     570     "获取OM
     571     read table gt_tvv2t assigning <fs_tvv2> with key kvgr2 = <fs_vbap>-kvgr2 binary search.
     572     if sy-subrc = 0.
     573       gw_xsgz-zomd = <fs_tvv2>-bezei.
     574     endif.
     575     "获取付款方
     576     read table gt_vbpa assigning <fs_vbpa> with key vbeln = <fs_vbap>-vbeln
     577                                                     "posnr = <fs_vbap>-posnr
     578                                                     parvw = 'RG' binary search.
     579     if sy-subrc = 0.
     580       gw_xsgz-kunnr1 = <fs_vbap>-kunnr.
     581     endif.
     582     "获取收货方
     583     read table gt_vbpa assigning <fs_vbpa> with key vbeln = <fs_vbap>-vbeln
     584                                                     "posnr = <fs_vbap>-posnr
     585                                                     parvw = 'WE' binary search.
     586     if sy-subrc = 0.
     587       gw_xsgz-kunnr2 = <fs_vbap>-kunnr.
     588     endif.
     589     "获取交货日期
     590     read table gt_vbep assigning <fs_vbep> with key vbeln = <fs_vbap>-vbeln
     591                                                     posnr = <fs_vbap>-posnr binary search.
     592     if sy-subrc = 0.
     593       gw_xsgz-edatu = <fs_vbep>-edatu.
     594     endif.
     595     "获取评审日期
     596     read table gt_zsdt0011 assigning <fs_zsdt0011> with key vbeln = <fs_vbap>-vbeln
     597                                                             posnr = <fs_vbap>-posnr binary search.
     598     if sy-subrc = 0.
     599       gw_xsgz-zpsdat1 = <fs_zsdt0011>-zpsdat1."订单评审提交日期
     600       gw_xsgz-zpsdat2 = <fs_zsdt0011>-zpsdat2."订单评审完成日期
     601       gw_xsgz-zpsdat3 = <fs_zsdt0011>-zpsdat3."订单签发完成日期
     602     endif.
     603     "获取客户物料描述
     604     concatenate <fs_vbap>-vbeln <fs_vbap>-posnr into g_name.
     605     perform frm_read_text tables gt_line
     606                           using 'Z001' '1' g_name 'VBBP'.
     607     if gt_line[] is not initial.
     608       loop at gt_line.
     609         concatenate gw_xsgz-zkhwl gt_line-tdline into gw_xsgz-zkhwl.
     610       endloop.
     611     endif.
     612     clear: g_name.
     613     refresh gt_line.
     614     "获取AE值
     615     read table gt_tvgrt assigning <fs_tvgr> with key vkgrp = <fs_vbap>-vkgrp
     616                                                      spras = '1' binary search.
     617     if sy-subrc = 0.
     618       gw_xsgz-zaed = <fs_tvgr>-bezei.
     619     endif.
     620     "获取单价
     621     read table gt_konv assigning <fs_konv> with key knumv = <fs_vbap>-knumv
     622                                                     kposn = <fs_vbap>-posnr binary search.
     623     if sy-subrc = 0.
     624       gw_xsgz-kbetr = <fs_konv>-kbetr.
     625     endif.
     626     "维护行项目状态
     627     read table gt_tvbst assigning <fs_tvbs> with key statu = <fs_vbap>-lfsta binary search.
     628     if sy-subrc = 0.
     629       gw_xsgz-zstau = <fs_tvbs>-bezei.
     630     endif.
     631 
     632     "维护在计划数量
     633     clear: gw_plaf.
     634     select single kdauf kdpos auffx gsmng
     635       from plaf
     636       into corresponding fields of gw_plaf
     637       where kdauf = <fs_vbap>-vbeln
     638         and kdpos = <fs_vbap>-posnr
     639         and auffx = 'X'
     640         and obart = 1.
     641     if sy-subrc = 0.
     642       gw_xsgz-gsmng = gw_plaf-gsmng.
     643     endif.
     644     "维护未清采购订单
     645     clear:l_menge,l_wemng.
     646     select sum( eket~menge )
     647       into l_menge
     648       from ekkn join ekpo on ekkn~ebeln = ekpo~ebeln
     649                          and ekkn~ebelp = ekpo~ebelp
     650                 join eket on ekpo~ebeln = eket~ebeln
     651                          and ekpo~ebelp = eket~ebelp
     652       where ekkn~vbeln = <fs_vbap>-vbeln
     653         and ekkn~vbelp = <fs_vbap>-posnr
     654         and ekpo~matnr = <fs_vbap>-matnr
     655         and ekpo~werks = <fs_vbap>-werks
     656         and ekpo~loekz <> 'L'
     657         and ekpo~elikz <> 'X'.
     658     select sum( eket~wemng )
     659       into l_wemng
     660       from ekkn join ekpo on ekkn~ebeln = ekpo~ebeln
     661                          and ekkn~ebelp = ekpo~ebelp
     662                 join eket on ekpo~ebeln = eket~ebeln
     663                          and ekpo~ebelp = eket~ebelp
     664       where ekkn~vbeln = <fs_vbap>-vbeln
     665         and ekkn~vbelp = <fs_vbap>-posnr
     666         and ekpo~matnr = <fs_vbap>-matnr
     667         and ekpo~werks = <fs_vbap>-werks
     668         and ekpo~loekz <> 'L'
     669         and ekpo~elikz <> 'X'.
     670     gw_xsgz-zwqcg = l_menge - l_wemng."未清采购订单
     671     "维护已出货数量
     672     clear: l_rfmng1,l_rfmng2.
     673     select sum( rfmng )
     674       into l_rfmng1
     675       from vbfa
     676       where vbelv = <fs_vbap>-vbeln
     677         and posnv = <fs_vbap>-posnr
     678         and vbtyp_n in ('R','h')
     679         and bwart in ('601','Z61').
     680     select sum( rfmng )
     681       into l_rfmng2
     682       from vbfa
     683       where vbelv = <fs_vbap>-vbeln
     684         and posnv = <fs_vbap>-posnr
     685         and vbtyp_n in ('R','h')
     686         and bwart in ('602','Z62').
     687     gw_xsgz-rfmng = l_rfmng1 - l_rfmng2."已出货数量
     688     "未出货数量
     689     gw_xsgz-wchsl = gw_xsgz-kwmeng - gw_xsgz-rfmng."未出货数量
     690     "维护订单库存数量
     691     clear: l_kalab,l_kains.
     692     select sum( kalab )
     693       into l_kalab
     694       from mska
     695       where vbeln = gw_xsgz-vbeln
     696         and posnr = gw_xsgz-posnr
     697         and matnr = gw_xsgz-matnr.
     698     select sum( kains )
     699       into l_kains
     700       from mska
     701       where vbeln = gw_xsgz-vbeln
     702         and posnr = gw_xsgz-posnr
     703         and matnr = gw_xsgz-matnr.
     704     gw_xsgz-kalab = l_kalab + l_kains.
     705     "维护在制生产订单
     706     clear gt_afpo.
     707     select aufnr posnr kdauf kdpos psmng wemng
     708       from afpo
     709       into corresponding fields of table gt_afpo
     710       where kdauf = <fs_vbap>-vbeln
     711         and kdpos = <fs_vbap>-posnr.
     712     loop at gt_afpo assigning <fs_afpo>.
     713       clear l_objnr.
     714       concatenate 'OR' <fs_afpo>-aufnr into l_objnr.
     715       clear lt_jstat.
     716       call function 'STATUS_READ'
     717         exporting
     718           objnr            = l_objnr
     719           only_active      = 'X'
     720         tables
     721           status           = lt_jstat
     722         exceptions
     723           object_not_found = 1
     724           others           = 2.
     725       if sy-subrc = 0.
     726         "CRTD
     727         clear lw_jstat.
     728         read table lt_jstat into lw_jstat with key stat = 'I0001'.
     729         if sy-subrc = 0.
     730           "DLV
     731           clear lw_jstat.
     732           read table lt_jstat into lw_jstat with key stat = 'I0012'.
     733           if sy-subrc = 0.
     734             continue.
     735           endif.
     736           "DLID
     737           clear lw_jstat.
     738           read table lt_jstat into lw_jstat with key stat = 'I0076'.
     739           if sy-subrc = 0.
     740             continue.
     741           endif.
     742           gw_xsgz-psmng = gw_xsgz-psmng + <fs_afpo>-psmng - <fs_afpo>-wemng.
     743           continue.
     744         endif.
     745         "REL
     746         clear lw_jstat.
     747         read table lt_jstat into lw_jstat with key stat = 'I0002'.
     748         if sy-subrc = 0.
     749           "DLV
     750           clear lw_jstat.
     751           read table lt_jstat into lw_jstat with key stat = 'I0012'.
     752           if sy-subrc = 0.
     753             continue.
     754           endif.
     755           "DLID
     756           clear lw_jstat.
     757           read table lt_jstat into lw_jstat with key stat = 'I0076'.
     758           if sy-subrc = 0.
     759             continue.
     760           endif.
     761           gw_xsgz-psmng = gw_xsgz-psmng + <fs_afpo>-psmng - <fs_afpo>-wemng.
     762           continue.
     763         endif.
     764       endif.
     765     endloop.
     766     "未计划数量= 未出货数量-在计划数量-在制生产订单-销售库存-未清采购数
     767     gw_xsgz-wjhsl = gw_xsgz-wchsl - gw_xsgz-gsmng - gw_xsgz-psmng - gw_xsgz-kalab - gw_xsgz-zwqcg.
     768 
     769     append gw_xsgz to gt_xsgz.
     770 
     771   endloop.
     772 
     773 endform.                    "frm_fetch_date
     774 
     775 *&---------------------------------------------------------------------*
     776 *&DESC: Form  FRM_GET_EVENT 事件获取子程序                              *
     777 *&---------------------------------------------------------------------*
     778 form frm_get_event .
     779   data l_events type slis_alv_event."slis_alv_event是一个包含name和form字段的结构,均为字符型
     780 
     781   call function 'REUSE_ALV_EVENTS_GET'
     782     exporting
     783       i_list_type     = 0
     784     importing
     785       et_events       = gt_events
     786     exceptions
     787       list_type_wrong = 1
     788       others          = 2.
     789   if sy-subrc <> 0.
     790     message id sy-msgid type sy-msgty number sy-msgno
     791            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
     792   endif.
     793 
     794 endform.                    " FRM_GET_EVENT
     795 
     796 *&---------------------------------------------------------------------*
     797 *&      Form  FRM_INIT_LAYOUT
     798 *&---------------------------------------------------------------------*
     799 form frm_init_layout.
     800   gw_layout-zebra  = 'X'."间隔行颜色变换
     801   gw_layout-detail_popup = 'X'.
     802   gw_layout-colwidth_optimize = 'X'."自动调整列宽
     803 
     804 endform.                    " FRM_INIT_LAYOUT
     805 
     806 *&---------------------------------------------------------------------*
     807 *&DESC: Form  frm_init_fieldcat ALV输出字段定义                         *
     808 *&---------------------------------------------------------------------*
     809 form frm_init_fieldcat.
     810   refresh gt_fieldcat.
     811 
     812   clear: gt_fieldcat.
     813   gt_fieldcat-fieldname = 'SORTL'.
     814   gt_fieldcat-seltext_m = '客户检索号'.
     815   gt_fieldcat-no_zero   = 'X'.
     816   append gt_fieldcat.
     817 
     818   clear: gt_fieldcat.
     819   gt_fieldcat-fieldname = 'KUNNR'.
     820   gt_fieldcat-seltext_m = '售达方'.
     821   gt_fieldcat-no_zero   = 'X'.
     822   append gt_fieldcat.
     823 
     824   clear: gt_fieldcat.
     825   gt_fieldcat-fieldname = 'KUNNR1'.
     826   gt_fieldcat-seltext_m = '付款方'.
     827   gt_fieldcat-no_zero   = 'X'.
     828   append gt_fieldcat.
     829 
     830   clear: gt_fieldcat.
     831   gt_fieldcat-fieldname = 'KUNNR2'.
     832   gt_fieldcat-seltext_m = '收货方'.
     833   gt_fieldcat-no_zero   = 'X'.
     834   append gt_fieldcat.
     835 
     836   clear: gt_fieldcat.
     837   gt_fieldcat-fieldname = 'BEZEI'.
     838   gt_fieldcat-seltext_m = '订单类型'.
     839   gt_fieldcat-no_zero   = 'X'.
     840   append gt_fieldcat.
     841 
     842   clear: gt_fieldcat.
     843   gt_fieldcat-fieldname = 'VKORG'.
     844   gt_fieldcat-seltext_m = '销售组织'.
     845   gt_fieldcat-no_zero   = 'X'.
     846   append gt_fieldcat.
     847 
     848   clear: gt_fieldcat.
     849   gt_fieldcat-fieldname = 'SPART'.
     850   gt_fieldcat-seltext_m = '产品组'.
     851   gt_fieldcat-no_zero   = 'X'.
     852   append gt_fieldcat.
     853 
     854   clear: gt_fieldcat.
     855   gt_fieldcat-fieldname = 'ERDAT'.
     856   gt_fieldcat-seltext_m = '凭证日期'.
     857   gt_fieldcat-no_zero   = 'X'.
     858   append gt_fieldcat.
     859 
     860   clear: gt_fieldcat.
     861   gt_fieldcat-fieldname = 'VBELN'.
     862   gt_fieldcat-seltext_m = '销售订单'.
     863   gt_fieldcat-no_zero   = 'X'.
     864   append gt_fieldcat.
     865 
     866   clear: gt_fieldcat.
     867   gt_fieldcat-fieldname = 'POSNR'.
     868   gt_fieldcat-seltext_m = '销售订单行项目'.
     869   gt_fieldcat-no_zero   = 'X'.
     870   append gt_fieldcat.
     871 
     872   clear: gt_fieldcat.
     873   gt_fieldcat-fieldname = 'MATNR'.
     874   gt_fieldcat-seltext_m = '产品ID'.
     875   gt_fieldcat-no_zero   = 'X'.
     876   append gt_fieldcat.
     877 
     878   clear: gt_fieldcat.
     879   gt_fieldcat-fieldname = 'ZKHWL'.
     880   gt_fieldcat-seltext_m = '客户物料描述'.
     881   gt_fieldcat-no_zero   = 'X'.
     882   append gt_fieldcat.
     883 
     884   clear: gt_fieldcat.
     885   gt_fieldcat-fieldname = 'ARKTX'.
     886   gt_fieldcat-seltext_m = '产品描述'.
     887   gt_fieldcat-no_zero   = 'X'.
     888   append gt_fieldcat.
     889 
     890   clear: gt_fieldcat.
     891   gt_fieldcat-fieldname = 'ZPSDAT1'.
     892   gt_fieldcat-seltext_m = '订单评审提交时间'.
     893   gt_fieldcat-no_zero   = 'X'.
     894   append gt_fieldcat.
     895 
     896   clear: gt_fieldcat.
     897   gt_fieldcat-fieldname = 'ZPSDAT2'.
     898   gt_fieldcat-seltext_m = '订单评审完成时间'.
     899   gt_fieldcat-no_zero   = 'X'.
     900   append gt_fieldcat.
     901 
     902   clear: gt_fieldcat.
     903   gt_fieldcat-fieldname = 'ZPSDAT3'.
     904   gt_fieldcat-seltext_m = '订单签发时间'.
     905   gt_fieldcat-no_zero   = 'X'.
     906   append gt_fieldcat.
     907 
     908   clear: gt_fieldcat.
     909   gt_fieldcat-fieldname = 'KWMENG'.
     910   gt_fieldcat-seltext_m = '订单数量'.
     911   gt_fieldcat-no_zero   = 'X'.
     912   append gt_fieldcat.
     913 
     914   clear: gt_fieldcat.
     915   gt_fieldcat-fieldname = 'BSTKD'.
     916   gt_fieldcat-seltext_m = '采购订单编号'.
     917   gt_fieldcat-no_zero   = 'X'.
     918   append gt_fieldcat.
     919 
     920   clear: gt_fieldcat.
     921   gt_fieldcat-fieldname = 'EDATU'.
     922   gt_fieldcat-seltext_m = '交货日期'.
     923   gt_fieldcat-no_zero   = 'X'.
     924   append gt_fieldcat.
     925 
     926   clear: gt_fieldcat.
     927   gt_fieldcat-fieldname = 'KPEIN'.
     928   gt_fieldcat-seltext_m = '单位'.
     929   gt_fieldcat-no_zero   = 'X'.
     930   append gt_fieldcat.
     931 
     932   if g_amta = 'X'.
     933     clear: gt_fieldcat.
     934     gt_fieldcat-fieldname = 'KBETR'.
     935     gt_fieldcat-seltext_m = '单价'.
     936     gt_fieldcat-no_zero   = 'X'.
     937     append gt_fieldcat.
     938 
     939     clear: gt_fieldcat.
     940     gt_fieldcat-fieldname = 'NETWR'.
     941     gt_fieldcat-seltext_m = '金额'.
     942     gt_fieldcat-no_zero   = 'X'.
     943     append gt_fieldcat.
     944   endif.
     945 
     946   clear: gt_fieldcat.
     947   gt_fieldcat-fieldname = 'WAERK'.
     948   gt_fieldcat-seltext_m = '币种'.
     949   gt_fieldcat-no_zero   = 'X'.
     950   append gt_fieldcat.
     951 
     952   clear: gt_fieldcat.
     953   gt_fieldcat-fieldname = 'VKBUR'.
     954   gt_fieldcat-seltext_m = '销售部门'.
     955   gt_fieldcat-no_zero   = 'X'.
     956   append gt_fieldcat.
     957 
     958   clear: gt_fieldcat.
     959   gt_fieldcat-fieldname = 'ZAED'.
     960   gt_fieldcat-seltext_m = 'AE'.
     961   gt_fieldcat-no_zero   = 'X'.
     962   append gt_fieldcat.
     963 
     964   clear: gt_fieldcat.
     965   gt_fieldcat-fieldname = 'ZOMD'.
     966   gt_fieldcat-seltext_m = 'OM'.
     967   gt_fieldcat-no_zero   = 'X'.
     968   append gt_fieldcat.
     969 
     970   clear: gt_fieldcat.
     971   gt_fieldcat-fieldname = 'ZSTAU'.
     972   gt_fieldcat-seltext_m = '订单行状态'.
     973   gt_fieldcat-no_zero   = 'X'.
     974   append gt_fieldcat.
     975 
     976   clear: gt_fieldcat.
     977   gt_fieldcat-fieldname = 'WJHSL'.
     978   gt_fieldcat-seltext_m = '未计划数量'.
     979   gt_fieldcat-no_zero   = 'X'.
     980   append gt_fieldcat.
     981 
     982   clear: gt_fieldcat.
     983   gt_fieldcat-fieldname = 'GSMNG'.
     984   gt_fieldcat-seltext_m = '在计划数量'.
     985   gt_fieldcat-no_zero   = 'X'.
     986   append gt_fieldcat.
     987 
     988   clear: gt_fieldcat.
     989   gt_fieldcat-fieldname = 'ZWQCG'.
     990   gt_fieldcat-seltext_m = '未清采购订单数量'.
     991   gt_fieldcat-no_zero   = 'X'.
     992   append gt_fieldcat.
     993 
     994   clear: gt_fieldcat.
     995   gt_fieldcat-fieldname = 'PSMNG'.
     996   gt_fieldcat-seltext_m = '在制生产订单'.
     997   gt_fieldcat-no_zero   = 'X'.
     998   append gt_fieldcat.
     999 
    1000   clear: gt_fieldcat.
    1001   gt_fieldcat-fieldname = 'RFMNG'.
    1002   gt_fieldcat-seltext_m = '已出货数量'.
    1003   gt_fieldcat-no_zero   = 'X'.
    1004   append gt_fieldcat.
    1005 
    1006   clear: gt_fieldcat.
    1007   gt_fieldcat-fieldname = 'WCHSL'.
    1008   gt_fieldcat-seltext_m = '未出货数量'.
    1009   gt_fieldcat-no_zero   = 'X'.
    1010   append gt_fieldcat.
    1011 
    1012   clear: gt_fieldcat.
    1013   gt_fieldcat-fieldname = 'KALAB'.
    1014   gt_fieldcat-seltext_m = '库存数量'.
    1015   gt_fieldcat-no_zero   = 'X'.
    1016   append gt_fieldcat.
    1017 
    1018 endform.                    "frm_init_fieldcat
    1019 *&---------------------------------------------------------------------*
    1020 *&DESC: Form  FRM_OUTPUT ALV输出                                       *
    1021 *&---------------------------------------------------------------------*
    1022 form frm_output.
    1023 *ALV输出
    1024   g_repid = sy-repid.
    1025 
    1026   call function 'REUSE_ALV_GRID_DISPLAY'
    1027     exporting
    1028       i_callback_program = g_repid
    1029       is_layout          = gw_layout
    1030       it_fieldcat        = gt_fieldcat[]
    1031       i_save             = 'X'
    1032       is_variant         = gw_stru_disvar"变量信息
    1033       it_events          = gt_events[]                                                                                                                                                                     "i_callback_user_command  = 'FRM_UCOMM' "命令指令定义
    1034     tables
    1035       t_outtab           = gt_xsgz
    1036     exceptions
    1037       program_error      = 1
    1038       others             = 2.
    1039   if sy-subrc <> 0.
    1040     message id sy-msgid type sy-msgty number sy-msgno
    1041             with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    1042   endif.
    1043 endform.                    " FRM_OUTPUT
    1044 
    1045 *----------------------------------------------------------------------*
    1046 *DESC:获取长文本                                                        *
    1047 *----------------------------------------------------------------------*
    1048 form frm_read_text tables tab1
    1049                    using p_v1 p_v2 p_v3 p_v4.
    1050   call function 'READ_TEXT'
    1051     exporting
    1052       client                  = sy-mandt
    1053       id                      = p_v1
    1054       language                = p_v2
    1055       name                    = p_v3
    1056       object                  = p_v4
    1057     tables
    1058       lines                   = tab1
    1059     exceptions
    1060       id                      = 1
    1061       language                = 2
    1062       name                    = 3
    1063       not_found               = 4
    1064       object                  = 5
    1065       reference_check         = 6
    1066       wrong_access_to_archive = 7
    1067       others                  = 8.
    1068 
    1069 endform.                    "frm_read_text


     

         

          

  • 相关阅读:
    多线程
    python 面向对象
    selenium 安装 以及相关环境
    pyquery 库的方法
    Python 面向对象的补充
    python 面向对象
    想造轮子的时候,ctrl+f一下
    C#三层开发做学生管理系统
    C# 我是个传奇的 using
    啦啦啦 啦啦 啦 啦 啦 啦啦 啦 啦 啦
  • 原文地址:https://www.cnblogs.com/qlb8268/p/2799669.html
Copyright © 2020-2023  润新知