function adjustComponentQtyBy(event) {
var ts = new parasql.schema.TransactionSet();
var ft_bom_components = ts.addNewDataTable('ft_bom_components');
ft_bom_components.addNewColumn('mfg_item_id','int').setPrimaryKeyMember(true);
ft_bom_components.addNewColumn('component_item_id','int').setPrimaryKeyMember(true);
ft_bom_components.addNewColumn('component_qty','int');
var sourceDT = parasql.app.getWidgetById('ID2627').getDataTable();
var mfgItemIdColIndex = sourceDT.getIndexOf('mfg_item_id');
var componentItemIdColIndex = sourceDT.getIndexOf('component_item_id');
var componentQtyColIndex = sourceDT.getIndexOf('component_qty');
var adjByQty = parasql.app.getWidgetById('ID2633').getDataValue().getNumber();
var rows = sourceDT.getRows();
for (var i = 0; i < rows.length; i++) {
if (rows[i].getIsSelected() == true) {
var newRow = ft_bom_components.appendNewRow();
newRow.getValueAt(0).setNumber( rows[i].getValueAt(mfgItemIdColIndex).getNumber() );
newRow.getValueAt(1).setNumber( rows[i].getValueAt(componentItemIdColIndex).getNumber() );
newRow.resetChangeTracker(); // primary keys exist, only updating values that follow
// adjust the component qty by the specified amount
newRow.getValueAt(2).setNumber( rows[i].getValueAt(componentQtyColIndex).getNumber() + adjByQty );
}
}
alert('Will modify this many rows in ft_bom_components: '+ft_bom_components.getRows().length);
// save it
ts.save();
}