Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.20;
Скачать: CL | DM;

Вниз

Формирование отчетов в Excel   Найти похожие ветки 

 
ATLANTIDO ©   (2002-05-16 15:59) [0]

Возникла проблема:
для формирования отчетов пробовал QrEPORT - полный отстой. Решил использовать в этих целях Excel. Задача - получить по запросу из таблицы в сетку данные, "передать" их в таблицу Экселя и распечатать. Использую компонент ExcelApplicetion.
Решил начать с простого, к примеру, записать в ячейку 2:5 строку
"qaqwerty". Делаю так:
1)ApplicationExcel.Connect;
2)Устанавливаю количество листов для вновь создаваемых книг =1
3)Создаю рабочую книгу.
4) Обращаюсь к единственному листу, и не нахожу у него свойства "cells".
Купил книгу по макросам - там вообще написано типа
ExcelApplication.WorkBook("aaa").WorkSheet("bbb").Cells(2,5)="qwerty";
Как быть ?


 
Johnmen ©   (2002-05-16 16:40) [1]

>для формирования отчетов пробовал QrEPORT - полный отстой

Плохо, очень плохо пробовал....


 
ATLANTIDO ©   (2002-05-16 16:49) [2]

А как в нем сетку на таблице сделать ???


 
Johnmen ©   (2002-05-16 17:01) [3]

Frame у бендов и TQRShape....


 
ATLANTIDO ©   (2002-05-16 17:11) [4]


> Johnmen © (16.05.02 17:01)
> Frame у бендов и TQRShape....

Frame у бендов - сплошной глюк. Он для разных бендов может выводиться, а может и не выводиться. Шейп - тот же глюк.
пример: создаю отчет, при предпросмотре все выглядит так как надо, а при распечатке в некоторых бендах шейпы не печатаются.
Могу скриншот для наглядности показать. Еще был глюк - QRLabel печаталась, а потом перестала (при просмотре тоже все нормально).
Кроме этого Ексель для пользователя намного удобнее - он может изменять внешний вид в соответствии со своими желаниями,
а что можно изменить в отчете ???



 
Lusha ©   (2002-05-16 17:16) [5]

>ATLANTIDO © (16.05.02 17:11)
На то он и отчет, чтобы его нельзя было изменить. Документ, знаете ли... А если его можно подредактировать, то на фига тогда БД? Рисуй себе в Excel, что душе угодно...


 
ATLANTIDO ©   (2002-05-16 17:18) [6]


> >ATLANTIDO © (16.05.02 17:11)
> На то он и отчет, чтобы его нельзя было изменить. Документ,
> знаете ли... А если его можно подредактировать, то на фига
> тогда БД? Рисуй себе в Excel, что душе угодно...

Вот и правильно, хочу рисовать что душе угодно. Как ?
Достаточно простейшего примера записи строки в ячейку.


 
Lusha ©   (2002-05-16 17:26) [7]

>ATLANTIDO © (16.05.02 17:18)
Ну, так и рисуйте в QRReport... :)


 
Johnmen ©   (2002-05-16 17:28) [8]

>ATLANTIDO © (16.05.02 17:18) : Ты не врубился в Lusha © (16.05.02 17:16) !
А он тебе сказал - брось ты эти Дельфы и базы данных и переходи на Excel !

А по поводу ATLANTIDO © (16.05.02 17:11), так печатаешь неправильно...


 
uncle_m16 ©   (2002-05-16 19:23) [9]


> Johnmen © (16.05.02 17:28)
> >ATLANTIDO © (16.05.02 17:18) : Ты не врубился в Lusha
> © (16.05.02 17:16) !
> А он тебе сказал - брось ты эти Дельфы и базы данных и переходи
> на Excel !
>
> А по поводу ATLANTIDO © (16.05.02 17:11), так печатаешь
> неправильно...

Пиши на бейсике !


 
Whitefoot ©   (2002-05-16 21:11) [10]


