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

Вниз

ОТЧЁТЫ !!! Скоро будут гореть   Найти похожие ветки 

 
ali_tash   (2005-02-26 22:15) [0]

Здравсвуйте
в скором времени мне придётся писать часть программы которая
отвечает за формирование отчётов.
так как отчётов более 100 ,то хотелось бы узнать как оптимальнее начать работу над этой задачей, чтоб на пол пути не пришлось всё переделовать.
Отчёты нужно выводить только в Word или Excel(не исползовать Rave и прочие) ,база InterBase

Подскажите какой нибуть генератор отчётов
либо ссылки по этой теме.
Буду благодарен за любую информацию


 
Fin ©   (2005-02-26 22:21) [1]

Я пользуюсь xlReport для Excel, быстро, удобно, мне нравиться.


 
vertal ©   (2005-02-26 22:46) [2]

> Отчёты нужно выводить только в Word или Excel
Если эти самые Word или Excel доступны, то можно их и использовать через OLE-автоматизацию. Гарантировано получение файла с правильным их родным форматом. Хотя по оптимальности это решение не котируется - ни по используемой памяти, ни по скорости.


 
GanibalLector ©   (2005-02-27 01:47) [3]

я использую позднее связывание(OLE).НравиЦа ;)
З.Ы. Некоторые советуют XML.Я пока не догнал,что это...Но понял,что это лучший вариант из всех существующий.


 
YurikGL ©   (2005-02-27 08:21) [4]


> Некоторые советуют XML.Я пока не догнал,что это..

http://www.microsoft.com/office/xml/default.mspx
http://www.microsoft.com/downloads/details.aspx?FamilyId=FE118952-3547-420A-A412-00A2662442D9&displaylang=en
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexcl2k2/html/odc_xmlss.asp

Суть в том, что генерируешь файл *.xml а потом его открываешь вордом или екселем.

А еще http://www.delphimaster.ru/articles/dbtoword/index.html


 
Набережных С. ©   (2005-02-27 09:53) [5]


> YurikGL ©   (27.02.05 08:21) [4]
> http://www.delphimaster.ru/articles/dbtoword/index.html

"Во Word-e", между прочим, есть еще и функция проверки правописания, ага. Глаз режет. И к двум способам "добывать информацию об интерфейсе ворда" недурно было-бы упомянуть и третий, самый логичный - встроенная справка по VBA, но это уже дело вкуса.


 
Anatoly Podgoretsky ©   (2005-02-27 11:13) [6]

А на что они еще пригодны, это же не рукописи, если у тебя нет печки, то отдай в отдаленные районы, у них с теплом проблемы.


 
YurikGL ©   (2005-02-27 11:45) [7]


> Набережных С. ©   (27.02.05 09:53) [5]

Там еще косяки есть... исправить то, конечно, надо...


 
atruhin ©   (2005-02-27 11:56) [8]

xlReport - очень много возможностей. Я делал вариант хранения SQL запросов на свободной странице Excel, получается одна процедура выбора отчета (все они хранятся в заданной директории), и одна процедура загрузки любого отчета, все отчеты делаются непосредственно в Excel (т.е. создаешь SQL выражения для получения данных, xlReport автоматически помещает эти данные в нужные ячейки).


 
ali_tash   (2005-02-27 12:16) [9]

atruhin

можеш пример привести
и откуда можно скачать xlReport ?


 
Набережных С. ©   (2005-02-27 12:21) [10]


> YurikGL ©   (27.02.05 11:45) [7]

