powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ошибка в переменной - не могу понять почему
11 сообщений из 11, страница 1 из 1
Ошибка в переменной - не могу понять почему
    #32346685
'FaTsO'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот такой вот программный код:
void __fastcall TForm3::BitBtn4Click(TObject *Sender)
{
//---------------------------------------
const int xlAlignCenter = -4108;
Variant app, ws, range;
int Row;
char sql_1[256];
char fld_1[40];
char val_1[40];
//---------------------------------------
app = CreateOleObject("Excel.Application");
app.OlePropertySet("Visible",true);
app.OlePropertySet("SheetsInNewWorkbook",1);
app.OlePropertyGet("Workbooks").OleProcedure("Add");
ws = app.OlePropertyGet("Worksheets").OlePropertyGet("Item",1);
//---------------------------------------
ws.OlePropertySet("Name", "Otchet");
//---------------------------------------
ws.OlePropertyGet("Columns").OlePropertyGet("Item",1).OlePropertySet("ColumnWidth",40);
ws.OlePropertyGet("Columns").OlePropertyGet("Item",1).OlePropertySet("ColumnWidth",40);
//---------------------------------------
ws.OlePropertyGet("Cells").OlePropertyGet("Item",2, 1).OlePropertySet("Value", "Имя");
ws.OlePropertyGet("Cells").OlePropertyGet("Item",2, 1).OlePropertySet("Value", "Дата");

range = ws.OlePropertyGet("Range","A2:В2");
range.OlePropertySet("HorizontalAlignment",xlAlignCenter);
//-------------------------------------
Row = 3;
strcpy(fld_1, ComboBox1->Text.c_str());
strcpy(val_1, ComboBox2->Text.c_str());
Query3->Close();
Query3->SQL->Clear();
sprintf(sql_1, "SELECT * FROM TABLE_1 WHERE %s = '%s'", fld_1, val_1);
Query3->SQL->Add(sql_1);
Query3->Open();
//-------------------------------------
while(!Query3->Eof)
{
ws.OlePropertyGet("Cells").OlePropertyGet("Item", Row, 1).OlePropertySet("Value", Query3->FieldByName("Имя")->AsString);
ws.OlePropertyGet("Cells").OlePropertyGet("Item", Row, 2).OlePropertySet("Value", Query3->FieldByName("Дата")->AsString);
Query3->Next();
Row++;
}
}
Компилируется нормально...Excel запускается но не выводит данные...
Да и ещё ругается что не правильно указан тип переменной
Какой именно переменной я не понимаю...)))
У меня Билдер 6
...
Рейтинг: 0 / 0
Ошибка в переменной - не могу понять почему
    #32346716
Void!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй вместо
OlePropertySet("Value", Query3->FieldByName("Имя")->AsString);
OlePropertySet("Text", Query3->FieldByName("Имя")->AsString);
...
Рейтинг: 0 / 0
Ошибка в переменной - не могу понять почему
    #32346737
