code: public void addListeners()
      {
          // This beginning code is a trick to make the grid screen think that a zero record is the header.
          this.setProperty("fakeHeader", DBConstants.FALSE);
          if (m_recHeader != null)
              if ((m_recHeader.getEditMode() == DBConstants.EDIT_ADD) || (m_recHeader.getEditMode() == DBConstants.EDIT_NONE))
                  if (this.getProperty(DBParams.HEADER_OBJECT_ID) == null)
                  {
                      this.setProperty("fakeHeader", DBConstants.TRUE);
                      this.setProperty(DBParams.HEADER_OBJECT_ID, "0");
                      if (m_recHeader.getCounterField() != null)
                          if (m_recHeader.getCounterField().getDefault() == null)
                      {
                          m_recHeader.getCounterField().setDefault(new Integer(0)); // This will guarantee that the sub record's parent field is non-null
                          try {
                              m_recHeader.addNew();
                          } catch (DBException ex) {
                          }
                      }
                  }
          super.addListeners();
      }
docs: Add all the screen listeners.