1

Тема: HTA: Генерация rtf-документа с html-страницы

Здрям!
Я на vb написал программу, суть которой:
1. Пользователь задает формат листа и несколько текстовых полей.
2. На основании введенных данных формируется rtf документ, с определенным именем.
3. В самом документе пишутся строки, для которых задается выравнивание, шрифт, размер, регистр.

Помогите, пожалуйста, с миграцией на HTA.
Будет использоваться только IE. В HTA, fso и JS ничего не понимаю. Сюда отправили с другого форума

2

Re: HTA: Генерация rtf-документа с html-страницы

Тогда будет потребен Ваш код.

3

Re: HTA: Генерация rtf-документа с html-страницы

Option Explicit
Private Sub SendOrder_Click()

Dim f, x, y As Byte
Dim Name, CT As String      ' имя файла
Dim T As Date               ' текущее время
Dim HomeDir As String

' Задаем имя файла
T = Time
CTime = Replace(T, ":", "")
Name = Color & " " & Format & " " & ArtNo & " " & Dep & " " & " " & GetUserName & " " & CTime

Dim wdApp As Word.Application
Dim wdDoc As Word.Document

' размер листа

If Format = "A4" Then
x = 21 & y = 29.7
ElseIf Format = "A3" Then
x = 59.4 & y = 42
ElseIf Format = "A2" Then
x = 84 & y = 118.8
ElseIf Format = "A1" Then
x = 237.6 & y = 168
End If

wdDoc.Application.Selection.PageSetup.PageWidth = CentimetersToPoints(x) 'ширина листа
wdApp.Application.Selection.PageSetup.PageHeight = CentimetersToPoints(y) 'высота листа

' место сохранения
        HomeDir = "C:\Temp\" & Store & "\"

'запись
        Set wdApp = New Word.Application
        wdApp.Visible = False
        Set wdDoc = wdApp.Documents.Add
            wdDoc.Range.Text = wdDoc.Range.Text + _
                              ArtNo & Chr$(10) & _
                              Art1 & Chr$(10) & _
                              Art2 & Chr$(10) & Chr$(10)
        wdDoc.SaveAs HomeDir$ + Name + ".doc"
        wdDoc.Close
        wdApp.Quit
        MsgBox "Заявка отправлена!"
End Sub

P.S. Word не меняет размер листа.
P.P.S. Нет кода форматирования текста.

4 (изменено: Kir@, 2012-08-07 20:14:10)

Re: HTA: Генерация rtf-документа с html-страницы

Форму я написал. Помогите, пожалуйста, вот с чем:
1. сохранить rtf документ с именем, зависящим от текущего времени, имени пользователя, поля "Color"  и номера артикула.
2. Вписать в документ поля Строка1, Строка 2, ArtNo, Price.
3. Как выровнять текстовые поля, а то как-то не красиво
4. Как задать формат текстовых полей. Необходимо ограничить кол-во вводимых символов, например 4.
5. Как отредактировать текст, введенный в rtf - цвет, выравнивание, регистр.
6. Задать размеры листа в зависимости от выбора PaperSize.

<html>
<head>
<title>Заказ табелок</title>
<!--BEGIN CALLOUT A-->
<HTA:APPLICATION
BORDER="thin"
BORDERSTYLE="sunken"
CAPTION="yes"
MAXIMIZEBUTTON="yes"
MINIMIZEBUTTON="yes"
SCROLL="no"
SHOWINTASKBAR="no"
SYSMENU="yes"
WINDOWSTATE="normal" />
<!--END CALLOUT A-->
</head>


<!--BEGIN CALLOUT B-->
<script language="vbscript">
Sub showsetting
MsgBox "Вы успешно заказали табелку"
End Sub
</script>
<!--END CALLOUT B-->


<body>
<!--BEGIN CALLOUT C-->
<p><font size="3"> Номер гамазина
 </font><input type="text"
 name="Store" size="20">
<!--END CALLOUT C-->


<p><font size="3">&nbsp;Цвет табелки  
    </font></b><font size="6">
 <select size="1" name="Color">
    <option selected value="Б">Белый</option>
    <option value="Ж">Желтый</option>
    </select></font></p>



<p><font size="3">&nbsp;Отдел 
    </font></b><font size="6">
 <select size="1" name="Dep">
    <option selected value=""></option>
    <option value="Отдел1">Отдел1</option>
    <option value="Отдел2">Отдел2</option>
    <option value="Отдел3">Отдел3</option>
    </select></font></p>


<p><font size="3">&nbsp;Формат 
    </font></b><font size="6">
 <select size="1" name="PaperSize">
    <option selected value="A4">A4</option>
    <option value="A3">A3</option>
    <option value="A2">A2</option>
    <option value="A1">A1</option>
    </select></font></p>



<!--BEGIN CALLOUT G-->
<p><font size="3"> Артикул №
 </font><input type="text"
 name="ArtNo" size="20">
<!--END CALLOUT G-->


<!--BEGIN CALLOUT D-->
<p><font size="3"> Строка №1
 </font><input type="text"
 name="Art1" size="20">
<!--END CALLOUT D-->


<!--BEGIN CALLOUT E-->
<p><font size="3"> Строка №2
 </font><input type="text"
 name="Art2" size="20">
<!--END CALLOUT E-->


<!--BEGIN CALLOUT F-->
<p><font size="3"> Цена
 </font><input type="text"
 name="Price" size="20">
<!--END CALLOUT F-->


<!--BEGIN CALLOUT Z-->
<p><input type="button"
 value="Нажмите, чтобы отправить заказ" name="B3" 
 onclick=showsetting()></p>
<p><input type="button"
 value="Выход" name="B6" onclick=self.close()></p>
<!--END CALLOUT Z-->
</body>
</html>

5

Re: HTA: Генерация rtf-документа с html-страницы

Kir@ пишет:

Форму я написал. Помогите, пожалуйста, вот с чем:
1. сохранить rtf документ с именем, зависящим от текущего времени, имени пользователя, поля "Color"  и номера артикула.
2. Вписать в документ поля Строка1, Строка 2, ArtNo, Price.
3. Как выровнять текстовые поля, а то как-то не красиво
4. Как задать формат текстовых полей. Необходимо ограничить кол-во вводимых символов, например 4.
5. Как отредактировать текст, введенный в rtf - цвет, выравнивание, регистр.
6. Задать размеры листа в зависимости от выбора PaperSize.

Вам надо немного изучить доки по HTML и VBS, документация есть, кстати, и на этом сайте.
В инете есть неплохой сборничек по HTML "Справочник Веб-разработчика", Ю.С.Лукач, ссылка на онлайн версию - http://wdh.suncloud.ru/start.htm
По работе с vbs могу предложить свой архив с учебниками - https://sites.google.com/site/scripttoo … =0&d=1

Сделайте на форме тестовую кнопку, по клику вызывайте свою vbs-функцию, в которой и тренируйтесь получать требуемые значения от элементов своей формы и прочее.

1) имя текущего пользователя - ExpandEnvironmentStrings("%USERNAME%") объекта "WScript.Shell";
3) для выравнивания кнопок/полей/текста можете выполнять их группировку элементами <span> с указанием % ширины от ширины окна приложения;
4) в элементе INPUT есть аттрибут maxlength = число (максимальное количество символов текста).

Удачи!

WBR. Roman