![]() |
|
#1
|
|||
|
|||
![]() Здравствуйте! Я в Delphi относительный чайник. У меня Delphi 7, со встроенным Rave designer, который шел по умолчанию. Задача: создать отчет в Rave designer, на котором будет распологаться график, который будет браться из самой Delphi (компонент Chart). Я облазил весь интернет, находил что-то похожее, но НИЧЕГО НЕ ПОЛУЧАЕТСЯ!!! Например здесь http://delphikingdom.ru/asp/viewitem...065&mode=print
Данные берутся из XML файла (у меня из самой Delphi), ладно в принципе подошло бы, но автор не описал нормально (т.е. подробно) всю процедуру действий которые он делал пошагово. Или здесь http://www.nevrona.com/Products/Rave...9/Default.aspx на сайте производителя что-то сумбурно описано но ничего конкретно нет. И где взять нормальное пошаговое объяснение как же это сделать??? Заранее спасибо за ответы. |
#2
|
|||
|
|||
![]() Решил плясать от рекомендаций производителя http://www.nevrona.com/Products/Rave...9/Default.aspx
Кинул на форму в Delphi Chart две кнопки от одной должна строиться график, от другой запускаться отчет. Из панели Rave поместил RvProject1 и RvCustomConnection1. В rave designer настроил одно соединение TChart-а c мета файлом. Запускаю программу все вроде работает. Нажимаю на первую кнопку Строится график, на вторую - вылазит окошко, выбираю Preview и вдруг выскакивает ошибка: Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004C7500 in module 'Project1.exe1. Read of address 00000038'. Process stopped. Use Step or Run to continue. Подскажите что не так? Вот полный текст программы: Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart, RpCon, RpDefine, RpRave; type TForm1 = class(TForm) RvProject1: TRvProject; RvCustomConnection1: TRvCustomConnection; Chart: TChart; Series1: TLineSeries; Button1: TButton; Button2: TButton; procedure RvCustomConnection1GetCols(Connection: TRvCustomConnection); procedure RvCustomConnection1GetRow(Connection: TRvCustomConnection); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses RPTChart; {$R *.dfm} procedure TForm1.RvCustomConnection1GetCols( Connection: TRvCustomConnection); begin with Connection do begin // PieChart is the name of the DataField that you will use in Rave WriteField('PieChart', dtGraphic, 0, '', ''); end; end; procedure TForm1.RvCustomConnection1GetRow( Connection: TRvCustomConnection); begin // Chart is the name of the TChart component you are wanting to print WriteChartData(Connection, Chart); end; procedure TForm1.Button1Click(Sender: TObject); var p2,u1,f1,p,m1,kmp,kmk,sn,w1,k,w2n,mn,mp,mk,a,sk,n2,n1,L19,L20,L21,x,y,M19,M20,M2 1:real; str:string; s,c: Integer; begin Mk:=100; sk:=10; a:=1; series1.Clear; for s := 0 to round(sk*100) do Chart.SeriesList[0].AddXY((Mk*(s/100)*sk*(2 + a))/(s*s/10000 + sk*sk + s* sk*a/100),s/100,'',clRed); end; procedure TForm1.Button2Click(Sender: TObject); begin RvProject1.Execute; end; end. Последний раз редактировалось Admin, 07.05.2010 в 16:18. |
#3
|
|||
|
|||
![]() До сих пор не могу справиться с ошибкой: Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004C7500 in module 'Project1.exe1. Read of address 00000038'. Process stopped. Use Step or Run to continue.
Все файлы проекта в Delphi слил вот сюда: http://narod.ru/disk/20598935000/%D0...art.ra r.html . Файл отчета по умолчанию у меня распологался прямо на диске С. Посмотрите кто может, что там не так, а то я прямо даже не знаю что еще такого попробовать сделать, чтобы программа заработала. |
#4
|
||||
|
||||
![]() Попробуй самый простой случай.
Допустим проект отчета храниться на С:\1\Project1.rav В самом проекте кидаешь Bitmap1 и в поле FileLink пишешь Chart.bmp В Delphi кидаешь RvProject1 в св-во ProjectFile пишешь С:\1\Project1.rav В проекте 2 кнопки. 1-ая строит график. а во второй напиши следующий код: Chart1.SaveToBitmapFile('С:\1\Chart.bmp'); RvProject1.Open; RvProject1.Execute; RvProject1.Close; |