Текущее время: Вс, июл 20 2025, 02:05

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 35 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 11 2004, 13:28 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Сорри, вот это лишнее:
*==============================================*
define tabread_index.
describe table &1 lines lc_&1.
end-of-definition.
*==============================================*

Хотел забацать макрос
*==============================================*
define tabread_index.
read table &1 index &2.
end-of-definition.
*==============================================*

Но потом решил, что это уже изврат :-)

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 11 2004, 13:36 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Возможно, есть смысл в макросе
*======================================================================*
define tabtools_local.
local: tbx_&1, " Для хранения позиции курсора
lc_&1, " Для количества строк таблицы
wa_&1. " Work Area для таблицы
end-of-definition.
*======================================================================*

Чтобы его можно было использовать следующим образом:
*=================================
*&---------------------------------------------------------------------*
*& Form some_reads
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM some_reads .
tabtools_local itab.

read table itab into wa_itab index 1.
tbx_itab = sy-tabix.
break-point.
ENDFORM. " some_reads

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 11 2004, 15:18 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Фига себе - я уже "Ассистент"! :-))
Всего за 2 дня поднялся от "начинающего" до "ассистента". Вот бы так и в жизни :-))).

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 11 2004, 17:30 
Гость
2 111: макросы - не зергут. В том же хелпе написано. И, опять же, в отладчики их не отследишь :cry:


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 11 2004, 17:45 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 14:35
Сообщения: 1519
Откуда: В ВЕЧНОМ БАНЕ
Кодер написал(а):
2 111: макросы - не зергут. В том же хелпе написано. И, опять же, в отладчики их не отследишь :cry:

Ну это как говорится главное не пересаливать ими :P , а так очень даже часто и годится у меня самый ходовой, посмотрел по частоте использования вот такой:

Code:
DEFINE ext_to_int.
  call function 'CONVERSION_EXIT_ALPHA_INPUT'
       exporting
            input  = &1
       importing
            output = &2.
END-OF-DEFINITION.

И что тут отлаживать :roll:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 12 2004, 10:52 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Uukrul написал(а):
Ну это как говорится главное не пересаливать ими :P , а так очень даже часто и годится у меня самый ходовой, посмотрел по частоте использования вот такой:

Code:
DEFINE ext_to_int.
  call function 'CONVERSION_EXIT_ALPHA_INPUT'
       exporting
            input  = &1
       importing
            output = &2.
END-OF-DEFINITION.

И что тут отлаживать :roll:


А почему у тебя так часто возникает необходимость явно, ручками вызывать этот ФМ? Я так вообще никогда в жизни этого не делал :-).
Он разве не вызывается автоматом, когда обрабатывается оператор WRITE?

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 12 2004, 10:58 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Кодер написал(а):
2 111: макросы - не зергут. В том же хелпе написано.


Не стоит так драматично воспринимать рекомендации из хелпника :-).
Если бы это было не гут - нам бы пользоваться этим возможности не дали.
Просто любая вещь если и хороша - то только если в меру.

Кодер написал(а):
И, опять же, в отладчики их не отследишь :cry:


А нехрен туда вообще пихать что-то, что может представлять интерес при отладке :-).
Макрос вообще не должен состоять более чем из 2-3 операторов (это же не подпрограмма). Если нужно запихать туда что-то громоздкое - выноси в отдельный FORM, и в нем уже хоть задебагься :-). А в макросе делай PERFORM.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 12 2004, 12:55 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 14:35
Сообщения: 1519
Откуда: В ВЕЧНОМ БАНЕ
111 написал(а):
Uukrul написал(а):
Ну это как говорится главное не пересаливать ими :P , а так очень даже часто и годится у меня самый ходовой, посмотрел по частоте использования вот такой:

Code:
DEFINE ext_to_int.
  call function 'CONVERSION_EXIT_ALPHA_INPUT'
       exporting
            input  = &1
       importing
            output = &2.
END-OF-DEFINITION.

