Artifact b4df982e3168775582d9297b007d93de7586ef0a:
- File formAutoVersion.js — part of check-in [221c12c988] at 2012-04-20 11:03:15 on branch trunk — исправление ошибки в комментарии (user: orefkov size: 2961) [more...]
$engine JScript $uname formAutoVersion $dname Авто-простановка версии на форме $addin stdcommands // Александр Орефков function onFileSave(cmd) { if(cmd.isBefore) // Обработчик вызван перед выполнением команды { // Получим объект метаданных текущего окна var mdObj, av = windows.getActiveView() if(!av || !(mdObj = av.mdObj)) return // Посмотрим, не внешний ли отчет/обработка сохраняется. if(mdObj.container != mdObj.container.masterContainer) { // Тут надо перебрать все формы. mdObj = mdObj.container.rootObject var dateStr = new Date().toLocaleString() var needAsk = -1 for(var i = 0, formsCount = mdObj.childObjectsCount("Формы"); i < formsCount; i++) { var formMDObj = mdObj.childObject("Формы", i) //MessageBox(formMDObj.name) var form = formMDObj.getExtProp("Форма").getForm() if(form) { var label = form.Controls.Find("ВерсияНадпись") if(!label) { if(needAsk == -1) needAsk = MessageBox("Добавить на формы надпись с версией?", mbYesNo | mbIconQuestion | mbDefButton1) == mbaYes ? 1 : 0 if(needAsk == 1) { // Надо добавить надпись label = form.Controls.Add(v8New("ОписаниеТипов", "Надпись").Типы().Получить(0), "ВерсияНадпись", true) label.Заголовок = "Версия 0" form.Высота += 20 label.Лево = 0 label.Верх = form.Высота - 20 label.Высота = 20 label.Ширина = form.Ширина } } if(label) { // Надпись найдена. Надо увеличить номер версии var currentVersion = parseInt(label.Заголовок.match(/\d+/)[0]) label.Заголовок = "Версия " + (currentVersion + 1) + " (" + dateStr + ")" } } } } } } // Добавим обработчик команды сохранения файла stdcommands.Frame.FileSave.addHandler(SelfScript.self, "onFileSave")