Форум: "Потрепаться";
Текущий архив: 2002.06.20;
Скачать: [xml.tar.bz2];
ВнизФормирование отчетов в 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c