Ты меня тоже извини, погорячился:( Надо было письмом, а не сюда...Извини.


 
Fin ©   (2005-02-27 12:24) [11]


> ali_tash   (27.02.05 12:16) [9]

http://www.afalinasoft.com/


 
atruhin ©   (2005-02-27 12:52) [12]

Простой пример:

procedure TfrmDateReport.FindReport;
var
 sr: TSearchRec;
 FileAttrs: Integer;
 i : word;
begin
 FileAttrs := 0;
 if FindFirst("*.xls", FileAttrs, sr) = 0 then begin
    repeat
      for i:=1 to length(sr.Name) do
        if sr.Name[i]="." then break;
      if sr.Name[i]="." then dec(i);
      edReportName.Items.Add(Copy(sr.Name,1,i));
    until FindNext(sr) <> 0;
    FindClose(sr);
 end;
end;

procedure TfrmDateReport.xlRepBeforeBuild(Report: TxlReportG2);
var
 S : string;
 i : word;
 IWorksheet : IxlWorksheet;
begin
 with xlRep do begin
   IWorksheet := IWorkbook.Worksheets.Item["Лист2"] as IxlWorksheet;
   IWorksheet.Range["SQLDTBegin", EmptyParam].Value :=
 DateTime2SQL(DateOf(edDateBegin.Date)+TimeOf(edTimeBegin.Time));
   IWorksheet.Range["SQLDTEnd", EmptyParam].Value :=
 DateTime2SQL(DateOf(edDateEnd.Date)+TimeOf(edTimeEnd.Time));
   i:=1;
   repeat
     S := IWorksheet.Range["B"+inttostr(i), EmptyParam].Value;
     if S <> "" then begin
       try
  Form1.unSQLCon.ExecSQL(S);
except
  IWorksheet.Range["SQLError", EmptyParam].Value := "error in SQL - "+s;
  break;
end;
     end;
     inc(i);
   until S = "";
   tbLog.Close;
   tbLog.Open;
 end;
end;

А в листе Excel примерно так(простейший отчет):
create temp table reptbl (i1 varchar ,i2 float, i3 varchar)
insert into reptbl select compip, sum(summa), sum(trafic) from log where DATETIME>"SQLDTBegin" and DATETIME<"SQLDTEnd"  group by compip
но это сделано для SQLite где есть поддержка временных таблиц, для Firebird нужно немного поменять алгоритм, а вообще в XlReport более 100 страниц документации на русском языке.


 
YurikGL ©   (2005-02-27 13:44) [13]


> Набережных С. ©   (27.02.05 12:21) [10]

Если можно - скинь наиболее критичные вещи. Я давно собирался эту статью переписывать.

А по поводу справки VB, за все это время не использовал ее ни разу. Записи макроса, обычно, хватает...


 
YurikGL ©   (2005-02-27 13:44) [14]


> YurikGL ©   (27.02.05 13:44) [13]

YurikGL(#-#)newmail.ru


 
Набережных С. ©   (2005-02-27 15:00) [15]

Ну я ж говорю: справка - дело вкуса:) А критиковать по делу - это ж надо читать вдумчиво, а лень куда девать?:)


 
GanibalLector ©   (2005-02-27 16:28) [16]

2 YurikGL ©   (27.02.05 08:21) [4]
Я конечно все понимаю,но не на английском :(
З.Ы. И когда ж я заставлю себя его выучить?


 
YurikGL ©   (2005-02-27 20:21) [17]


> GanibalLector ©   (27.02.05 16:28) [16]

Сохраняешь из ворда нужный файл в формате xml, а потом смотришь из блокнота, например, как он внутри устроен.


 
Sergey_Masloff   (2005-02-27 22:19) [18]

vertal ©   (26.02.05 22:46) [2]
>Если эти самые Word или Excel доступны
...
>Хотя по оптимальности это решение не котируется - ни по >используемой памяти, ни по скорости.
Ну если данные в Excel вставлять обращаясь к Cells(x,y) то конечно... Если же работать ренджами засовывая заранее сформированные массивы - никаких проблем со скоростью. Принтер гораздо медленнее печатает.


 
Alex--   (2005-02-28 02:54) [19]

И в строну FastReport можно посмотреть. Быстрота создания, генерации отчетов. Возможность правки пользователем форм. Любая сложность, внутренний (паскале подобный) скрипт.
Экспорт в Excel(XML), Excel(OLE) и др. И не дорого.



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

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

Наверх





Память: 0.5 MB
Время: 0.039 c
1-1110536680
Ag.Smit
2005-03-11 13:24
2005.03.27
Как сделать, чтобы с помощью моей программы открывать файлы?


1-1110458848
seregka
2005-03-10 15:47
2005.03.27
Zlib и несколько файлов


14-1110284287
Novice__
2005-03-08 15:18
2005.03.27
Беспроводная сеть


11-1092829854
omegaB
2004-08-18 15:50
2005.03.27
Передача файла с использованием KOLICS - KOLWSocket


6-1106823966
ТехникПТО
2005-01-27 14:06
2005.03.27
Установка EmbeddedWb





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский