Текущее время: Пт, июл 18 2025, 23:17

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 54 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Как не надо программировать...
СообщениеДобавлено: Вт, июл 12 2005, 19:32 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Code:
        DO.
          IF item005+sy-index(1) EQ ' '.
            MOVE item005(sy-index) TO resu.
            stri = item005+sy-index(20).
            CONDENSE stri.
            EXIT.
          ENDIF.
        ENDDO.

Вопрос на засыпку - что делает этот код? (все переменные - типа CHAR).

А всего-то юноша не знал оператора SPLIT...

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 13 2005, 06:00 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, авг 26 2004, 05:04
Сообщения: 922
Откуда: Челябинск
Пол: Мужской
Да уж...
Предлагаю в этот топик писать подобные примеры. Я думаю начинающих это спасет от некоторых подобных ошибок.

Вы бы посмотрели какие я выдумывал конструкции, когда не знал операторов

at end of...
at new ...
и т.д.
Вобщем на ветвлениях if собаку съел. Благо это было более 4-х лет назад и никто не помнит :)

_________________
Все будет хорошо...
http://sap-blog.ru/


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 13 2005, 07:32 
Гость
Цитата:
Вы бы посмотрели какие я выдумывал конструкции, когда не знал операторов

at end of...
at new ...
и т.д.


Не такие уж они и "хорошие" эти операторы.
Помню наткнулся на такую ситуацию с at new ... , которую отлавливал долгенько. Правда вот забыл в чем там дело было, но для себя решил польоваться ими поаккуратнее.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 13 2005, 07:41 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, июл 12 2005, 07:43
Сообщения: 145
Цитата:
Не такие уж они и "хорошие" эти операторы.

Там вроде проблемы возникают если к примеру предыдущее поле таблицы не содержит ( или почти) данных ...
Если не прав поправьте...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 13 2005, 07:46 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, июл 12 2005, 07:43
Сообщения: 145
Цитата:
Не такие уж они и "хорошие" эти операторы.

Там вроде проблемы возникают если к примеру предыдущее поле таблицы не содержит ( или почти) данных ...
Если не прав поправьте...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 13 2005, 07:49 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, авг 26 2004, 05:04
Сообщения: 922
Откуда: Челябинск
Пол: Мужской
Единственная проблема о которой я знаю - это, то что внутренняя таблица должна быть определенной структуры, а это не всегда удобно и оптимально.

_________________
Все будет хорошо...
http://sap-blog.ru/


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 13 2005, 08:09 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
artyom написал:
Да уж...
Предлагаю в этот топик писать подобные примеры. Я думаю начинающих это спасет от некоторых подобных ошибок.
....


Не очень хорошая идея, так как эффект может быть совсем противоположный - начинающие, особенно взявшие на вооружение технологию "copypaste", будут копировать эти "не правильные" примеры себе в программы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 13 2005, 08:14 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, авг 26 2004, 05:04
Сообщения: 922
Откуда: Челябинск
Пол: Мужской
sy-uname написал(а):
artyom написал:
Да уж...
Предлагаю в этот топик писать подобные примеры. Я думаю начинающих это спасет от некоторых подобных ошибок.
....


Не очень хорошая идея, так как эффект может быть совсем противоположный - начинающие, особенно взявшие на вооружение технологию "copypaste", будут копировать эти "не правильные" примеры себе в программы.

Ну уж вы, батенька, совсем плохого мнения о молодежи...

P.S. А мы им на каждый неправильный пример, три правильных писать будем.

_________________
Все будет хорошо...
http://sap-blog.ru/


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 13 2005, 09:45 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
Anonymous написал(а):
Не такие уж они и "хорошие" эти операторы.
Помню наткнулся на такую ситуацию с at new ... , которую отлавливал долгенько. Правда вот забыл в чем там дело было, но для себя решил польоваться ими поаккуратнее.

нормальные операторы... просто хелп надо читать не по диагонали :)
P.S. На грабли c этими операторами тоже наступал, сгоряча списал все на 'баги проклятого САПа', сделал все по другому, а потом уже понял что это за операторы и как ими пользоваться :)

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


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

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
ArmAnn написал:
Anonymous написал(а):
Не такие уж они и "хорошие" эти операторы.
Помню наткнулся на такую ситуацию с at new ... , которую отлавливал долгенько. Правда вот забыл в чем там дело было, но для себя решил польоваться ими поаккуратнее.

