Архив метки: .NET

Как открыть PDF файл по нажатию на кнопку в AA графике

Dim objProcess As System.Diagnostics.Process; 
objProcess = New System.Diagnostics.Process(); 
objProcess.StartInfo.FileName = "C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe"; 
objProcess.StartInfo.Arguments = "/A page=10 C:\Program Files\Wonderware\InTouch\ITDocGuide.pdf"; 
objProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; 
objProcess.Start();

Диалог выбора имени файла для InTouch

Задача: вызвать диалоговое окно выбора файла и по результату получить имя выбранного файла(ов).

Решение: Использование функционала класса System.Windows.Forms.OpenFileDialog

1. Импортируем библиотеку System.Windows.Forms. 

ArchestrA IDE -> меню Galaxy -> Import -> Script Function Library… -> выбираем файл для .NET 2.0:  C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll

OpenFileDialog_SP2014_1

 

OpenFileDialog_SP2014_2

2. Создаем ArchestrA символ и открываем его в ArchestrA Sysmbol Editor

3. Заводим Custom Properties с именем fName и типом данных string

OpenFileDialog_SP2014_3

4. Добавляем элемент Text и привязываем ему анимацию «Value Display«. Тип string, для переменной fName. Здесь будет выводиться имя выбранного нами файла.

OpenFileDialog_SP2014_4

 

5. Добавляем кнопку. По нажатию на нее будет вызываться скрипт выбора файла. Анимация ActionScript.

OpenFileDialog_SP2014_5

Текст скрипта:

dim f as System.Windows.Forms.OpenFileDialog;
f = new System.Windows.Forms.OpenFileDialog;
if(f.ShowDialog() == System.Windows.Forms.DialogResult.OK) then
   fName=f.FileName;
endif;

6. Тестируем

OpenFileDialog_SP2014_6

OpenFileDialog_SP2014_7

OpenFileDialog_SP2014_8

 

Результат: По нажатию на кнопку вызывается диалог ОС выбора файла. После выбора мы получаем имя этого файла в виде строки.

Дополнительно:

  • описание класса OpenFileDialog на MSDN
  • добавить фильтрацию по типу файлов
  • возможность выбора нескольких файлов
  • и многое другое, см. описание класса на MSDN

 

 

Представление 64 битных беззнаковых целочисленных значений в InTouch

В классическом InTouch и в Application Server нельзя использовать теги и переменные типа Integer емкостью более 32 бит. Но, если при работе с Application Server есть доступ к классу MS .NET System.UInt64 (System.Int64), то в классическом InTouch этот функционал отсутствует. В практике, периодически, возникают задачи принять данные с разрядностью более 32 бит.

Недавно передо мной встала проблема отображения данных со счетчика, подключенного по Modbus RTU. Счетчик выдает данные в 3-х шестнадцати разрядных регистрах в целочисленном формате, т.е. для отображения этого значения мне потребуется не менее 48 бит. Но я взялся за более общую задачу — завести и отобразить переменную емкостью 64 бита (на самом деле описанный ниже способ легко переделать и для еще большей емкости переменной :)) хоть такого в практике я уже и не встречал).

Читать далее

Пример использования MS Excel из скрипта Application Server

Импортируйте библиотеку из excel.exe и используйте импортированные типы, работающий пример ниже, я его тестировал для ASP2012 + MSOffice 2007 (Win2008 64bit) и в системе ASP2014 p01 + MSOffice 2010 (Win2008 R2 64bit)   :

Читать далее