633{
634 ListedStringToStringArrayMap& mapQuery = session.
__ctx.__queryMap;
636
637 String strListPage =
getDefault(mapQuery, L
"list");
638 String strListPageEnc;
639 String strWritePage = __strWritePage;
640 String strPageIDs = String::join(mapQuery[L"_page"], L',', false);
641
642 if (strListPage.isEmpty())
643 strListPage = __strListPage;
644
646
647 assign(L"LIST", strListPage);
648 assign(L"_LIST", strListPageEnc);
649 assign(L"WRITE", strWritePage);
650
651 TextTemplate& PAGE = (*this)[L"PAGE"];
652 TextTemplate& EMPTY = (*this)[L"EMPTY"];
653
654 if (strPageIDs.isEmpty()) {
655 EMPTY.assign(L"LIST", strListPage);
656 assign(L"EMPTY", EMPTY);
658 return;
659 }
660
662 "SELECT P.PAGE_ID, P.TYPE, P.CHARSET, P.LANGUAGE,"
663 " P.TITLE, P.COMMENT, P.UPDATE_TIME, C.CATEGORY_NAME, R.ROLE_NAME"
664 "\n FROM DCL_PAGE AS P"
665 "\n INNER JOIN DCL_PAGE_CATEGORY AS C ON (P.CATEGORY_ID = C.CATEGORY_ID)"
666 "\n INNER JOIN DCL_ROLE AS R ON (P.PERM_ID = R.ROLE_ID)"
667 "\n WHERE P.PAGE_ID IN (" + strPageIDs + L")"
668 "\n ORDER BY P.PAGE_ID ASC"
669 );
670
673 assign(L"EMPTY", EMPTY);
674 else {
675 TextTemplate& VIEW = PAGE[L"VIEW"];
676 TextTemplate& V_EMPTY = PAGE[L"EMPTY"];
678 qV.prepare(L""
679 "SELECT V.NO, V.CLASS_ID, V.USER_ID, V.DS_ID, V.SKIN_FILE"
680 ", V.PARAMETERS, D.DS_TYPE, D.DS_NAME"
681 "\n FROM DCL_VIEW AS V"
682 "\n INNER JOIN DCL_DATA_SOURCE AS D"
683 "\n ON(V.USER_ID = D.USER_ID AND V.DS_ID = D.DS_ID)"
684 "\n WHERE V.PAGE_ID = :PAGE_ID"
685 "\n ORDER BY V.NO"
686 );
687
689 {
690 PAGE.assign(q.
fields(), L
" ");
691 PAGE.assign(L"LIST", strListPage);
692 PAGE.assign(L"_LIST", strListPageEnc);
693 PAGE.assign(L"WRITE", strWritePage);
694
695 StringBuilder strContentType = q.
fields().
byName(L
"TYPE").asString();
697 strContentType += L"; charset=";
698 strContentType += q.
fields().
byName(L
"CHARSET").asString();
699 }
700 PAGE.assign(L"CONTENT_TYPE", strContentType);
701
702 qV.params()[0].setValue(q.
fields().
byName(L
"PAGE_ID").asInteger());
703 qV.execute();
704 qV.fetch();
705 if (qV.eof())
706 PAGE.assign(L"EMPTY", V_EMPTY);
707 else {
708 while(!qV.eof()) {
709 VIEW.assign(qV.fields(), L" ");
711 qV.fields().byName(L"CLASS_ID").asInteger()
712 )
713 );
714 PAGE.append(L"EMPTY", VIEW);
715 qV.fetch();
716 }
717
718 }
719 append(L"EMPTY", PAGE);
720 PAGE.reset();
722 }
723 }
724
726}
virtual void onPrint(Session &session) __DCL_THROWS1(Exception *)
static String getDefault(ListedStringToStringArrayMap &map, const String &strKey)
_CONST SQLField & byName(const wchar_t *_name) _CONST __DCL_THROWS1(InvalidIndexException *)
_CONST SQLFields & fields() _CONST
void execute() __DCL_THROWS1(SQLException *)
SQLConnection * connection() const
void fetch() __DCL_THROWS1(SQLException *)
HttpServletContextEx & __ctx
static ByteString encode(const ByteString &_str)