нормальные операторы... просто хелп надо читать не по диагонали :)
P.S. На грабли c этими операторами тоже наступал, сгоряча списал все на 'баги проклятого САПа', сделал все по другому, а потом уже понял что это за операторы и как ими пользоваться :)
Вот собственным же примером и доказал, что уродские они. Я думаю, нет ни одного АБАПера, который бы не наступил на эти грабли, в т.ч. и я. Какие еще нужны аргументы?
Конечно теперь, зная эти грабли, можно ими пользоваться, только очень осторожно и с большими неудобствами. Вот только что мне пришлось изворачиваться через вторичный индекс внутренней таблицы для организации правильной работы группировки.


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

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

А тот пример, который я вначале привел, это не просто случайное вкрапление.. судя по текстам, человек давно и осознанно таким образом строки делит... Copy-paste, кстати, он тоже очень хорошо освоил, использует его везде вместо подпрограмм - получается весьма "прогрессивно" :) Лень и халтура..

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 13 2005, 17:52 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
Parazit написал:
ArmAnn написал:
нормальные операторы... просто хелп надо читать не по диагонали :)
P.S. На грабли c этими операторами тоже наступал, сгоряча списал все на 'баги проклятого САПа', сделал все по другому, а потом уже понял что это за операторы и как ими пользоваться :)
Вот собственным же примером и доказал, что уродские они. Я думаю, нет ни одного АБАПера, который бы не наступил на эти грабли, в т.ч. и я. Какие еще нужны аргументы?
Конечно теперь, зная эти грабли, можно ими пользоваться, только очень осторожно и с большими неудобствами. Вот только что мне пришлось изворачиваться через вторичный индекс внутренней таблицы для организации правильной работы группировки.


У меня такое подозрение что когда то этот оператор задумывался для строго определенной цели. Правда для какой именно - Вальдорф его знает :)

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 13 2005, 17:56 
Модератор
Модератор

Зарегистрирован:
Пт, ноя 12 2004, 11:40
Сообщения: 542
Откуда: Москва
Пол: Мужской
Я встречал талантов которые писали
1. отчет одним куском начиная с loop и..... пару тысяч строк... endloop.
2. тоже самое тока в ФМ
3. тоже самое тока в отдельном include
4. программа в несколько тысяч строк написана одними макросами(!)
5. перформы по 500 строк ....
6. программа начинается с CASE идет .... 500 строк... ENDCASE
и.т.д.....

Жуть...!


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

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Сергей Королев написал:
Показательно, кстати, что во многих случаях в саповских текстах не используется AT NEW, AT END, там, где, казалось бы, можно было их использовать.
Пользуюсь иногда таким приемом, как создание вторичного индекса к внутренней таблице:
Code:
Data:
* сама таблица
  Begin of it_TAB occurs 0,
    Key1,
    Key2,
    Data,
  End of it_TAB .

*  вторичный индекс
  Begin of it_IDX occurs 0,
    Key2,
    tabix type sy-tabix,
  End of it_IDX.

.......

  Loop at it_TAB.
    Move-corresponding: it_TAB to it_IDX.
    it_IDX-tabix = sy-tabix.
    Append it_IDX.
  EndLoop.

  Sort it_TAB by Key1.
  Sort it_IDX by Key2.

*  цикл по таблице it_TAB с сортировкой и группировкой по ключу Key2
  Loop at it_IDX.
    Read table it_TAB index it_IDX-tabix.

    At new Key2.
.....


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 14 2005, 05:35 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, авг 26 2004, 05:04
Сообщения: 922
Откуда: Челябинск
Пол: Мужской
Раз уж всех не оставил равнодушными мой топик про at new ... и т.д., не могу оставаться в стороне.
Дело в том, что SAP сделал эти операторы единственно правильным методом. Вообще кто-нибудь может сказать хоть одно неудобство, кроме того что таблица должна иметь определенныю структуру.

Да и это ограничение, кстати бывает очень удобным. Конечно не знаю точно, но думаю это сделано затем чтобы:
1. Не раскладывать по полям внутреннюю таблицу, а сразу влоб взять с... и по... - отсюда скорость
2. Представляете синтаксис при многоуровневой группировке?... Это же надо было бы каждое поле каждый раз писать (примерно так: если изменилось поле .... и поле .... и поле ...., а вот поле .... не изменилось и поле .... тоже не изменилось - вот это уже проблема :shock: )

_________________
Все будет хорошо...
http://sap-blog.ru/


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

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


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

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


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

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