Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2012, 21:53   #11
Russon2007
Пользователь
 
Регистрация: 15.11.2011
Сообщений: 16
По умолчанию

подчистил немного ... )))

Последний раз редактировалось Russon2007; 14.05.2012 в 00:48. Причина: Добавление
Russon2007 вне форума Ответить с цитированием
Старый 13.05.2012, 22:03   #12
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Упс, забыл строчку переместить.
Но все равно может не работать, так как у меня-то нет заполненного стринггрида, на котором можно проверить.
Код:
procedure TForm10.Button6Click(Sender: TObject);
var
  W, Table: Variant;
  i, j, k: Integer;

begin
  k := 0;
  with StringGrid1 do
  begin
    for i := 1 to RowCount - 1 do
      if (Cells[8, i] = 'ЗАМЕНА') or (Cells[6, i] = 'РЕМОНТ') then
        inc(k);  
    W := CreateOleObject('Word.Application');
    W.Documents.Add;
    W.ActiveDocument.Tables.Add(W.ActiveDocument.Range, k + 1, ColCount);
    Table := W.ActiveDocument.Tables.Item(1);
    Table.Style := 'Сетка таблицы';
    for j := 0 to ColCount - 1 do
      Table.Cell(1, j + 1).Range.Text := Cells[j, 0];
    k := 1;
    for i := 1 to RowCount - 1 do
      if (Cells[8, i] = 'ЗАМЕНА') or (Cells[6, i] = 'РЕМОНТ') then
      begin
        for j := 0 to ColCount - 1 do
          Table.Cell(k, j + 1).Range.Text := Cells[j, i];
        inc(k);
      end;
    W.Visible := True;
  end;
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 13.05.2012, 22:16   #13
Russon2007
Пользователь
 
Регистрация: 15.11.2011
Сообщений: 16
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Упс, забыл строчку переместить.
Но все равно может не работать, так как у меня-то нет заполненного стринггрида, на котором можно проверить.
Код:
procedure TForm10.Button6Click(Sender: TObject);
var
  W, Table: Variant;
  i, j, k: Integer;

begin
  k := 0;
  with StringGrid1 do
  begin
    for i := 1 to RowCount - 1 do
      if (Cells[8, i] = 'ЗАМЕНА') or (Cells[6, i] = 'РЕМОНТ') then
        inc(k);  
    W := CreateOleObject('Word.Application');
    W.Documents.Add;
    W.ActiveDocument.Tables.Add(W.ActiveDocument.Range, k + 1, ColCount);
    Table := W.ActiveDocument.Tables.Item(1);
    Table.Style := 'Сетка таблицы';
    for j := 0 to ColCount - 1 do
      Table.Cell(1, j + 1).Range.Text := Cells[j, 0];
    k := 1;
    for i := 1 to RowCount - 1 do
      if (Cells[8, i] = 'ЗАМЕНА') or (Cells[6, i] = 'РЕМОНТ') then
      begin
        for j := 0 to ColCount - 1 do
          Table.Cell(k, j + 1).Range.Text := Cells[j, i];
        inc(k);
      end;
    W.Visible := True;
  end;
end;
Выбивает следующее..
Изображения
Тип файла: jpg Ошибка2.JPG (86.2 Кб, 142 просмотров)
Тип файла: jpg Ошибка3.JPG (83.4 Кб, 140 просмотров)
Russon2007 вне форума Ответить с цитированием
Старый 13.05.2012, 22:21   #14
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Попробуйте удалить эту строчку (Table.Style := 'Сетка таблицы'; ).
Я никогда не работал с word через ole.
Я надеялся, что ваш код рабочий, и просто добавил требуемое
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 13.05.2012, 22:26   #15
Russon2007
Пользователь
 
Регистрация: 15.11.2011
Сообщений: 16
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Попробуйте удалить эту строчку (Table.Style := 'Сетка таблицы'; ).
Я никогда не работал с word через ole.
Я надеялся, что ваш код рабочий, и просто добавил требуемое
Все работает, только в ворд выводит почему-то саму шапку ((( хотя в даных столбиках значения присутствуют...
Russon2007 вне форума Ответить с цитированием
Старый 13.05.2012, 22:47   #16
Russon2007
Пользователь
 
Регистрация: 15.11.2011
Сообщений: 16
По умолчанию

Может еще кто-то подскажет?
Russon2007 вне форума Ответить с цитированием
Старый 13.05.2012, 23:58   #17
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Сейчас установил Word 2007, а то с Word 2010 starter не работала программа.
Запустил и проверил.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  W, Table: OLEVariant;
  i, j, k: Integer;

begin
  k := 0;
  with StringGrid1 do
  begin
    for i := 1 to RowCount - 1 do
      if (Cells[1, i] = 'ЗАМЕНА') or (Cells[1, i] = 'РЕМОНТ') then
        inc(k);
    W := CreateOleObject('Word.Application');
    W.Documents.Add;
    W.ActiveDocument.Tables.Add(W.ActiveDocument.Range, k + 1, ColCount);
    Table := W.ActiveDocument.Tables.Item(1);
    Table.Style := 'Сетка таблицы';
    for j := 0 to ColCount - 1 do
      Table.Cell(1, j + 1).Range.Text := Cells[j, 0];
    k := 2;
    for i := 1 to RowCount - 1 do
      if (Cells[1, i] = 'ЗАМЕНА') or (Cells[1, i] = 'РЕМОНТ') then
      begin
        for j := 0 to ColCount - 1 do
          Table.Cell(k, j + 1).Range.Text := Cells[j, i];
        inc(k);
      end;
    W.Visible := True;
  end;
end;
Во-первых, у меня другое расположение надписей ремонт и замена, соответственно, измените на свои.
Во-вторых, k=2 - начальное значение, а не 1.
Кстати, свойство style у меня работает (без него таблица получается без рамки).
Да, не нужно полностью цитировать чужие посты, а то можно и штраф получить
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 14.05.2012 в 00:13.
BDA вне форума Ответить с цитированием
Старый 14.05.2012, 00:14   #18
Russon2007
Пользователь
 
Регистрация: 15.11.2011
Сообщений: 16
По умолчанию

Вроде все получилось...

Последний раз редактировалось Russon2007; 14.05.2012 в 00:30. Причина: Нашел решение проблемы
Russon2007 вне форума Ответить с цитированием
Старый 14.05.2012, 00:17   #19
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Во-первых, убедительнейшая просьба убрать из вашего поста цитату, т.к. крайне велика возможность получения штрафа.
Во-вторых, если можете, то выложите весь проект в zip-папке, а то "гадать" по картинке я пока не научился
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 14.05.2012, 00:27   #20
Russon2007
Пользователь
 
Регистрация: 15.11.2011
Сообщений: 16
По умолчанию

СОРИ "BDA", большое тебе спасибо, сразу видно профи по этому делу!!!! я сам накрутил!!! там всего навсего в колонках надо местами поменять надписи... Во дела!!! а я уже и не надеялся что получится... запарелся полностью..))))))[/QUOTE]
Russon2007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
хранимая процедура поиска в ibexpert malya Помощь студентам 11 17.03.2012 00:08
Процедура поиска(Pascal) tarakanet Помощь студентам 17 23.01.2012 21:53
Процедура поиска значений Bur Microsoft Office Excel 8 10.05.2011 18:53
процедура поиска PlayHard Помощь студентам 0 15.05.2010 10:46
Процедура поиска и копирования frodor999 Помощь студентам 1 06.12.2009 15:29