И что тут отлаживать :roll:


А почему у тебя так часто возникает необходимость явно, ручками вызывать этот ФМ? Я так вообще никогда в жизни этого не делал :-).
Он разве не вызывается автоматом, когда обрабатывается оператор WRITE?

А дык это для всяких чтений из БД, а не для вывода, потому как к примеру серийный номер если числовой то он автоматом при записи в БД, выравнивается нулями до 18 знаков, а если там буквы есть, то не выранивается, дык вот перед чтением я просто прогоняю номер через функцию и на выходе получаю то что можно читать из БД по сравнению


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 12 2004, 13:04 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Uukrul написал(а):
А дык это для всяких чтений из БД, а не для вывода, потому как к примеру серийный номер если числовой то он автоматом при записи в БД, выравнивается нулями до 18 знаков, а если там буквы есть, то не выранивается, дык вот перед чтением я просто прогоняю номер через функцию и на выходе получаю то что можно читать из БД по сравнению


Хм. Понятно.
Но я все равно делаю просто "WRITE EXT_FIELD to C_FIELD" (при чем тут вывод? WRITE не только для вывода предназначен). Никогда проблем не возникало.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 12 2004, 13:33 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Кстати, для номера материала свой conversion_exit - MATN1, правильнее его использовать, так как он учитывает настройку формата номера материала.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 12 2004, 13:47 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Сергей Королев написал:
Кстати, для номера материала свой conversion_exit - MATN1, правильнее его использовать, так как он учитывает настройку формата номера материала.


Так он не про номер материала говорил, а просто про серийный номер.
Но по любому - нафиг так заморачиваться? WRITE сам это делает - определяет, со ссылкой на какое поле словаря создано поле, лезет в словарь, выцепляет название нужной "подпрограммы преобразования", вызывает нужный ФМ.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 12 2004, 14:38 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 14:35
Сообщения: 1519
Откуда: В ВЕЧНОМ БАНЕ
111 написал(а):
Сергей Королев написал:
Кстати, для номера материала свой conversion_exit - MATN1, правильнее его использовать, так как он учитывает настройку формата номера материала.


Так он не про номер материала говорил, а просто про серийный номер.
Но по любому - нафиг так заморачиваться? WRITE сам это делает - определяет, со ссылкой на какое поле словаря создано поле, лезет в словарь, выцепляет название нужной "подпрограммы преобразования", вызывает нужный ФМ.

Я к примеру привел, для материала да у меня используется его конверт, райты ну как-то не привык я их готовить через райт, испльзую через функцию... какая собственно говоря разница :wink: не надо же все понимать буквально :P


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 12 2004, 15:02 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Возвращаясь к моим макросам.
TABTOOLS_DEFINE удобен, т.к. привносит некоторую инкапсулированность данных.
Но, к сожалению, есть недостаток.
Я, например, привык называть внутренние таблицы с префиксом "t_*", WA для него - "wa_*", курсор - "tbx_*", переменную для количества строк - "lc_*".
А макрос для таблицы "t_tab" создаст, соответственно, переменные "wa_t_tab", "tbx_t_tab", "lc_t_tbx". В именах этих переменных часть "t_" - явно лишняя.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, ноя 15 2004, 19:04 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Кодер написал(а):
2 111: макросы - не зергут. В том же хелпе написано. И, опять же, в отладчики их не отследишь :cry:


Кстати - о макросах.
Седня на работе тоже спор зашел. Но никто из противников почему-то так и не смог показать место, где SAP говорит, что макросы - плохая бяка, и использовать их не надо. Не подкинете ссылочку?

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, ноя 15 2004, 21:53 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Ну раз Вы такой упрямый...
Вот вам ссылочка (там, кстати, много чего интересного есть).
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/a1-8-4/ABAP%20FAQs.faq#q-15
Ищите текст:
Цитата:
Using macros

First : DO NOT use macros in a new program, there is a lot of better way to do it.



Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 35 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB