Страница 1 из 2

Listformat - picture-валюты

Добавлено: 20 Февраль 2017, 18:31
gopstop2007
Формат колонки

Код: Выделить всё

?List{PROPLIST:Picture,номер колонки} = формат
с этим все ясно,

а как получить runtime в каждой строке списка в таком формате?

Код: Выделить всё

@N11.2~валюта~
валюта меняется в каждой строке. Спасибо за потраченное время.

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)
2017-02-22_16-57-17.png