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

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


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

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


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

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