Обзор казино aplaycasino здесь.
C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Перенос в Excel, Вопрс по разделу уроки.
maikl
Отправлено: 16.01.2004, 03:31


Станционный диспетчер

Группа: Участник
Сообщений: 135



В уроке № 3 в исходниках написаны следующие функции, а в объяснениям к ним нечего не говориться, хотелось бы узнать что они все таки выполняют, при компиляции их выдает предупреждения у меня, ну а так все в принципе компилирует.


Variant toExcel(Variant App,const char *Exc, int off, String data)
{
try {
App.OlePropertyGet("Range", Exc).OlePropertyGet("Offset", off).OlePropertySet("Value", data.c_str());
} catch(...) { ; }
}/* toExcel() */
//---------------------------------------------------------------------------
Variant toExcel(Variant App,const char *Exc, double data)
{
try {
App.OlePropertyGet("Range", Exc).OlePropertySet("Value", data);
} catch(...) { ; }
}/* toExcel() */

//---------------------------------------------------------------------------
Variant toExcel(Variant App,const char *Exc, int data)
{
try {
App.OlePropertyGet("Range", Exc).OlePropertySet("Value", data);
} catch(...) { ; }
}/* toExcel() */

//---------------------------------------------------------------------------
Variant toExcel(Variant App,const char *Exc, AnsiString data)
{
try {
Variant cur = App.OlePropertyGet("Range", Exc);
cur.OlePropertySet("Value", data.c_str());
} catch(...) { ; }
}/* toExcel() */
maikl
Отправлено: 16.01.2004, 14:01


Станционный диспетчер

Группа: Участник
Сообщений: 135



Что действительно никто не знает. В примере все работает в том что с уроком идет, а у меня выдает 4 предупреждения [C++ Warning] Unit9.cpp(31): W8070 Function should return a value и одно [C++ Warning] Unit9.cpp(81): W8004 'Today' is assigned a value that is never used это я еще только Excel это я еще только Excel открываю. Помогите кто нибудь, завтро курсовик надо сдать, осталось 16 часов что бы сделать.
maikl
Отправлено: 16.01.2004, 16:02


Станционный диспетчер

Группа: Участник
Сообщений: 135



Предупреждения не пропали, но зато все заработало. Только единственная проблема, в том что если тип поля в таблице числовой , и в этом поле одна из ячеек будет пуста то он выводит в Excel, 0 а мне нужно, что бы она так пустой и оставалась, может это кто подскажет, как исправить.
Nick
Отправлено: 16.01.2004, 17:13


Машинист паровоза

Группа: Участник
Сообщений: 247



попробуй так

Variant toExcel(Variant App,const char *Exc, int data)
{
try {
if ( data == NULL )
App.OlePropertyGet("Range", Exc).OlePropertySet("Value", "");
else
App.OlePropertyGet("Range", Exc).OlePropertySet("Value", data);
} catch(...) { ; }
}/* toExcel() */

maikl
Отправлено: 16.01.2004, 17:51


Станционный диспетчер

Группа: Участник
Сообщений: 135



Попробывал, не выходит, он просто мне всю базу почистил, и вывел данные из тех поляй что я задал что бы нельзя было редактировать, а все остальное пустые ячейки, нолики тоже по прежнему выводил.
Nick
Отправлено: 16.01.2004, 18:31


Машинист паровоза

Группа: Участник
Сообщений: 247



Немно поясню.
Это переопределенные (или дружественные) функции.
Может я немного ошибаюсь с терминологией, но происходит так.
Ты просто пишешь.
toExel( EApp,"A1", Переменная );
при этом если Переменная имеет тип String работает первая функция,
тип Double — вторая, int — третья и т.д.

Выясни где у тебя неправильно работает и подправь.
Я приводил пример для типа Int.
maikl
Отправлено: 17.01.2004, 02:57


Станционный диспетчер

Группа: Участник
Сообщений: 135



QUOTE (Nick @ 17/01/2004, 03:33)
Немно поясню.

Все спасибо, нашел где собака зарыта, надо было тут писать :

Variant toExcel(Variant App,const char *Exc, int off, String data)
{
try {
if(data == NULL)
App.OlePropertyGet("Range", Exc).OlePropertyGet("Offset", off).OlePropertySet("Value", "");
else
App.OlePropertyGet("Range", Exc).OlePropertyGet("Offset", off).OlePropertySet("Value", data.c_str());
} catch(...) { ; }
}/* toExcel() */

Непонятно только одно, почему при компиляции показывает 4 предупреждения, ну а так все нормально. smile.gif biggrin.gif
Dream
Отправлено: 30.01.2004, 15:16


Не зарегистрирован







Function should return a value
Функция не возвращает значение

Чтобы не высвечивался это WARNING

Variant toExcel(Variant App,const char *Exc, int off, String data)
исправь на
Void toExcel(Variant App,const char *Exc, int off, String data)
и так далее по всем оставшимся трём
т.к твои функции всёравно ничего не возвращают.



Today' is assigned a value that is never used
Что то, типа не используеш ты нигде обьявленныю переменную
cool.gif
maikl
Отправлено: 30.01.2004, 16:21


Станционный диспетчер

Группа: Участник
Сообщений: 135



Спасибо за подсказу, вопрос задавал давно, а с проблемой так и не разобрался, теперь буду знать.

Вернуться в Работа с базами данных в C++Builder