Русское сообщество AutoIt

  • Май 22, 2012, 14:17:55 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:

Вы новичок? Хотите начать изучение AutoIt и не знаете с чего начать?

Для начала ознакомьтесь с темой Быстрый старт для работы с AutoIt.
Затем осмотрите раздел Инструменты и помощь по AutoIt.

Реклама

Автор Тема: помогите с реализацией привязки к полям word таблицы  (Прочитано 2149 раз)

0 Пользователей и 1 Гость смотрят эту тему.

koks0017 [?]

  • Новичок
  • *
  • Репутация: 0
  • Offline Offline
  • Сообщений: 27
  • Версия AutoIt: v3.3.8.1
    • Награды
Версия AutoIt: 3.

вкладываю программу и word файл помогите их привязать что бы на кнопке предварительный просмотр загружался word файл и были заполнены ячейки а нижняя имя фамилия (фамилия и инициалы).
и помогите сделать чтобы на календаре дата нельзя было переставить на меньшую чем день который программа берет по дате из системы



Код: AutoIt [Выделить]
[code]#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>



   
   
GUICreate ("БЛАГОВЕСТ", 350, 290)

$filemenu = GUICtrlCreateMenu("Файл")
$fileitem = GUICtrlCreateMenuItem("Open", $filemenu)
$fileitem = GUICtrlCreateMenuItem("сохронить", $filemenu)
$helpmenu = GUICtrlCreateMenu("?")
$infoitem = GUICtrlCreateMenuItem("О программе", $helpmenu)
GUICtrlSetState(-1, $GUI_DEFBUTTON)

GUICtrlCreateLabel ("Дата выдачи полиса", 10,10)
GUICtrlCreateDate  ("Календарь", 10, 30)
GUICtrlCreateLabel ("Фамилия", 10,60)
GUICtrlCreateInput  ("", 10, 80,100)
GUICtrlCreateLabel ("Имя", 120,60,100)
GUICtrlCreateInput  ("", 120, 80)
GUICtrlCreateLabel ("Очество", 240,60)
GUICtrlCreateInput  ("", 240, 80 ,100)
GUICtrlCreateLabel ("Город", 10,110 ,100)
GUICtrlCreateCombo ("Москва", 10, 130)
GUICtrlSetData     (-1,"Зеленоград")
GUICtrlCreateLabel ("Улица", 10,160,100)
GUICtrlCreateInput  ("", 10, 180)
GUICtrlCreateLabel ("Дом", 120,160,50)
GUICtrlCreateInput  ("", 120, 180)
GUICtrlCreateLabel ("Корпус", 190,160, 50)
GUICtrlCreateInput  ("", 190, 180)
GUICtrlCreateLabel ("Квартира", 260,160, 50)
GUICtrlCreateInput  ("", 260, 180)
GUICtrlCreateButton("Предварительный просмотр", 10,220)
GUICtrlCreateButton("Печать", 170,220)
GUISetState ()
While 1
    $msg = GUIGetMsg()
    If $msg = $infoitem Then MsgBox(0, "О программе", "Жестовский Андрей Алексеевичь &")
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend[/code]
кто может пожалуйста


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Январь 27, 2012, 14:56:50 от koks0017 »



  Записан

madmasles [?]

  • Модератор
  • *
  • *****
  • Репутация: 1426
  • Online Online
  • Пол: Мужской
  • Сообщений: 3819
  • Версия AutoIt: 3.3.6.1 - 3.3.9.4
    • Награды
ПредупреждениеЗа нарушение правил форума (пункт В.11):
Цитата
Любые отрывки AutoIt кода необходимо заключать в тег [autoit] (подробнее), а обычный код соответственно в тег [code] (подробнее). Также большие выдержки текста помещайте под тег [spoiler] (подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Модератор.

И оформите, пожалуйста, тему в соответствии с Правилами обязательного оформления тем.

koks0017 [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 0
  • Offline Offline
  • Сообщений: 27
  • Версия AutoIt: v3.3.8.1
    • Награды
я новичок в autoit пожалуйста кто может помогите очень нужна эта прога 




  Записан

Yuriy [?]

  • Скриптер
  • ****
  • Репутация: 149
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 456
  • Версия AutoIt: 3.3.6.1
    • Награды
Вот что-то получилось.
Код: AutoIt [Выделить]
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <Word.au3>
$File_Input = ""

$Form1 = GUICreate("БЛАГОВЕСТ", 577, 307, 192, 114)
$Filemenu = GUICtrlCreateMenu("Файл")
$Fileitem1 = GUICtrlCreateMenuItem("Выбрать шаблон", $Filemenu)
$Helpmenu = GUICtrlCreateMenu("?")
$Infoitem = GUICtrlCreateMenuItem("О программе", $Helpmenu)
$Label1 = GUICtrlCreateLabel("Дата выдачи полиса", 8, 8, 109, 17)
$Date1 = GUICtrlCreateDate("Календарь", 8, 32, 113, 25)
$Input1 = GUICtrlCreateInput("", 8, 88, 217, 21)
$Input2 = GUICtrlCreateInput("", 240, 88, 121, 21)
$Input3 = GUICtrlCreateInput("", 376, 88, 193, 21)
$Label2 = GUICtrlCreateLabel("Фамилия", 8, 64, 53, 17)
$Label3 = GUICtrlCreateLabel("Имя", 240, 64, 26, 17)
$Label4 = GUICtrlCreateLabel("Отчество", 376, 64, 51, 17)
$Label5 = GUICtrlCreateLabel("Город", 8, 120, 34, 17)
$Combo1 = GUICtrlCreateCombo("Москва", 8, 144, 137, 25)
GUICtrlSetData(-1,"Зеленоград")
$Label6 = GUICtrlCreateLabel("Улица", 8, 176, 36, 17)
$Label7 = GUICtrlCreateLabel("Дом", 344, 176, 27, 17)
$Label8 = GUICtrlCreateLabel("Корпус", 424, 176, 40, 17)
$Label9 = GUICtrlCreateLabel("Квартира", 504, 176, 52, 17)
$Input4 = GUICtrlCreateInput("", 8, 200, 321, 21)
$Input5 = GUICtrlCreateInput("", 344, 200, 65, 21)
$Input6 = GUICtrlCreateInput("", 424, 200, 65, 21)
$Input7 = GUICtrlCreateInput("", 504, 200, 65, 21)
$Button1 = GUICtrlCreateButton("Предварительный просмотр", 8, 240, 201, 33)
$Button2 = GUICtrlCreateButton("Печать", 368, 240, 201, 33)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit       
        Case $Infoitem
            MsgBox(0, "О программе", "Жестовский Андрей Алексеевич")
        Case $Button1          
            $Data = GUICtrlRead ($Date1) ;дата         
            $Fio_1 = GUICtrlRead ($Input1);фамилия
            $Fio_2 = GUICtrlRead ($Input2);имя
            $Fio_3 = GUICtrlRead ($Input3);отчество
            $Adres1 = GUICtrlRead ($Combo1) ;город
            $Adres2 = GUICtrlRead ($Input4);улица
            $Adres3 = GUICtrlRead ($Input5);дом
            $Adres4 = GUICtrlRead ($Input6);корпус
            $Adres5 = GUICtrlRead ($Input7);квартира           
            WriteWord()
        Case $Fileitem1        
            $File_Input = FileOpenDialog("Выбрать шаблон для заполнения", @ScriptDir&"\", "Документ Word (*.doc)", 1)        
    EndSwitch
WEnd

Func WriteWord()
    If $File_Input = "" Then
        MsgBox(48, "Инфо", "Файл-шаблон не выбран")
    Return
    EndIf
    $FIO1 = $Fio_1&" "&$Fio_2&" "&$Fio_3 ;фамилия имя отчество
    $FIO2 = $Fio_1&" "&StringLeft($Fio_2, 1)&". "&StringLeft($Fio_3, 1)&"." ;фамилия инициалы
    $Adres = "г."&$Adres1&", ул."&$Adres2&", д."&$Adres3&", корп."&$Adres4&", кв."&$Adres5 ;адрес
    $File_XML = @ScriptDir & "\Благовест.xml" ;текстовый файл XML для редактирования
    $File_Output = @ScriptDir & "\Благовест.doc" ;отредактированный файл 
   
    $oWordApp = _WordCreate ("",1, 0)
    If @Error <> 0 Then
        MsgBox(48, "Инфо", "Не удалось создать объект Word")
        Return
    EndIf
    $oDoc = _WordDocOpen ($oWordApp, $File_Input);открываем шаблон
    _WordDocSaveAs ($oDoc, $File_XML, 11) ;и сохраняем в текстовый файл XML
    _WordDocClose ($oDoc)
    _WordQuit ($oWordApp)

    $file = FileOpen($File_XML, 128) ;открываем для чтения текстовый файл XML
    $text = FileRead($file) ;читаем текст в переменную $text
    FileClose($file) ;закрываем файл

    $file = FileOpen($File_XML, 130) ;открываем для записи текстовый файл XML
    $text = StringReplace($text, "«___»_____________201__г.", $Data) ;заменяем дату
    $text = StringReplace($text, "город, улица, дом, корпус, № квартиры", $Adres, 1) ;заменяем адрес
    $text = StringReplace($text, "Ф.И.О.", $FIO1, 1) ;заменяем 1-е Ф.И.О.
    $text = StringReplace($text, "Ф.И.О.", $FIO2, 1) ;заменяем 2-е Ф.И.О.
    FileWrite($file, $text) ;записываем в файл измененный текст
    FileClose($file)

    $oWordApp = _WordCreate ("", 1, 0)
    $oDoc = _WordDocOpen ($oWordApp, $File_XML) ;открываем текстовый файл XML
    _WordDocSaveAs ($oDoc, $File_Output) ;и сохраняем в формате DOC
    _WordDocClose ($oDoc)
    _WordQuit ($oWordApp)
    MsgBox(64, "Инфо", "Готово")
    ShellExecute($File_Output)
EndFunc




  Записан
OS Windows XP Professional Rus OEM 2002 SP3

madmasles [?]

  • Модератор
  • *
  • *****
  • Репутация: 1426
  • Online Online
  • Пол: Мужской
  • Сообщений: 3819
  • Версия AutoIt: 3.3.6.1 - 3.3.9.4
    • Награды
koks0017,
Мой вариант.


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Январь 30, 2012, 17:27:00 от madmasles »



  Записан

koks0017 [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 0
  • Offline Offline
  • Сообщений: 27
  • Версия AutoIt: v3.3.8.1
    • Награды
madmasles и Yuriy спасибо большое

madmasles а можно сделать чтобы в конце даты не было только фамилия и инициалы а в начале не показывался номер полиса только дата?




  Записан

madmasles [?]

  • Модератор
  • *
  • *****
  • Репутация: 1426
  • Online Online
  • Пол: Мужской
  • Сообщений: 3819
  • Версия AutoIt: 3.3.6.1 - 3.3.9.4
    • Награды
koks0017  [?]
Цитата
а можно сделать чтобы в конце даты не было только фамилия и инициалы а в начале не показывался номер полиса только дата?
Я поменял код и прикрепленный архив.




  Записан

koks0017 [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 0
  • Offline Offline
  • Сообщений: 27
  • Версия AutoIt: v3.3.8.1
    • Награды
огромное спасибо




  Записан

madmasles [?]

  • Модератор
  • *
  • *****
  • Репутация: 1426
  • Online Online
  • Пол: Мужской
  • Сообщений: 3819
  • Версия AutoIt: 3.3.6.1 - 3.3.9.4
    • Награды
koks0017,
Я немного поменял код.
ИМХО, еще можно сделать две вкладки. На одной заполнять новые полисы, на другой загружать из архива готовые.




  Записан

koks0017 [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 0
  • Offline Offline
  • Сообщений: 27
  • Версия AutoIt: v3.3.8.1
    • Награды
А где можно его посмотреть? В первом коде то же самое.




  Записан

madmasles [?]

  • Модератор
  • *
  • *****
  • Репутация: 1426
  • Online Online
  • Пол: Мужской
  • Сообщений: 3819
  • Версия AutoIt: 3.3.6.1 - 3.3.9.4
    • Награды
koks0017  [?]
Цитата
В первом коде то же самое.
Нет.




  Записан

koks0017 [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 0
  • Offline Offline
  • Сообщений: 27
  • Версия AutoIt: v3.3.8.1
    • Награды
про две вкладки идея очень хорошая. можешь реализовать?




  Записан

madmasles [?]

  • Модератор
  • *
  • *****
  • Репутация: 1426
  • Online Online
  • Пол: Мужской
  • Сообщений: 3819
  • Версия AutoIt: 3.3.6.1 - 3.3.9.4
    • Награды
koks0017,
Тестируйте.

В прикрепленном архиве папка polic - пример структуры сохранения и вывода ранее созданных полисов, выбираются по порядку год, месяц, полис. В папке template - шаблон в формате doc (Office 2003). Чтобы не было лишних проблем, лучше создать еще такой же шаблон в формате docx (Office 2007 и выше). ФИО и название улиц можно вводить с лишними пробелами, с маленькой буквы, а остальные большие, должно исправлять. Если фамилия или улица из 2-х слов или через дефис, то каждое слово после пробела(дефиса) должно экспортировать с большой буквы. И т.д.


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Январь 31, 2012, 08:32:25 от madmasles »



  Записан

koks0017 [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 0
  • Offline Offline
  • Сообщений: 27
  • Версия AutoIt: v3.3.8.1
    • Награды
пишет ошибку #include <WinAPIEx.au3> вот этой библиотекив




  Записан

madmasles [?]

  • Модератор
  • *
  • *****
  • Репутация: 1426
  • Online Online
  • Пол: Мужской
  • Сообщений: 3819
  • Версия AutoIt: 3.3.6.1 - 3.3.9.4
    • Награды
koks0017  [?]
Цитата
пишет ошибку #include <WinAPIEx.au3> вот этой библиотеки
А Вы ее скачайте, в коде и в моей подписи есть ссылка.




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
_GUICtrlCreateTable - Создание таблицы в GUI
Полезняшки
CreatoR 5 1736 Последний ответ Январь 14, 2010, 12:43:07
от Redline
[Элементы GUI] Создание таблицы привязанной к файлу .ini
GUI - Графический интерфейс пользователя
Renhor 4 1189 Последний ответ Октябрь 27, 2010, 00:34:59
от CreatoR
Инициализация таблицы для CRC16
AutoIt для новичков
edyapd 7 881 Последний ответ Февраль 08, 2011, 20:42:10
от VladUs
Выборка данных из html таблицы
AutoIt для новичков
Шайтанчег 12 1432 Последний ответ Март 04, 2011, 18:45:44
от madmasles
Нужен DLL на purebasic/c++ с реализацией ХЕШЕЙ и библиотека на AutoIt для вызова
Стол заказов
Suppir 1 518 Последний ответ Июль 27, 2011, 14:56:14
от Kaster
Ini файл для привязки.
AutoIt для новичков
DelphiExpert 4 695 Последний ответ Август 28, 2011, 12:53:23
от axlwor
поиск цвета без привязки к конкретному значению.
AutoIt для новичков
Revenant 2 492 Последний ответ Сентябрь 06, 2011, 16:05:50
от rusreg79
Скрипты для привязки программы к железе от Yashied
Стол заказов
StarEdik 3 590 Последний ответ Сентябрь 06, 2011, 15:10:20
от StarEdik
[Автоматизация] Преобразование таблиц из псевдографики в word таблицы
Общение
Vlasssov 0 526 Последний ответ Ноябрь 17, 2011, 14:31:38
от Vlasssov
Вид привязки программы к HDD
Полезняшки
vanekzver 9 726 Последний ответ Март 03, 2012, 19:14:52
от vanekzver


Реклама

* Последние сообщения на форуме
post Re: Как заменить метку времени файла на севере
[Автоматизация IE и Web-интерфейса] eropov Сегодня в 14:11:37
post Re: Авторизация в одноклассниках
[Автоматизация IE и Web-интерфейса] Arei Сегодня в 13:24:59
post Re: Смена IP адресса
[AutoIt для новичков] Zaramot Сегодня в 13:04:33
post Re: Авторизация в одноклассниках
[Автоматизация IE и Web-интерфейса] Александр Сегодня в 12:59:21
post Re: Выполнение скрипта при нажатии средней кнопки мыши
[AutoIt для новичков] madmasles Сегодня в 12:23:31
post [Мышь, клавиатура] Re: Выполнение скрипта при нажатии средней кнопки мыши
[AutoIt для новичков] Nurgazy Сегодня в 12:09:36
post Re: Объясните плз, как работать с массивами ArrayAdd и прочее...
[AutoIt для новичков] madmasles Сегодня в 12:08:03
post Объясните плз, как работать с массивами ArrayAdd и прочее...
[AutoIt для новичков] webmonster Сегодня в 12:03:38
post Re: Как заменить метку времени файла на севере
[Автоматизация IE и Web-интерфейса] ---Zak--- Сегодня в 11:39:56
post Как заменить метку времени файла на севере
[Автоматизация IE и Web-интерфейса] eropov Сегодня в 11:26:37

* Пользователи онлайн
  • Dot Гостей: 131
  • Dot Скрыт: 2
  • Dot Пользователей: 32
  • Dot Пользователи Online: