Module Calendar_Resources.vw

     1Use DfAllEnt.pkg
     2
     3Use Cal_Res.DD
     4Use Cal_Sch.DD
     5Use Cal_Lay.DD
     6Use Cal_SRL.DD
     7Use cSigCJPushButton.pkg
     8
     9Activate_View Activate_oCalendar_Resources for oCalendar_Resources
    10Object oCalendar_Resources is a dbView
    11    Set Label to "Calendar Resource Tables"
    12    Set Size to 137 291
    13    Set Location to 7 9
    14
    15    Object oOrder_BusinessProcess is a BusinessProcess
    16        Property Integer piLayout_no
    17        Property Integer piOrder
    18
    19        Object oCal_Lay_DD is a Cal_Lay_DataDictionary
    20            
    21            Property Integer pCDD_Layout_no
    22            
    23            Procedure OnConstrain
    24                If (pCDD_Layout_no(Self) > 0) Constrain Cal_Lay.Id eq (pCDD_Layout_no(Self))
    25            End_Procedure
    26            
    27        End_Object // oCal_Lay_DD
    28    
    29        Object oCal_Srl_DD is a Cal_Srl_DataDictionary
    30            Set DDO_Server to oCal_Lay_DD
    31            Set Constrain_File to Cal_Lay.File_Number 
    32        End_Object // oCal_Srl_DD
    33    
    34        
    35        //Debugging
    36        Set Display_Error_State to True
    37            
    38
    39        // After deleting check we have the correct Order numbers    
    40        Procedure DoProcess_Order
    41            Integer iCount
    42            String  sValue
    43            
    44            Set pCDD_Layout_no   of oCal_Lay_DD to (piLayout_no(Self))
    45            
    46            Send Clear of oCal_Lay_DD
    47            Send Clear of oCal_Srl_DD
    48        
    49            Send Rebuild_Constraints of oCal_Lay_DD
    50            Send Rebuild_Constraints of oCal_Srl_DD
    51            
    52            Send Find of oCal_Lay_DD Ge 1
    53            
    54            Move 0 to Cal_Srl.Order
    55            Send Find of oCal_Srl_DD Gt 1
    56            While (Found)
    57                Increment iCount
    58                If (Cal_Srl.Order <> iCount) Begin
    59                    Set Field_Changed_Value of oCal_Srl_DD Field Cal_Srl.Order to iCount
    60                    Send Request_Save of oCal_Srl_DD
    61                End
    62                Send Find of oCal_Srl_DD Gt 1
    63            Loop
    64        End_Procedure
    65
    66        Procedure DoProcess_Up
    67            Integer iCount iOrder iUpTo
    68            String  sValue
    69            
    70            If (piOrder(Self) <= 1) Procedure_Return 
    71            
    72            Set pCDD_Layout_no   of oCal_Lay_DD to (piLayout_no(Self))
    73            
    74            Send Clear of oCal_Lay_DD
    75            Send Clear of oCal_Srl_DD
    76        
    77            Send Rebuild_Constraints of oCal_Lay_DD
    78            Send Rebuild_Constraints of oCal_Srl_DD
    79            
    80            Send Find of oCal_Lay_DD Ge 1
    81            
    82            Move 9999 to Cal_Srl.Order
    83            Send Find of oCal_Srl_DD Lt 1
    84            Get Field_Current_Value of oCal_Srl_DD Field Cal_Srl.Order to iOrder
    85
    86            Move (piOrder(Self)-2) to iUpTo
    87            If (iUpTo < 0) Move 0 to iUpTo
    88
    89            Repeat 
    90                Move iOrder to Cal_Srl.Order
    91                Send Find of oCal_Srl_DD Eq 1
    92                If (Found) Begin
    93                    Set Field_Changed_Value of oCal_Srl_DD Field Cal_Srl.Order to (iOrder +1)
    94                    Send Request_Save of oCal_Srl_DD
    95                End
    96                Decrement iOrder
    97            Until  (iUpTo = iOrder)   
    98
    99             Move (piOrder(Self)+1) to Cal_Srl.Order
   100             Send Find of oCal_Srl_DD Eq 1
   101             If (Found) Begin
   102                Get Field_Current_Value of oCal_Srl_DD Field Cal_Srl.Order to  iOrder
   103                Set Field_Changed_Value of oCal_Srl_DD Field Cal_Srl.Order to (iOrder -2)
   104                Send Request_Save of oCal_Srl_DD
   105             End
   106            
   107            Send DoProcess_Order
   108        End_Procedure
   109        
   110        Procedure DoProcess_Down
   111            Integer iCount iOrder iUpTo
   112            String  sValue
   113            
   114            Set pCDD_Layout_no   of oCal_Lay_DD to (piLayout_no(Self))
   115            
   116            Send Clear of oCal_Lay_DD
   117            Send Clear of oCal_Srl_DD
   118        
   119            Send Rebuild_Constraints of oCal_Lay_DD
   120            Send Rebuild_Constraints of oCal_Srl_DD
   121            
   122            Send Find of oCal_Lay_DD Ge 1
   123            
   124            Move (piOrder(Self)) to iUpTo
   125            
   126            Move 9999 to Cal_Srl.Order
   127            Send Find of oCal_Srl_DD Lt 1
   128            Get Field_Current_Value of oCal_Srl_DD Field Cal_Srl.Order to iOrder
   129            
   130            // Stop if on last record
   131            If (iOrder = iUpTo) Procedure_Return 
   132            
   133            If ((iUpTo+1) <> iOrder) Begin
   134                Repeat 
   135                    Move iOrder to Cal_Srl.Order
   136                    Send Find of oCal_Srl_DD Eq 1
   137                    If (Found) Begin
   138                        Set Field_Changed_Value of oCal_Srl_DD Field Cal_Srl.Order to (iOrder +1)
   139                        Send Request_Save of oCal_Srl_DD
   140                    End
   141                    Decrement iOrder
   142                Until  ((iUpTo+1) = iOrder)   
   143            End
   144            
   145            Move (piOrder(Self)) to Cal_Srl.Order
   146            Send Find of oCal_Srl_DD Eq 1
   147            If (Found) Begin
   148                Get Field_Current_Value of oCal_Srl_DD Field Cal_Srl.Order to  iOrder
   149                Set Field_Changed_Value of oCal_Srl_DD Field Cal_Srl.Order to (iOrder +2)
   150                Send Request_Save of oCal_Srl_DD
   151            End
   152            
   153            Send DoProcess_Order
   154        End_Procedure
   155
   156    End_Object
   157
   158    Object oNewTabDialog is a dbTabDialogView
   159
   160        Set Size to 128 282
   161        Set Location to 5 5
   162        Set Rotate_Mode to RM_Rotate
   163
   164        Object oResources_TabPage is a dbTabView
   165            Object oCal_Res_DD is a Cal_Res_DataDictionary
   166            End_Object
   167
   168            Set Main_DD to oCal_Res_DD
   169            Set Server to oCal_Res_DD
   170
   171            Set Label to "Resources"
   172
   173            Object oResource_ID is a dbForm
   174                Set Location to 10 50
   175                Entry_Item Cal_Res.ID
   176                Set Size to 13 54
   177                Set Label to "ID:"
   178                Set Label_Col_Offset to 2
   179                Set Label_Justification_Mode to JMode_Right
   180            End_Object
   181
   182            Object oResource_Title is a dbForm
   183                Entry_Item Cal_Res.Title
   184                Set Location to 26 50
   185                Set Size to 13 200
   186                Set Label to "Title:"
   187                Set Label_Col_Offset to 2
   188                Set Label_Justification_Mode to JMode_Right
   189            End_Object
   190
   191            Object oCal_Res_DataType is a dbComboForm
   192                Entry_Item Cal_Res.DataType
   193                Set Location to 42 50
   194                Set Size to 13 80
   195                Set Label to "Data Type:"
   196                Set Label_Col_Offset to 2
   197                Set Label_Justification_Mode to JMode_Right
   198            End_Object
   199
   200            Object oCal_Res_DataSource is a dbForm
   201                Entry_Item Cal_Res.DataSource
   202                Set Location to 58 50
   203                Set Size to 13 200
   204                Set Label to "Data Source:"
   205                Set Label_Col_Offset to 2
   206                Set Label_Justification_Mode to JMode_Right
   207            End_Object
   208
   209        End_Object
   210
   211        Object oSchedules_TabPage is a dbTabView
   212            Object oCal_Sch_DD is a Cal_Sch_DataDictionary
   213            End_Object
   214    
   215            Set Main_DD to oCal_Sch_DD
   216            Set Server to oCal_Sch_DD
   217
   218            Set Label to "Schedules"
   219
   220            Object oSchedule_ID is a dbForm
   221                Entry_Item CAl_Sch.ID
   222                Set Location to 10 50
   223                Set Size to 13 54
   224                Set Label to "ID:"
   225                Set Label_Col_Offset to 2
   226                Set Label_Justification_Mode to JMode_Right
   227            End_Object
   228
   229            Object oSchedule_Title is a dbForm
   230                Entry_Item Cal_Sch.Title
   231                Set Location to 26 50
   232                Set Size to 13 198
   233                Set Label to "Title:"
   234                Set Label_Col_Offset to 2
   235                Set Label_Justification_Mode to JMode_Right
   236            End_Object
   237        End_Object
   238
   239        Object oLayouts_TabPage is a dbTabView
   240            Object oCal_Lay_DD is a Cal_Lay_DataDictionary
   241            End_Object
   242
   243            Set Main_DD to oCal_Lay_DD
   244            Set Server to oCal_Lay_DD
   245
   246            Set Label to "Layouts"
   247
   248            Object oLayouts_ID is a dbForm
   249                Entry_Item Cal_Lay.ID
   250                Set Location to 10 50
   251                Set Size to 13 54
   252                Set Label to "ID:"
   253                Set Label_Col_Offset to 2
   254                Set Label_Justification_Mode to JMode_Right
   255            End_Object
   256
   257            Object oLayouts_Title is a dbForm
   258                Entry_Item Cal_Lay.Title
   259                Set Location to 26 50
   260                Set Size to 13 198
   261                Set Label to "Title:"
   262                Set Label_Col_Offset to 2
   263                Set Label_Justification_Mode to JMode_Right
   264            End_Object
   265
   266            Object oCal_Lay_Category_Set is a dbComboForm
   267                Entry_Item Cal_Lay.Category_Set
   268                Set Location to 42 50
   269                Set Size to 13 120
   270                Set Label to "Category Set:"
   271                Set Label_Col_Offset to 2
   272                Set Label_Justification_Mode to JMode_Right
   273            End_Object
   274        End_Object
   275
   276        Object oResourceSetup_TabPage is a dbTabView
   277            Object oCal_Lay_DD is a Cal_Lay_DataDictionary
   278            End_Object // oCal_Lay_DD
   279        
   280            Object oCal_Srl_DD is a Cal_Srl_DataDictionary
   281                Set DDO_Server to oCal_Lay_DD
   282                Set Constrain_File to Cal_Lay.File_Number 
   283                
   284                Procedure Delete_Main_File
   285                    Set piLayout_no of oOrder_BusinessProcess to Cal_Lay.id 
   286                    Forward Send Delete_Main_File
   287                End_Procedure
   288        
   289                Procedure mAfter_Delete        
   290                    Send DoProcess_Order of oOrder_BusinessProcess
   291                End_Procedure
   292                
   293            End_Object // oCal_Srl_DD
   294        
   295            Set Main_DD to oCal_Lay_DD
   296            Set Server  to oCal_Lay_DD
   297        
   298            Set Label to "Resource Setup"
   299        
   300            Object oCal_LayTitle is a dbForm
   301                Entry_Item Cal_Lay.Title
   302                Set Size to 13 198
   303                Set Location to 10 50
   304                Set peAnchors to anLeftRight
   305                Set Label to "Title:"
   306                Set Label_Justification_mode to jMode_right
   307                Set Label_Col_Offset to 2
   308                Set Label_row_Offset to 0
   309            End_Object // oCal_LayTitle
   310        
   311            Object oDetailGrid is a dbGrid
   312                Set Size to 77 197
   313                Set Location to 27 50
   314        
   315                Set Main_file to Cal_Srl.File_number
   316                Set Server to oCal_Srl_DD
   317                Set Ordering to 1
   318                Set peResizeColumn to rcAll
   319                Set peAnchors to anAll
   320                Set Wrap_State to True
   321        
   322                Begin_Row
   323                    Entry_Item (Cal_Srl.Order)
   324                    Entry_Item Cal_Srl.Resource
   325                    Entry_Item Cal_Srl.Schedule
   326                End_Row
   327        
   328                Set Form_Width 0 to 40
   329                Set Header_Label 0 to "Order"
   330        
   331                Set Form_Width 1 to 83
   332                Set Header_Label 1 to "Resource"
   333                Set Column_Combo_State 1 to True
   334                
   335                Set Form_Width 2 to 70
   336                Set Header_Label 2 to "Schedule"
   337                Set Column_Combo_State 2 to True
   338                
   339                Set Child_Table_State to True
   340                Set GridLine_Mode to Grid_Visible_Horz
   341                Set CurrentRowColor to clHighlight
   342                
   343                Procedure Update_Objects 
   344                    Send Clear of oCal_Lay_DD  
   345                    Send Column_Combo_Fill_List 1
   346                    Send Column_Combo_Fill_List 2   
   347                End_Procedure                                            
   348                
   349                Function Child_Entering Returns Integer
   350                    Boolean bFail
   351                    // Check with header to see if it is saved.
   352                    Delegate Get SaveHeader to bFail
   353                    Function_Return bFail // if non-zero do not enter
   354                End_Function // Child_Entering
   355        
   356                On_Key kAdd_Mode Send Append_a_Row  // Hot Key for KAdd_Mode = Shift+F10
   357        
   358                Procedure Append_a_Row 
   359                    Send End_Of_Data
   360                    Send Down
   361                End_Procedure // Append_a_Row
   362                
   363                // Add new record to the end of the table.
   364                Function Row_Save Returns Integer
   365                    Integer iRetval   
   366                    Boolean bHasRecord
   367                    
   368                    Get HasRecord of oCal_Srl_DD to bHasRecord
   369                    If (not(bHasRecord)) Set Field_Changed_Value of oCal_Srl_DD Field Cal_SRL.Order to (Cal_Lay.Count +1)                    
   370                    Forward Get Row_Save to iRetval
   371                    Function_Return iRetval
   372                End_Function // Row_Save    
   373        
   374            End_Object // oDetailGrid
   375        
   376            Function ConfirmDeleteHeader Returns Boolean
   377                Boolean bFail
   378                Get Confirm "Delete Entire Header and all detail?" to bFail
   379                Function_Return bFail
   380            End_Function // ConfirmDeleteHeader
   381        
   382            Function ConfirmSaveHeader Returns Boolean
   383                Boolean bNoSave bHasRecord
   384                Handle  hoSrvr
   385                Get Server to hoSrvr
   386                Get HasRecord of hoSrvr to bHasRecord
   387                If not bHasRecord Begin
   388                    Get Confirm "Save this NEW header?" to bNoSave
   389                End
   390                Function_Return bNoSave
   391            End_Function // ConfirmSaveOrder
   392        
   393            Set Verify_Save_MSG       to GET_ConfirmSaveHeader
   394            Set Verify_Delete_MSG     to GET_ConfirmDeleteHeader
   395        
   396            Function SaveHeader Returns Boolean
   397                Integer iRec
   398                Boolean bChanged bHasRecord
   399                Handle  hoSrvr
   400        
   401                Get Server to hoSrvr                   // The Header DDO.
   402                Get HasRecord of hoSrvr to bHasRecord  // Is there a record?
   403                Get Should_Save to bChanged            // Are there any current changes?
   404        
   405                // If there is no record and no changes we have an error.
   406                If (not(bHasRecord) and not(bChanged) ) Begin  // no rec
   407                    Error DfErr_Operator "You must First Create & Save the Header"
   408                    Function_Return True
   409                End
   410        
   411                Send Request_Save_No_Clear
   412        
   413                Get Should_Save to bChanged  // is a save still needed
   414                Get HasRecord of hoSrvr to bHasRecord // is there a record after the save?
   415                // if no record or changes still exist, return an error code of 1
   416                If (not(bHasRecord) or (bChanged)) Begin
   417                    Function_Return True
   418                End
   419            End_Function // SaveHeader
   420                                                   
   421            Procedure Activate Returns Integer
   422                Integer iRetval
   423                Forward Get msg_Activate to iRetval
   424                // Reset Combo as we may have changed the data
   425                Send Update_Objects of oDetailGrid
   426                Procedure_Return iRetval 
   427            End_Procedure      
   428            
   429            Object oOrder_Up_bn is a cSigCJPushButton
   430                Set Size to 15 15
   431                Set Location to 50 30
   432                Set psImage to "Up16.bmp"
   433                Set pbPointer_Only to True
   434            
   435                Procedure OnClick
   436                    Integer iLayout_no iOrder
   437
   438                    Get Field_Current_Value of oCal_Lay_DD Field  Cal_Lay.ID     to iLayout_no
   439                    Get Field_Current_Value of oCal_Srl_DD Field  Cal_SRL.Order  to iOrder
   440
   441                    Set piLayout_no of oOrder_BusinessProcess to iLayout_no
   442                    Set piOrder     of oOrder_BusinessProcess to iOrder
   443                    
   444                    If ((iLayout_no > 0) and (iOrder > 0)) Begin
   445                        Send DoProcess_Up of oOrder_BusinessProcess
   446                        Send Beginning_of_Data of oDetailGrid
   447                    End            
   448                End_Procedure
   449            
   450            End_Object
   451        
   452            Object oOrder_Down_bn is a cSigCJPushButton
   453                Set Size to 15 15
   454                Set Location to 70 30
   455                Set psImage to "Down16.bmp"
   456                Set pbPointer_Only to True
   457    
   458                Procedure OnClick
   459                    Integer iLayout_no iOrder
   460
   461                    Get Field_Current_Value of oCal_Lay_DD Field  Cal_Lay.ID     to iLayout_no
   462                    Get Field_Current_Value of oCal_Srl_DD Field  Cal_SRL.Order  to iOrder
   463
   464                    Set piLayout_no of oOrder_BusinessProcess to iLayout_no
   465                    Set piOrder     of oOrder_BusinessProcess to iOrder
   466                    
   467                    If ((iLayout_no > 0) and (iOrder > 0)) Begin
   468                        Send DoProcess_Down of oOrder_BusinessProcess
   469                        Send Beginning_of_Data of oDetailGrid
   470                    End            
   471                End_Procedure
   472            
   473            End_Object
   474
   475        End_Object
   476
   477    End_Object
   478
   479End_Object
   480
   481