Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
ВнизСохранени Таблицы в .txt Найти похожие ветки
← →
anubis © (2006-03-09 11:54) [0]Уважаемые мастера подскажите пожалуста как Сохранить таблицу в формате .txt или перенести её в Memo только чтоб она была как таблица а не как сбор слов.
Заранее благодарен
← →
vovnuke © (2006-03-09 12:00) [1]а хранить её в *.txt, а также показывать данные в Memo это принципиально?
← →
anubis © (2006-03-09 12:04) [2]мне нужно чтоб эту таблицу можно было созранить в *.txt и можно было распечатать распечать. в принципе я перенёс её в Memo но она выглядит ужасно.
← →
msguns © (2006-03-09 12:08) [3]Лучше всего таблицу выгружать в один из распространенных печатных фрматов, "понимающих" таблицы. Например, эксель или хатмель.
← →
Sergey13 © (2006-03-09 12:10) [4]2[2] anubis © (09.03.06 12:04)
Для распечатки таблицы вовсе не обязательно сохранять ее в TXT или в Мемо.
← →
anubis © (2006-03-09 12:11) [5]а как её тогда печатать или как её выгрузить в Ексель
← →
Sergey13 © (2006-03-09 12:14) [6]2 [5] anubis © (09.03.06 12:11)
>а как её тогда печатать
С помощью генераторов отчетов. Например КвикРепорт, ФастРепорт и т.п.
← →
msguns © (2006-03-09 12:16) [7]>Sergey13 © (09.03.06 12:14) [6]
>С помощью генераторов отчетов. Например КвикРепорт, ФастРепорт и т.п.
Quick - отстой, Fast - платный. А, главное, оба требуют конструирования отчетов, что для универсальной технологии выгрузки любых таблиц неприемлимо.
← →
anubis © (2006-03-09 12:18) [8]а по другому никак?
я вообщето пока далеко не мастер я только учусь можно как нибуд по подробней я не знаю что такое
> Например КвикРепорт, ФастРепорт и т.п.
← →
msguns © (2006-03-09 12:22) [9]Забудьте про [6],- там Серега не подумав ляпнул ;)
Экспорт в эксель:
http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=502
← →
Sergey13 © (2006-03-09 12:22) [10]2[7] msguns © (09.03.06 12:16)
>Quick - отстой,
Да ладно - нормальный он.
>Fast - платный.
19 убитых енотов, если мне память не изменяет, не велика плата.
>что для универсальной технологии выгрузки любых таблиц неприемлимо.
Тебе бы все универсальное! А деньги на чем зарабатывать? 8-)
2[8] anubis © (09.03.06 12:18)
> Например КвикРепорт, ФастРепорт и т.п.
Это генераторы отчетов.
← →
anubis © (2006-03-09 12:23) [11]Спасибо почитаю поучусь надеюсь всё получится!! :)
← →
Sergey13 © (2006-03-09 12:26) [12]2 [9] msguns © (09.03.06 12:22)
>Забудьте про [6],- там Серега не подумав ляпнул ;)
Папрашу без инсинуаций! 8-)
В чем я не прав?
← →
Плохиш © (2006-03-09 12:28) [13]
> anubis © (09.03.06 12:04) [2]
> мне нужно чтоб эту таблицу можно было созранить в *.txt
> и можно было распечатать распечать. в принципе я перенёс
> её в Memo но она выглядит ужасно.
Надо установить моноширинный шрифт (Courier).
← →
anubis © (2006-03-09 12:33) [14]
> Плохиш © (09.03.06 12:28) [13]
> Надо установить моноширинный шрифт (Courier).
это что такое?
оно у меня полючается не как таблица а как сБор слов
Имя Фамилия адрес
Вася Петров Там
Николай Иванов Тут
← →
anubis © (2006-03-09 12:35) [15]первые аыстраеваеш нормально а потом остальные уже прыгают потому что кол. символв везде разное
← →
msguns © (2006-03-09 12:36) [16]>Sergey13 © (09.03.06 12:26) [12]
>В чем я не прав?
Что ты, что ты, Серега, разве ты можешь быть не прав ? ;)
Ты сабж внимательно читал ? А если да, то там не написано, что надо распечатать таблицу. Кроме того, не сказано вообще ничего о какой-то конкретной таблице, а это подразумевает что человеку нужна технология выгруза в печатаемые файла произвольной таблицы.
Возможно, что задача стоит такая, что надо таблицу перенести на другой комп, чтобы там можно было ее "прочитать" и напечатать, возможно подправив. Тут оба твоих насоветованных репорта нервно курят в стороне (пардон, по поводу фаста беру слова назад, не спал с ним - не знаю)
← →
msguns © (2006-03-09 12:40) [17]>anubis © (09.03.06 12:35) [15]
>первые аыстраеваеш нормально а потом остальные уже прыгают потому что кол. символв везде разное
Делайте через Эксель. Это самый простой из правильных методов. Когда получится простой вывод, учитесь работать с шаблонами экселя - ширины колонок, фонт, цвет и т.д. можно заранее выставить в шаблоне, после чего просто выгрузить туда данные таблицы. Пользователя совсем нетрудно научить самому делать шаблоны. При этом Вы навсегда избавитесь от претензий по поводу "неудобного" или "плохочитаемого/распечатываемого" отчета
← →
Sergey13 © (2006-03-09 12:42) [18]2[16] msguns © (09.03.06 12:36)
>Ты сабж внимательно читал ?
А ты?
>а это подразумевает что человеку нужна технология выгруза в печатаемые файла произвольной таблицы.
Это подразумевает, что человек не знает, что такое генератор отчетов, и пытается таким замысловатым способом решить тривиальную проблему. 8-)
>Что ты, что ты, Серега, разве ты можешь быть не прав ? ;)
Вот это правильно! Не спорю. 8-)
← →
msguns © (2006-03-09 12:45) [19]>Sergey13 © (09.03.06 12:42) [18]
>Это подразумевает, что человек не знает, что такое генератор отчетов, и пытается таким замысловатым способом решить тривиальную проблему. 8-)
В телепаторе вклчился режим "осенило !" ?
Снимаю шляпу, галстук, ботинки.. Что там еще полагается снять в таких случаях ?
;)
← →
anubis © (2006-03-09 13:15) [20]
> msguns ©
извини конечно может это и не тебе надо задовать но не работает.
там ошибка.
← →
msguns © (2006-03-09 13:19) [21]>anubis © (09.03.06 13:15) [20]
Где "там" и что за "ошибка" ?
У меня все работает.
← →
anubis © (2006-03-09 13:23) [22]
> msguns © (09.03.06 13:19) [21]
> Где "там" и что за "ошибка" ?
>
ExcelApp :=CreateOleObject("Excel.Application");
выдаёт ошибку
[Error] Unit1.pas(45): Undeclared identifier: "CreateOleObject"
что делать?
← →
anubis © (2006-03-09 13:30) [23]Может это из-за того что у меня Офис 2003?
← →
msguns © (2006-03-09 14:02) [24]В тексте по указанной ссылке жирным по белому:
Во всех случаях следует подключить модули ComObj и ActiveX
← →
anubis © (2006-03-09 14:13) [25]
> Во всех случаях следует подключить модули ComObj и ActiveX
Подключил и ничего
Нет всё компилирует но ничего не показывает!
← →
msguns © (2006-03-09 14:13) [26]Код давайте
← →
msguns © (2006-03-09 14:17) [27]
uses
ComObj, Excel2000, OleServer, DB, Variants;
procedure XLExp_DataSetExport(Range: OleVariant; DataSet: TDataSet);
// Експорт данных из датасета в Excel-лист
// Область листа (Range) задается параметром Range
// Range задает область листа (непрерывная последовательность ячеек листа)
// начиная с которой будет итти заполнение из НД. При этом самой левой колонкой
// может любая колонка листа, а строкой - любая строка листа.
// Ячейки этой "линии" колонок должны содержать имена полей НД, данные которых
// будут помещаться в эти колонки
var
RangeLen,Column,Row,lich,i,x: integer;
ValueArray: OleVariant;
Str: string;
FieldArray: array [0..20] of string;
bm: TBookmark;
begin
// Строка начала района
Row:=XLExp_Sheet.Range[Range,EmptyParam].Row;
// Колонка начала района (левая крайняя)
Column:=XLExp_Sheet.Range[Range,EmptyParam].Column;
// Колонка конца района (правая крайняя)
RangeLen:=Column+(XLExp_Sheet.Range[Range,EmptyParam].Columns.Count-1);
// Переписать в массив FieldArray содержимое ячеек 1-й строки указанной области
// листа Excel (имена полей датасета).
// Предполагается, что их не должно быть более 21
x := 0;
for i := Column to RangeLen do
begin
Str := XLExp_Sheet.Cells.Item[Row,i].Formula; // Содержимое ячейки
Delete(Str,1,1); // Обрезаем первый (служебный) символ
FieldArray[x] := Str;
x := x+1;
end;
// Создать дин.массив размерностью RxC, где R - кол-во строк датасета,
// а C - кол-во колонок, заданное Range
ValueArray := VarArrayCreate([0,DataSet.RecordCount-1,0,XLExp_Sheet.Range[Range,EmptyParam].Columns.Count],varVariant);
lich := 0; // Индекс строки НД
// Подготовка датасета к сканированию
with DataSet do
begin
bm := GetBookmark; // Запомнить текущую запись
DisableControls;
First;
while not Eof do
begin
for i := 0 to XLExp_Sheet.Range[Range,EmptyParam].Columns.Count do
// Для каждой колонки Region определяется имя поля НД и значение
// этого поля записывается в дин.массив по адресу=индексу колонки
begin
if (FieldArray[i]<>"") then // Колонка имеет ссылку на имя поля ?
ValueArray[lich,i] := FieldByName(FieldArray[i]).AsString
else
ValueArray[lich,i] := "";
end;
lich := lich+1;
Next;
end;
EnableControls;
GotoBookmark(bm); // Вернуться в исходную (до сканирования) запись
FreeBookmark(bm);
end;
{ Выражение :
xlSheet.Range[Col[Column]+IntToStr(Row),Col[RangeLen]+IntToStr(Row+DataSet.RecordCount-1)]
представляет "экселовскую" адресацию типа "A10","H17", где буква - индекс колонки, а
число-индекс строки на листе Excel.
В нативном виде (в самом Excel`е) этот регион будет = "A10:H17"
}
// Перегнать в лист Excel (Ragion) значения из массива ValueArray
XLExp_Sheet.Range[XLExp_Col[Column]+IntToStr(Row),XLExp_Col[RangeLen]+IntToStr(Row+DataSet.RecordCount-1)].Value := ValueArray;
// Присвоить всем ячейкам региона Region цвет символов как у левой верхней ячейки
XLExp_Sheet.Range[XLExp_Col[Column]+IntToStr(Row),XLExp_Col[RangeLen]+IntToStr(Row+DataSet.RecordCount-1)].Font.Color := XLExp_Sheet.Range[Range,EmptyParam].Font.Color;
// Присвоить всем ячейкам региона Region цвет как у левой верхней ячейки
XLExp_Sheet.Range[XLExp_Col[Column]+IntToStr(Row),XLExp_Col[RangeLen]+IntToStr(Row+DataSet.RecordCount-1)].Interior.Color := XLExp_Sheet.Range[Range,EmptyParam].Interior.Color;
// Присвоить всем ячейкам региона Region рамки как у левой верхней ячейки
XLExp_Sheet.Range[XLExp_Col[Column]+IntToStr(Row),XLExp_Col[RangeLen]+IntToStr(Row+DataSet.RecordCount-1)].Borders.LineStyle := XLExp_Sheet.Range[Range,EmptyParam].Borders.LineStyle;
end;
← →
msguns © (2006-03-09 14:35) [28]Поправка:
Строки "пролога" о именах полей-колонках эксель-листа не принимать во внимание.
← →
Виталий Панасенко (2006-03-09 14:50) [29]
> msguns © (09.03.06 12:16) [7]
> >Sergey13 © (09.03.06 12:14) [6]
> >С помощью генераторов отчетов. Например КвикРепорт, ФастРепорт
> и т.п.
>
> Quick - отстой, Fast - платный. А, главное, оба требуют
> конструирования отчетов, что для универсальной технологии
> выгрузки любых таблиц неприемлимо.
Универсальное всегда уступает специализированному
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.04 c