thank you for describing your situation.
First, as a rule of thumb, the notation
something.[#].something is always an error (as far as I know).
We use square brackets to single out one out of many, such as one particular element of an array, list, collection, etc. So when we write
l1207 we are telling to refer to the line in the roster where the rowcode is 7 (this is NOT the same as the 7th row!).
Correspondingly I expect
l1207.P1207==1 to be the expression that you need (and that should be syntactically correct).
It would be rather hard for a respondent to get what you want from them. I don’t know what the question asks, but there will next to ALWAYS be another item that is NOT HAPPENED, or they don’t want to tell about. In short I don’t see it valid to ask people to nominate another item and say no, I am not going to tell you. If you ask yes/no/refuse then there should be no free item. I’d change that to two questions:
*1) For each of items (A,B,C) give me a specific answer (Y/N/NA), *
2) Was there anything else for which it was specifically Y?
3) What is that other thing (if true in Q1).
Finally, not as a requirement, but as a habit: I tend to write roster names of all capital letters, and questions not of all capital letters. This tend to better reflect the significance of these objects, plus it results in more conventional variable names for the use in e.g. Stata, which favors small letters.