つい先日、無料のオープンプラットフォームlsFusionの新しい第4バージョンがリリースされました。この記事では、このバージョンの主な新機能について簡単に説明し、gif画像と例を使用して可能な限りそれらを説明します(少なくとも多くのテキストを読みたくない人のために)。また、これらの機能の多くは、公式Webサイトでオンラインで試すことも、たとえば、lsFusionのソリューションの1つのデモバージョンで試すこともできます。
lsFusion ( ). , ( , ).
, ( ), ( ) — UI .
, , . . , , ( ). MyCompany. ( , , ), , . , , , , .
, , .
. : . , , — , , , , - , , .
, , . , frontend ( javascript HTML). , , ( Java Swing RCP) . . . , , , - ( http-). - lsFusion OLTP-, , . - , lsFusion -.
, lsFusion ( , , ) , , (BI) ( , BI- ). , , , , .
物理レベルでは、グループ化ビューのグループ化操作は、データベースサーバーとクライアントの両方で実行できることに注意してください。プラットフォームはこの選択を自動的に管理します。グループの数が減少した場合、または初期データの量がしきい値より少ない場合、データはクライアントで処理されます(サーバーへの不要な呼び出しを除外するため)。他のほとんどの場合、グループ化はクエリを使用してSQLサーバーで実行されます(ただし、小計は引き続きクライアントで計算されます)。
グループ化は、対応するドラッグドロップインターフェイスを使用してユーザーが変更できます。開発者は、FORMステートメントで適切な構文を使用してグループ化を定義できます。
FORM myReport
|
ピボットテーブル
. , :
- . , — --, .
- . , .
, , , , Excel . :
- ( ), ( drag-drop ). , ( , ).
- Excel , , /
(drill-down) — , , , , , .
, , , (, ), . - , .
, .
/ :
- ( / , / )
. open-source plotly, ( ). , ( , , , ), .
img-, ( / ) . , , , , , .
, ( -) , . , time-tracking, ..
lsFusion :
-
- / .
- , , ..
- ,
- ( ), ( ).
-
- .
- ( ).
, , . :
-
- longitude —
- latitude —
- polygon —
- line —
- icon —
- ..
-
- date, dateTime — /
- dateFrom, dateTimeFrom — /
- dateTo, dateTimeTo — /
- name —
- ..
FORM map 'Map'
|
カスタムビュー
lsFusionですぐにサポートされるビューが何であれ、常に十分ではない可能性があります(または、既存のビューに十分な設定がない可能性があります)。一般的な場合の問題を解決するために、プラットフォームはいわゆるカスタムビューをサポートします。
これらのビューをサポートするには、次の2つの部分があります。
- javascript css web-. , web ( ) , -, , web-. , , , , .
- . javascript-, ( window , javascript function window, ). :
- element — DOM,
- objects — javascript-, ( = , = )
- controller — javascript-, / (, , ).
.
function calendar(element, objects, controller) {
if(controller.calendar == null) { // lazy initialization
controller.calendar = new FullCalendar.Calendar(element, {
height: 'parent',
editable: true,
eventChange: function(info) {
controller.changeDateProperty('date', controller.objects[info.event.extendedProps.index], info.event.start.getFullYear(),
info.event.start.getMonth() + 1,info.event.start.getUTCDate() + 1); // month and day are zero-based in full calendar
},
eventClick: function(info) {
controller.changeSimpleGroupObject(controller.objects[info.event.extendedProps.index], false, info.el);
}
});
setTimeout(function () {
controller.calendar.render();
}, 0);
}
controller.objects = objects; // need to save it to work with changes
controller.calendar.setOption('events', objects.map((obj, index) =>
Object.assign({}, obj, {
index: index, // needed to work with changes
classNames: controller.isCurrent(obj) ? 'event-highlight' : '' // highlighting current element
})));
}
.event-highlight {
border-color: #2C4751;
background-color: #2C4751;
}
(web) ( js css, web, -, ).
, e:
CLASS Event;
|
lsFusion , Flatlaf, , , , Intellij. - Flatlaf , - «» . lsFusion :
- ( ) — -
- — -
«» . , , / ( ). , lsFusion , , , - ( ). (, ).

OAuth
«»: , , , . :
- - ( ). , .
- .
( ) OAuth . , (, lsFusion) / . / , / (, — ). « » lsFusion / : Facebook, Google, Github, . (Authorization URI, Token URI ..). , ( OAuth , , , ).
lsFusion — «» « ». «» -. « » (, ).

, ( «», OAuth-) « ». , « ». , , , , .
url user password ( http://myserver?user=X&password=Y
). , , , , VPN.
lsFusion :
- ( ,
'Some text {x.y}'
). - - :
- ( ),
- .
, , . :
- / .
- ( ).
« ». :
- , , .
- , , , .
- , ( ).
, , :
- , ;
- « », .
:
- , ;
- .
:
- .
- , , Google Translate. , . , .
- , .
- PROFIT
, , , - lsFusion. / : guestuk / guestuk ( ), guestbe / guestbe ( ).
lsFusion, , , . :
- CTRL ( Excel). , (
EDIT_OBJECT
) . - « » .
- ( ) « ».
- (
CHANGE
, , )
, .
. , .

« »
lsFusion ( ), ( ) . :
- .
- , .
. N+1, , , .
onChange(a);
|
, f(a,b) :
DIALOG formX OBJECTS x = f(a,b) CHANGE; // formX, f(a,b) x
|
REQUEST
|
PUSH REQUEST
|
PUSH REQUEST
|
, (, , ).

( , ) — . , . , :
DESIGN order {
|
, . (, width pattern) ( )
:
- .
- , .
, , , . , , . , lsFusion . , ( ). , .

lsFusion « » — (, , , ..). , , , , , , , , ( ). / ( , ).
, , , «». .

, ( ), / - .
http-
, . , - 2 :
- . javascript, , , css html ( ) .
- «» . , / , .
( Chrome V8 ), , , . , , — , http-. http- , .
lsFusionに戻ります。http-protocolを含む外部システムを操作するために、プラットフォームはEXTERNAL演算子を使用します。確かに、このオペレーターの特徴は、3番目のバージョンではサーバー上でしか実行できなかったことです。つまり、クライアント上の機器で同じ作業に使用することは不可能でした。したがって、HTTPプロトコル用のプラットフォームの4番目のバージョンでは、クライアントでEXTERNAL演算子を実行できるようになりました。構文的には、次のようになります。
reportX(Pos p) {
|
, . , , , . , , , . , — «» ( OBJECTS) / . , , — FILTERS :
exportAndShowIncomes (Supplier s) {
|
DOMの最適化
, lsFusion -, - . , (- ), Swing ( , / ), / HTML DOM. , . , . , :
- “” -.
- - .
— . , lsFusion- ( -), . - ( lsFusion), DOM . , - MyCompany ( ). , , ( , / , ).
( github). , (UX) developer experience (DX), . ( -) , .
MyCompany. (, custom-made ), , . -, ERP-, / «» . MyCompany. SME ( ERP ), ( , , Apache 2.0 ). WMS, , , WMS - ( lsFusion), - ( -).