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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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