::: UniChrom BEL RUS DEU ENG
Main Page / Products / < Back 

Праца з электроннымі табліцамі (MSO Excel, LO Calc) у UniChrom-стылі

Большасць прымяненняў аналітычных прылад завяршаецца фінальным разлікам у праграме электронных табліц (99% гэта MS Excel).

Табліцы выконваюць верыфікацыю ці пералік вынікаў якія часам нават немагчымы са штатнай фунцыянальнасцю што ўбудавана ў аналітычнае праграмнае забеспячэнне.

Экспарт у табліцы робіцца у відавочным працэсе:

Аналітычныя дадзеныя → [Апцыянальная апрацоўка шаблона Excel] → Фінальны рапарт у кніжцы ExcelДадатковая ручная праца (ці з дапамогай макра-праграмавання) каб атрымаць канчатковы вынік.

Даденыя перадаюцца ў Excel наступным чынам:

  1. Ствараецца файл Excel наўпрост праз бінарнае/тэкставае рэдагаванне, пасля той файл адчыняецца ў Excel
  2. Карыстаючы OLE Automation (падмноства MS COM) ствараецца аб'ект працоўнай кніжкі і запаўняецца вынікамі

Абодва варыянта карыстуюць нейкі жорстка-закадаваны ці як-небудзь наладаваны шаблон ці селектар для абрання падзелаў рапарту.

Асноўная ідэя ў UniChrom-аўскім рапартаванні больш арыентавана на чалавека. Аналітык ведае лепш – якія рапарты яму/ёй патрэбны. Такім чынам трэба размесціць формулы, табліцы, зводныя дадзеныя, сярэднія як патрабуецца каб выканаць задачу.

Застаецца адзін крок – накарміць тыя формулы аналітычнымі дазенымі.

Рашэнне відавочнае – прапанаваць функцыю што вяртае патрэбныя дадзеныя ў пажаданую клеціну.

Такім чынам табліца будзе заўсёды ўтрымліваць жывыя дадзеныя. Адзіны пабочны эфект – пастаўшчык тых дадзеных (UniChrom) павінен работаць.

Як маем усё гэта зрабіць.

UniChrom прапануе OLE Automation COM інтэрфейс (падобны на такіж у Excel). Функцыі што рэалізаваны ў макра-модуле кніжкі Excel прапануюць доступ да аб'ектаў UniChrom і да аналітычных дадзеных.

Бібліятэка функцый

Мець макра-модуль у кожнай кніжцы Excel у некаторых асяродзях - не вельмі добрая ідэя, бо палітыка бяспекі можа патрабаваць праверку кожнага макраса на вірусы. Кожная кніжка будзе прасканавана па адчыненні што стварае сур'ёзную хібу ў хуткасці працы.
Перамясціўшы функцыі звязаныя з UniChrom у адну бібліятэку (Excel Add-In, прыстаўка) магчыма забяспечыць адзіную кропку кантроля (і магчымае аднаўленне ў адзін крок) для кожнай кніжкі карыстаючы такі падыход. Праверка на вірусы выконваецца адзін раз калі Excel стартуе.

Дадатковы добры вынік – аналітык можа пачаць стварэнне новага шаблону рапарта ці складанага калькулятара пачынаючы з пустой кніжкі. Адзіная залежнасць для той кніжкі будзе – названая вышей бібліятэка – unichrom.xla

  • unichrom.xla - MS Office Excel Add-In (прыстаўка) для інтэрфейса OLE Automation. Проста запампуй і усталюй.

RPC - remote procedure call - аддалёны вызаў працэдур

UniChrom для Linux жыве ў іншым свеце, дзе не існуе замкнутай на адзінага пастаўшчыка тэхналогіі COM, дзе адкрытыя стандарты патрабуюць больш агульных рашэнняў.

Пашырэнне праграмы (service) UniChrom-UCWEB выконвае маленькі web-server унутры працэса UniChrom і які адказвае на запыты JSON-RPC абгорнутыя вакол UniChrom SPECAPI.
SPECAPI – гэта Spectral API што мае збольшага тую самую функцыянальнасць як пазначаны вышэй COM інтерфейс але з'яўляецца кросс-платформным.

Пачаткова SPECAPI быў толькі інтерфейсам што UniChrom прапануе для кожнага файлавага канвертатара (фільтра імпарта/экспарта). Інтэрфейс дазваляе праграмна маніпуляваць большасцю унутраных аб'ектаў UniChrom. Кожны канвертар карыстуе вызавы SPECAPI каб прачытаць вядому яму файлавы фармат і прадставіць яго ў структуру дадзеных UniChrom і наадаварот - прадставіць структуру дадзеных UniChrom у вядомым канвертару фармаце.

