public static string PrepareCause(CauseObject_MCE_B_ASSETS_CONTRACT_PAY cause, out OracleParameter[] parameters)
        {
            //平台自动生成代码
            System.Text.StringBuilder strBuf = new System.Text.StringBuilder();
            ArrayList       paramList        = new ArrayList();
            OracleParameter param            = null;

            #region Push Block
            if (cause.PERIODS != ConstLibrary.Template.UndefineDecimal)
            {
                strBuf.Append(" And MCE_B_ASSETS_CONTRACT_PAY.PERIODS = :C_PERIODS");
                param = new OracleParameter();
                param.ParameterName = ":C_PERIODS";
                param.OracleType    = System.Data.OracleClient.OracleType.Number;
                param.Size          = 22;
                param.Value         = cause.PERIODS;
                paramList.Add(param);
            }
            if (cause.HasINValue("PERIODS"))
            {
                strBuf.Append(cause.GetINSQL("MCE_B_ASSETS_CONTRACT_PAY", "PERIODS"));
            }
            if (!string.IsNullOrEmpty(cause.BASE_ID))
            {
                strBuf.Append(" And MCE_B_ASSETS_CONTRACT_PAY.BASE_ID ").Append((cause.BASE_ID.StartsWith("%") || cause.BASE_ID.EndsWith("%")) ? " like " : " = ").Append(" :C_BASE_ID");
                param = new OracleParameter();
                param.ParameterName = ":C_BASE_ID";
                param.OracleType    = System.Data.OracleClient.OracleType.Char;
                param.Size          = 36;
                param.Value         = cause.BASE_ID;
                paramList.Add(param);
            }
            if (cause.HasINValue("BASE_ID"))
            {
                strBuf.Append(cause.GetINSQL("MCE_B_ASSETS_CONTRACT_PAY", "BASE_ID"));
            }
            if (cause.PLAN_PAY_DATE != null)
            {
                if (cause.PLAN_PAY_DATE.Begin != null)
                {
                    strBuf.Append(" And MCE_B_ASSETS_CONTRACT_PAY.PLAN_PAY_DATE >= :C_PLAN_PAY_DATE_BEGIN");
                    param = new OracleParameter();
                    param.ParameterName = ":C_PLAN_PAY_DATE_BEGIN";
                    param.OracleType    = System.Data.OracleClient.OracleType.DateTime;
                    param.Size          = 7;
                    param.Value         = cause.PLAN_PAY_DATE.Begin;
                    paramList.Add(param);
                }
                if (cause.PLAN_PAY_DATE.End != null)
                {
                    strBuf.Append(" And MCE_B_ASSETS_CONTRACT_PAY.PLAN_PAY_DATE < :C_PLAN_PAY_DATE_END");
                    param = new OracleParameter();
                    param.ParameterName = ":C_PLAN_PAY_DATE_END";
                    param.OracleType    = System.Data.OracleClient.OracleType.DateTime;
                    param.Size          = 7;
                    param.Value         = cause.PLAN_PAY_DATE.End;
                    paramList.Add(param);
                }
            }
            if (cause.HasINValue("PLAN_PAY_DATE"))
            {
                strBuf.Append(cause.GetINSQL("MCE_B_ASSETS_CONTRACT_PAY", "PLAN_PAY_DATE"));
            }
            if (!string.IsNullOrEmpty(cause.COMMENTS))
            {
                strBuf.Append(" And MCE_B_ASSETS_CONTRACT_PAY.COMMENTS ").Append((cause.COMMENTS.StartsWith("%") || cause.COMMENTS.EndsWith("%")) ? " like " : " = ").Append(" :C_COMMENTS");
                param = new OracleParameter();
                param.ParameterName = ":C_COMMENTS";
                param.OracleType    = System.Data.OracleClient.OracleType.VarChar;
                param.Size          = 200;
                param.Value         = cause.COMMENTS;
                paramList.Add(param);
            }
            if (cause.HasINValue("COMMENTS"))
            {
                strBuf.Append(cause.GetINSQL("MCE_B_ASSETS_CONTRACT_PAY", "COMMENTS"));
            }
            if (cause.STATE != ConstLibrary.Template.UndefineDecimal)
            {
                strBuf.Append(" And MCE_B_ASSETS_CONTRACT_PAY.STATE = :C_STATE");
                param = new OracleParameter();
                param.ParameterName = ":C_STATE";
                param.OracleType    = System.Data.OracleClient.OracleType.Number;
                param.Size          = 22;
                param.Value         = cause.STATE;
                paramList.Add(param);
            }
            if (cause.HasINValue("STATE"))
            {
                strBuf.Append(cause.GetINSQL("MCE_B_ASSETS_CONTRACT_PAY", "STATE"));
            }
            if (cause.MONEY != ConstLibrary.Template.UndefineDecimal)
            {
                strBuf.Append(" And MCE_B_ASSETS_CONTRACT_PAY.MONEY = :C_MONEY");
                param = new OracleParameter();
                param.ParameterName = ":C_MONEY";
                param.OracleType    = System.Data.OracleClient.OracleType.Number;
                param.Size          = 22;
                param.Value         = cause.MONEY;
                paramList.Add(param);
            }
            if (cause.HasINValue("MONEY"))
            {
                strBuf.Append(cause.GetINSQL("MCE_B_ASSETS_CONTRACT_PAY", "MONEY"));
            }
            if (!string.IsNullOrEmpty(cause.ID))
            {
                strBuf.Append(" And MCE_B_ASSETS_CONTRACT_PAY.ID ").Append((cause.ID.StartsWith("%") || cause.ID.EndsWith("%")) ? " like " : " = ").Append(" :C_ID");
                param = new OracleParameter();
                param.ParameterName = ":C_ID";
                param.OracleType    = System.Data.OracleClient.OracleType.Char;
                param.Size          = 36;
                param.Value         = cause.ID;
                paramList.Add(param);
            }
            if (cause.HasINValue("ID"))
            {
                strBuf.Append(cause.GetINSQL("MCE_B_ASSETS_CONTRACT_PAY", "ID"));
            }
            if (cause.ACTUAL_PAY_DATE != null)
            {
                if (cause.ACTUAL_PAY_DATE.Begin != null)
                {
                    strBuf.Append(" And MCE_B_ASSETS_CONTRACT_PAY.ACTUAL_PAY_DATE >= :C_ACTUAL_PAY_DATE_BEGIN");
                    param = new OracleParameter();
                    param.ParameterName = ":C_ACTUAL_PAY_DATE_BEGIN";
                    param.OracleType    = System.Data.OracleClient.OracleType.DateTime;
                    param.Size          = 7;
                    param.Value         = cause.ACTUAL_PAY_DATE.Begin;
                    paramList.Add(param);
                }
                if (cause.ACTUAL_PAY_DATE.End != null)
                {
                    strBuf.Append(" And MCE_B_ASSETS_CONTRACT_PAY.ACTUAL_PAY_DATE < :C_ACTUAL_PAY_DATE_END");
                    param = new OracleParameter();
                    param.ParameterName = ":C_ACTUAL_PAY_DATE_END";
                    param.OracleType    = System.Data.OracleClient.OracleType.DateTime;
                    param.Size          = 7;
                    param.Value         = cause.ACTUAL_PAY_DATE.End;
                    paramList.Add(param);
                }
            }
            if (cause.HasINValue("ACTUAL_PAY_DATE"))
            {
                strBuf.Append(cause.GetINSQL("MCE_B_ASSETS_CONTRACT_PAY", "ACTUAL_PAY_DATE"));
            }
            if (!string.IsNullOrEmpty(cause.GetCustomCondition()))
            {
                strBuf.Append(cause.GetCustomCondition());
            }
            #endregion
            parameters = new OracleParameter[paramList.Count];
            paramList.CopyTo(parameters);
            return(strBuf.ToString());
        }