У меня была отчасти схожая проблема. Необходимо было открывать в определенных случаях прикрепленные документы (хранимые в базе) так, что бы возможные изменения, производимые с документами, не записывались обратно в базу. Добавил новый пункт в енум DocuCode, добавил его обработку в DocuActionFile.run(), создал MenuItem с новым параметном енума DocuCode и там где было необходимо - кнопку с вызовом созданного MenuItem-а. Обработка нового пункта енума DocuCode такая же как и DocuCode::Open, только предварительно делается копия файла во временную папку.
В вашем случае можно в DocuActionFile.command() по некоторому критерию делать копию файла и изменять переменную filename. Только изменения. сделанные с этой копией все-равно подхватятся Аксаптой (файл скопируется в огигинальное хранилище), но это вас, как я понял, это не волнует.
|