public boolean doCommand(String strCommand, ScreenField sourceSField, int iCommandOptions)
    {
        if (strCommand.indexOf('=') == -1)
            if (this.getMainRecord() != null)
        {
            int iDocType = this.getMainRecord().commandToDocType(strCommand);
            if (iDocType > ScreenConstants.LAST_MODE)
            {       // Display the user defined screen.
                boolean bSuccess = (this.onForm(null, iDocType, true, iCommandOptions, null) != null);
                if (bSuccess)
                    return bSuccess;    // Return if successful.
            }
        }
        return super.doCommand(strCommand, sourceSField, iCommandOptions); // This will send the command to my view
    }
public boolean doCommand ( String strCommand , ScreenField sourceSField , int iCommandOptions ) { if ( strCommand . indexOf ( '=' ) == - 1 ) if ( this . getMainRecord ( ) != null ) { int iDocType = this . getMainRecord ( ) . commandToDocType ( strCommand ) ; if ( iDocType > ScreenConstants . LAST_MODE ) { boolean bSuccess = ( this . onForm ( null , iDocType , true , iCommandOptions , null ) != null ) ; if ( bSuccess ) return bSuccess ; } } return super . doCommand ( strCommand , sourceSField , iCommandOptions ) ; }
Process the command.
Step 1 - Process the command if possible and return true if processed.
Step 2 - If I can't process, pass to all children (with me as the source).
Step 3 - If children didn't process, pass to parent (with me as the source).
Note: Never pass to a parent or child that matches the source (to avoid an endless loop).
@param strCommand The command to process.
@param sourceSField The source screen field (to avoid echos).
@param iCommandOptions If this command creates a new screen, create in a new window?
@return true if success.