laifik |
Отправлено: 17.09.2003, 15:27 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 70
|
Уже надоевший всем Excel. Вроде бы уже все работает, а такой пустяк, как форматирование ячейки не хочет. Пишу
// Устанавливаем формат числа для ячейки
Sh.OlePropertyGet("Cells", 1, 9).OlePropertySet("NumberFormat", "0.00");
Нормально компелируется, но призапуске события на передачу данных в Excel пишет сообщение "Ошибка". Если заменяю точку на запятую (как это смотрится в Excel) "0,00", то ошибки не выдает, запускает Excel, выводит данные, но данные выводятся с несколькими знаками после запятой. В чем тут дело? |
|
Borgir |
Отправлено: 18.09.2003, 05:50 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 48
|
Попробуй так:
AnsiString temp="0,00";
Sh.OlePropertyGet("Cells", 1, 9).OlePropertySet("NumberFormat", temp.c_str()); |
|
laifik |
Отправлено: 18.09.2003, 10:45 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 70
|
А так работает. Спасибо большое, сама почему-то не додумалась. |
|
Георгий |
Отправлено: 18.09.2003, 22:28 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
Объясните мне, почему CODE | Sh.OlePropertyGet("Cells", 1, 9).OlePropertySet("NumberFormat", "0,00"); |
не работает, а CODE | AnsiString temp="0,00";
Sh.OlePropertyGet("Cells", 1, 9).OlePropertySet("NumberFormat", temp.c_str()); | работает. |
|
Borgir |
Отправлено: 19.09.2003, 06:04 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 48
|
Наверно потому, что все такого рода параметры для ОЛЕ процедур надо передавать как CHAR а не как STRING. А почему так сделали? Это наверно вопрос к разработчикам. А может это просто для упрощения связи с Визуал Бэйсиком. |
|
Георгий |
Отправлено: 19.09.2003, 08:51 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
А неявное преобразование типа разве не подставит то, что надо?
Отредактировано Георгий — 19/09/2003, 09:53 |
|
Borgir |
Отправлено: 19.09.2003, 10:07 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 48
|
Видимо в данном месте Билдер опускает руки и сдается
Да и вообще я во многих случаях убедился, что лучше использовать явное преобразование типов, а то можно получить совсем не то, что ожидаешь. |
|