Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
6-1134491378
Sysanin
2005-12-13 19:29
2006.03.26
Перехват пакетов


2-1141672750
mrAndersen
2006-03-06 22:19
2006.03.26
Текст


2-1142333201
Sonnetrut
2006-03-14 13:46
2006.03.26
База данных - файл Excel


2-1142279229
LordOfRock
2006-03-13 22:47
2006.03.26
Дерево и много текста


15-1141183929
Mozart
2006-03-01 06:32
2006.03.26
заблокировать dvd





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский