Beberapa hari yang lalu, versi keempat baru dari platform terbuka gratis lsFusion dirilis. Dalam artikel ini saya akan mencoba memberi tahu Anda secara singkat tentang fitur-fitur baru utama versi ini dan mengilustrasikannya sebanyak mungkin dengan gambar gif dan contoh (setidaknya bagi mereka yang tidak suka membaca banyak teks). Selain itu, banyak dari fitur ini dapat dicoba secara online di situs web resmi atau, misalnya, dalam versi demo dari salah satu solusi di lsFusion.
lsFusion ( ). , ( , ).
, ( ), ( ) โ UI .
, , . . , , ( ). MyCompany. ( , , ), , . , , , , .
, , .
. : . , , โ , , , , - , , .
, , . , frontend ( javascript HTML). , , ( Java Swing RCP) . . . , , , - ( http-). - lsFusion OLTP-, , . - , lsFusion -.
, lsFusion ( , , ) , , (BI) ( , BI- ). , , , , .
Perhatikan bahwa di tingkat fisik, operasi pengelompokan dalam tampilan pengelompokan dapat dilakukan di server database dan klien. Platform mengelola pilihan ini secara otomatis: jika jumlah grup berkurang, atau jumlah data awal kurang dari ambang batas, maka data diproses di klien (untuk mengecualikan panggilan yang tidak perlu ke server). Dalam kebanyakan kasus lain, pengelompokan dilakukan di server SQL menggunakan kueri (namun, subtotal masih dihitung di klien).
Pengelompokan dapat diubah oleh pengguna menggunakan antarmuka seret-lepas yang sesuai. Pengembang dapat menentukan pengelompokan menggunakan sintaks yang sesuai dalam pernyataan FORM.
FORM myReport
|
Tabel pivot
. , :
- . , โ --, .
- . , .
, , , , 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'
|
Tampilan kustom
Tampilan apa pun yang tidak didukung secara langsung di lsFusion, mungkin tidak selalu cukup (baik, atau mungkin tidak ada cukup pengaturan dalam tampilan yang ada). Untuk mengatasi masalah dalam kasus umum, platform mendukung apa yang disebut tampilan kustom.
Ada dua bagian untuk mendukung pandangan ini:
- 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- , .
Sekarang, kembali ke lsFusion. Untuk bekerja dengan sistem eksternal, termasuk protokol http, platform menggunakan operator EKSTERNAL. Benar, kekhasan operator ini adalah bahwa pada versi ketiga ini hanya dapat dijalankan di server, yang berarti tidak mungkin menggunakannya untuk pekerjaan yang sama dengan peralatan pada klien. Dengan demikian, dalam versi keempat dari platform untuk protokol HTTP, menjadi mungkin untuk mengeksekusi operator EKSTERNAL pada klien. Secara sintaksis, terlihat seperti ini:
reportX(Pos p) {
|
, . , , , . , , , . , โ ยซยป ( OBJECTS) / . , , โ FILTERS :
exportAndShowIncomes (Supplier s) {
|
Optimasi 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), - ( -).