|
|
Программное изменение шрифта в макете |
☑ |
|
0
ghostrid3r
14.02.13
✎
13:22
|
Добрый день подскажите пожалйста как програмно изменить шрифт в макете для родителя номенклатуры ( сделать его курсивом). При этом неизвестно точно в какой строке будет стоять родитель, он может быть в первой в 20, 50 и т.д.(как пример). Есть цикл который обходит выборку с итогами по родителю, и как только он попал на родителя ему нужно изменить шрифт. вывели родителя и опять изменили шрифт на обычный. Цикл вывода в макет.
Пока ВыборкаРодитель.Следующий() Цикл
ОбластьМеню.ТекущаяОбласть.Шрифт = Новый Шрифт(,,Истина, Истина);
ОбластьМеню.Параметры["Наименование" + НомерСтроки] = ?(ВыборкаРодитель.Родитель.Наименование = "Продукты питания", "Дополнительные блюда", ВыборкаРодитель.Родитель.Наименование);
Выборка = ВыборкаРодитель.Выбрать();
Пока Выборка.Следующий() Цикл
ОбластьМеню.ТекущаяОбласть.Шрифт = Новый Шрифт(,,Ложь, Ложь);
НомерСтроки = НомерСтроки + 1;
ОбластьМеню.Параметры["Выхлоп" + НомерСтроки] = Выборка.Количество;
ОбластьМеню.Параметры["цена" + НомерСтроки] = Выборка.ценарозн;
ОбластьМеню.Параметры["Наименование" + НомерСтроки] = Выборка.Номенклатура.Наименование;
КонецЦикла;
НомерСтроки = НомерСтроки + 3;
КонецЦикла;
ЭлементыФормы.Результат.Вывести(ОбластьМеню);
ЭлементыФормы.Результат.Вывести(ОбластьПодвал);
|
|
|
1
Галахад
гуру
14.02.13
✎
13:23
|
Проще итоги выводить в другой области.
|
|
|
2
SherifSP
14.02.13
✎
13:26
|
(0) Нельзя так, есть только 1 метод
|
|
|
3
ghostrid3r
14.02.13
✎
13:26
|
(1) в какой другой области? просто нужно чтобы в макет вывелся родитель а след строки под ним номенклатура. далее когда другой родитель отделился 2 пустыми строками и так далее.
|
|
|
4
SherifSP
14.02.13
✎
13:27
|
(0) Это вывести рядом с выводимой областью еще 1 область с теми же параметрами и вручную присвоить шрифт этой области, выводить ее в зависимости со своим условием
|
|
|
5
Галахад
гуру
14.02.13
✎
13:30
|
(3) Ну или как вариант.
Вначале вывести область, а уж затем ее украшать.
|
|
|
6
НЕА123
14.02.13
✎
13:44
|
(0)
ЭлементыФормы.Результат.Вывести(ОбластьМеню);
ЭлементыФормы.Результат.Вывести(ОбластьПодвал);
это разве вне цикла?
|
|
|
7
goleaff2006
14.02.13
✎
13:47
|
делай проверку при выводе Номенклатура.родитель .пустая и меняй шрифт.
|
|
|
8
НЕА123
14.02.13
✎
13:49
|
ОбластьМенюРОдитель = ПолучитьОбласть("областьМеню")
ОбластьМенюРОдитель.Область().Шрифт = Новый Шрифт(,,Истина, Истина);
ОбластьМенюЭл = ПолучитьОбласть("областьМеню")
ОбластьМенюЭл.Область().Шрифт = Новый Шрифт(,,Ложь, Ложь);
и лучше перед циклом
|
|
|
9
Evrepid
14.02.13
✎
14:09
|
2 (7) Не совсем так, Т.к. группа может быть не на 0-м уровне, а значительно ниже.
Надо искать по более сложному признаку, например по ЭтоГруппа() для иерархии групп и подчиненность если иерархия элементов.
Как то так.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший