Программы для склада, для торговли, для производства

Программное обеспечение

для торговли, склада, производства

Программа для склада, для магазина, для производства
Программа для оптовой и розничной торговли
СКАЧАТЬ КУПИТЬ
Пробная
версия
от 2500 руб.
за лицензию

Vvs "Офис-Склад-Магазин"


Редактирование форм документов и отчетов

П.12. Использование кода на Visual Basic Script и JavaScript.

В форме документов и отчетов можно вставлять фрагменты, написанные на Visual Basic Script (VBScript) и JavaScript (JScript). Процедуры и функции, написанные VBScript или JScript, могут вызываться из макроязыка, значения, возвращаемые функциями, могут записываться в переменные. Значения из базы данных и другие значения выражений макроязыка, передаются в параметрах процедур и функций VBScript или JScript.

Использование Visual Basic Script и JScript существенно увеличивают возможности макроязыка. Например, это позволяет использовать Ole Automation для связи с объектами других приложений и операционной системы.

По сравнению с простым макроязыком программы, написание скриптов требует знания программирования на Visual Basic или Java Script. Документацию по Visual Basic Script и JavaScript можно скачать на сайте Microsoft.

Поддержка VBScript и JScript имеется в относительно свежих версиях Windows (начиная с Windows'98) и Internet Explorer. Для более старых версий поддержку VBScript и JScript можно установить.

Формат выражений.

Фрагменты кода на VBScript должны начинаться со строки

@SCRIPT

или

@SCRIPT VBScript

Фрагменты кода на JScript должны начинаться со строки

@SCRIPT JScript

Окончание кода помечается строкой:

@ENDSCRIPT

Например, функция для вывода сообщения, всегда возвращает 123:

@SCRIPT
Function MyMessage(say)
 MsgBox say,vbYesNoCancel,"Мой Скрипт"
 MyMessage="123
End Function
@ENDSCRIPT

Для вызова процедур и функция используются следующие конструкции.

Вызов без проверки возвращаемого значения:

@RUNSCRIPT Имя_функции|Параметр1|Параметр2|Параметр3 ...

Вызов функции с сохранением возвращаемого значения в числовую переменную X1:

@X1=:Имя_функции|Параметр1|Параметр2|Параметр3 ...

Вызов функции с сохранением возвращаемого значения в строковую переменную Y1:

@Y1=:Имя_функции|Параметр1|Параметр2|Параметр3 ...

Разделителем параметров служит символ | или табуляция. Поэтому символ | нельзя передать в параметрах.

Например, вызовы функции MyMessage могут быть следующие:

@RUNSCRIPT MyMessage|Проверочное сообщение!

@RUNSCRIPT MyMessage|Товар [DTWR,-1] кончился!

@X1=:MyMessage|Клиент [BP2,-1] имеет баланс [BP31,-1]!

@Y1=:MyMessage|2+2=[2+2]!

Имеется ограничение на количество параметров в одной функции.

Примеры.

Пример 1. Функция для преобразования всех символов в строке в заглавные буквы. Выводим названия товаров в верхнем регистре.

@SCRIPT
Function Upper(str)
       Upper = UCase(str)
End
Function
@ENDSCRIPT
@// в переменную YS записываем название товара (DTWR) в верхнем регистре.
{
@YS=:Upper|[DTWR,-1]
[YS,-1]
}

Тот же пример, с использованием JavaScript.

@SCRIPT JScript
function Upper(str)
{
       return str.toUpperCase();
}
@ENDSCRIPT
{
@YS=:Upper|[DTWR,-1]
[YS,-1]
}

Пример 2. Выбор каталога для вывода текстового файла с отчетом.

@SCRIPT
Function browse()
Set WSHShellApp =CreateObject("Shell.Application")
Set SelectedItem = WSHShellApp.BrowseForFolder(0, "Куда выводить отчет:", 0, 0)
browse=""
if (not SelectedItem is nothing) then
       browse=SelectedItem.Items.Item.Path
end if
End Function
@ENDSCRIPT

@YPATH=:browse
@IFNOT[YPATH                                ]@BREAK
Отчет сохранен в файл: [YPATH,-1]\report_from_vvs.txt
@SETOUT [YPATH,-1]\report_from_vvs.txt
Отчет!
.....

Пример 3. Вывод данных в Word. Вывод данных в файл barcode1.doc, в котором находится таблица с этикеткой товара. Этикетки печатаются в том количестве, сколько товаров выбрано в заказе.

@SCRIPT
Dim wrd
Dim Doc
Function Connect(fileName)
       On Error Resume Next
       Set wrd = GetObject(, "Word.Application")
       If err <> 0 Then
              err.Clear
              Set wrd = CreateObject("Word.Application")
              If err <> 0 Then
                    err.Clear
                    Connect=0
                    Exit Function
              end if
       End if
       On Error GoTo 0
       wrd.Visible = True
       Set Doc = wrd.Documents.Open(fileName)
       Connect=1
End Function

Function PrintLabel(kod,text1,price,text2,kol)
       Doc.Tables(1).Rows(1).Cells(1).Range.Text=text1
       Doc.Tables(1).Rows(3).Cells(1).Range.Text=price
       Doc.Tables(1).Rows(3).Cells(2).Range.Text=text2
       Doc.PrintOut true,false,"0","","","",0,kol
End Function

@ENDSCRIPT 

@XIS=:Connect|[YPATHEXE,-1]barcode1.doc
@IF[ISNUL(XIS)]@BREAK
{
@RUNSCRIPT PrintLabel|[DP5,-1]|[DTWR,-1]|[DC1,-1]|[DP3,-1]|[~HP7,-1]
}

 

<< Назад   -   Содержание