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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2015, 13:03   #11
Nasle73
Пользователь
 
Регистрация: 09.05.2015
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
На какой строке ошибка? Умеешь программы трассировать?
// Вписываем в ячейки данные
WordTable.Cell(WordRow.Index, i).Range.Text :=Fields[i].AsString;

Шаблон https://yadi.sk/i/3tIIPqjYgfWuh
Не умею
Понял уже, что код не до конца доделан.
В конце пункта 1, где сейчас находится таблица, её не будет и там должна формировать моя таблица.

Последний раз редактировалось Nasle73; 16.05.2015 в 13:11.
Nasle73 вне форума Ответить с цитированием
Старый 16.05.2015, 13:38   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Понял уже, что код не до конца доделан.
Да. Он там только для того чтоб показать примерную схему действия.

Такс... Вот как бы я делал. Для начала узнал бы номер таблицы по порядку. Она должна быть там пустая.
Потом немного бы переписал бы свой пример:
Код:
try
WordApp:=CreateOleObject('Word.Application');
WordDoc:=WordApp.documents.add('Prikaz.dot');
WordTable := WordDoc.Tables.Item(Тут номер таблички);
With DataModule11.ADOTable6 do begin
 First;
 While not eof do begin
   WordRow:=WordTable.Rows.Add;
   for i:=0 to Fieldscount-1 do
      WordTable.Cell(WordRow.Index, i=1).Range.Text :=Fields[i].AsString;
   next;
 end;
end;

except 
 On E:Exception do ShowMessage('Ошибка: '+e.Message); 
end;
Соответственно в запросе должно быть столько полей, сколько в табличке. Шапку таблицы сохрани, а остальные строки удаляй.
Ну и сам список запрашиваемых полей должен соответствовать шалону.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.05.2015, 13:50   #13
Nasle73
Пользователь
 
Регистрация: 09.05.2015
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Потом немного бы переписал бы свой пример:
Код:
try
WordApp:=CreateOleObject('Word.Application');
WordDoc:=WordApp.documents.add('Prikaz.dot');
WordTable := WordDoc.Tables.Item(Тут номер таблички);
With DataModule11.ADOTable6 do begin
 First;
 While not eof do begin
   WordRow:=WordTable.Rows.Add;
   for i:=0 to Fieldscount-1 do
      WordTable.Cell(WordRow.Index, i=1).Range.Text :=Fields[i].AsString;
   next;
 end;
end;

except 
 On E:Exception do ShowMessage('Ошибка: '+e.Message); 
end;
в общем сделал, теперь стало писать такое
пробовал перисохранять, не помогает.
сам документ открывает нормально, а через программу, эта ошибка
и потом направляет на строку WordDoc:=WordApp.documents.add('Pri kaz.dot');
Изображения
Тип файла: jpg 1.JPG (37.1 Кб, 92 просмотров)

Последний раз редактировалось Nasle73; 16.05.2015 в 13:58.
Nasle73 вне форума Ответить с цитированием
Старый 16.05.2015, 14:00   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну вот этого я не знаю что там у тебя происходит.
Возможно в твоей версии оффиса по шаблону нужно открывать другими методами.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.05.2015, 14:14   #15
Nasle73
Пользователь
 
Регистрация: 09.05.2015
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну вот этого я не знаю что там у тебя происходит.
Возможно в твоей версии оффиса по шаблону нужно открывать другими методами.
Код:
procedure TForm17.Button5Click(Sender: TObject);
var
MsWord,Table, MyRange,WordApp,WordDoc,dm,WordTable,WordRow:Variant;
i,j:integer;
begin
try WordApp:=CreateOleObject('Word.Application');
 WordDoc:=WordApp.documents.add(ExtractFilePath(ParamStr(0))+'prikaz.dot');
WordTable := WordDoc.Tables.Item(1);
With DataModule11.ADOTable6 do begin
 First;
 While not eof do begin
   WordRow:=WordTable.Rows.Add;
   for i:=0 to FieldCount-1 do
      WordTable.Cell(WordRow.Index, i=1).Range.Text :=Fields[i].AsString;
   next;
 end;
end;
WordApp.Visible:=true;
except 
 On E:Exception do ShowMessage('Ошибка: '+e.Message);
 end;
 end;
