Показать сообщение отдельно
Старый 17.08.2015, 11:10   #4  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Прикольно, многих утилит не видел раньше. Жаль я их все толком не использую в повседневной работе.
Часть утилит я написал с нуля.
С другой стороны привыкните к хорошему и в 7-ке будет не хватать

Цитата:
Сообщение от kashperuk Посмотреть сообщение
А почему не прижилась кнопочка для выбора полей для показа в Table Browser?
http://www.axaptapedia.com/DEV_SysTa...#Modifications

Вместо нее смотрю боковая панель со списком полей, но похоже это фокусирует просто на этом поле? Хотя, может это и удобнее.

А select/update/delete, которые я добавил уже в последний момент, чтобы занять место, есть

В любом случае, спасибо за сборку.
У меня никогда не было необходимости выбирать поля. Когда нужно провести анализ данных, экспортирую нужные строки в Excel, где это делать на порядок удобнее. Если будут пожелания, можно добавить выбор полей.

Да фокусирует на выбранном поле. Функционал расписан на странице проекта, посмотрите скрин, там еще очень много всего.

А select/update/delete я подсмотрел у вас, только принцип работы отличается. Первый метод ваш, второй мой

X++:
void executeSQLPresetChange()
{
    ;
    dictTable = new DictTable(tableId);

    switch (ExecuteSQLPreset.selection())
    {
        case 1:
            this.parmSQLStmt(@'DELETE_FROM ' + tableId2Name(tableId));
            break;
        case 2:
            this.parmSQLStmt(@'UPDATE_RECORDSET ' + tableId2Name(tableId) + '\n' + @'SETTING ');
            break;
        default:
            this.parmSQLStmt(this.defaultSqlCmdStatement());
    }
}
X++:
void executeSQLPresetChange()
{
    FormTreeItem                                    item;
    int                                             selection;
    str                                             expression;

    dictTable = new DictTable(tableId);

    selection = Tree.getFirstSelected() ? Tree.getFirstSelected() : Tree.getRoot();

    if (selection)
    {
        item = Tree.getItem(selection);
    }

    switch (ExecuteSQLPreset.selection())
    {
        case 1:
            if (item)
            {
                this.parmSQLStmt(strfmt('UPDATE_RECORDSET %1\nSETTING %2 = \'\'\nWHERE %1.RecId == %3',
                                        tableId2Name(tableId),
                                        item.text(),
                                        ds.RecId));
            }
            break;
        case 2:
            if (item)
            {
                expression  = strfmt('SELECT %1 FROM %2 WHERE %2.RecId = %3', item.text(), tableId2Name(SysDictTable::getRootTable(tableId)), ds.RecId);

                this.parmSQLStmt(strfmt('DELETE_FROM %1\nWHERE %1.%2 == \'%3\'',
                                        tableId2Name(tableId),
                                        item.text(),
                                        SysTableBrowser::DEV_GetValue(expression)));

                CodeAccessPermission::revertAssert();
            }
            break;
        default:
            this.parmSQLStmt(this.defaultSqlCmdStatement());
    }
}
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.