Posted: Tue Jun 03, 2008 5:08 pm Post subject: Простой вопрос про форматирование.
надо цифру записать в char переменную со знаком , что бы знак был слева а не справа (результат к примеру -123,55 - без пробелов).
пробовал так
Code:
Data: _str(100).
Data _Digit DEC 13 decimals 2.
WRITE _Digit to _Str USING EDIT MASK 'RRV___________.__'.
Condenses _Str No-Gaps.
но мне кажется, что при большой цифре можно потерять что-нибудь?
Подскажите как это сделать правильно? _________________ (SAP) Система нипель... выпускает лучше, чем впускает!
вариант конечно прикольный. - от подобного я хотел отказаться, видимо не судьба ...
Тогда уточните как использовать во врайте маску с ключем в ней V
WRITE _Digit to _Str USING EDIT MASK 'RRV___________.__'.
В хелпе написано, что она является указателем конвертировать знак числа слева, как положено, только как потом указать что надо число целиком дописать ? Как видно из первого вопроса я попытался это приблизительно реализовать с помощью выравнивания направо и приближенного посимвольного указания.
А вот как указать, чтобы основание цифры было дописано рядом?
Подскажите плизз, просто из хелпа это я не понял? _________________ (SAP) Система нипель... выпускает лучше, чем впускает!
Age: 60 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Sat Jun 07, 2008 5:30 pm Post subject:
Crystal_Ra wrote:
вариант конечно прикольный. - от подобного я хотел отказаться, видимо не судьба ...
Тогда уточните как использовать во врайте маску с ключем в ней V
WRITE _Digit to _Str USING EDIT MASK 'RRV___________.__'.
В хелпе написано, что она является указателем конвертировать знак числа слева, как положено, только как потом указать что надо число целиком дописать ? Как видно из первого вопроса я попытался это приблизительно реализовать с помощью выравнивания направо и приближенного посимвольного указания.
А вот как указать, чтобы основание цифры было дописано рядом?
Подскажите плизз, просто из хелпа это я не понял?
Здравствуйте!
Ничего не понял, что вас не устраивает?
Ваш код вроде все слитно пишет.
Code:
Data: _str(100).
Data _Digit TYPE DEC16_3.
_Digit = '-1234567.899'.
WRITE _Digit to _Str USING EDIT MASK 'RRV_____________.___'.
Condense _Str No-Gaps.
WRITE: / _str.
_Digit = '-1234567.899'.
WRITE _Digit to _Str USING EDIT MASK 'RRV__.__'.
вот так число будет усечено ? верно?
Знак подчеркивания указывает 1 символ. Теоретически чило может быть любой длинны, так?
И что делать?
Как написать универсально?
Не могу понять как пользоваться этим 'V' если
Code:
WRITE _Digit to _Str USING EDIT MASK 'V'.
дает только один знак без числа... _________________ (SAP) Система нипель... выпускает лучше, чем впускает!
Age: 60 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Sun Jun 08, 2008 10:02 am Post subject:
Crystal_Ra wrote:
Code:
_Digit = '-1234567.899'.
WRITE _Digit to _Str USING EDIT MASK 'RRV__.__'.
вот так число будет усечено ? верно?
Знак подчеркивания указывает 1 символ. Теоретически чило может быть любой длинны, так?
И что делать?
Как написать универсально?
Зачем писать универсально? Вы знаете размерность элемента данных, под него укажите маску. В sap числа любой длины не бывают. Это не космические исследования, а деньги, которых не может быть много.
Пример универсального использования я пример приводил.
Crystal_Ra wrote:
Не могу понять как пользоваться этим 'V' если
Code:
WRITE _Digit to _Str USING EDIT MASK 'V'.
дает только один знак без числа...
Правильно, V - это позиция знака. Ничего другого в эту позицию не впишется.
RR - признак выравнивания в право.
_ - позиция цифр.
По логике вещей, если можно отдельно знак прописать с помощью 'V',
то должен быть вариант прописать все число сразу , а не по знакам - '_'.
---------------------------------------------------------------
PS. В чем же правда Брат? _________________ (SAP) Система нипель... выпускает лучше, чем впускает!
Age: 60 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Mon Jun 09, 2008 2:40 pm Post subject:
Crystal_Ra wrote:
По логике вещей, если можно отдельно знак прописать с помощью 'V',
то должен быть вариант прописать все число сразу , а не по знакам - '_'.
---------------------------------------------------------------
PS. В чем же правда Брат?
По логике вещей, если можно отдельно знак прописать с помощью 'V',
то должен быть вариант прописать все число сразу , а не по знакам - '_'.
---------------------------------------------------------------
PS. В чем же правда Брат?
Так знак занимает одну позицию.
то должен быть вариант прописать все число сразу ??? _________________ (SAP) Система нипель... выпускает лучше, чем впускает!
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.