end.
поменял немного код. прогресс есть, но пока ещё не правильно делает.в результате кода, он не правильно добавил записи. добавил записи только из последнего столбца в бд, в первый столбец в ms word.
Изображения
Тип файла: jpg 1.JPG (91.6 Кб, 121 просмотров)
Nasle73 вне форума Ответить с цитированием
Старый 16.05.2015, 14:25   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
i=1
Прекращай копипастить бездумно )
Ладно я описываюсь, потому что голова другим занята, но ты то можешь хоть немного внимание напрячь?

Еще раз повторю: Не надо брать код не глядя на него Иначе будешь еще долго ломать голову почему не работает.
Влючай мозги уже.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.05.2015, 14:38   #17
Nasle73
Пользователь
 
Регистрация: 09.05.2015
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Прекращай копипастить бездумно )
Ладно я описываюсь, потому что голова другим занята, но ты то можешь хоть немного внимание напрячь?

Еще раз повторю: Не надо брать код не глядя на него Иначе будешь еще долго ломать голову почему не работает.
Влючай мозги уже.
Извини за столь мою безграмотность. Пробовал менять значение i от 1 до 7. Я так понял там должно быть 7, как и количество столбцов. Но от этих действий ни чего не меняется.
Nasle73 вне форума Ответить с цитированием
Старый 16.05.2015, 14:47   #18
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ужос... там знак плюс должен быть а не равно.
Слюш, а может ну его? Программирование то? Купи препода и не морочь голову, все равно ничего не получится.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.05.2015, 14:54   #19
Nasle73
Пользователь
 
Регистрация: 09.05.2015
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ужос... там знак плюс должен быть а не равно.
Слюш, а может ну его? Программирование то? Купи препода и не морочь голову, все равно ничего не получится.
Всё получилось, огромное тебе спасибо, очень долго пытался это решить. Учту твой совет. Сам додуматься конечно не смог что там +. Вообще программировать мне нравиться. Просто я этим не так давно занимаюсь.
Проблема решена.
Код который получился в итоге
Код:
procedure TForm17.Button5Click(Sender: TObject);
var
MsWord,Table, MyRange,WordApp,WordDoc,dm,WordTable,WordRow:Variant;
i,j:integer;
begin
try WordApp:=CreateOleObject('Word.Application');
 WordDoc:=WordApp.documents.add(ExtractFilePath(ParamStr(0))+'prikaz.dot');
WordTable := WordDoc.Tables.Item(1);
With DataModule11.ADOTable6 do begin
 First;
 While not eof do begin
   WordRow:=WordTable.Rows.Add;
   for i:=0 to FieldCount-1 do
      WordTable.Cell(WordRow.Index, i+1).Range.Text :=Fields[i].AsString;
   next;
 end;
end;
WordApp.Visible:=true;
except
 On E:Exception do ShowMessage('Ошибка: '+e.Message);
 end;
 end;
Nasle73 вне форума Ответить с цитированием
Старый 16.05.2015, 15:47   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Сам додуматься конечно не смог что там +.
Ну тогда точно стоит задуматься о смене хобби или профессии.
Цитата:
Просто я этим не так давно занимаюсь.
Да какая разница в сроках? Внимательности у тебя не хватает, и в дальнейшем будешь вопрошать очевидные вещи. Как результат на форумах тебя будут охаивать и поливать... Ну разным стаффом. В основном вонючим. А ты даже не будешь понимать за что. Даже если ты чего-то не знаешь что там это за функция или оператор всегда можно погуглить по имени функции. Почитать описание, как где и для чего применяется. А ты этого не пожелал сделать с самого начала, вот и результат - тема на две страницы с характерными синтаксическими албибэками.

Бросай ты это... Не надо тебе заниматься программированием.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
таблицы из Delphi в WORD groznii_32 Общие вопросы Delphi 0 04.10.2013 12:01
Delphi работа с Word (таблицы) ScorpioN_T Общие вопросы Delphi 6 31.03.2012 17:46
Вывод данных из Access в Word GROSS777 БД в Delphi 1 22.11.2011 13:32
Отображение таблицы БД в Word (Delphi) ара Помощь студентам 1 09.11.2011 12:17
Как вычислять значения вне таблицы WORD, с использованием данных из таблицы WORD prikolist Microsoft Office Word 6 21.11.2008 13:17