Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Отчет в Delphi   Найти похожие ветки 

 
Ivan   (2010-05-07 11:19) [0]

Здравствуйте! Я в Delphi относительный чайник. У меня Delphi 7, со встроенным Rave designer, который шел по умолчанию. Задача: создать отчет в Rave designer, на котором будет распологаться график, который будет браться из самой Delphi (компонент Chart). Я облазил весь интернет, находил что-то похожее, но НИЧЕГО НЕ ПОЛУЧАЕТСЯ!!! Например здесь http://delphikingdom.ru/asp/viewitem.asp?catalogid=1065&mode=print
Данные берутся из XML файла (у меня из самой Delphi), ладно в принципе подошло бы, но автор не описал нормально (т.е. подробно) всю процедуру действий которые он делал пошагово. Или здесь   http://www.nevrona.com/Products/RaveReports/TipsTricks/TipsRaveGeneral/Tip019PrintingTChartsinRave/tabid/99/Default.aspx    на сайте производителя что-то сумбурно описано но ничего конкретно нет. И где взять нормальное пошаговое объяснение как же это сделать??? Заранее спасибо за ответы.


 
Плохиш ©   (2010-05-07 11:20) [1]

Зачем оно тебе, это программирование?


 
test ©   (2010-05-07 11:27) [2]

В приведённых тобой ссылках 2 раза объясняется пошагово, как в отчет выложить график.
Что конкретно то не понятно?
Данные вообще есть?
В каком виде данные?(БД, плоский файл, пользователь набил руками)
В чем хранятся данные?(внутреннее представление: массив, 1000 переменных, TDataSource)


 
turbouser ©   (2010-05-07 11:36) [3]


> Ivan   (07.05.10 11:19)  


> НИЧЕГО НЕ ПОЛУЧАЕТСЯ!!!

Охотно верю.
Осталось уточнить что именно не получается.
Телепаты в отпуске, так что проблемные куски кода все-таки придется привести.
Хотя,
> Плохиш ©   (07.05.10 11:20) [1]
>
> Зачем оно тебе, это программирование?

+1


 
Ivan   (2010-05-07 12:25) [4]

Спасибо за ответы.
Построение графика осуществляю вот так :

series1.Clear;
     series2.Clear;
   for s := 0 to round(sk*100) do
   Chart1.SeriesList[0].AddXY((Mk*(s/100)*sk*(2 + a))/(s*s/10000 + sk*sk + s* sk*a/100),s/100,"",clRed);
   for s := round(sk*100) to 100 do
   Chart1.SeriesList[1].AddXY((Mk*(s/100)*sk*(2 + a))/(s*s/10000 + sk*sk + s* sk*a/100),s/100,"",clRed);

А непонятно вот что:
Какие элементы я должен поместить  на форме в делфи из вкладки Rave? И как их правильно настроить? Что нужно прописать при этом в коде?
Теперь по поводу Rave Designer. Я захожу в него, создаю там отчет с MetaFile – ом. Что дальше? Как же соединить график построенный в Delphi и этот мета файл из отчета. Слышал что-то по поводу того что нужно делать какое-то соединение? Что же нужно все- таки делать? Объясните пошагово. Спасибо.


 
test ©   (2010-05-07 12:32) [5]

Так на королевстве об этом статья и написана, только ты данные из Random берешь, а они из xml.
После части в которой рассказывается как брать данные из xml, идет часть как отображать произвольные данные в отчете. Почитай там все есть...

http://delphikingdom.ru/asp/viewitem.asp?catalogid=1065&mode=print


 
Ivan   (2010-05-07 15:08) [6]

Решил плясать от рекомендаций производителя  http://www.nevrona.com/Products/RaveReports/TipsTricks/TipsRaveGeneral/Tip019PrintingTChartsinRave/tabid/99/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.


 
test ©   (2010-05-07 15:13) [7]

Какого то объекта не хватает, эта ошибка возникает когда ты обращаешься к объекту который либо не существует, либо удален.


 
Ivan   (2010-05-07 15:49) [8]

А что имеется ввиду под словом объект (где он расположен в Delphi или Rave designer)? Ведь вроде все компилируется. И делал все аналогично примеру?


 
AlexDan ©   (2010-05-07 18:13) [9]

>  Отчет в Delphi
> Ivan   (07.05.10 11:19)
да, кстати, открою тебе страшню тайну, Rave Reports в D7 не работает, /баг/, поэтому я использую для этих целей 2010.


 
AlexDan ©   (2010-05-07 18:15) [10]

Точнее он работает, но не пркомпиллируется к поекту, так что если тебе не хочется таскать за собой файл отчёта, то надо что-то думать.. а если таскать терпимо, то ничего..


 
AlexDan ©   (2010-05-07 18:19) [11]

> Ivan   (07.05.10 12:25) [4]
> А непонятно вот что:
> Какие элементы я должен поместить  на форме в делфи из вкладки
> Rave? И как их правильно настроить? Что нужно прописать
> при этом в коде?
> Теперь по поводу Rave Designer. Я захожу в него, создаю
> там отчет с MetaFile – ом. Что дальше? Как же соединить
> график построенный в Delphi и этот мета файл из отчета.
> Слышал что-то по поводу того что нужно делать какое-то соединение?
>  Что же нужно все- таки делать? Объясните пошагово. Спасибо.
Да, действительно соединение делать нужно, на пальцах рассказать довольно непросто, операция в несколько шагов..


 
Ivan   (2010-05-11 09:56) [12]

До сих пор не могу справиться с ошибкой: 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%9E%D1%82%D1%87%D0%B5%D1%82%20%D1%81%20chart.rar.html . Файл отчета по умолчанию у  меня распологался прямо на диске С. Посмотрите, кто может, что там не так, а то я прямо даже не знаю что еще такого попробовать сделать, чтобы программа заработала.


 
Anatoly Podgoretsky ©   (2010-05-11 10:20) [13]

> Ivan  (11.05.2010 09:56:12)  [12]

Это означает, что ты забыл создать какой то объект, а по адресу 004C7500 к
нему идет обновление.
Надо делать отладку.


 
Виктор   (2010-05-11 16:19) [14]

Иван! Купи себе FastReport 4.9.55 в любой комплектации и забудешь о несовершенных Rave Reports.  В FastReport есть и подробные примеры и тех. поддержка. В общем - супер!!!


 
Виктор   (2010-05-11 16:19) [15]

Иван! Купи себе FastReport 4.9.55 в любой комплектации и забудешь о несовершенных Rave Reports.  В FastReport есть и подробные примеры и тех. поддержка. В общем - супер!!!



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.065 c
2-1269581230
Игорь Р.
2010-03-26 08:27
2010.08.27
Opera и Delphi


15-1275550373
12
2010-06-03 11:32
2010.08.27
pascal.Напомните, пожалуйста, как там возвращать значение функции


2-1271953943
Б
2010-04-22 20:32
2010.08.27
Как убрать заголовок окна с панели задач?


4-1233576610
Wadimka
2009-02-02 15:10
2010.08.27
Как получить координаты окна кроме GetWindowRect


2-1274860008
madmech
2010-05-26 11:46
2010.08.27
В D2010 перстало "работать" свойство у TDBGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский