Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Delphi, Word] Как передать в Word переменные? 
:(
    Опции темы
Сарт
Дата 14.9.2006, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 29.4.2006

Репутация: нет
Всего: 0



Народ, возникла проблема. Хотя она достаточно стандарнтая, но в Дельфине я почти ламер=)

Итак, в чем нужно помочь:
1)передача в Word--как сделать?(пример плиз=))
2)Передать в Word стринговые и интовые переменные, но не абы как,а в виде

Переменная а

Переменная б
Переменная с
Интовая переменная


Переменная д

То есть покажите плиз, как передать в столбик с  строковыми промежутками и без

3) Передать те же переменные не просто в Word, но с созданием текста\(или вставкой).
Например, есть у меня заготовка вордовская типа

Я,______, заключаю контракт с ______.

Хотелось бы понять , как сделать чтобы переменные в ворде становились таким образом

Я,__переменная а, содержащая ФИО____ заключаю контракт с ____переменная,содержащая название организации____ на сумму____интовая переменная____.

И еще вопрос--если идет сумма на миллиарды, хватит ли типа integer??

Спасибо за внимание=-)).Надеюсб на вас, винградовцы=)
--------------------
[color=purple][/color]Died.Of course, System.StackOverflow 
PM MAIL   Вверх
ДенисБелов
Дата 14.9.2006, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подмастерье



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 12.9.2006
Где: Россия, Киров

Репутация: нет
Всего: нет



Вывод инфы в Word довольно простая вещь. 
Вот пример для твоей задачи. 


Код

Procedure InWord(a,b:Integer; c:String); {Твои переменные}
 Var WordApp,WordDoc:Variant; {переменные испльзуемые для связи с сервером}

Begin
 Try
   WordApp:=CreateOleObject('Word.Application'); {Создание сервера}
   WordApp.Visible:=False; {Окно скроем, чтобы не мешало экспорту}

   WordDoc:=WordApp.Documents.Add; {Создадим новый док на основе шаблона по умолч}

   {Далее выводишь с помощю объекта Selection отображающего текущее выделение, например}

   WordApp.Selection.ParagraphFormat.Alignment:=1; {Выравнивание текущего параграфа (0..3)}
   WordApp.Selection.Font.Bold:=True; {Атрибут жирный}
   WordApp.Selection.Font.Size:=20; {Размер шрифта}
   WordApp.Selection.Font.Color:=clBlue; {Цвет}
   WordApp.Selection.TypeText('Я заключаю контракт с'); {Вывод текста}
  WordApp.Selection.TypeText(с);
  WordApp.Selection.TypeParagraph; {перевод строки}
  WordApp.Selection.TypeText(IntToStr(a)); {Вывод твоей переменной}
  WordApp.Selection.TypeText(с);
 {.......   и.т.п. как в консоль выводишь}

finally 
If not VarIsEmpty(WordApp) Then WordApp.Visible:=True; {Если все нормуль то показываем окно Worda}
WordApp:=Undisigned; {Разрушаем все обекты}
WordDoc:=Undisigned;
End;



Цитата

Я,__переменная а, содержащая ФИО____ заключаю контракт с ____переменная,содержащая название организации____ на сумму____интовая переменная____.

И еще вопрос--если идет сумма на миллиарды, хватит ли типа integer??


Ни фига себе контракты.... smile 


Тип        Промежуток
Integer    –2147483648..2147483647    
Cardinal   0..4294967295    
Shortint    –128..127    
Smallint    –32768..32767    
Longint    –2147483648..2147483647    
Int64     –2^63..2^63–1    
Byte     0..255    
Word     0..65535    
Longword     0..4294967295    







PM MAIL WWW ICQ   Вверх
Сарт
Дата 14.9.2006, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 29.4.2006

Репутация: нет
Всего: 0



Ну контракты в беларуских рублях, так что миллиард это всего навсего 455 тыс баксов=). Поверь,для банка это средний контракт=).
И сразу вопрос---как инфу сохранить в MS Access + реализовать по ней поиск(по фамилии и точной сумме кредита?=))
--------------------
[color=purple][/color]Died.Of course, System.StackOverflow 
PM MAIL   Вверх
Сарт
Дата 15.9.2006, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 29.4.2006

Репутация: нет
Всего: 0



Да,забыл сказать. Именно в Аксесс --не обязательно. Главное требование-прога должна работать без требований к компу кроме винды и оффиса.
Возмоожно даже нету у нас Аксесса, завтра гляну. Так что мона и др варианты=)
Например, таскание с прогой файлика не является проблемой, а вот через SQL--уже проблема,ибо она,насколько знаю, без сервака не пашет=)
--------------------
[color=purple][/color]Died.Of course, System.StackOverflow 
PM MAIL   Вверх
ДенисБелов
Дата 15.9.2006, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подмастерье



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 12.9.2006
Где: Россия, Киров

Репутация: нет
Всего: нет



Мда, сдался тебе этот Access.  Если даннных не так много, то можно хранить хоть в текстовом файле. Это в случае пары тысяч записей, иначе конечно лучше использовать БД, благо в delphi поддержка их нормальная. Но это двумя словами не расскажешь.
Для текстового файла код можно примерно такой.

Код

Procedure VstavkaVKonec(a,b,c:String{Данные});
Var f:TextFile; {Перменная -файл}
 Begin
  AssignFile(f,'c:\Data.txt');{Связываем файл с переменной}
  Append(f); {Открываем для записи в конец}
  WriteLn(f,a); {Записываем в файл, что хотели}
  WriteLn(f,'Text'); {}
  Write(f,b); Write(f,c); {}
  Close(f); {и закрываем}
 End; 


Соответственно при поиске открываем файл для чтения 
 Reset(f);
 
Считываем данные
 ReadLn(f,a);
 Read(f,a);
 сравниваем с параметром поиска, если удовлетворяет, то выводим.
PM MAIL WWW ICQ   Вверх
comtat
Дата 15.9.2006, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 8
Всего: 71





--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
dazy
Дата 15.9.2006, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 15.9.2006

Репутация: нет
Всего: 8



Если вы делаете софт для автоматизации договоров, то лучше передавать в Ворд только изменяемые данные, а постоянные хранить в шаблоне.
Лучше всего для этой цели использовать закладки в Ворде. Таким образом у вас будет шаблон, с текстом договора, а в местах куда надо подставить данные будут стоять закладки. Программа на основе шаблона делает новый документ,  пробегает по закладкам подсовывает данные и  сохраняет/печатает - контракт готов. Как все это реализовать, тут на форуме где-то было  подробно написано. Рекомендую использовать именно шаблону, так как если необходимо внести изменения в договор (например у вас управляющий поменялся, поле _в_лице..._) то не надо лезть в код, пользователь сам изменит шаблон и не будет (скорее всего) отвлекать вас для внесения изменений в программу.
Сохранение  и поиск в базе данных это другой вопрос. Сначала выберите базу в которой будете хранить данные, затем все остальное. Но это тоже не сложно.
Клиент может работать даже если Access не установлен на компьютере. 


PM MAIL   Вверх
Сарт
Дата 15.9.2006, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 29.4.2006

Репутация: нет
Всего: 0



Текстовик не подходит, СЛИШКОМ много записей накопиться уже за 5 месяцев работы=)

Насчет закладок в Ворде-если мона поподробнее
--------------------
[color=purple][/color]Died.Of course, System.StackOverflow 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0726 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.