Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как распечатать на принтере таблицу DBGrid1, Как распечатать на принтере таблицу DBGr 
:(
    Опции темы
Sett
  Дата 20.12.2004, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 20.12.2004
Где: Подольск

Репутация: нет
Всего: нет



Друзья мои помогите, как можно распечатать базу базу данных т.е. DBGrid1-таблицу. Ни как не пойму. Если можно подскажите как можно оформить распечаку на листе т.е. клеточки раставить ну чтоб красиво было. Помогите буду очень благодарен!


Это пример, как хотелось чтоб так выгладело на листе примерно,
ну там можно было чтоб изменить форму линий.

| Ф.И.О | пол | возраст | размер головы |
|---------------------------------------------------------------------------
| Петечкин В.В | муж. | 23 | 61 |
|--------------------------------------------------------------------------|
| Селёдкин Р.Р | муж | 21 | 12 |
| | жен | 97 | 76 |

Если можно дайте пример по проще, я самоучка, боюсь в сложном
коде не разбирусь.

СПАСИБО ДРУЗЬЯ МОИ!!!
PM MAIL WWW ICQ   Вверх
Akella
  Дата 20.12.2004, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Ставишь библиотеку EhLib, там есть компонента для печати DBGrid`а
в противном случае пиши цикл по БД
типа DBGrid1.DataSource.DataSet - в текстовый файл, можно в TRichEdit или TMemo

что-то типа этого, только поменяй TStringGrid на таблицу БД
Код

procedure TfmMain.StringGridToText(sg:TStringGrid);
var
u,iCol,iRow:integer;
s:string;
begin
For iRow:=1 to sg.RowCount-1 do begin
  For iCol:=0 to sg.ColCount-1 do begin
    sg.Cells[iCol,iRow]:=TrimRight(sg.Cells[iCol,iRow]);
    sg.Cells[iCol,iRow]:=TrimLeft(sg.Cells[iCol,iRow]);
    if (iCol=sg.ColCount-1)  then//чтобы не добавлять последний tab
      s:=s+sg.Cells[iCol,iRow]
    else begin
      if iCol=0 then s:=s+sg.Cells[iCol,iRow]+' ' else
        s:=s+sg.Cells[iCol,iRow]+#9;
    end;//else
  end;//For o:=0 to sg.RowCount-1 do begin
  re1.Lines.Add(s);
  s:='';
end;//For i:=0 to sg.ColCount-1 do begin
  re1.Lines.Add('----------------------------------------------');
//очистка StringGrid
For u:=0 to sg.RowCount-1 do
 sg.Rows[u].Clear;
end;//proc



попробуй
Код

procedure TfmMain.DBGridToText(dbg:TDBGrid,re:TRichEdit);
var
u,iCol,iRow:integer;
s:string;
begin
For u:=0 to dbg.DataSource.DataSet.RecordCount-1 do begin
 s:=dbg.DataSource.DataSet.Fiels[0].AsString+#9+//+Tab для выравнивания
       dbg.DataSource.DataSet.Fiels[1].AsString+#9+
       dbg.DataSource.DataSet.Fiels[2].AsString+#9+
 re.Lines.Add(s);
 s:='';
end;//for
re.Print(DateTimeToStr(now));
end;//proc



можно ставить генераторы отчетов, Rave слишком сложный,
а вот родной QReport - в самый раз, можно FastReport, да их много

Это сообщение отредактировал(а) dsergey - 20.12.2004, 14:14
PM MAIL   Вверх
Sett
Дата 20.12.2004, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 20.12.2004
Где: Подольск

Репутация: нет
Всего: нет



dsergey.Спасибо дружище, сегодня же после работы попробую как ты говоришь.
PM MAIL WWW ICQ   Вверх
Sett
Дата 24.12.2004, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 20.12.2004
Где: Подольск

Репутация: нет
Всего: нет



Друзья мои, а есть ещё какие нибудь способы?
PM MAIL WWW ICQ   Вверх
Akella
Дата 30.12.2004, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата
Друзья мои, а есть ещё какие нибудь способы?

Конечно есть smile
PM MAIL   Вверх
Make
Дата 6.1.2005, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 5.1.2005

Репутация: нет
Всего: нет



dsergey мож сорс кинешь, очень прошу, я пробовал, что-то у меня не получается !
или на мыло hasan23сабакаrambler.ru
Спасибо !
PM MAIL   Вверх
Akella
Дата 8.1.2005, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Ставишь EhLib 3.5 (бесплатные компоненты для жителей бывшего ЧиЧиЧиПи, как сказал М.Задорнов)

Там есть компонента PrintGrid - больше тебе ничего не нужно. Она все сама делает, и печать и предпросмотр. Библиотека из разряда "must have" smile
Главное подключить ее к сетке DBGrid. Как изменяешь сетку и будет распечатан отчет, т.е. шрифты, ширина столбцов, заголовки. У этой компоненты еще есть свойсва типа текст до таблицы и после таблицы, текст до отчета и после отчета (TRichEdit), так, что даже на цветном принтере можно выкру smile тасы делать.
PM MAIL   Вверх
Bes
Дата 7.4.2005, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



По-моему с помощью обычного квикрепорта можно вывести таблицу, тем более из базы данных и никаких циклов не надо.
PM MAIL   Вверх
Петрович
Дата 7.4.2005, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 6
Всего: 55



Можно конечно и EhLib. Сам им пользуюсь smile. Но, считаю что надо все-таки освоить хоть какой нибудь репортер. Думаю Вам в последствии захочется не только грид выводить. Все-таки репортеры для вывода более приспособлены чем PrintGrid. PrintGrid это так, побыстренькому вывести.
Лично я уже давно пользуюсь FastReport, но, есть и много других хороших.



--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
DimW
Дата 8.4.2005, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



FastReport- рулит!!!!
PM MAIL ICQ   Вверх
Marriage
Дата 11.4.2005, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 4.5.2004
Где: Таганрог

Репутация: нет
Всего: 2



поставь DxDbGrid. Там по-моему есть SaveToHTML, exel и пр.
А потом открываешь в ворде и печатаешь.

Это сообщение отредактировал(а) Marriage - 11.4.2005, 22:18


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
zЫrka
Дата 19.4.2005, 05:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А мне нужно что-то вроде Report-компонента (т.е. для вывода таблицы с данными), но не из базы данных, а моей собственной таблицы - генерируемой на лету из двухмерного массива строк.
С базами данных работать не умею. Мне нужно просто чтобы столбики и строки были красиво автоматически отформатированы на листе. Есть такие компоненты?
  Вверх
Петрович
Дата 19.4.2005, 06:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 6
Всего: 55



to zЫrka
Цитата(DimW @ 8.4.2005, 08:59)
FastReport- рулит!!!!




--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
DimW
Дата 19.4.2005, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



Могу дать url где можно скачать FastReport, но т.к. он скорей всего ворованный ссылку в форум не выложу...

вот мыло: [email protected] (в теме укажите "FastReport")

надеюсь правила я не нарушил.... smile
PM MAIL ICQ   Вверх
zЫrka
Дата 19.4.2005, 21:37 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А у меня на cd-диске есть .-)

Спасибо, бум смотреть

  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1035 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.