Использую Builder 6 + Crystal Report XI
Как через VCL компонент, так и через ActiveX все работает.
Но как только я делаю попытку считать или записать значения формул в отчете, то любая попытка завершается ошибкой Access violation.
Вот кусок кода.
Crpe1->ReportName="test.rpt";
Memo1->Lines->AddStrings(Crpe1->Formulas->Names()); //получаю список формул (без ошибок)
Crpe1->Formulas->Name = "Test1"; //Формула в отчете есть, ошибок не возникает.
Crpe1->Formulas->Item->Formula->Text="1234"; //вот тут возникает ОШИБКА. Если заремать то дальше все работает
Crpe1->Show();
Что не так???
Здравствуйте, DiGun, Вы писали:
[Skip]
DG>Crpe1->Formulas->Item->Formula->Text="1234"; //вот тут возникает ОШИБКА. Если заремать то дальше все работает
DG>Crpe1->Show();[/ccode]
DG>Что не так???
А это чему равно?
Crpe1->Formulas->Item == NULL
Crpe1->Formulas->Item->Formula == NULL
D>А это чему равно?
D>D>Crpe1->Formulas->Item == NULL
D>Crpe1->Formulas->Item->Formula == NULL
D>
Crpe1->Formulas->Item == :00CAD7EC
Crpe1->Formulas->Item->Formula == :CAE15000
т.е. тут все ок
Здравствуйте, DiGun, Вы писали:
D>>А это чему равно?
D>>D>>Crpe1->Formulas->Item == NULL
D>>Crpe1->Formulas->Item->Formula == NULL
D>>
DG>Crpe1->Formulas->Item == :00CAD7EC
DG>Crpe1->Formulas->Item->Formula == :CAE15000
DG>т.е. тут все ок
Попробуйте вызвать всю эту лабудень через
IDipatch.Invoke. Честно не знаю как это в Builderе вызывается, в Delphi все просто через OleVariant. Понимаю тяжко, но у меня есть подозрение что информация в TLB отличается от того что есть на самом деле... Тоесть сгенеренные интерфейсы is out of date.