Page 1 of 1
custom html subform
Posted: Tue May 24, 2022 3:39 pm
by selector
Hi to all. I want to create a custom subform using a third-party Data grid(JSpreedSheet CE, Tabulator etc). At the same time, it is necessary that the data in the table change depending on the fields of the parent form - that is, passing the values of Lookup fields or NuData to build the table. Also, changes in a third-party table must be recorded in the database in the future (that is, to catch these events). I understand that the question is quite extensive, but maybe someone has some examples of implementation? Or at least theoretically how this can be done.
PS: This is primarily due to the fact that a subform with more than 30 columns and several dozen rows is drawn for an unacceptably long time.
Re: custom html subform
Posted: Tue May 24, 2022 4:30 pm
by kev1n
JSpreedSheet etc. certainly have methods to set cell values and store the content in a database. Please refer to the documentation.
Re: custom html subform
Posted: Sun May 29, 2022 10:51 pm
by selector
kev1n wrote: ↑Tue May 24, 2022 4:30 pm
JSpreedSheet etc. certainly have methods to set cell values and store the content in a database. Please refer to the documentation.
Kevin, here is an example of html code from the grid documentation. How do I display this inside the form?
Code: Select all
<html>
<script src="https://bossanova.uk/jspreadsheet/v4/jexcel.js"></script>
<script src="https://jsuites.net/v4/jsuites.js"></script>
<link rel="stylesheet" href="https://bossanova.uk/jspreadsheet/v4/jexcel.css" type="text/css" />
<link rel="stylesheet" href="https://jsuites.net/v4/jsuites.css" type="text/css" />
<div id="spreadsheet"></div>
<script>
var data = [
['Flag Fen', 'South East', '2019-01-01'],
['Bristol Aero Collection (BAC)','South West','2019-04-03'],
['Experience Barnsley', 'North','2018-12-03'],
['Cinema Museum', 'London',''],
['University of Hertfordshire Art Collection', 'South East',''],
['LUX London', 'London','2016-11-03'],
];
jspreadsheet(document.getElementById('spreadsheet'), {
data:data,
columns: [
{
type:'text',
title:'Museum',
width:'300',
},
{
type:'dropdown',
title:'Region',
source:['South East','South West','North','London'],
width:'200',
},
{
type:'calendar',
title:'Last visit',
options: { format:'DD/MM/YYYY' },
width:'100',
},
]
});
</script>
</html>
Re: custom html subform
Posted: Sun May 29, 2022 11:35 pm
by kev1n
Use a HTML object, paste your code into the html text area.
Re: custom html subform
Posted: Mon May 30, 2022 7:52 am
by selector
kev1n wrote: ↑Sun May 29, 2022 11:35 pm
Use a HTML object, paste your code into the html text area.
I tried, but it didn't work. I also tried to make the connection of scripts and css in the header. The same result.
Code: Select all
Uncaught ReferenceError: jspreadsheet is not defined
at <anonymous>:11:1
at b (jquery.js?ts=20220530085029:2:866)
at He (jquery.js?ts=20220530085029:2:48373)
at S.fn.init.append (jquery.js?ts=20220530085029:2:49724)
at S.fn.init.<anonymous> (jquery.js?ts=20220530085029:2:50816)
at $ (jquery.js?ts=20220530085029:2:32425)
at S.fn.init.html (jquery.js?ts=20220530085029:2:50494)
at nuHTML (nuform.js?ts=20220530085029:1411:22)
at nuBuildEditObjects (nuform.js?ts=20220530085029:677:13)
at nuBuildForm (nuform.js?ts=20220530085029:184:3)
Re: custom html subform
Posted: Mon May 30, 2022 8:24 am
by kev1n
It works for me:
Header:
Code: Select all
function nuOnLoad() {
if (nuFormType() == 'edit') {
// Edit Form loaded
} else
if (nuFormType() == 'browse') {
// Browse Form loaded
}
}
</script>
<script src="https://bossanova.uk/jspreadsheet/v4/jexcel.js"></script>
<script src="https://jsuites.net/v4/jsuites.js"></script>
<link rel="stylesheet" href="https://bossanova.uk/jspreadsheet/v4/jexcel.css" type="text/css" />
<link rel="stylesheet" href="https://jsuites.net/v4/jsuites.css" type="text/css" />
HTML object:
Code: Select all
<div id="spreadsheet"></div>
<script>
var data = [
['Flag Fen', 'South East', '2019-01-01'],
['Bristol Aero Collection (BAC)','South West','2019-04-03'],
['Experience Barnsley', 'North','2018-12-03'],
['Cinema Museum', 'London',''],
['University of Hertfordshire Art Collection', 'South East',''],
['LUX London', 'London','2016-11-03'],
];
jspreadsheet(document.getElementById('spreadsheet'), {
data:data,
columns: [
{
type:'text',
title:'Museum',
width:'300',
},
{
type:'dropdown',
title:'Region',
source:['South East','South West','North','London'],
width:'200',
},
{
type:'calendar',
title:'Last visit',
options: { format:'DD/MM/YYYY' },
width:'100',
},
]
});
</script>
Re: custom html subform
Posted: Mon May 30, 2022 8:57 am
by selector
kev1n wrote: ↑Mon May 30, 2022 8:24 am
It works for me:
Thank you for </script> after nuOnLoad(). I didn't think to do that.
Re: custom html subform
Posted: Mon May 30, 2022 10:44 am
by kev1n
BTW, this might be useful:
Jspreadsheet quick reference
E.g. to set a value "Hello" in cell A1:
Code: Select all
var myTable = document.getElementById('spreadsheet').jexcel
myTable.setValue("A1","Hello");