Цитата:
Сообщение от
trud
Максим, напишите пост

Я про перфвью еще не закончил, мне кажется тут много копаться и проверять.
Цитата:
Я пока нашел только вот такой пример, но он не очень понятен - квери он сохраняет через AifQueryTypeAttribute
Он переводит его в base64 наверное для использования в сервисе. Либо на каком-то этапе это нормально не серилизовалось.
Цитата:
1. Зачем 2 метода - caption() и parmDialogCaption() - нельзя ли обойтись одним
Не знаю. По идее caption для формы берется из caption, а тот использует parmDialogCaption - я бы или присвоил parmDialogCaption без перекрытия, или перекрыл caption.
Цитата:
2. Можно ли квери сделать из кода(а не использовать АОТ)
В контроллере есть initializeParameters предназначенный для перекрытия еще если в конструкторе контракта создать query то он будет тоже использоваться по умолчанию.
Цитата:
3. зачем нужен getFromDialog()
Там написан комментарий, но я бы делал это в UIBuilder
Цитата:
Также хотелось бы видеть как работать с вызывающей записью(то что будет в args.record() в main)
в контроллере есть parmArgs (надо его вызвать из main - см SysOperationServiceController::main)
Цитата:
4. Как передать эту запись в контракт (учитывая 2 случая - что класс может вызываться как для конкретной записи, так и из главного меню)
См. выше (main + parmArgs + initializeParameters )
Цитата:
5. Как заполнить поля контракта от этой записи(чтобы они не перетерлись unpack), поменять(к примеру скрыть) некоторые поля с диалога
UI - это ответственность UIBuilder - в нем скрываем и показываем.
initializeParameters - для заполнения контракта
Цитата:
6. Как заполнить свойства query от этой записи(чтобы они не перетерлись unpack)
Так же как и любое поле контракта
Цитата:
7. отключить unpack
controller.parmLoadFromSysLastValue(false).
Не знаю, кстати, насколько это все публичный API - в части методов в XML документации написано
Microsoft internal use only.