function lfGetProductsList($searchCondition, $disp_number, $startno, $linemax, &$objProduct)
    {
        if (DB_TYPE != 'sqlsrv') {
            return parent::lfGetProductsList($searchCondition, $disp_number, $startno, $linemax, $objProduct);
        } else {
            $arrOrderVal = array();
            $objQuery =& SC_Query_Ex::getSingletonInstance();
            // 表示順序
            switch ($this->orderby) {
                // 販売価格が安い順
                case 'price':
                    $objProduct->setProductsOrder('price02', 'dtb_products_class', 'ASC');
                    break;
                    // 新着順
                // 新着順
                case 'date':
                    $objProduct->setProductsOrder('create_date', 'dtb_products', 'DESC');
                    break;
                default:
                    if (strlen($searchCondition['where_category']) >= 1) {
                        $dtb_product_categories = '(SELECT * FROM dtb_product_categories WHERE ' . $searchCondition['where_category'] . ')';
                        $arrOrderVal = $searchCondition['arrvalCategory'];
                    } else {
                        $dtb_product_categories = 'dtb_product_categories';
                    }
                    $order = <<<__EOS__
                    (
                        SELECT TOP 1
                            T3.rank * 2147483648 + T2.rank
                        FROM
                            {$dtb_product_categories} T2
                            JOIN dtb_category T3
                              ON T2.category_id = T3.category_id
                        WHERE T2.product_id = alldtl.product_id
                        ORDER BY T3.rank DESC, T2.rank DESC
                    ) DESC
                    ,product_id DESC
__EOS__;
                    $objQuery->setOrder($order);
                    break;
            }
            // 取得範囲の指定(開始行番号、行数のセット)
            $objQuery->setLimitOffset($disp_number, $startno);
            $objQuery->setWhere($searchCondition['where']);
            // 表示すべきIDとそのIDの並び順を一気に取得
            $arrProductId = $objProduct->findProductIdsOrder($objQuery, array_merge($searchCondition['arrval'], $arrOrderVal));
            $objQuery =& SC_Query_Ex::getSingletonInstance();
            $arrProducts = $objProduct->getListByProductIds($objQuery, $arrProductId);
            // 規格を設定
            $objProduct->setProductsClassByProductIds($arrProductId);
            $arrProducts['productStatus'] = $objProduct->getProductStatus($arrProductId);
            return $arrProducts;
        }
    }
 /**
  * Page のプロセス.
  *
  * @return void
  */
 function process()
 {
     parent::process();
 }
 /**
  * 検索条件のwhere文とかを取得
  *
  * @return array
  */
 public function lfGetSearchCondition(&$arrSearchData)
 {
     $searchCondition = parent::lfGetSearchCondition($arrSearchData);
     GC_Utils_Ex::gfPrintLog(print_r($this->arrForm, true), DEBUG_LOG_REALFILE);
     $objSql = new SC_SelectSql_Ex();
     $objSql->setWhere($searchCondition['where']);
     $character_id = $this->arrForm['character_id'];
     if (SC_Utils_Ex::sfIsInt($character_id)) {
         $this->arrSearchData["character_id"] = $character_id;
         $objSql->setWhere("product_id IN (\n                        SELECT product_id\n                        FROM cp_dtb_product_characters\n                        INNER JOIN cp_dtb_character USING(character_id)\n                        WHERE character_id = ?\n                        AND   cp_dtb_character.status  = 1\n                        AND   cp_dtb_character.del_flg = 0\n                    )");
         $searchCondition['arrval'][] = intval($character_id);
     }
     $searchCondition['where'] = $objSql->getWhere(false);
     $searchCondition['where_for_count'] = $objSql->getWhere(false);
     return $searchCondition;
 }
 /**
  * デストラクタ.
  *
  * @return void
  */
 function destroy()
 {
     parent::destroy();
 }