рабочий пример;
ни один компонент со страницы Servers не использовался:


uses ComCtrls, ComObj;

var OleExcel: OleVariant;

----------

procedure TfmPrint.BitBtn1Click(Sender: TObject);
Const
FirstRow = 3;
var //hwndPrev : HWND;
NameSheet: String;
i,Hei : Integer;
Ws : Variant;
begin

OleExcel := CreateOleObject ("Excel.Application");
OleExcel.Visible := True;
OleExcel.Workbooks.Add;
//OleExcel.Worksheets.Add;
OleExcel.Worksheets[1].Select;
NameSheet := OleExcel.Worksheets[1].Name;
Ws := OleExcel.Worksheets[NameSheet];

Ws.Columns[1].ColumnWidth := 25;
Ws.Columns[2].ColumnWidth := 37;
Ws.Columns[3].ColumnWidth := 5;
Ws.Columns[4].ColumnWidth := 9;
Ws.Rows[FirstRow].RowHeight := 25;


Ws.Cells[FirstRow, 1].Value := "Заголовок стобца1";
Ws.Cells[FirstRow, 2].Value := "Заголовок стобца2";
Ws.Cells[FirstRow, 3].Value := "Заголовок стобца3";
Ws.Cells[FirstRow, 4].Value := "Заголовок стобца4";

Ws.Range[Ws.Cells[FirstRow, 1],Ws.Cells[FirstRow, 4] ].HorizontalAlignment := 3;

Ws.Range[Ws.Cells[FirstRow, 1],Ws.Cells[FirstRow, 4] ].Font.Name := "Times New Roman Cyr";
Ws.Range[Ws.Cells[FirstRow, 1],Ws.Cells[FirstRow, 4] ].Font.FontStyle := "полужирный курсив";
Ws.Range[Ws.Cells[FirstRow, 1],Ws.Cells[FirstRow, 4] ].Font.Size := 11;

Hei := FirstRow + SpinEdit1.Value;
For i := 1 to 4 do begin
Ws.Range[Ws.Cells[FirstRow, 1],Ws.Cells[Hei, 4] ].Borders[i].LineStyle := 1;
end;

with Datamodule1 do begin
table1.DisableControls;

For i := FirstRow + 1 to Hei do begin

Ws.Cells[i, 1].Value := table1Column1.AsString;
Ws.Cells[i, 2].Value := table1Column2.AsString;
Ws.Cells[i, 3].Value := table1Column3.AsString;
Ws.Cells[i, 4].Value := table1Column4.AsString;

table1.Next;
if table1.Eof then Break;
end;
end;//with

end;


 
Producer   (2002-05-17 06:52) [11]

А еще есть прекрасный компонент ExcelReport by Adrian Gallero. Его можно взять на http://community.borland.com
Вся его прелесть заключается в простоте использования. Сначала в Excel"e строишь шаблончик, а затем из Дельфы вызываешь у компонента единственный метод Run. И все!


 
vopros ©   (2002-05-17 09:44) [12]

>Producer (17.05.02 06:52)
Ну и где его там скачать?


 
GreyHairs   (2002-05-17 11:17) [13]

Погляди здесь - использую несколько лет, пока хватало
http://www.afalinasoft.com/rus/xl-report/index.html



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

Текущий архив: 2002.06.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
1-65139
DenNNis
2002-06-07 10:01
2002.06.20
Мне не нужна системная кнопка закрытия формы !!!


1-65108
AndrewK
2002-06-06 14:26
2002.06.20
Как внедрить внешнее приложение в свое?


1-65005
zeos
2002-06-08 11:13
2002.06.20
Как избавиться от перерисовки формы?


14-65238
Explorer
2002-05-17 11:28
2002.06.20
Кто работал с компонентами Flat Controls с AfalinaSoft.com?


1-65031
MSergey
2002-06-09 16:20
2002.06.20
TListView