З такім падыходам – кожныя электронныя табліцы калі атрымаюць магчымасць вызываць функцыі SPECAPI (у гэтым выпадку не замкнёныя на платформу) становяцца простым веб-кліентам.

  • ucweb - сервісны модуль што прапануе JSON-RPC інтерфейс да UniChrom SPECAPI

IPC - inter-process communication - міжпрацэсная камунікацыя

Зразумела, что базавыя прымітывы АС, такія як файлы працуюць амаль аднолькава з пункту гледжання мовы праграмавання. У абодвух сістэмах існуюць такія сутнасці як дзвюхбаковыя каналы (пад Linux гэта UNIX sockets, пад Windows - named pipes). Гэта дазваляе таксама выконваць JSON-запыты праз узаемадзеянне з лакальным працэсам.
То бок аднолькавыя JSON-запытання могуць хадзіць як праз TCP socket (JSON-RPC), так і праз сістэмныя каналы (JSON-IPC).
Апрацоўка JSON-IPC убудавана ў UniChrom. Па змоўчанню апрацоўшчык IPC выключаны, але можа быць уключаны выкананнем:

  • ./uc --ipc
    single process IPC handler
  • ./uc --multirun
    every document runs in separate process

IPC / RPC у адной бібліятэцы

Выбар інтэрфейса (IPC/RPC) адбываецца на аркушы электроннай табліцы выклікам функцыі:

  • =setucpid(number) - дзе number гэта PID працэсса UniChrom
  • =setucweb("http://localhost:7777") - URL сервера JSON-RPC (пашырэнне ucweb)

Усе дэталі рэалізацыі схаваны ў адну бібліятэку:

Абодзве бібліятэкі забяспечваюць ідэнтычны функцыянальны інтэрфейс і аднолькавы карыстальніцкі вопыт для усіх платформ. Як прыклад – разгледжана стварэнне шаблона аналіза алкагольнай інтаксікацыі зробленага як для LibreOffice так і MS Office з ідэнтычнай функцыянальнасцю.

Пашырэнне ў працы

Прыклад выкарыстання unichromw.oxt праз IPC на Linux

Прыклад выкарыстання unichromw.xla праз IPC на Windows

Графіка прыдатная для публікацый

З пачатку існавання UniChrom прапануе стварэнне вектарнай графікі для аналітычных сігналаў (Праўка/Капіраваць калі актыўная старонка ёсць графікам). COM інтерфейс зрабіў вектарную графіку даступнай праз clipboard для рапартаў у іншых прыкладаннях.

Апошнія змены ў MS Office і LibreOffice прывялі да цікавых вынікаў.

SVG (scalable vector graphics)

Крос-платформны адкрыты стандарт што падтрымліваецца усімі пакетамі вектарнай графікі і internet-праглядальнікамі.

MS Office перыядычна дадае ці выдаляе падтрымку адкрытага стандарта SVG. Пад час стварэння гэтага дакумента, стварэнне SVG не падтрымлівалась афіцыйна ў MS Office (акрамя анлайн-версіі Office-365).

LibreOffice падтрымлівае SVG ад пачатку.

EMF (enhanced metafile)

Спецыфічныя для Windows файлы што насамрэч з'яўляюцца запісанай паслядоўнасцю каманд маляваннвя Windows GDI. EMF спецыфічны дя windows і патрабуе асобны бтбліятэк для іншых платформ.

Пад час стварэння дакумента MS Office падтрымліваў афічыйна толькі адзін вектарны фармат – EMF

LibreOffice падтрымлівае EMF пад усімі платформамі, але паблема ў стварэнні такіх файлаў не пад Windows.

UniChrom SPECAPI быў пашыраны каб прапанаваць вектарную графіку праз адпаведны вызаў функцыі.

function GetPictureStream(

    ASpec:HSpec;AStreamHandle:THandle;
    atype,alay,mmWidth,mmHeight:integer;
    sx,ex,sy,ey:single
):boolean;

Функцыя вяртае платформна-залежную вектарную графіку (EMF для Windows і SVG для іншых платформ),

atype – 0 – графік сігнала, 1 – каліброўка C=F(R) , 2 – каліброўка R=F(C)

alay – нумар слою сігнала, ці нумар каліброўкі

mmXXXX – памер графіка ў мм

sx,ex,sy,ey – дыяпазоны X і Y-шкал. Заданне 0,0,0,0 вяртае бягучыя (апошнія) бачныя на экране межы.

(MS|Libre) Office функцыя пашырэння у бібліятэцы абгортвае гэту функцыю каб забяспечыць устаўку графіка ў заданую клеціну і звярнуць статус устаўкі.