Changeset 625


Ignore:
Timestamp:
08/27/14 17:00:00 (4 years ago)
Author:
jls17
Message:
  • view-field references in open window target location are now linking to the field and a reference is shown from the field back to the action
Location:
branches/work_311
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/work_311/doc/actions/DocOpenWindowAction.cpp

    r612 r625  
    7575                                                CRefItem refItem(context, REFM_OPENWINDOW_LOCATION); 
    7676                                                arIn->AddFieldReference(context.getCurrentSchemaId(), fieldId, refItem); 
     77                                        } 
     78                                } 
     79                                else if (IsViewFieldReference(action.targetLocation)) 
     80                                { 
     81                                        int fieldId = atoi(&action.targetLocation[2]); 
     82 
     83                                        if (fieldId > 0) 
     84                                        { 
     85                                                strm << "VF" << arIn->LinkToField(context.getCurrentSchemaId(), fieldId, &action.targetLocation[2], context.getRootLevel()); 
     86                                                CRefItem refItem(context, REFM_OPENWINDOW_LOCATION_VIEWFIELD); 
     87                                                if (!arIn->FieldreferenceExists(context.getCurrentSchemaId(), fieldId, refItem)) 
     88                                                { 
     89                                                        arIn->AddFieldReference(context.getCurrentSchemaId(), fieldId, refItem); 
     90                                                } 
     91                                        } 
     92                                        else 
     93                                        { 
     94                                                strm << action.targetLocation; 
    7795                                        } 
    7896                                } 
     
    621639        } 
    622640} 
     641 
     642bool DocOpenWindowAction::IsViewFieldReference(const char *targetLocation) 
     643{ 
     644        if (targetLocation != NULL && strncmp("VF", targetLocation, 2) == 0) 
     645        { 
     646                int index = 2; 
     647                while (targetLocation[index] != 0) 
     648                { 
     649                        char chr = targetLocation[index]; 
     650                        if (chr < '0' || chr > '9') 
     651                                return false; 
     652 
     653                        index++; 
     654                } 
     655                return true; 
     656        } 
     657        return false; 
     658} 
     659 
  • branches/work_311/doc/actions/DocOpenWindowAction.h

    r599 r625  
    3434        static bool ActionOpenDlgMessage(int nWindowType); 
    3535        static bool ActionOpenDlgInlineForm(int nWindowType); 
     36        static bool IsViewFieldReference(const char* targetLocation); 
    3637 
    3738private: 
  • branches/work_311/util/RefItem.cpp

    r619 r625  
    498498                strm << "Window Open Location " << IfElse() << "-Action " << ActionIndex(); 
    499499                break; 
     500        case REFM_OPENWINDOW_LOCATION_VIEWFIELD: 
     501                strm << "OpenWindow Location ViewField in " << IfElse() << "-Action " << ActionIndex(); 
     502                break; 
    500503        case REFM_OPENWINDOW_SERVER: 
    501504                strm << "Window Open Server Name " << IfElse() << "-Action " << ActionIndex(); 
  • branches/work_311/util/RefItem.h

    r619 r625  
    122122        REFM_OPENWINDOW_VIEW, 
    123123        REFM_OPENWINDOW_LOCATION, 
     124        REFM_OPENWINDOW_LOCATION_VIEWFIELD, 
    124125        REFM_OPENWINDOW_REPORTTYPE, 
    125126        REFM_OPENWINDOW_REPORTNAME, 
Note: See TracChangeset for help on using the changeset viewer.