In this app, the goal is to move values between rows.
The Google spreadsheet of data has columns A, B, and move_to, and we want to move the value of B to the row specified by move_to.We also use the relation column to connect the rows to be moved.
The button has a custom action that copies column B of that row to the target row, and then clears the value with “Clear value”.
At first glance, this app seems to work well, but after a while, the old values appear to be back (like zombies). I’ve uploaded a YouTube video of it in action, so check it out.(Glide Bug clear value - YouTube)
You can see these values from the Glide screen, but not from the Google spreadsheet. It’s a mystery value.
This is probably a bug, but if there is an effective solution, please let me know.
After some testing, this problem does not seem to occur when using Glide Tables. Therefore, this problem may be caused by the integration with Google Spreadsheets.
For now, I’ll use Glide Tables as a solution. We are still looking for solutions.
I haven’t even bothered trying the Delete Row action - I’m just so used to doing it with a script.
If I want a row deleted, I just tag it and hide it, and then let my housekeeping script take care of it.
Even if I was to start using the Glide Delete Row action, I think I’d still want my housekeeping script, otherwise I’d wind up with holes everywhere in my GSheets
There does appear to be a syncing/timing issue somewhere with delete row. Also often get the ping pong effect. I need ‘delete row’ to be a thing I can rely on in glide. Maybe one day
Thanks for the alternative choice. I think your option will work well for when I want to hide something, but for deleting something I might need a script to make it reliable (if the data is in Google Sheets).
Darren is right, Have the row cleared then have a simple script run every night that deletes blank rows.
Something like this should work for you and just run it on a timer:
function removeEmptyRows() {
var ss = SpreadsheetApp.getActive();
var allsheets = ss.getSheets();
for (var s in allsheets){
var sheet=allsheets[s]
var maxRows = sheet.getMaxRows();
var lastRow = sheet.getLastRow();
if (maxRows-lastRow != 0){
sheet.deleteRows(lastRow+1, maxRows-lastRow);
}
}
}