Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 29.01.2012
Сообщений: 55

Сохранить как... и Печать ИЗ DBGrid

14.02.2012, 15:24. Показов 4922. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помочь описать программным кодом процесс сохранения и печати данных из таблицы.

Есть таблица DBGrid, в которую из Access выводятся данные посредством запроса ADOQuery, DBConnection и DataSourceЮ

Нужно реализовать пункт меню сохранить как. Для этого правильно ли использовать компонент со вкладки Dialog / SaveDialog? и в свойстве Caption указать типы файлов для сохранения (указываю txt и xls). А для печати PrintDialog?

Для сохранения пишу в процедуре обработки нажатия на кнопку "сохранить":
Delphi
1
2
if (SaveDialog1.Execute) then
          .....(незнаю что написать)......SaveToFile(SaveDialog1.FileName);
Подскажите пожалуйста!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2012, 15:24
Ответы с готовыми решениями:

Вывод на печать DBGrid из TabSheet на печать в файл ворда
Здравствуйте, не могли бы помочь с выводом на печать? В делфи 10 подключена база и информация выводится в DBGrid на TabSheet. Необходимо...

Как вывести на печать содержимое DBGrid?
Добрый день! Подскажите пожалуйста как вывести на печать содержимое DBGrid. Printer.Print DBGrid1.Text - печатает только первую ячейку...

Как пустить на печать содержимое из DBGrid?
Please help... Как пустить на печать содержимое из DBGrid в Delphi 6?

4
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
14.02.2012, 15:56
А что, собственно, сохранять собираетесь. Данные, которые Вы видите в DBGrid сохраняются при необходимости в БД. Как еще Вы хотите их сохранить.
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
14.02.2012, 19:11
У него про "БД" ни слова. Похоже, что на информатике училка сказала "Напишите чтоб таблицу можно было сохранять и печатать". При этом что она имела в виду под словом "таблица" ТС прослушал или не понял.
0
0 / 0 / 0
Регистрация: 29.01.2012
Сообщений: 55
15.02.2012, 07:51  [ТС]
Цитата Сообщение от SAMZ Посмотреть сообщение
А что, собственно, сохранять собираетесь. Данные, которые Вы видите в DBGrid сохраняются при необходимости в БД. Как еще Вы хотите их сохранить.
сохранить это не для меня а для пользователей моей программы... чтобы им можно было нажать кнопку СОхранить как... и в диалоговом окне выбрать путь для сохранения файла.

Добавлено через 2 минуты
Цитата Сообщение от MsGuns Посмотреть сообщение
У него про "БД" ни слова. Похоже, что на информатике училка сказала "Напишите чтоб таблицу можно было сохранять и печатать". При этом что она имела в виду под словом "таблица" ТС прослушал или не понял.
в таблицу DBGrid выгружаются данные посредством запроса из БД Access.
Эти данные нужно выгрузить в xls и txt (нажав "сохранить как"). и Печатать (кол-во столбцов всегда одинаковое и равно 3)
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
15.02.2012, 12:41
Выгрузка в Txt:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  sFile: TStrings;
  BM: TBookMark;
  DS: TDataSet;
  s: string;
  NFile: TFileName;
begin
  with TSaveDialog.Create(Application) do
    try
      Filter := 'Text files (*.txt)|*.TXT';
      InitialDir := ExtractFilePath(Application.ExeName);
      if Execute then NFile := FileName;
    finally
      Free;
    end;
  if NFile>'' then   
    begin
     sFile := TStringList.Create;
     DS := DBGrid1.DataSource.DataSet;
     Screen.Cursor := crHourGlass;  // Курсор - в "часики" на время выгрузки
     DS.DisbaleControls;          // "Повесить" датасет для предотвращения  моргания экрана 
     BM   := DS.GetBookMark;  // Запомнить текущую строку датасета
     DS.First;
     while not DS.Eof do
       begin
        s := '';
        for i := 0 to DS.FieldCount-1 do
          if DS.Fields[0].IsNull then
             s := s+'<NULL>'+'/'
          else
             s := s+DS.Fields[0].AsString+'/';
        Delete(s,Length(s),1);   // Убрать лишний хвостовой разделитель
        sFile.Add(s);
        DS.Next;
       end;
     sFile.SaveToFile(NFile);
     DS.GoToBookMark(BM);     // Вернуться к исходной записи датасета (строке грида)
     DS.FreeBookMark(BM);
     DS.EnableControls;           // "Оживить" датасет
     Screen.Cursor := crDefault // Курсор - в первоночальный вид
    end;
end;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.02.2012, 12:41
Помогаю со студенческими работами здесь

Как сохранить dbgrid в в базу даных
Здравствуйте!!!! Проблема такова: 1) есть база данных создана через датабайс десктоп ну и там таблицы (в отдельной папке в папке с...

Сохранить информацию из DBGrid как HTM
Приветствую всех. Я создал программу с DBGrid, в водиться информация, но с публикацией на HTM возникает проблема. Вот на пример: void...

Как вывести на печать часть текста из DBGrid?
Помогите пожалуйсто... DBGrid подключается к БД, надо выделить мышью и вывести на печать часть текста по строкам допустим 3-5 и 7-8...

Как вывести из dbgrid на печать в html таблицу?
подскажите как вывести из dbgrid в html таблицу? Добавлено через 25 минут печать всмысле

Печать DBGrid - Как определить размер ячейки в TDBGrid
Необходимо распечатать DBGrid, потратил 2 дня на поиск и установку компонентов для отчетов для bcb 2009, и все БЕСПОЛЕЗНО!!! Пытался...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru