DanZer
Гость
|
|
« : 05-03-2005 06:09 » |
|
Имеется база данных, написанная на Visual FoxPro 5. Фирма-разработчик сдохла, мне переучиваться как-то не с руки (тем более, что есть Delphi ) Летом накатал программку (в чем немало помогли данные здесь советы https://forum.shelek.ru/index.php/topic,4269.msg79998.html), которая работает совместно с имеющейся и берет информацию в ее базе. Вывод в DBGrid, фильтр и все такое... Короче - на конкурс красоты не выставишь, но работает. Теперь понадобилось сохранение выдаваемой информации в файл, в идеале - экспорт в Excel. Собсно, вопрос - как это можно сделать с минимальными усилиями и стандартными средствами Delphi 6?
|
|
|
Записан
|
|
|
|
|
DanZer
Гость
|
|
« Ответ #2 : 05-03-2005 09:56 » |
|
Спасибо, но перед тем, как передавать что-то или сохранять, нужно, чтобы эти данные имелись. А как их можно вытащить из цепочки ADOConnection->ADODataSet->DBGrid? PS Вроде нашел: http://delphiworld.by.ru/base/ado_in_delphi.html Спасибо за ссылку Но, если еще какие советы по теме будут - тоже приму с благодарностью.
|
|
« Последнее редактирование: 05-03-2005 10:04 от DanZer »
|
Записан
|
|
|
|
Alf
Гость
|
|
« Ответ #3 : 05-03-2005 10:44 » |
|
Тогда пардон. Из первого поста вроде бы следует, что все уже сделано, включая вывод в DBGrid. То есть данные готовы, остается только выгрузит в Excel.
Так как же все обстоит на самом деле, что сделано и что осталось? Желательно подробнее, чтобы тем, кто пытается помочь, не додумывать самим недосказанное.
|
|
|
Записан
|
|
|
|
DanZer
Гость
|
|
« Ответ #4 : 05-03-2005 13:18 » |
|
Собственно, дела обстоят так: 1. Данные отображаются с помощью цепочки ADOConnection->ADODataSet->DBGrid. 2. Проходя эту цепочку фильтруются с помощью обработчика OnFilterEvent в ADODataSet. 3. DBGrid берет их для отображения именно из ADODataSet, причем уже в готовом, отфильтрованном, отсортированном и обработанном виде, не внося никаких изменений.
Так что данные-то готовы, но я могу лишь выводить их на экран для просмотра, но не сохранять куда-либо для вставки в отчеты и/или распечатки. DBGrid свойства Cells не имеет, так что как вытащить данные из базы для сохранения в файл/передачи по OLE - не знаю. Да и, по идее, их надо напрямую с ADODataSet снимать, нет?
В принципе, меня интересует задача в общем виде: как получить из объекта TDataSet содержащиеся в нем записи. Подойдут и советы по схожим темам, скажем, получение данных из таблицы через BDE DataSource - а дальше я уже по аналогии.
Пока самое близкое, что я нашел - DataSetPageProducer для выдачи данных в html. Но не совсем то: а) С ним еще надо разбираться - может это и совсем не то, что я понял из описания. б) Даже если и то, слишком уж извращенный метод получается - экспорт в html, обратный импорт...
|
|
|
Записан
|
|
|
|
x77
Модератор
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #5 : 07-03-2005 15:42 » |
|
о, господи... а чем не устраивает Next в купе с for i := 0 to Fields.Count - 1 do a := Fields .Value?
|
|
|
Записан
|
|
|
|
DanZer
Гость
|
|
« Ответ #6 : 07-03-2005 21:52 » |
|
Чем не устраивает? Гм, наверное, тем, что не знал я такого способа В справке и примерах нашел почему-то только вывод в DBGridы, DBEditы и иже с ними. Спасибо за помощь.
|
|
|
Записан
|
|
|
|
|
krulik
Гость
|
|
« Ответ #8 : 18-03-2005 16:33 » |
|
Загляни на эту страницу там децл есть по твоему вопросу http://www.kornjakov.ru. А вообще самый надежный способ работы с екселем это записать макрос в самом екселе, а потом путем несложных операций перевести полученный код в делфу (по крайней мере я так делаю). Также загляни в архив там часть материалов которые я накопал в инете. Если че то ... [attachment удален администратором]
|
|
|
Записан
|
|
|
|
DanZer
Гость
|
|
« Ответ #9 : 19-03-2005 00:04 » |
|
Спасибо, в принципе данной выше информации уже хватило (тем более, что я архив delphiworld скачал для более внимательного ознакомления), уже все работает. Но, тем не менее - спасибо за помощь.
|
|
|
Записан
|
|
|
|
RomCom
|
|
« Ответ #10 : 14-04-2005 01:42 » |
|
Самое простое - через FastReport. Строиш отчет как тебе надо и делаеш экспорт. v3 поддерживает HTML, Excel, RTF, TIFF, BMP и PDF.
|
|
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
|