20.11.2018, 11:46 | #1 |
Участник
|
Переименовать колонку в grid
Доброе время суток. Есть грид с колонками R1..R35. Заголовки колонок соответственно тоже R1..R35. Столбиком сделал.
Temp_Flx_R1.label(NewName); Хотелось бы тоже самое сделать в цикле. |
|
20.11.2018, 17:56 | #2 |
Участник
|
Как организовать в цикле перебор столбцов Grid? Посмотрите по перекрестным ссылкам как используется метод
\System Documentation\Classes\FormBuildGridControl\controlCount Только, не стоит оно того. Такой код будет крайне сложно сопровождать. Он будет труден для понимания и внесения изменений. 35 строк - проще во всех смыслах С другой стороны, если у Вас такая задача вообще возникла, то это означает, что "в консерватории надо что-то подправить". Обычно все-таки устраивает значение Label из реквизитов поля таблицы-источника. Значит, или Вы поленились написать нужные Label или хотите какой-то универсальный инструмент. Что также вызывает сомнения
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: yuriy_64 (-1). |
21.11.2018, 08:58 | #3 |
Участник
|
Пишите столбиком. У меня на это ушло всего 2 строчки.
|
|
21.11.2018, 20:18 | #4 |
Участник
|
я делал вот так для динамического изменения меток столбцов при изменении даты
X++: private void setFormGroupControlMonthSequence() { int i; FormRealControl cell; int monthNum = mthOfYr(dateToday); int yearNum = year(dateToday); if(!groupMonths) { return; } for (i = 1; i <= NumOfMonths && i <= groupMonths.controlCount(); i++) { cell = groupMonths.controlNum(i); if(i > NumOfMonths) { cell.visible(false); } else { cell.label(strFmt("%1 (%2)", wblInvUsageFormEngine::monthNum2ShortName(monthNum, languageId), yearNum)); cell.visible(true); if(monthNum <= 1) { monthNum = 12; yearNum--; } else { monthNum--; } } } }
__________________
Felix nihil admirari |
|
22.11.2018, 09:05 | #5 |
Участник
|
Большое спасибо.
|
|
22.11.2018, 12:10 | #6 |
Участник
|
Да, это подходит для того случая, когда колонки расположены по порядку. Как сделать поиск по наименованию?
У меня стоит axapta3.0, выражение cell = Temp_R.controlNum(i_Col); cell.label(NewName); cell.visible(true); Переименовывает, но не делает видимым. |
|
22.11.2018, 21:31 | #7 |
Участник
|
перебирай все колонки и ищи с нужным именем. примерно вот так:
X++: // returns the batch caption form control if any in the dialog private FormStringControl getBatchCaptionControl(DialogRunbase _dialog) { FormStringControl batchCaptionControl; // recursive routine to look for the right form control of BatchCaption EDT Object findBatchCaptionControl(Object _parentObject) { int i; Object childControl; Object foundControl; for (i = 1; i <= _parentObject.controlCount(); i++) { childControl = _parentObject.controlNum( i ); // this is our boy if( childControl is FormStringControl && childControl.extendedDataType() == extendedTypeNum(BatchCaption)) { // time to get up return childControl; } else { if (childControl is FormGroupControl) { foundControl = findBatchCaptionControl(childControl); if (foundControl) { return foundControl; } } } } // just step back to check others return null; } /////// main routine ///////////////////////////////////////////////////////////// if( _dialog && _dialog.batchDialogTabPage()) { batchCaptionControl = findBatchCaptionControl(_dialog.batchDialogTabPage().control()); } return batchCaptionControl; }
__________________
Felix nihil admirari |
|
|
За это сообщение автора поблагодарили: yuriy_64 (1). |
Теги |
grid, колонки, переименовать |
|
|