Hi,
you nearly answered your question already.
You say the condition to display the next row is:
Each of the four text fields is filled - or: no one is empty.
Here you use subqueston relevance.
Therefore you enter in the subquestion relevance of the second subquestion
!is_empty(Q1_SQ001_X001) and !is_empty(Q1_SQ001_X002) and !is_empty(Q1_SQ001_X003) and !is_empty(Q1_SQ001_X004)
and in the third subquestion
!is_empty(Q1_SQ002_X001) and !is_empty(Q1_SQ002_X002) and !is_empty(Q1_SQ002_X003) and !is_empty(Q1_SQ002_X004)
with subquestion (y-scale) codes SQ001, SQ002, ...
x-scale codes X001, X002, ...
You see, a row is displayed if all fields of the previous row are filled.
Joffm