Создание отчета в Excel
От: CO0lGirL  
Дата: 27.02.02 05:41
Оценка:
При соединении к Excelю для вывода данных я использую.. QUERY...

Query1.close;
query1.sql.add('Select AdvrtName, ConstrType, sum( price) from base.db where
AdvrtName='''+Edit1.Text'''' group by ConstrType, AdvrtName');
query1.active:=true;
из этого запроса я хочу чтобы ... из базы он выбирал AdvrtName, ConstrType(поля
базы) потом при их наличии соответственно .... складывал их сумму из третьего
поля price .............. (соответственно и группировал) .....
>>>>
примерно так ....
Если было
AdvrtName ConstrType Price
1 1 32
1 1 25
>>>>
чтобы в Excele было так........
AdvrtName ConstrType Price
1 1 57

в Qreporte получалось а вот в Excele он пишет ошибку почему?
>>>>
помогите пожалуйста
Re: Создание отчета в Excel
От: Xenia США  
Дата: 28.02.02 11:23
Оценка:
Здравствуйте CO0lGirL, Вы писали:

COGL>При соединении к Excelю для вывода данных я использую.. QUERY...


COGL>Query1.close;

COGL>query1.sql.add('Select AdvrtName, ConstrType, sum( price) from base.db where
COGL>AdvrtName='''+Edit1.Text'''' group by ConstrType, AdvrtName');
COGL>query1.active:=true;
COGL>из этого запроса я хочу чтобы ... из базы он выбирал AdvrtName, ConstrType(поля
COGL>базы) потом при их наличии соответственно .... складывал их сумму из третьего
COGL>поля price .............. (соответственно и группировал) .....
>>>>>
COGL>примерно так ....
COGL>Если было
COGL>AdvrtName ConstrType Price
COGL> 1 1 32
COGL> 1 1 25
>>>>>
COGL>чтобы в Excele было так........
COGL>AdvrtName ConstrType Price
COGL>1 1 57

COGL> в Qreporte получалось а вот в Excele он пишет ошибку почему?

>>>>>
COGL>помогите пожалуйста

А какую ошибку то? Что он говорит?
Re[2]: Создание отчета в Excel
От: CO0lGirL  
Дата: 28.02.02 12:14
Оценка:
Здравствуйте Xenia,
эту проблему я решила у меня теперь другая возникла если можно подскажите как сделать отчет в excele построенный по такому принципу>>>>>>
у меня 4 поля(1,2,3,4) на форме есть Edit1 потом я ввожу в него данные он ищет их по полю 1 ... через QUery примерно так ...
query1.sql.add('Select AdvrtName, ConstrType, sum( price) from base.db where
AdvrtName='''+Edit1.Text'''' group by ConstrType, AdvrtName');
потом так.......
XArr[2]:=Query1.FieldByName('4').AsString;
XArr[3]:=Query1.FieldByName('3').AsString;
XArr[4]:=Query1.FieldByName('2').AsString;
XArr[1]:=Query1.fieldbyName('1').asstring;
он выводит данные в столбцах ...
а мне нужно ... таким образом
чтобы они выводились в строку так можно?
Re: Создание отчета в Excel
От: CO0lGirL  
Дата: 28.02.02 12:19
Оценка:
кто нибудь подскажите как надо создавать шаблоны на отчеты.... если можно поподробнее.......
Re[2]: Создание отчета в Excel
От: retalik www.airbandits.com/
Дата: 28.02.02 13:25
Оценка:
Здравствуйте CO0lGirL, Вы писали:

COGL>кто нибудь подскажите как надо создавать шаблоны на отчеты.... если можно поподробнее.......


В твоем случае — трудно сказать, Query сильно портит простоту дела. :)

Я сделал наоборот. Приведу способ, который работает, и неплохо.

Готовится шаблон (натуральный .xlt в Ёкселе) с шапкой отчета, колонтитулами типа "Страница 1 из 5", постоянными строками шапки (если он многостраничный) и формулами между столбцами (об этом позже).

Все переменные ячейки (ячейки, значение которых будет изменяться в каждом отчете) заполняются специальными значениями.
Например, поле, которое будет содержать строку "Счет-фактура №129 от 12.02.2002", в шаблоне содержит строку "#title".

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

Как все это работает.
Программа на C++ готовит табличный набор данных (например, ADO Recordset) и передает его модулю создания отчета. Его можно писать на том же c++, но проще — на VB или на скриптовых языках (у меня работает на JScript), так как только этот модуль (или скрипт) будет взаимодействовать с Excel.
Модуль, соответственно, создает Workbook на базе шаблона, определяет его рабочую область и находит место, которое будет размножаться табличными данными, а также другие спец-ячейки (например, "#title"). Он, соответственно, заменяет спецсимволы на значения из набора данных и заполняет шаблон.

Это я упрощаю, если надо подробно — могу скрипт привести.

Преимущества такого подхода следующие: почти любые юзеры умеют работать в Excel, значит, могут легко изменять шаблон (шрифты, начертания, порядок столбцов и т.д.). Кроме того, в шаблоне нет ни одного макроса, что успокаивает, если есть проблемы с вирусами.
Дальше, если в строке данных есть, скажем, столбцы "цена" и "количество", то столбец "сумма" можно сделать на формулах Ёкселя — при копировании они посчитаются.

Ну и общий плюс — юзер часто любит сохранять отчеты на диск, а Excel для этого — самое то :)
Успехов,
Виталий.
Re[3]: Создание отчета в Excel
От: Vogul  
Дата: 01.03.02 07:01
Оценка:
Здравствуйте CO0lGirL, Вы писали:

Попробуй записать макрос в Excele, а потом посмотри его.
Я обычно для несложных отчетов делаю так, ставлю на запись макрос, набрасываю примерный отчет, останавливаю макрос, копирую его, вставляю в свой код, подправляю и все, 15 мин-отчет готов. К тому же в MSOffice есть файл с иерархией объектов Excel. А для сложных отчетов шаблоны, действительно идеальное решение.
Re[4]: Создание отчета в Excel
От: CO0lGirL  
Дата: 01.03.02 09:23
Оценка:
Здравствуйте Vogul, Вы писали:

V>Здравствуйте CO0lGirL, Вы писали:


V>Попробуй записать макрос в Excele, а потом посмотри его.

V>Я обычно для несложных отчетов делаю так, ставлю на запись макрос, набрасываю примерный отчет, останавливаю макрос, копирую его, вставляю в свой код, подправляю и все, 15 мин-отчет готов. К тому же в MSOffice есть файл с иерархией объектов Excel. А для сложных отчетов шаблоны, действительно идеальное решение.
>>>>>>>>>>>>>>>
да а только где взять пример создания шаблона?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.