Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TQRCahr [D7]


RamzesIII ©   (2008-11-18 10:21:00) 

У меня при повторном обращении к этому компоненту выдает ошибку "Stack overflow".
Даные TQRChart берет из Query1,который еред выводом отчета отключается и подключается и текст запроса в него кажжый раз вбивается заново...
что делать?
может надо как-нить очистить компонент TQRChart?

procedure TFormVibPer.BitBtn1Click(Sender: TObject);
var god:integer;
begin

god:=0;
god:=StrToInt(edit1.Text);
FormDiagProd.Query1.Active:=false;
FormDiagProd.Query1.SQL.Clear;
FormDiagProd.Query1.SQL.Add('SELECT Diski.Nazvanie, SUM( Prodazha.Kolichectvo )');
FormDiagProd.Query1.SQL.Add('FROM "prodazha.DB" Prodazha');
FormDiagProd.Query1.SQL.Add('INNER JOIN "diski.DB" Diski ON (Prodazha.Shtrih_kod = Diski.Shtrih_kod)');
FormDiagProd.Query1.SQL.Add('INNER JOIN "chek.db" Chek ON  (Prodazha.Kod_cheka = Chek.Kod_cheka)');
FormDiagProd.Query1.SQL.Add('WHERE Chek.data BETWEEN :Date1 AND :Date2');
FormDiagProd.Query1.SQL.Add('GROUP BY Diski.Nazvanie');
FormDiagProd.Query1.Params[0].DataType:=ftDateTime;
FormDiagProd.Query1.Params[1].DataType:=ftDateTime;
if (god mod 4)=0 then
if d2='28.02.' then d2:='29.02.';
FormDiagProd.Query1.Params[0].Value:=d1+edit1.Text;
FormDiagProd.Query1.Params[1].Value:=d2+edit1.Text;
FormDiagProd.Query1.Active:=true;
FormDiagProd.QRChart1.Refresh;
FormDiagProd.QuickRep1.Preview;
close;
end;

в Edit1 вводится год

чтое так в коде????


Anatoly Podgoretsky   (2008-11-18 19:00:00) [1]

Я ICQ включаю раз в полгода, срок еще не вышел.


RamzesIII   (2008-11-18 17:17:00) [2]


> Anatoly Podgoretsky ©   (18.11.08 16:46) [6]
> Примерно так  with TFormDiagProd.Create(Self) dotry   QRep.
> Preview;            // QRep.Print;finally   Free;end;


а вы не могли бы мне в аську написать,просто я не совсем нонимаю...357193329


Anatoly Podgoretsky   (2008-11-18 16:46:00) [3]

Примерно так
 
with TFormDiagProd.Create(Self) do
try
  QRep.Preview;            // QRep.Print;
finally
  Free;
end;


Anatoly Podgoretsky   (2008-11-18 16:38:00) [4]

Иным способом можно, это правильно заполнить все свойства QuickRep, включая внутренние. А в чес у тебя сложность с созданием формы - это самый простой и надежный способ. Любые компоненты создаются методом Create. Форма у тебя есть - это FormDiagProd, на которой уже лежит QuickRep


RamzesIII   (2008-11-18 16:35:00) [5]

А иным спосом никак нельзя исправить эту ошибку?просто осталась неделя до сдачи курсового...а я в динамическом создании форм ничего не понимаю...


RamzesIII   (2008-11-18 16:35:00) [6]

А иным спосом никак нельзя исправить эту ошибку?просто осталась неделя до сдачи курсового...а я в динамическом создании форм ничего не понимаю...


Anatoly Podgoretsky   (2008-11-18 11:15:00) [7]

Создавай форму динамически, иначе будешь бороться с разными проблемами, ведь ты же не сможешь правильно инициализировать для повторного вызова, например правильно настроить все QRPrinter


RamzesIII   (2008-11-18 10:24:00) [8]

Все работает только после перезапуска программы


Наверх

Титульная страница Поиск, карта сайта Написать письмо