Wiki source code of Uniacc4_RepJump
Last modified by Pavel Tuhari on 2010/04/03 18:42
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | История вопроса | ||
| 2 | |||
| 3 | [[html test1>>html_test1]] | ||
| 4 | |||
| 5 | Необходима возможность быстрого перехода из грида к документу (хотя бы с | ||
| 6 | настраиваемой формы). | ||
| 7 | В разных случаях могут оказаться удобными разные варианты действия для перехода: по | ||
| 8 | двойному щелчку, Enter, Ctrl+Enter, что-нибудь ещё... Было бы неплохо предусмотреть | ||
| 9 | возможность выбора или настройки события, по которому будет производиться переход. | ||
| 10 | Поскольку в одной строке грида может присутствовать несколько полей с номерами | ||
| 11 | документов, необходима возможность настройки набора полей для перехода (переход | ||
| 12 | производится по щелчку на любом из указанных полей). | ||
| 13 | Также была бы удобна возможность настройки поля по-умолчанию, например, если | ||
| 14 | производится щелчок на нечисловом поле или на поле, не входящем в список полей для | ||
| 15 | перехода, то используется default jump field. Эту же настройку можно было бы | ||
| 16 | использовать и в случае единственного "документного" поля в строке, тогда щелчок в | ||
| 17 | любом месте строки инициирует переход к документу. | ||
| 18 | Подробности можно обсудить устно + собрать ещё пару мнений. | ||
| 19 | |||
| 20 | Пример формы с гридом, содержащим поля с номерами документов можно найти на | ||
| 21 | auromex1@catalog: Формы-> 11. Заявки -> 11.1 Заявки на отгрузку -> 2-й грид (поля № | ||
| 22 | документа заявки + № документа продажи). | ||
| 23 | |||
| 24 | оригинал заявки | ||
| 25 | |||
| 26 | http://uniacc.md/otrs/index.pl?Action=AgentTicketZoom&TicketID=105528 | ||
| 27 | |||
| 28 | |||
| 29 | **DisableGotoNrdoc=true** | ||
| 30 | свойство на секции печ.ф./отчета => нельзя прыгать из п.ф./отчетов в документ\\ | ||
| 31 | |||
| 32 | ---- | ||
| 33 | |||
| 34 | **GotoDocumentEditing=true/false** | ||
| 35 | |||
| 36 | можно настраивать свойство сразу на пользователя или группу пользователей=>при всяческих переходах откуда-либо на документ: | ||
| 37 | - попадем сразу в открытый документ, если =true | ||
| 38 | - попадем на документ в каком-то журнале, если =false\\ | ||
| 39 | |||
| 40 | ---- | ||
| 41 | |||
| 42 | **ShowReportSection=r_test** | ||
| 43 | |||
| 44 | свойство на секции журнала => при открытии журнала сразу рисуется отчет с именем секции r_test | ||
| 45 | |||
| 46 | **[RepJump]** | ||
| 47 | **TargetType=form** | ||
| 48 | **TargetSection=f_test** | ||
| 49 | **SetValue.ed01sc=_test_value** (не обязательное свойство) | ||
| 50 | |||
| 51 | (описывается в FormulaOne в колонке C либо в нужной ячейке) | ||
| 52 | прыжок по DbLClick из строки/ячейки печатной формы/отчета в универсальную настраиваемую форму с именем секции=f_test, в которой в шапке есть edit "sc". Причем при попадании в форму, значение edit-а устанавливается = _test_value (это поле должно присутствовать в результирующем наборе (SQLHeader, SQLMaster, SQLDetail), соответствующем строке печатной формы/отчета, из которой производится переход)\\ | ||
| 53 | |||
| 54 | ---- | ||
| 55 | |||
| 56 | **[RepJump]** | ||
| 57 | **TargetType=document** | ||
| 58 | **nrdoc=_test_nrdoc** | ||
| 59 | |||
| 60 | (описывается в FormulaOne в колонке C либо в нужной ячейке) | ||
| 61 | прыжок по DbLClick из строки/ячейки печатной формы/отчета в документ с nrdoc=_test_nrdoc. (это поле должно присутствовать в результирующем наборе (SQLHeader, SQLMaster, SQLDetail), соответствующем строке печатной формы/отчета, из которой производится переход)\\ | ||
| 62 | |||
| 63 | ---- | ||
| 64 | |||
| 65 | **[RepJump]** | ||
| 66 | **TargetType=report** | ||
| 67 | **TargetSection=r_test** | ||
| 68 | **UnDBEdit1=_value1 **(не обязательное свойство) | ||
| 69 | **UnDBEdit2=_value2 **(не обязательное свойство) | ||
| 70 | |||
| 71 | (описывается в FormulaOne в колонке C либо в нужной ячейке) | ||
| 72 | прыжок по DbLClick из строки/ячейки печатной формы/отчета в отчет с именем секции=r_test. Если в отчете есть фильтры и нужно, чтобы отчет построился с определенными значениями этих фильтров, то передаем соответствующие данные в отчет в виде: UnDBEdit1=_value1 и т.п. (поля value1, value2 должны присутствовать в результирующем наборе (SQLHeader, SQLMaster, SQLDetail), соответствующем строке печатной формы/отчета, из которой производится переход)\\ | ||
| 73 | |||
| 74 | ---- | ||
| 75 | |||
| 76 | **[RepJump]** | ||
| 77 | **TargetType=doc.new** | ||
| 78 | **TargetSysFID=48355** | ||
| 79 | **TargetJournal=j_test** | ||
| 80 | **TargetAction=action_test** (не обязательное свойство) | ||
| 81 | **Param_x1=_value1 ** (не обязательное свойство) | ||
| 82 | |||
| 83 | создание по DbLClick по строке/ячейке печатной формы/отчета нового документа с указанным sysfid-ом в журнале j_test. Если указан TargetAction, то сразу после создания документа выполнится action с именем секции action_test, который должен обязательно принадлежать данному sysfid-у. В action можно передать значения параметров в виде Param_X1=_value1, где x1 - параметр, а value1 - его значение, причем поле value1 должно присутствовать в результирующем наборе (SQLHeader, SQLMaster, SQLDetail), соответствующем строке печатной формы/отчета, из которой создается документ | ||
| 84 | |||
| 85 | select * from( | ||
| 86 | /* | ||
| 87 | DblClick=goto | ||
| 88 | TargetType=form.print | ||
| 89 | TargetSection=pf_test | ||
| 90 | */ | ||
| 91 | SELECT a.* from … where … | ||
| 92 | ) | ||
| 93 | |||
| 94 | построение печатной формы с именем секции pf_test по DbLClick на гриде формы. Печатная форма должна принадлежать данной форме. Запрос грида должен иметь описанный вид. В запросе для печатной формы можно оперировать переменными вида :field_fmFS1c_sq01_COD , значения которых будут браться из текущей строки грида. | ||
| 95 | |||
| 96 | /* | ||
| 97 | **DblClick=goto** | ||
| 98 | **TargetType=form.print** | ||
| 99 | **TargetSection=pf_test** | ||
| 100 | */ | ||
| 101 | |||
| 102 | также можно настроить, чтобы срабатывал DblClick не по всей строке, а только по конкретной ячейке. Для этого в дизайне (Alt+D) грида нужно вставить описанный блок комментария\\ | ||
| 103 | |||
| 104 | ---- | ||
| 105 | |||
| 106 | Если надо, чтобы DblClick по документу в журнале срабатывал нестандартно (не как вход в документ): | ||
| 107 | |||
| 108 | 1) | ||
| 109 | **DblClickPrintForm=имя_секции_печ_формы** | ||
| 110 | |||
| 111 | свойство на секции документа => при DbLClick по данному sysfid-у из любого журнала, в котором его видно, на экране будет появляться печатная форма, имя секции которой является значением данного свойста. причем печ.форма должна принадлежать данному sysfid-у | ||
| 112 | |||
| 113 | |||
| 114 | **ViewOnly=true** | ||
| 115 | |||
| 116 | свойство на секции печ.ф. => запрещает редактирование построенного печатного документа | ||
| 117 | |||
| 118 | **ReadOnly=true** | ||
| 119 | |||
| 120 | свойство на секции печ.ф. => печатную форму можно получить без перевода документа в режим редактирования | ||
| 121 | |||
| 122 | 2) чтобы по DblClick создавался дочерний документ, в SQLBody журнала в запрос добавляем следующий блок комментария: | ||
| 123 | |||
| 124 | select * from( | ||
| 125 | /* | ||
| 126 | **DblClick=goto** | ||
| 127 | **TargetType=doc.child** | ||
| 128 | */ | ||
| 129 | SELECT … from vmdb_docs … | ||
| 130 | ) | ||
| 131 | |||
| 132 | В обоих случаях нужно: | ||
| 133 | **ChildDocs=sysfid,sysfid,sysfid** | ||
| 134 | свойство на секции документа => список sysfid-ов, которые можно создать в качестве дочерних для текущего sysfid-а. Если sysfid один, то он и создастся, если их несколько, то появится окошко для выбора одного из перечисленных sysfid-ов | ||
| 135 | |||
| 136 | **ChildCancelOnError=true** | ||
| 137 | свойство на секции документа => если в процессе создания дочернего документа возникает какая-либо ошибка, то вставка в tmdb_docs отменяется | ||
| 138 | |||
| 139 | **CreateChildSilent=true** | ||
| 140 | свойство на секции документа => не будет вопроса "Вы уверены…?" |