Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.48 MB
Время: 0.007 c
14-65249
Snake2000
2002-05-18 18:22
2002.06.20
Помогите с джойстиком


3-64949
vlv
2002-05-27 19:11
2002.06.20
Параметры алиаса


3-64981
BoBka
2002-05-28 08:30
2002.06.20
DBISAM Database System Utility


14-65232
Alx2
2002-05-17 14:23
2002.06.20
Освежим воспоминания?


14-65217
wHammer
2002-05-17 14:43
2002.06.20
Без темы





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