One solution might be to scroll to the first line of the text, then have a marker on the first 'non-viewable' line...color change, graphic, space, line, whatever.
This idea I like. Do you have any idea how the marking might be implemented? Also, after a page-down, it would be nice if the the previous last visible line becomes the first visible line. This would help a lot with the continuity of reading a memo field where the break occurs mid-sentence.
Another possibility, instead of scrolling a full page, is to scroll only so the first line of the previously not-fully-visible field is at the top. The idea would be to scroll as soon as you get to a field not fully visible—and it would jump to the top of the screen. If such a field uses more than a screen, then the current behaviour would apply. I'm guessing it might be easier to detect and handle a whole field, rather than detect and mark a line within a field.
So maybe the page should scroll automatically when the expander is clicked.
I don't think so. For such a basic function, it should not be assumed, "if the user wants this, he must also want that." If I want to scroll, I'll scroll. If I expand a field, I
may only be interested in that field and what follows, but I'm equally likely to want what appears above it to remain on screen. Again, these are meant for the one-at-a-time control of fields. If the continuity of reading the entire record is the issue, the sensible thing to do is expand all fields.