*---------------------------------------------------------------------* * Report ZMASK *---------------------------------------------------------------------* * ------------------------T------------------T----------T------¬ * ¦ Что? ¦ Файловая система ¦ Open SQL ¦ ABAP ¦ * +-----------------------+------------------+----------+------+ * ¦ Любое кол-во символов ¦ * ¦ % ¦ * ¦ * ¦ Один любой символ ¦ ? ¦ _ ¦ + ¦ * L-----------------------+------------------+----------+------- * Смотри документацию к оператору like в выражении Select ... where A like B. * Цитата: * «The use of the wildcard characters "_" and "%" corresponds to the standard * of SQL. In the rest of ABAP, the wildcard characters "+" and "*" are used in * similar logical expressions, in particular when selection tables are used». *---------------------------------------------------------------------* Report ZMASK. Parameters: p_mask1 type dd02l-tabname default 'MAR_', p_mask2 type dd02l-tabname default 'MAR*', p_mask3 type dd02l-tabname default 'M+++'. Types: begin of ty_s_data, tabname type dd02l-tabname, end of ty_s_data, ty_t_data type standard table of ty_s_data. Data: gs_data type ty_s_data, gt_data type ty_t_data. Select tabname from dd02l into corresponding fields of table gt_data where tabname like p_mask1. Write / 'Все таблицы MAR* (максимум — от MAR1 до MARVCD):'. New-line. Loop at gt_data into gs_data where tabname cp p_mask2. Write gs_data. Add 1 to sy-index. Endloop. Write: / 'Итого таких таблиц —', sy-index, 'шт.'. Clear sy-index. Write / 'Только те таблицы M*, у которых в названии 4 символа, не больше:'. New-line. Loop at gt_data into gs_data where tabname cp p_mask3. Write gs_data. Add 1 to sy-index. Endloop. Write: / 'Итого таких таблиц —', sy-index, 'шт.'.