|
СКД. Добавить вычисляемое поле программно. Тонкий клиент | ☑ | ||
---|---|---|---|---|
0
toypaul
гуру
18.04.12
✎
10:15
|
Есть схема данных. При открытии нужно добавить несколько вычисляемых полей (в самой схеме нельзя это сделать). Какие варианты есть чтобы это сделать?
Еще подскажите как правильно менять схему/настройки, чтобы при закрытии отчета не спрашивало о том что изменены настройки? Например, сейчас я добавляю программно выбранные поля и при закрытии отчета спрашивает - сохранять настройки (по-моему так)? |
|||
1
Defender aka LINN
18.04.12
✎
10:18
|
1. Почему нельзя в схеме сделать?
2. Ты в курсе ведь, что настройки - они не в схеме, в общем-то, а в соседнем объекте, так ведь? |
|||
2
toypaul
гуру
18.04.12
✎
10:23
|
1. в схеме нельзя сделать, потому что набор полей создается по справочнику
2. не понял |
|||
3
Defender aka LINN
18.04.12
✎
10:25
|
(2) КомпоновщикНастроек - ни о чем не говорит?
|
|||
4
toypaul
гуру
18.04.12
✎
10:27
|
(3) ну говори. через него ВЫбранные поля и добавляют. вопрос-то в другом. как заполнять настройки, чтобы при закрытии не спрашивало. хотя это не главное. главное в п.1
|
|||
5
Defender aka LINN
18.04.12
✎
10:39
|
(4) Через него много что добавляют.
|
|||
6
toypaul
гуру
18.04.12
✎
10:41
|
ну так как мне вычисляемые поля-то добавить? можно через ПользовательскиеПоля наверное в Настройка у КомпоновщикНастроек. может есть какой-то более правильный или простой способ?
|
|||
7
Defender aka LINN
18.04.12
✎
10:45
|
(6) Вычисляемые поля - только в схеме. Пользовательские - и там и там. Тебе-то какая принципиальная разница?
|
|||
8
fly7
18.04.12
✎
10:48
|
мне когда лень городить программное заполнение схемы, я ее делаю в режиме предприятия, сохраняю в xml,
потом этот xml помещаю в макет как двоичные данные потом в коде сохраняю xml из макета в tmp и подставляю ее в скд )) ИмяФайла = ПолучитьИмяВременногоФайла("xml"); Ссылка = ПоместитьВоВременноеХранилище(ПолучитьМакет("Схема")); Результат = ПолучитьФайл(Ссылка, ИмяФайла, Ложь); Чтение = Новый ЧтениеXML; НовыйСXDTO = Новый СериализаторXDTO(ФабрикаXDTO); Чтение.ОткрытьФайл(ИмяФайла); Настройки = НовыйСXDTO.ПрочитатьXML(Чтение); КомпоновщикНастроек1 = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроек1.ЗагрузитьНастройки(Настройки);//СхемаКомпоновкиДанных.НастройкиПоУмолчанию); КомпоновщикНастроек1.Настройки.ПараметрыДанных.Элементы[0].Значение = ПериодОтчета; КомпоновщикНастроек1.Настройки.ПараметрыДанных.Элементы[1].Значение = СписТипыЦен; |
|||
9
fly7
18.04.12
✎
10:57
|
(0) можно сделать одно вычисляемое поле, найти в его в xml_е и по аналогии дописать туда руками )) потом загружать эту xml в скд
|
|||
10
Defender aka LINN
18.04.12
✎
10:58
|
(8) Месье знает толк в извращениях...
|
|||
11
toypaul
гуру
18.04.12
✎
11:07
|
УстановитьВыражениеДетальныхЗаписей не понимает функции из общего модуля?
|
|||
12
Defender aka LINN
18.04.12
✎
11:10
|
(11) Вроде нет
|
|||
13
toypaul
гуру
18.04.12
✎
11:12
|
пля. а выч поле можно
|
|||
14
Defender aka LINN
18.04.12
✎
11:17
|
(13) Тогда корежь схему при открытии
|
|||
15
toypaul
гуру
18.04.12
✎
11:19
|
(14) пример есть? у меня управляемая форма ... не все так просто
|
|||
16
ll13
18.04.12
✎
11:51
|
(14),(15)
Проблема гораздо глубже. В управляемом приложении основную СКД изменить/заменить НЕЛЬЗЯ. Встроенный компоновщик работает только с основной СКД, которую изменить/заменить нельзя. Добавить вычисляемые поля к СКД проблем нет: ВычисляемоеПоле = СхемаКомпоновкиДанных.ВычисляемыеПоля.Добавить(); ВычисляемоеПоле.ПутьКДанным = "МоеВычисляемоеПоле"; ВычисляемоеПоле.Выражение = "ВыражениеПоля"; Только встроенный компоновщик все равно будет работать с основной СКД, в которой этого поля нет. Посему единственный вариант создания отчета с динамическим формированием СКД, это не использовать встроенный в отчет компоновщик, а использовать свой и соответственно весь механизм работы писать "руками". Опыт успешной реализации был, о достаточно трудоемко, посему решайте стоит ли игра свеч. |
|||
17
toypaul
гуру
18.04.12
✎
11:54
|
(16) пример есть? может случится, что сделать нужно будет хоть тресни.
|
|||
18
ll13
18.04.12
✎
12:01
|
(17) К сожалению скинуть целиком не смогу, по причине того, что обработка является закрытым коммерческим решением, но если будут какие-то конкретные вопросы готов ответить, привести примеры в виде отдельных кусков кода.
|
|||
19
fly7
18.04.12
✎
13:10
|
(17) в предприятии сохрани схему в xml в коде создай из нее динамическую СКД
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |