|
|
|
Ошибка в переменной - не могу понять почему
|
|||
|---|---|---|---|
|
#18+
Вот такой вот программный код: 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 16:01 |
|
||
|
Ошибка в переменной - не могу понять почему
|
|||
|---|---|---|---|
|
#18+
Попробуй вместо OlePropertySet("Value", Query3->FieldByName("Имя")->AsString); OlePropertySet("Text", Query3->FieldByName("Имя")->AsString); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 16:16 |
|
||
|
Ошибка в переменной - не могу понять почему
|
|||
|---|---|---|---|
|
#18+
все равно ругается =((( Он ещё выкидывает в sysvari.h и выделяет строку OlePropertySet(name, static_cast<TAutoArgsBase&>(args)); Вообще ничего понять не могу...данные он тоже не оттображает =((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 16:25 |
|
||
|
Ошибка в переменной - не могу понять почему
|
|||
|---|---|---|---|
|
#18+
Запись текста пишется так ExcelSheet.OlePropertySet("Cells",RowNumber,ColNumber,Text); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 11:25 |
|
||
|
Ошибка в переменной - не могу понять почему
|
|||
|---|---|---|---|
|
#18+
все равно ругается теми же словами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 17:17 |
|
||
|
Ошибка в переменной - не могу понять почему
|
|||
|---|---|---|---|
|
#18+
Люди спасайти::: переписал все по другому опять та же ошибка...((( Все выглядит примерно так:::( В 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));//вот на ету строку } и пишет не верный тип переменной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 18:15 |
|
||
|
Ошибка в переменной - не могу понять почему
|
|||
|---|---|---|---|
|
#18+
Если кто знает как иначе писать это или кто пробовал делать такие веши черкните программный код здесь ПЛИЗЗЗ!!!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 18:16 |
|
||
|
Ошибка в переменной - не могу понять почему
|
|||
|---|---|---|---|
|
#18+
TAutoArgs<1> args; args[1] = p1; А это что за тип ? случайно должно быть не args[0] = p1; ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 11:20 |
|
||
|
Ошибка в переменной - не могу понять почему
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2004, 12:02 |
|
||
|
Ошибка в переменной - не могу понять почему
|
|||
|---|---|---|---|
|
#18+
shadow_w Код: plaintext 1. 2. 3. 4. 5. 6. а у меня она выскакивала , даже когда пытался передать одну строчку :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 18:49 |
|
||
|
Ошибка в переменной - не могу понять почему
|
|||
|---|---|---|---|
|
#18+
'FaTsO'Если кто знает как иначе писать это или кто пробовал делать такие веши черкните программный код здесь ПЛИЗЗЗ!!!!!!!!! Думаю что ты ищеш что-то вроде xlApp.Workbooks(1).Worksheets(1).Range("B5").CopyFromRecordset rst ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 19:04 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32346685&tid=2034053]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 394ms |

| 0 / 0 |
