Страница 1 из 2
Listformat - picture-валюты
Добавлено: 20 Февраль 2017, 18:31
gopstop2007
Формат колонки
Код: Выделить всё
?List{PROPLIST:Picture,номер колонки} = формат
с этим все ясно,
а как получить runtime в каждой строке списка в таком формате?
валюта меняется в каждой строке. Спасибо за потраченное время.
Listformat - picture-валюты
Добавлено: 20 Февраль 2017, 19:44
RaFaeL
Выводить в колонку не поле, а строковую переменную, на validaterecord прописать LOC:Str=format(val,@N11.2~валюта~)
Listformat - picture-валюты
Добавлено: 20 Февраль 2017, 23:23
kreator
Ещё можно задавать для ячейки "style". Прописать разные style'ы с разными форматами (в разрезе стайлов это называется "picture"). Style'ы настраиваются в Actions окна.
Listformat - picture-валюты
Добавлено: 21 Февраль 2017, 15:31
Shur
Насколько я знаю, общей практикой является наличие двух колонок в листе:
- CURRENCY (RUB/USD/EUR/GBP и т.д.)
- AMOUNT
Почему не подходит такой вариант? Какое преимущество у предлагаемого вами?
+ Какое выравнивание намерены использовать - левое, правое, по десятичному знаку?
Listformat - picture-валюты
Добавлено: 21 Февраль 2017, 16:47
gopstop2007
RaFaeL писал(а):Выводить в колонку не поле, а строковую переменную, на validaterecord прописать LOC:Str=format(val,@N11.2~валюта~)
что то не работает это у меня, С10 ABC.
kreator писал(а):Ещё можно задавать для ячейки "style". Прописать разные style'ы с разными форматами (в разрезе стайлов это называется "picture"). Style'ы настраиваются в Actions окна.
думал об этом, надо заранее присваивать стили к предполагаемым валютам

Плюс к этому и количество знаков после точки (десятичное значение)
Shur писал(а):Насколько я знаю, общей практикой является наличие двух колонок в листе:
- CURRENCY (RUB/USD/EUR/GBP и т.д.)
- AMOUNT
Почему не подходит такой вариант? Какое преимущество у предлагаемого вами?
+ Какое выравнивание намерены использовать - левое, правое, по десятичному знаку?
Практика великое дело, но если колонкам можно задавать порядок, при этом как определить какая валюта из "к оплате" и "оплачено", надо их еще в шапке подписывать. Хочется упростить. Выравнивание роли не играет, интересно еще десятичные, количество знаков после точки, изменять.
Listformat - picture-валюты
Добавлено: 21 Февраль 2017, 17:10
RaFaeL
gopstop2007 писал(а): что то не работает это у меня, С10 ABC.
Может не туда написал? После Parent Call надо
Listformat - picture-валюты
Добавлено: 21 Февраль 2017, 20:35
Игорь Столяров
gopstop2007 писал(а): что то не работает это у меня, С10 ABC.
1. Заведи переменную, например Loc:Str String(20)
2. Добавь ее в LIST как колонку.
3. Открой код окна (SOURCE) и поставь формирование строки с суммой и валютой вот здесь:
Код: Выделить всё
IF BRW1::RecordStatus NOT=Record:OK THEN RETURN BRW1::RecordStatus.
[6600]
Loc:Str = Clip(Left(Format(MySumma,@n_13.2))) & ' ' & Clip(MyValuta)
! или Loc:Str = Clip(Left(Format(MySumma,'@n_20.2~ ' & Clip(MyValuta) & '~')))
4. Все. Собирай и проверяй ...

Listformat - picture-валюты
Добавлено: 21 Февраль 2017, 23:18
kreator
gopstop2007 писал(а):что то не работает это у меня, С10 ABC.kreator писал(а):Ещё можно задавать для ячейки "style". Прописать разные style'ы с разными форматами (в разрезе стайлов это называется "picture"). Style'ы настраиваются в Actions окна.думал об этом, надо заранее присваивать стили к предполагаемым валютам Плюс к этому и количество знаков после точки (десятичное значение)
А что, их (валют и соответственно стилей) очень много? Стили - это хорошая практика. SV даже вынесла этот сервис в Actions окна.
Listformat - picture-валюты
Добавлено: 21 Февраль 2017, 23:55
gopstop2007
Игорь Столяров писал(а):
4. Все. Собирай и проверяй ...

