Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Руслан
Зарегистрирован: 20.06.2014 Сообщения: 40
|
Добавлено: Вт Апр 21, 2015 3:36 pm Заголовок сообщения: Вопросы по работе с таблицей |
|
|
Добрый день. есть пара вопросов по работе с таблицами
1. Есть ячейка, тип которой строковый. Но иногда туда пользователь вводит циферные значения. Если первая цифра не ноль, то все нормально, если же первая цифра ноль, то программа автоматически преобразует формат ячейки в циферный и введенные текст в число (например 0015 преобразуется в 15). Установка формата после ввода данных ничего не дает (данные остаются отформатироваными). Т.е. срабатывает автоформат. Можно ли это както решить? Есть ли возможность этот автоформат отключить.
2. Есть таблица из 5 столбцов(например). Я хочу, чтобы 3 из них нельзя было редактировать. Попытку изменить значение в определенном столбце я могу (событие OnCellChanged(Row, Column) ). Но это событие срабатывает уже ПОСЛЕ изменения значения, и я не могу вернуть старое. Можно отключит редактирование для всей книги, но для конкретного столбца не нашел как. |
|
Вернуться к началу |
|
|
AllexL
Зарегистрирован: 10.03.2005 Сообщения: 434 Откуда: Donetsk
|
Добавлено: Вт Апр 21, 2015 4:14 pm Заголовок сообщения: Re: Вопросы по работе с таблицей |
|
|
Руслан писал(а): | Добрый день. есть пара вопросов по работе с таблицами
|
Плохая идея - ввод информации через shtSheet.
как относительно не самый вредный вариант - через вызов диалога редактирования ячейки/столбца/региона.
Пишите этот диалог, и творите в нем все, что хотите |
|
Вернуться к началу |
|
|
alex
Зарегистрирован: 18.02.2008 Сообщения: 253
|
Добавлено: Вт Апр 21, 2015 4:45 pm Заголовок сообщения: Re: Вопросы по работе с таблицей |
|
|
Руслан писал(а): | Добрый день. есть пара вопросов по работе с таблицами
1. Есть ячейка, тип которой строковый. Но иногда туда пользователь вводит циферные значения. Если первая цифра не ноль, то все нормально, если же первая цифра ноль, то программа автоматически преобразует формат ячейки в циферный и введенные текст в число (например 0015 преобразуется в 15). Установка формата после ввода данных ничего не дает (данные остаются отформатироваными). Т.е. срабатывает автоформат. Можно ли это както решить? Есть ли возможность этот автоформат отключить.
|
Нужно вводить как в Excel - начинать с кавычки |
|
Вернуться к началу |
|
|
alex
Зарегистрирован: 18.02.2008 Сообщения: 253
|
Добавлено: Вт Апр 21, 2015 4:46 pm Заголовок сообщения: Re: Вопросы по работе с таблицей |
|
|
AllexL писал(а): | Руслан писал(а): | Добрый день. есть пара вопросов по работе с таблицами
|
Плохая идея - ввод информации через shtSheet.
как относительно не самый вредный вариант - через вызов диалога редактирования ячейки/столбца/региона.
Пишите этот диалог, и творите в нем все, что хотите |
А почему плохая идея? |
|
Вернуться к началу |
|
|
AllexL
Зарегистрирован: 10.03.2005 Сообщения: 434 Откуда: Donetsk
|
Добавлено: Вт Апр 21, 2015 4:54 pm Заголовок сообщения: Re: Вопросы по работе с таблицей |
|
|
alex писал(а): | А почему плохая идея? |
Не зная деталей задачи и исходя из необходимости ограничивать диапазон редактирования, я делаю предположение, что пользователь может вместе с внесением полезной информации, исказить намеренно либо случайно другую, не менее полезную информацию.
Что бы избежать искажения, потребуется создать больше "костылей" и контролей, чем при реализации данного функционала в FrmGrid либо DlgGrid, например. |
|
Вернуться к началу |
|
|
alex
Зарегистрирован: 18.02.2008 Сообщения: 253
|
Добавлено: Вт Апр 21, 2015 5:55 pm Заголовок сообщения: Re: Вопросы по работе с таблицей |
|
|
AllexL писал(а): | alex писал(а): | А почему плохая идея? |
Не зная деталей задачи и исходя из необходимости ограничивать диапазон редактирования, я делаю предположение, что пользователь может вместе с внесением полезной информации, исказить намеренно либо случайно другую, не менее полезную информацию.
Что бы избежать искажения, потребуется создать больше "костылей" и контролей, чем при реализации данного функционала в FrmGrid либо DlgGrid, например. |
Пожалуй нужно расширить функционал редактирования - в частности добавить возможность разрешать/запрещать ввод в ячейки. |
|
Вернуться к началу |
|
|
Руслан
Зарегистрирован: 20.06.2014 Сообщения: 40
|
Добавлено: Ср Апр 22, 2015 7:06 am Заголовок сообщения: |
|
|
Ну с первой задачей я частично справился. Решил вопрос для часного случая. По второй задаче ничего интересного пока не придумал. Ну тогда еще вопрос. Можно ли в событии Sheet1_OnClick получить координату текущей ячейки(на которой фокус)? Так я хотя бы частично решу проблему. |
|
Вернуться к началу |
|
|
alex
Зарегистрирован: 18.02.2008 Сообщения: 253
|
Добавлено: Ср Апр 22, 2015 9:04 am Заголовок сообщения: |
|
|
Руслан писал(а): | Ну с первой задачей я частично справился. Решил вопрос для часного случая. По второй задаче ничего интересного пока не придумал. Ну тогда еще вопрос. Можно ли в событии Sheet1_OnClick получить координату текущей ячейки(на которой фокус)? Так я хотя бы частично решу проблему. |
Sheet.Selection.Left, Sheet.Selection.Top.
А если выделен диапазон, то это будет верхняя левая ячейка. |
|
Вернуться к началу |
|
|
olimp Site Admin
Зарегистрирован: 10.03.2005 Сообщения: 2661
|
Добавлено: Пн Май 18, 2015 9:29 am Заголовок сообщения: Re: Вопросы по работе с таблицей |
|
|
alex писал(а): | AllexL писал(а): | alex писал(а): | А почему плохая идея? |
Не зная деталей задачи и исходя из необходимости ограничивать диапазон редактирования, я делаю предположение, что пользователь может вместе с внесением полезной информации, исказить намеренно либо случайно другую, не менее полезную информацию.
Что бы избежать искажения, потребуется создать больше "костылей" и контролей, чем при реализации данного функционала в FrmGrid либо DlgGrid, например. |
Пожалуй нужно расширить функционал редактирования - в частности добавить возможность разрешать/запрещать ввод в ячейки. |
Там много чего бы добавить Например, запоминать ячейки, которые объединены, до удаления строки и восстанавливать после. Можно добавить адреса в ячейки и пр. |
|
Вернуться к началу |
|
|
|