Unbeantwortet
Subtable Zellen/Spalten via JS löschen/inaktivieren
so schlecht sieht das ja nicht aus, dir fehlt ja nur die id
id für Untertabellenzellen setzt sich aus
const columnId = `${subtable}_${column}_${rowId}`;
zusammen.jr_hide_subtable_column
/jr_show_subtable_column
solltest du natürlich nicht im loop aufrufen, das reicht auch einmalig
Hier dein Beispiel entsprehend abgeändert
function Test() {
const checked = jr_get_value('checkbox');
if (checked) {
jr_show_subtable_column('SUBVName', 'SUBV_Column');
} else {
jr_hide_subtable_column('SUBVName', 'SUBV_Column');
}
jr_loop_table('SUBVName', function (subtable, rowId) {
const columnId = `${subtable}_SUBV_Column_${rowId}`;
if (checked) {
jr_set_disabled(columnId, false);
} else {
jr_set_subtable_value(subtable, rowId, 'SUBV_Column', '');
jr_set_disabled(columnId, true);
}
});
}
besser wäre natürlich die funktion gleich so aufzubauen, so dass man sie auch wiederverwenden kann
function ShowOrHideSubtableColumn(subtable, column, hide = false) {
if (hide) {
jr_hide_subtable_column(subtable, column);
} else {
jr_show_subtable_column(subtable, column);
}
const rowIds = jr_get_subtable_row_ids(subtable);
rowIds.forEach(rowId => {
const columnId = `${subtable}_${column}_${rowId}`;
jr_set_disabled(columnId, hide);
if (hide) {
jr_set_subtable_value(subtable, rowId, column, '');
}
});
}
aufrufen könntest du dies dann mit
ShowOrHideSubtableColumn("SUBVName", "SUBV_Column", jr_get_value("checkbox"));
oder indem du
ShowOrHideSubtableColumn("subview", "testField", true);
in das OnChecked
und
ShowOrHideSubtableColumn("subview", "testField", false);
in das OnUnChecked
Skipting Feld der Checkbox einfügst
696 Ansichten
0
Antworten
vor 3 Jahren
vor 3 Jahren