Спасибо работает.

Только у меня еще это поле редактируется по EIP
RaFaeL писал(а):Может не туда написал? После Parent Call надо
Кстати работает

Listformat - picture-валюты
Добавлено: 22 Февраль 2017, 0:33
Игорь Столяров
gopstop2007 писал(а): Только у меня еще это поле редактируется по EIP
Я по вопросу уже понял, что все непросто ...

Тогда используйте стили (style), как рекомендовали ниже. Это самый простой и понятный вариант ввода цифр в EIP с форматом.
В принципе для EIP можно выполнять разбор введенной символьной строки, разделять значение на цифру и валюту,
записывать это в разные поля БД и снова отображать как форматированную строку в LIST - но это уже работа с классами,
тут из головы сразу не расскажешь. Не рекомендую идти для этой задачи в такие дебри.

Listformat - picture-валюты
Добавлено: 22 Февраль 2017, 1:42
Admin
gopstop2007 писал(а): Только у меня еще это поле редактируется по EIP
т.е. в EIP может и число и валюта изменяться?
Listformat - picture-валюты
Добавлено: 22 Февраль 2017, 2:53
gopstop2007
Admin писал(а):gopstop2007 писал(а): Только у меня еще это поле редактируется по EIP
т.е. в EIP может и число и валюта изменяться?
нет, валюта должна только отображаться, по аналогии в екселе
Listformat - picture-валюты
Добавлено: 22 Февраль 2017, 4:55
Admin
gopstop2007 писал(а): нет, валюта должна только отображаться, по аналогии в екселе
Т.е. я так поинмаю у записи есть в каком то поле код валюты?
Как люди и сказали, через стиль показывать.
При редактировании у EIP поля ставить формат простого числа.
И вроде все...
Listformat - picture-валюты
Добавлено: 22 Февраль 2017, 7:44
Игорь Столяров
В решении со стилями я вижу только одно "узкое" место:
если список валют произвольный, то нужно будет вручную создать список стилей
по списку валют, и он не может быть более 255 (что в данном случае не существенно).
Но все равно будет не красиво: при правом смещении колонка цифр будет расположена с разным
смещением из-за разной ширины букв курса валют или надо использовать для LIST моноширинный шрифт.
Сделать в LIST группу из 2-х колонок: цифра (вправо) + валюта (влево), и убрать сетку разделителя между ними.
Цифра редактируется по EIP. Все получается предельно просто.

Listformat - picture-валюты
Добавлено: 22 Февраль 2017, 9:59
Admin
Игорь Столяров писал(а): Но все равно будет не красиво: при правом смещении колонка цифр будет расположена с разным
смещением из-за разной ширины букв курса валют или надо использовать для LIST моноширинный шрифт.
Можно так изгалиться через выравнивание PROP:Decimal про точке.
Но нельзя в названии валюты использовать точку, типа (руб.)
Т.к. тогда по ней выравнивать будет
Код: Выделить всё
PROGRAM
MAP
END
Data QUEUE
Field DECIMAL(20,3)
Field_Style LONG
END
Window WINDOW('Demo'),AT(,,152,100),FONT('Tahoma',8,,FONT:regular,CHARSET:CYRILLIC),CENTER,GRAY,DOUBLE
LIST,AT(0,0),USE(?List1),FULL,VSCROLL,FORMAT('20D(50)|MY@N20.2@'),FROM(Data)
END
CODE
Data.Field = 20.10*100
Data.Field_Style = 1
ADD(Data)
Data.Field = 200.10*100
Data.Field_Style = 2
ADD(Data)
Data.Field = 2000.10*100
Data.Field_Style = 3
ADD(Data)
OPEN(Window)
?List1{PROPSTYLE:Picture, 1} = '@P<<<<<<<#.## USDP'
?List1{PROPSTYLE:Picture, 2} = '@P<<<<<<<#.## РубP'
?List1{PROPSTYLE:Picture, 3} = '@P<<<<<<<#.## ДрахмP'
ACCEPT
END
CLOSE(Window)