Changeset 596


Ignore:
Timestamp:
08/13/14 03:02:07 (5 years ago)
Author:
jls17
Message:
Location:
branches/work_311/doc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/work_311/doc/DocAlActionStruct.cpp

    r590 r596  
    1919#include "DocAllMatchingIdsTable.h" 
    2020#include "DocActionOpenWindowHelper.h" 
     21#include "actions/DocOpenWindowAction.h" 
     22#include "actions/DocAlMessageAction.h" 
    2123#include "../output/ImageTag.h" 
    2224#include "../output/ObjNotFound.h" 
    2325#include "../output/URLLink.h" 
     26#include "../util/Context.h" 
    2427 
    2528CDocAlActionStruct::CDocAlActionStruct(CARInside &arIn, CARActiveLink &obj, string schemaName, int rootLevel) 
     
    289292void CDocAlActionStruct::ActionMessage(std::ostream& strm, const ARMessageStruct &action, int nAction) 
    290293{ 
    291         try 
    292         { 
    293                 strm << "Message Number: " << action.messageNum << "<br/>" << endl; 
    294                 strm << "Message Type: " << CAREnum::MessageType(action.messageType) << "<br/>" << endl; 
    295  
    296                 if(action.messageText != NULL) 
    297                 { 
    298                         CRefItem refItemTmp(*this->obj, ifElse, nAction, REFM_MESSAGE); 
    299                         strm << "Message Text:<br/>" << arIn->TextFindFields(action.messageText, "$", this->schemaInsideId, rootLevel, true, &refItemTmp) << "<br/>" << endl; 
    300                 } 
    301  
    302 #if AR_CURRENT_API_VERSION >= AR_API_VERSION_763 
    303                 if (this->arIn->CompareServerVersion(7,6) >= 0 || (this->arIn->appConfig.fileMode == true && this->arIn->CompareServerVersion(7,5) >= 0)) 
    304                 { 
    305                         strm << "<input type=\"checkbox\" name=\"showInPromptPane\" value=\"showInPromptPane\"" << (action.usePromptingPane ? " checked" : "") << ">Show Message in Prompt Bar" << "<br/>" << endl; 
    306                 } 
    307 #endif 
    308         } 
    309         catch(exception& e) 
    310         { 
    311                 cout << "EXCEPTION in AlActionMessage of '" << this->obj->GetName() << "': " << e.what() << endl; 
    312         } 
     294        Context context(*this->obj, ifElse, nAction, schemaInsideId, rootLevel); 
     295        DocAlMessageAction alMessageAction(context, action); 
     296        alMessageAction.ToStream(strm); 
    313297} 
    314298 
     
    658642} 
    659643 
    660  
    661 bool CDocAlActionStruct::ActionOpenDlgQualifier(int nWindowType) 
    662 { 
    663         switch(nWindowType) 
    664         { 
    665         case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DETAIL: 
    666         case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY: 
    667         case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_LST: 
    668         case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_SPLIT: 
    669         case AR_ACTIVE_LINK_ACTION_OPEN_DSPLY_LST: 
    670         case AR_ACTIVE_LINK_ACTION_OPEN_REPORT: 
    671         case AR_ACTIVE_LINK_ACTION_OPEN_DSPLY_DETAIL: 
    672         case AR_ACTIVE_LINK_ACTION_OPEN_DSPLY_SPLIT: 
    673         case AR_ACTIVE_LINK_ACTION_OPEN_DSPLY: 
    674 #if AR_CURRENT_API_VERSION >= AR_API_VERSION_763 
    675         case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DIRECT: 
    676         case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DIRECT_LST: 
    677         case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DIRECT_DETAIL: 
    678         case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DIRECT_SPLIT: 
    679         case AR_ACTIVE_LINK_ACTION_OPEN_DISPLAY_DIRECT: 
    680         case AR_ACTIVE_LINK_ACTION_OPEN_DISPLAY_DIRECT_LST: 
    681         case AR_ACTIVE_LINK_ACTION_OPEN_DISPLAY_DIRECT_DETAIL: 
    682         case AR_ACTIVE_LINK_ACTION_OPEN_DISPLAY_DIRECT_SPLIT: 
    683 #endif 
    684                 return true; 
    685         default: return false; 
    686         } 
    687 } 
    688  
    689 bool CDocAlActionStruct::ActionOpenDlgTargetLocation(int nWindowType) 
    690 { 
    691         switch (nWindowType) 
    692         { 
    693         case AR_ACTIVE_LINK_ACTION_OPEN_SEARCH: 
    694         case AR_ACTIVE_LINK_ACTION_OPEN_SUBMIT: 
    695         case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY: 
    696         case AR_ACTIVE_LINK_ACTION_OPEN_DSPLY: 
    697         case AR_ACTIVE_LINK_ACTION_OPEN_REPORT: 
    698 #if AR_CURRENT_API_VERSION >= AR_API_VERSION_763 
    699         case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DIRECT:  
    700         case AR_ACTIVE_LINK_ACTION_OPEN_DISPLAY_DIRECT: 
    701 #endif 
    702                 return true; 
    703         default: return false; 
    704         } 
    705 } 
    706  
    707 bool CDocAlActionStruct::ActionOpenDlgCloseButton(int nWindowType) 
    708 { 
    709         switch (nWindowType) 
    710         { 
    711         case AR_ACTIVE_LINK_ACTION_OPEN_DLG: 
    712 #if AR_CURRENT_API_VERSION >= AR_API_VERSION_764 
    713         case AR_ACTIVE_LINK_ACTION_OPEN_POPUP: 
    714 #endif 
    715                 return true; 
    716         default: return false; 
    717         } 
    718 } 
    719  
    720 bool CDocAlActionStruct::ActionOpenDlgSuppressEmptyList(int nWindowType) 
    721 { 
    722         switch (nWindowType) 
    723         { 
    724         case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY: 
    725         case AR_ACTIVE_LINK_ACTION_OPEN_DSPLY: 
    726 #if AR_CURRENT_API_VERSION >= AR_API_VERSION_763 
    727         case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DIRECT: 
    728         case AR_ACTIVE_LINK_ACTION_OPEN_DISPLAY_DIRECT: 
    729 #endif 
    730                 return true; 
    731         default: return false; 
    732                          
    733         } 
    734 } 
    735  
    736 bool CDocAlActionStruct::ActionOpenDlgInputMapping(int nWindowType) 
    737 { 
    738         switch (nWindowType) 
    739         { 
    740         case AR_ACTIVE_LINK_ACTION_OPEN_DLG: 
    741         case AR_ACTIVE_LINK_ACTION_OPEN_SEARCH: 
    742         case AR_ACTIVE_LINK_ACTION_OPEN_SUBMIT: 
    743 #if AR_CURRENT_API_VERSION >= AR_API_VERSION_764 
    744         case AR_ACTIVE_LINK_ACTION_OPEN_POPUP: 
    745 #endif 
    746                 return true; 
    747         default: return false; 
    748         } 
    749 } 
    750  
    751 bool CDocAlActionStruct::ActionOpenDlgOutputMapping(int nWindowType) 
    752 { 
    753         switch (nWindowType) 
    754         { 
    755         case AR_ACTIVE_LINK_ACTION_OPEN_DLG: 
    756 #if AR_CURRENT_API_VERSION >= AR_API_VERSION_764 
    757         case AR_ACTIVE_LINK_ACTION_OPEN_POPUP: 
    758 #endif 
    759                 return true; 
    760         default: return false; 
    761         } 
    762 } 
    763  
    764 bool CDocAlActionStruct::ActionOpenDlgPoolingInterval(int nWindowType) 
    765 { 
    766         switch (nWindowType) 
    767         { 
    768         case AR_ACTIVE_LINK_ACTION_OPEN_DSPLY: 
    769         case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY: 
    770 #if AR_CURRENT_API_VERSION >= AR_API_VERSION_763 
    771         case AR_ACTIVE_LINK_ACTION_OPEN_DISPLAY_DIRECT: 
    772         case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DIRECT: 
    773 #endif 
    774                 return true; 
    775         default: return false; 
    776         } 
    777 } 
    778  
    779 bool CDocAlActionStruct::ActionOpenDlgMessage(int nWindowType) 
    780 { 
    781         switch (nWindowType) 
    782         { 
    783         case AR_ACTIVE_LINK_ACTION_OPEN_DSPLY: 
    784         case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY: 
    785 #if AR_CURRENT_API_VERSION >= AR_API_VERSION_763 
    786         case AR_ACTIVE_LINK_ACTION_OPEN_DISPLAY_DIRECT: 
    787         case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DIRECT: 
    788 #endif 
    789         case AR_ACTIVE_LINK_ACTION_OPEN_REPORT: 
    790                 return true; 
    791         default: return false; 
    792         } 
    793 } 
    794  
    795644// AR_ACTIVE_LINK_ACTION_OPENDLG 
    796645void CDocAlActionStruct::ActionOpenDlg(std::ostream& strm, const AROpenDlgStruct &action, int nAction) 
    797646{ 
    798         try 
    799         { 
    800                 string openWindowServer; 
    801                 string openWindowSchema; 
    802  
    803                 // check if we need to get the sample data 
    804                 if(action.serverName[0] == '$') 
    805                 { 
    806                         CDocActionOpenWindowHelper::GetSampleData(*obj, ifElse, nAction, openWindowServer, openWindowSchema); 
    807                 } 
    808  
    809                 // window type 
    810                 int windowMode = CAREnum::OpenWindowModeMapped(action.windowMode); 
    811                 strm << "<p>Window Type: " << CAREnum::OpenWindowMode(windowMode) << endl; 
    812  
    813                 // display type 
    814                 if (windowMode == AR_ACTIVE_LINK_ACTION_OPEN_MODIFY || windowMode == AR_ACTIVE_LINK_ACTION_OPEN_DSPLY) 
    815                 { 
    816                         strm << "<br/>Display Type: " << CAREnum::OpenWindowDisplayType(action.windowMode) << endl; 
    817                 } 
    818  
    819                 // target location 
    820                 if (ActionOpenDlgTargetLocation(windowMode)) 
    821                 { 
    822                         strm << "<br/>Target Location: "; 
    823  
    824                         if (action.targetLocation != NULL)  
    825                         { 
    826                                 if (action.targetLocation[0] == '$') 
    827                                 { 
    828                                         int fieldId = atoi(&action.targetLocation[1]); 
    829                                         strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(schemaInsideId, fieldId, rootLevel)) << "$"; 
    830  
    831                                         if (fieldId > 0) 
    832                                         { 
    833                                                 CRefItem refItem(*this->obj, ifElse, nAction, REFM_OPENWINDOW_LOCATION); 
    834                                                 arIn->AddFieldReference(schemaInsideId, fieldId, refItem); 
    835                                         } 
    836                                 } 
    837                                 else 
    838                                 { 
    839                                         strm << action.targetLocation; 
    840                                 } 
    841                         } 
    842                         strm << endl; 
    843                 } 
    844                 strm << "</p>" << endl; 
    845  
    846                 // **************************************************** 
    847                 // server 
    848                 strm << "<p>Server Name: "; 
    849                 if(action.serverName[0] == '$' && !openWindowServer.empty()) 
    850                 { 
    851                         int fieldId = atoi(&action.serverName[1]); 
    852                         strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(schemaInsideId, fieldId, rootLevel)) << "$ (Sample Server: " << arIn->LinkToServerInfo(openWindowServer, rootLevel) << ")"; 
    853  
    854                         if (fieldId > 0) 
    855                         { 
    856                                 CRefItem refItem(*this->obj, ifElse, nAction, REFM_OPENWINDOW_SERVER); 
    857                                 arIn->AddFieldReference(schemaInsideId, fieldId, refItem); 
    858                         } 
    859                 } 
    860                 else 
    861                 { 
    862                         openWindowServer = action.serverName; 
    863                         strm << arIn->LinkToServerInfo(openWindowServer, rootLevel); 
    864                 } 
    865  
    866                 strm << "<br/>Form Name: "; 
    867                 if (action.schemaName[0] == '$') 
    868                 { 
    869                         int fieldId = atoi(&action.schemaName[1]); 
    870                         strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(schemaInsideId, fieldId, rootLevel)) << "$ (Sample Schema: " << arIn->LinkToSchema(openWindowSchema, rootLevel) << ")"; 
    871  
    872                         if (fieldId > 0) 
    873                         { 
    874                                 CRefItem refItem(*this->obj, ifElse, nAction, REFM_OPENWINDOW_FORM); 
    875                                 arIn->AddFieldReference(schemaInsideId, fieldId, refItem); 
    876                         } 
    877  
    878                         if (fieldId == (-AR_KEYWORD_SCHEMA)) openWindowSchema = schemaName; 
    879                 } 
    880                 else 
    881                 { 
    882                         openWindowSchema = action.schemaName; 
    883                         strm << arIn->LinkToSchema(openWindowSchema, rootLevel) << endl; 
    884                 } 
    885  
    886                 strm << "<br/>View Name: "; 
    887                 if(action.vuiLabel[0] == '$')// == NULL || strcmp(action.vuiLabel, "")==0) 
    888                 { 
    889                         int fieldId = atoi(&action.vuiLabel[1]); 
    890                         strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(schemaInsideId, fieldId, rootLevel)) << "$"; 
    891  
    892                         if (fieldId > 0) 
    893                         { 
    894                                 CRefItem refItem(*this->obj, ifElse, nAction, REFM_OPENWINDOW_VIEW); 
    895                                 arIn->AddFieldReference(schemaInsideId, fieldId, refItem); 
    896                         } 
    897                 } 
    898                 else 
    899                 { 
    900                         if (action.vuiLabel[0] == 0) 
    901                         {  
    902                                 strm << "(Clear)" << endl; 
    903                         } 
    904                         else 
    905                         { 
    906                                 CARSchema rSchema(openWindowSchema); 
    907                                 if (!rSchema.Exists()) 
    908                                 { 
    909                                         ObjNotFound notFound(strm); 
    910                                         notFound << action.vuiLabel; 
    911                                         notFound.End(); 
    912                                 } 
    913                                 else 
    914                                 { 
    915                                         CARVui vui(rSchema.GetInsideId(), action.vuiLabel); 
    916                                         if (vui.Exists()) 
    917                                                 strm << URLLink(vui, rootLevel); 
    918                                         else 
    919                                         { 
    920                                                 ObjNotFound notFound(strm); 
    921                                                 notFound << action.vuiLabel; 
    922                                                 notFound.End(); 
    923                                         } 
    924                                 } 
    925                         } 
    926                 } 
    927                 strm << "</p>" << endl; 
    928  
    929                 // report details here 
    930                 string *entryIDs = NULL; 
    931                 string *queryOverride = NULL; 
    932                 string *reportOperation = NULL; 
    933                 string *charEncoding = NULL; 
    934                 if (windowMode == AR_ACTIVE_LINK_ACTION_OPEN_REPORT) 
    935                 { 
    936                         string reportType; 
    937                         string reportLocation; 
    938                         string reportName; 
    939                         string reportDestination; 
    940                         entryIDs = new string(); 
    941                         queryOverride = new string(); 
    942                         reportOperation = new string(); 
    943                         charEncoding = new string(); 
    944  
    945                         if (!CDocActionOpenWindowHelper::GetReportData(action.reportString, reportType, reportLocation, reportName, reportDestination, *entryIDs, *queryOverride, *reportOperation, *charEncoding)) 
    946                         { 
    947                                 strm << "<p>"; 
    948                                 ObjNotFound notFound(strm); 
    949                                 notFound << "Could not load report informations!"; 
    950                                 notFound.End(); 
    951                                 strm << "</p>"; 
    952                         } 
    953                         else 
    954                         { 
    955                                 strm << "<p>Report Type: "; 
    956                                 if (!reportType.empty() && reportType[0] == '$') 
    957                                 { 
    958                                         int fieldId = atoi(&reportType.c_str()[1]); 
    959                                         strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(schemaInsideId, fieldId, rootLevel)) << "$"; 
    960                                         if (fieldId > 0) 
    961                                         { 
    962                                                 CRefItem refItem(*this->obj, ifElse, nAction, REFM_OPENWINDOW_REPORTTYPE); 
    963                                                 arIn->AddFieldReference(schemaInsideId, fieldId, refItem); 
    964                                         } 
    965                                 } 
    966                                 else 
    967                                 { 
    968                                         strm << reportType; 
    969                                 } 
    970                                 strm <<  "<br/>"; 
    971  
    972                                 int iReportLocation = atoi(reportLocation.c_str()); 
    973                                 strm << "Report Location: " << CAREnum::ReportLocation(iReportLocation); 
    974                                  
    975                                 strm << "<br/>Report Name: "; 
    976                                 if (!reportName.empty() && reportName[0] == '$') 
    977                                 { 
    978                                         int fieldId = atoi(&reportName.c_str()[1]); 
    979                                         strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(schemaInsideId, fieldId, rootLevel)) << "$"; 
    980                                         if (fieldId > 0) 
    981                                         { 
    982                                                 CRefItem refItem(*this->obj, ifElse, nAction, REFM_OPENWINDOW_REPORTNAME); 
    983                                                 arIn->AddFieldReference(schemaInsideId, fieldId, refItem); 
    984                                         } 
    985                                 } 
    986                                 else 
    987                                 { 
    988                                         strm << reportName; 
    989                                 } 
    990                                 strm << "<br/>"; 
    991                                  
    992                                 // to-screen: 
    993                                 // to-print: 
    994                                 // to-file: 
    995                                 strm << "Report Destination: "; 
    996                                 if (!reportDestination.empty() && reportDestination[0] == '$') 
    997                                 { 
    998                                         int fieldId = atoi(&reportDestination.c_str()[1]); 
    999                                         strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(schemaInsideId, fieldId, rootLevel)) << "$"; 
    1000                                         if (fieldId > 0) 
    1001                                         { 
    1002                                                 CRefItem refItem(*this->obj, ifElse, nAction, REFM_OPENWINDOW_REPORTDESTINATION); 
    1003                                                 arIn->AddFieldReference(schemaInsideId, fieldId, refItem); 
    1004                                         } 
    1005                                 } 
    1006                                 else 
    1007                                 { 
    1008                                         // map the string value to the displayed combobox item of dev studio 
    1009                                         strm << reportDestination; 
    1010                                 } 
    1011                                 strm << "</p>"; 
    1012                         } 
    1013                 } 
    1014  
    1015                 // qualification 
    1016                 if(ActionOpenDlgQualifier(action.windowMode)) 
    1017                 { 
    1018                         if(action.query.operation != AR_COND_OP_NONE) 
    1019                         { 
    1020                                 stringstream strmTmpQual; 
    1021  
    1022                                 CRefItem refItem(*this->obj, ifElse, nAction, REFM_OPENWINDOW_QUALIFICATION); 
    1023                                 int pFormId = schemaInsideId; // this->arIn->SchemaGetInsideId(schemaName.c_str()); 
    1024                                 int sFormId = this->arIn->SchemaGetInsideId(openWindowSchema); 
    1025  
    1026                                 strmTmpQual.str(""); 
    1027                                 CARQualification arQual(*this->arIn, refItem, pFormId, sFormId, rootLevel); 
    1028                                 arQual.CheckQuery(&action.query, strmTmpQual); 
    1029  
    1030                                 strm << "<p>Qualification:<br/>" << endl; 
    1031                                 strm << strmTmpQual.str() << "</p>"; 
    1032                         }        
    1033                 } 
    1034  
    1035                 strm << "<p>"; 
    1036                 // show close button 
    1037                 if (ActionOpenDlgCloseButton(windowMode)) 
    1038                 { 
    1039                         strm << "<input type=\"checkbox\" name=\"closeWnd\" value=\"closeWndAll\" " << (action.closeBox ? "checked" : "") << ">Show Close Button in Dialog<br/>" << endl; 
    1040                 } 
    1041  
    1042                 // suppres empty list 
    1043                 if (ActionOpenDlgSuppressEmptyList(windowMode)) 
    1044                 { 
    1045                         strm << "<input type=\"checkbox\" name=\"suprEmptyLst\" value=\"suprEmptyLstVal\" " << (action.suppressEmptyLst ? "checked" : "") << ">Suppress Empty List<br/>" << endl;                
    1046                 } 
    1047  
    1048                 // set fields to defaults 
    1049                 bool setToDefault = false; 
    1050                 if (windowMode == AR_ACTIVE_LINK_ACTION_OPEN_SEARCH || windowMode == AR_ACTIVE_LINK_ACTION_OPEN_SUBMIT) 
    1051                 { 
    1052  
    1053                         for(unsigned int i= 0; i < action.inputValueFieldPairs.numItems; ++i) 
    1054                         { 
    1055                                 if (action.inputValueFieldPairs.fieldAssignList[i].fieldId == AR_SET_DEFAULTS_ID) 
    1056                                 { 
    1057                                         setToDefault = true; 
    1058                                         break; 
    1059                                 } 
    1060                         } 
    1061  
    1062                         strm << "<input type=\"checkbox\" name=\"setToDefault\" value=\"setToDefaultVal\" " << (setToDefault ? "checked" : "") << ">Set Fields To Defaults<br/>" << endl;                
    1063                 } 
    1064  
    1065                 // input mapping 
    1066                 if (ActionOpenDlgInputMapping(windowMode) && !setToDefault) 
    1067                 { 
    1068                         CARAssignHelper assignHelper(*arIn, rootLevel, *this->obj, openWindowSchema, schemaName); 
    1069                         //assignHelper.pushFieldFlag = true; 
    1070                         strm << assignHelper.OpenWindowAssignment(action.inputValueFieldPairs, nAction, ifElse, OWM_OPEN); 
    1071                 } 
    1072  
    1073                 // output mapping (dialog on close) 
    1074                 if (ActionOpenDlgOutputMapping(windowMode)) 
    1075                 { 
    1076                         strm << "On Dialog Close Action:<br/>"; 
    1077  
    1078                         CARAssignHelper assignHelper(*arIn, rootLevel, *this->obj, schemaName, openWindowSchema); 
    1079                         strm << assignHelper.OpenWindowAssignment(action.outputValueFieldPairs, nAction, ifElse, OWM_CLOSE); 
    1080                 } 
    1081                 strm << "</p>"; 
    1082  
    1083                 if (ActionOpenDlgMessage(windowMode)) 
    1084                 { 
    1085                         // message 
    1086                         strm << "<p>If No Request Match: "; 
    1087                         if (action.noMatchContinue) 
    1088                         { 
    1089                                 strm << "Do not show any message"; 
    1090                         } 
    1091                         else if (action.msg.messageText == NULL || action.msg.messageText[0] == 0)      // dont know, if thats the correct criteria for the default message 
    1092                         { 
    1093                                 strm << "Show default message"; 
    1094                         } 
    1095                         else if (action.msg.messageType > 0) 
    1096                         { 
    1097                                 strm << "Show message<br/>"; 
    1098                                 ActionMessage(strm, action.msg, nAction); 
    1099                         } 
    1100                         strm << "</p>" << endl; 
    1101  
    1102                         // sorting 
    1103                         if (action.sortOrderList.numItems > 0)   
    1104                         { 
    1105                                 CTable tblSortList("sortList", "TblObjectList"); 
    1106                                 tblSortList.AddColumn(40, "Field Name"); 
    1107                                 tblSortList.AddColumn(15, "Field Id"); 
    1108                                 tblSortList.AddColumn(15, "Field Type"); 
    1109                                 tblSortList.AddColumn(30, "Sort Order"); 
    1110                                  
    1111                                 char strFieldId[20];                             
    1112                                 CARSchema rSchema(openWindowSchema); 
    1113  
    1114                                 for (unsigned int i = 0; i < action.sortOrderList.numItems; ++i) 
    1115                                 { 
    1116                                         CARField rField(rSchema.GetInsideId(), action.sortOrderList.sortList[i].fieldId); 
    1117  
    1118                                         strFieldId[0] = 0; 
    1119                                         sprintf(strFieldId, "%d", static_cast<int>(action.sortOrderList.sortList[i].fieldId)); 
    1120  
    1121                                         CTableRow row("cssStdRow"); 
    1122                                         row.AddCell(arIn->LinkToField(openWindowSchema, action.sortOrderList.sortList[i].fieldId, rootLevel)); 
    1123                                         row.AddCell(strFieldId); 
    1124                                         row.AddCell((rField.Exists() ? CAREnum::DataType(rField.GetDataType()) : "Unknown")); 
    1125                                         row.AddCell(CAREnum::SchemaSortOrder(action.sortOrderList.sortList[i].sortOrder)); 
    1126                                          
    1127                                         tblSortList.AddRow(row); 
    1128  
    1129                                         if (rSchema.Exists()) 
    1130                                         { 
    1131                                                 CRefItem refItem(*this->obj, ifElse, nAction, REFM_OPENWINDOW_SORTBY); 
    1132                                                 arIn->AddFieldReference(rSchema.GetInsideId(), action.sortOrderList.sortList[i].fieldId, refItem); 
    1133                                         } 
    1134                                 } 
    1135  
    1136                                 strm << "<p>Sort Order" << tblSortList << "</p>"; 
    1137                         } 
    1138  
    1139                         // additional report informations 
    1140                         if (windowMode == AR_ACTIVE_LINK_ACTION_OPEN_REPORT) 
    1141                         { 
    1142                                 strm << "<p>EntryIDs: "; 
    1143                                 if (!entryIDs->empty() && entryIDs->operator[](0) == '$') 
    1144                                 { 
    1145                                         int fieldId = atoi(&entryIDs->c_str()[1]); 
    1146                                         strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(schemaInsideId, fieldId, rootLevel)) << "$"; 
    1147                                         if (fieldId > 0) 
    1148                                         { 
    1149                                                 CRefItem refItem(*this->obj, ifElse, nAction, REFM_OPENWINDOW_ENTRYIDS); 
    1150                                                 arIn->AddFieldReference(schemaInsideId, fieldId, refItem); 
    1151                                         } 
    1152                                 } 
    1153                                 else 
    1154                                 { 
    1155                                         strm << *entryIDs; 
    1156                                 } 
    1157                                  
    1158                                 strm << "<br/>Query Override: "; 
    1159                                 if (!queryOverride->empty() && queryOverride->operator[](0) == '$') 
    1160                                 { 
    1161                                         int fieldId = atoi(&entryIDs->c_str()[1]); 
    1162                                         strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(schemaInsideId, fieldId, rootLevel)) << "$"; 
    1163                                         if (fieldId > 0) 
    1164                                         { 
    1165                                                 CRefItem refItem(*this->obj, ifElse, nAction, REFM_OPENWINDOW_QUERYOVERRIDE); 
    1166                                                 arIn->AddFieldReference(schemaInsideId, fieldId, refItem); 
    1167                                         } 
    1168                                 } 
    1169                                 else 
    1170                                 { 
    1171                                         strm << *queryOverride; 
    1172                                 } 
    1173                                  
    1174                                 strm << "<br/>Report Operation: "; 
    1175                                 int iReportOperation = atoi(reportOperation->c_str()); 
    1176                                 if (iReportOperation == 0) iReportOperation = 2;        // set default to Run 
    1177                                 strm << CAREnum::ReportOperation(iReportOperation); 
    1178  
    1179                                 strm << "<br/>Character Encoding: "; 
    1180                                 if (!charEncoding->empty() && charEncoding->operator[](0) == '$') 
    1181                                 { 
    1182                                         int fieldId = atoi(&charEncoding->c_str()[1]); 
    1183                                         strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(schemaInsideId, fieldId, rootLevel)) << "$"; 
    1184                                         if (fieldId > 0) 
    1185                                         { 
    1186                                                 CRefItem refItem(*this->obj, ifElse, nAction, REFM_OPENWINDOW_CHARENC); 
    1187                                                 arIn->AddFieldReference(schemaInsideId, fieldId, refItem); 
    1188                                         } 
    1189                                 } 
    1190                                 else 
    1191                                 { 
    1192                                         strm << *charEncoding; 
    1193                                 } 
    1194                                 strm << "</p>" << endl; 
    1195  
    1196                                 // clean up 
    1197                                 delete entryIDs; 
    1198                                 delete queryOverride; 
    1199                                 delete reportOperation; 
    1200                                 delete charEncoding; 
    1201                         } 
    1202  
    1203                         // polling interval 
    1204                         if (ActionOpenDlgPoolingInterval(windowMode) && action.pollinginterval > 0) 
    1205                         { 
    1206                                 strm << "<p>Polling interval: " << action.pollinginterval << "</p>" << endl; 
    1207                         } 
    1208                 } 
    1209         } 
    1210         catch(exception& e) 
    1211         { 
    1212                 cout << "EXCEPTION in AlActionOpenDlg of '" << this->obj->GetName() << "': " << e.what() << endl; 
    1213         } 
     647        Context context(*this->obj, ifElse, nAction, schemaInsideId, rootLevel); 
     648        DocOpenWindowAction docOpenWindow(context, action); 
     649        docOpenWindow.ToStream(strm); 
    1214650} 
    1215651 
  • branches/work_311/doc/DocAlActionStruct.h

    r372 r596  
    7373        // AR_ACTIVE_LINK_ACTION_OPENDLG 
    7474        void ActionOpenDlg(std::ostream& strm, const AROpenDlgStruct &action, int nAction); 
    75         bool ActionOpenDlgTargetLocation(int nWindowType); 
    76         bool ActionOpenDlgQualifier(int nWindowType); 
    77         bool ActionOpenDlgCloseButton(int nWindowType); 
    78         bool ActionOpenDlgSuppressEmptyList(int nWindowType); 
    79         bool ActionOpenDlgInputMapping(int nWindowType); 
    80         bool ActionOpenDlgOutputMapping(int nWindowType); 
    81         bool ActionOpenDlgPoolingInterval(int nWindowType); 
    82         bool ActionOpenDlgMessage(int nWindowType); 
    8375 
    8476        // AR_ACTIVE_LINK_ACTION_COMMITC 
Note: See TracChangeset for help on using the changeset viewer.