'FaTsO'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все равно ругается =(((
Он ещё выкидывает в sysvari.h и выделяет строку
OlePropertySet(name, static_cast<TAutoArgsBase&>(args));
Вообще ничего понять не могу...данные он тоже не оттображает =(((
...
Рейтинг: 0 / 0
Ошибка в переменной - не могу понять почему
    #32347529
LAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запись текста пишется так

ExcelSheet.OlePropertySet("Cells",RowNumber,ColNumber,Text);
...
Рейтинг: 0 / 0
Ошибка в переменной - не могу понять почему
    #32348232
'FaTsO'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все равно ругается теми же словами
...
Рейтинг: 0 / 0
Ошибка в переменной - не могу понять почему
    #32348324
'FaTsO'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди спасайти::: переписал все по другому опять та же ошибка...(((
Все выглядит примерно так:::(
В main.h написал:
private: // User declarations
void MakeReport();
void __fastcall ExcelInit(String File);
void __fastcall toExcelCell(int c1,int c2, Variant data);
Variant App,Sh;
дальше пишу так:::(
void __fastcall TForm3::BitBtn4Click(TObject *Sender)
{
MakeReport();
}
//---------------------------------------------------------------------------
// äàííûå â Exel
void TForm3::MakeReport()
{
int Row;
char sql_1[256];
char fld_1[40];
char val_1[40];
ExcelInit("");

toExcelCell(1,1,String("Àäðåñ îáúåêòà"));
toExcelCell(1,2,String("Îêðóã"));
toExcelCell(1,3,String("Ñåðèÿ"));
toExcelCell(1,4,String("Ýòàæíîñòü"));
toExcelCell(1,5,String("Çàêàç÷èê"));
toExcelCell(1,6,String("Ïîäðÿä÷èê"));
toExcelCell(1,7,String("Ïðîåêòèðîâùèê"));
toExcelCell(1,8,String("Èíâåñòîð"));
toExcelCell(1,9,String("Ìîùíîñòü òûñ.ì2 - æèëûå"));
toExcelCell(1,10,String("Ìîùíîñòü òûñ.ì2 - íåæèëûå"));
toExcelCell(1,11,String("Ìîùíîñòü òûñ.ì2 - ãàðàæè"));
toExcelCell(1,12,String("Ââîä"));
toExcelCell(1,13,String("ÏÏÌ"));
toExcelCell(1,14,String("Èíâåñòèöèîííûé êîíòðàêò"));
toExcelCell(1,15,String("Òåíäåð"));
toExcelCell(1,16,String("Äîãîâîð (äëÿ Ãîð. çàêàçà)"));
toExcelCell(1,17,String("Ïðîåêò ïëàíèðîâêè"));
toExcelCell(1,18,String("Ïðîåêò çàñòðîéêè èëè ÈÐÄ"));
toExcelCell(1,19,String("ÏÑÄ íà 0"));
toExcelCell(1,20,String("ÏÑÄ íà 4/4"));
toExcelCell(1,21,String("ÌÃÝ"));
toExcelCell(1,22,String("Ðàçðåø. íà ñòðîèòåëüñòâî ï/ï"));
toExcelCell(1,23,String("Ðàçðåø. íà ñòðîèòåëüñòâî îñí/ï"));
toExcelCell(1,24,String("Òåõíè÷åñêîå ñîñòîÿíèå"));
toExcelCell(1,25,String("Äàòà ïåðåäà÷è ïëîùàäêè"));
toExcelCell(1,26,String("Äàòà íà÷àëà 0"));
toExcelCell(1,27,String("Äàòà îêîí÷àíèÿ 0"));
toExcelCell(1,28,String("Äàòà íà÷ íàäç ÷"));
toExcelCell(1,29,String("Äàòà îêîí÷ íàäç ÷"));
toExcelCell(1,30,String("Ñðîê ââîäà"));
toExcelCell(1,31,String("Ïðèìå÷àíèÿ"));

Row = 2;
strcpy(fld_1, ComboBox1->Text.c_str());
strcpy(val_1, ComboBox2->Text.c_str());
Query3->Close();
Query3->SQL->Clear();
sprintf(sql_1, "SELECT * FROM TABLE_1 WHERE %s = '%s'", fld_1, val_1);
Query3->SQL->Add(sql_1);
Query3->Open();

while(!Query3->Eof)
{
toExcelCell(Row,1,Query3->FieldByName("Àäðåñ_îáúåêòà")->AsString);
toExcelCell(Row,2,Query3->FieldByName("Îêðóã")->AsString);
toExcelCell(Row,3,Query3->FieldByName("Ñåðèÿ")->AsString);
toExcelCell(Row,4,Query3->FieldByName("Ýòàæíîñòü")->AsString);
toExcelCell(Row,5,Query3->FieldByName("Çàêàç÷èê")->AsString);
toExcelCell(Row,6,Query3->FieldByName("Ïîäðÿä÷èê")->AsString);
toExcelCell(Row,7,Query3->FieldByName("Ïðîåêòèðîâùèê")->AsString);
toExcelCell(Row,8,Query3->FieldByName("Èíâåñòîð")->AsString);
toExcelCell(Row,9,Query3->FieldByName("Ìîùíîñòü_òûñ_ì2_æèëûå")->AsString);
toExcelCell(Row,10,Query3->FieldByName("Ìîùíîñòü_òûñ_ì2_íåæèëûå")->AsString);
toExcelCell(Row,11,Query3->FieldByName("Ìîùíîñòü_òûñ_ì2_ãàðàæè")->AsString);
toExcelCell(Row,12,Query3->FieldByName("Ââîä")->AsString);
toExcelCell(Row,13,Query3->FieldByName("ÏÏÌ")->AsString);
toExcelCell(Row,14,Query3->FieldByName("Èíâ_êîíòðàêò")->AsString);
toExcelCell(Row,15,Query3->FieldByName("Òåíäåð")->AsString);
toExcelCell(Row,16,Query3->FieldByName("Äîãîâîð_äëÿ_Ãîð_çàêàçà")->AsString);
toExcelCell(Row,17,Query3->FieldByName("Ïðîåêò_ïëàíèðîâêè")->AsString);
toExcelCell(Row,18,Query3->FieldByName("Ïðîåêò_çàñòðîéêè_èëè_ÈÐÄ")->AsString);
toExcelCell(Row,19,Query3->FieldByName("ÏÑÄ_íà_0")->AsString);
toExcelCell(Row,20,Query3->FieldByName("ÏÑÄ_íà_4_4")->AsString);
toExcelCell(Row,21,Query3->FieldByName("ÌÃÝ")->AsString);
toExcelCell(Row,22,Query3->FieldByName("Ðàçðåø_íà_ñòðîèò_ï_ï")->AsString);
toExcelCell(Row,23,Query3->FieldByName("Ðàçðåø_íà_ñòðîèò_îñí_ï")->AsString);
toExcelCell(Row,24,Query3->FieldByName("Òåõíè÷åñêîå_ñîñòîÿíèå")->AsString);
toExcelCell(Row,25,Query3->FieldByName("Äàòà_ïåðåäà÷è_ïëîùàäêè")->AsString);
toExcelCell(Row,26,Query3->FieldByName("Äàòà_íà÷àëà_0")->AsString);
toExcelCell(Row,27,Query3->FieldByName("Äàòà_îêîí÷àíèÿ_0")->AsString);
toExcelCell(Row,28,Query3->FieldByName("Äàòà_íà÷_íàäç_÷")->AsString);
toExcelCell(Row,29,Query3->FieldByName("Äàòà_îêîí÷_íàäç_÷")->AsString);
toExcelCell(Row,30,Query3->FieldByName("Ñð_ââîäà")->AsString);
toExcelCell(Row,31,Query3->FieldByName("Ïðèìå÷àíèÿ")->AsString);
Query3->Next();
Row++;
}
if(!App.IsEmpty())App.OlePropertySet("Visible",true);

Sh.Clear();
App.Clear();
}
//------------------------------------------------------------------------
void __fastcall TForm3::toExcelCell(int Row,int Column, Variant data)
{
try {
Variant cur = Sh.OlePropertyGet("Cells", Row,Column);
cur.OlePropertySet("Value", data);
} catch(...) { ; }
}/* toExcelCell() */
//---------------------------------------------------------------------------

void __fastcall TForm3::ExcelInit(String File)
{
try {

App=Variant::GetActiveObject("Excel.Application");
} catch(...) {
try { App=Variant::CreateObject("Excel.Application"); } catch (...) {
Application->MessageBox("Íåâîçìîæíî îòêðûòü Microsoft Excel!"
" Âîçìîæíî ýòîãî ïðèëîæåíèÿ íà êîìïüþòåðå íå óñòàíîâëåíî.","Îøèáêà",MB_OK+MB_ICONERROR);
} }
try {

if(File!="")
App.OlePropertyGet("WorkBooks").OleProcedure("Open",File);
else
App.OlePropertyGet("WorkBooks").OleProcedure("add");
Sh=App.OlePropertyGet("WorkSheets",3);
} catch(...) {
Application->MessageBox("Îøèáêà îòêðûòèÿ êíèãè Microsoft Excel!","Îøèáêà",MB_OK+MB_ICONERROR);
}
}/* ExcelInit() */
//--------------------------------------------------
Спасите меня не могу понять чего он хочет
он ругается в файле sysvari.h
void Variant::OlePropertySet(const String& name, P1 p1)
{
TAutoArgs<1> args;
args[1] = p1;
OlePropertySet(name, static_cast<TAutoArgsBase&>(args));//вот на ету строку
}
и пишет не верный тип переменной
...
Рейтинг: 0 / 0
Ошибка в переменной - не могу понять почему
    #32348328
'FaTsO'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если кто знает как иначе писать это или кто пробовал делать такие веши черкните программный код здесь ПЛИЗЗЗ!!!!!!!!!
...
Рейтинг: 0 / 0
Ошибка в переменной - не могу понять почему
    #32348827
Tracer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TAutoArgs<1> args;
args[1] = p1;

А это что за тип ?
случайно должно быть не
args[0] = p1; ?
...
Рейтинг: 0 / 0
Ошибка в переменной - не могу понять почему
    #32793657
Фотография shadow_w
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
void Variant::OlePropertySet(const String& name, P1 p1) 
{ 
TAutoArgs< 1 > args; 
args[ 1 ] = p1; 
OlePropertySet(name, static_cast<TAutoArgsBase&>(args));//вот на ету строку 
} 
и пишет не верный тип переменной
Не знаю на сколько сильно тебе это поможет, но у меня такая ошибка возникала когда при заполнении данными листа Excel им просто не хватало строк... В Excelе ограние по количеству строк на листе 65536...
...
Рейтинг: 0 / 0
Ошибка в переменной - не могу понять почему
    #32796869
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shadow_w
Код: plaintext
1.
2.
3.
4.
5.
6.
void Variant::OlePropertySet(const String& name, P1 p1) 
{ 
TAutoArgs< 1 > args; 
args[ 1 ] = p1; 
OlePropertySet(name, static_cast<TAutoArgsBase&>(args));//вот на ету строку 
} 
и пишет не верный тип переменной
Не знаю на сколько сильно тебе это поможет, но у меня такая ошибка возникала когда при заполнении данными листа Excel им просто не хватало строк... В Excelе ограние по количеству строк на листе 65536...

а у меня она выскакивала , даже когда пытался передать одну строчку :)
...
Рейтинг: 0 / 0
Ошибка в переменной - не могу понять почему
    #32796894
Дмитрий15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
'FaTsO'Если кто знает как иначе писать это или кто пробовал делать такие веши черкните программный код здесь ПЛИЗЗЗ!!!!!!!!!

Думаю что ты ищеш что-то вроде
xlApp.Workbooks(1).Worksheets(1).Range("B5").CopyFromRecordset rst
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ошибка в переменной - не могу понять почему
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]