>Define Class UIController As Custom > Add Object ReportCollection As Collection > oForm = "" > Descriptn = .F. > > Procedure Init() > This.ReportCollection.Add(Createobject('AgingReport'), 'AgingReport') > This.ReportCollection.Add(Createobject('CollDisb'), 'CollDisb') > This.ReportCollection.Add(Createobject('NetDisbursement'), 'NetDisbursement') > This.ReportCollection.Add(Createobject('TransactionLayer'), 'TransactionLayer') > Endproc > > Procedure setFormRef(oForm) >* oForm.AddObject('grdDetail', 'grdDetail') > This.oForm = oForm > Endproc > > Procedure BuildGrid() > This.oForm.grdDetail.BuildGrid(This.oForm) > This.oForm.grdDetail.Refresh > Endproc >EndDefine > >Define Class DetailColumn As Column > Service = "" > HdrText = "" > strArmy = "Service = 'ARMY'" > strTreas = "Service = 'TREA'" > strTotal = "Service = 'Total'" > strNavy = "Service = 'NAVY'" > strUSAF = "Service = 'USAF'" > strOSD = "Service = 'OSD'" > intCol = 0 > Alignment = 6 > > Procedure Init(intNumber) > With This > .intCol = intNumber > .Header1.Caption = Iif(.intCol = 1, "Reporting" + Chr(13) + Chr(10) + "ALC", ; > IIF(.intCol = 2, "Treasury" + Chr(13) + Chr(10) + Chr(40)+ "GWA" + Chr(41), ; > IIF(.intCol = 3, "Month Year", Iif(intCol = 4, "Aging" + Chr(13) + Chr(10) + "Days", ; > IIF(.intCol = 5, "Limit", Iif(intCol = 6, "Status", Iif(intCol = 7, "Description", ; > IIF(.intCol = 8, "Point of Contact", Iif(.intCol = 9, "Contact" + Chr(13) + Chr(10) + "Date", "Action Taken"))))))))) > .Header1.Refresh > Endwith > Endproc > Procedure setAlignment() > This.Alignment = Iif(This.intCol = 2, 1, 9) > Endproc > > Procedure setWidth() > With This > .Width = Iif(Inlist(.intCol, 4, 5, 6),75, Iif(Inlist(.intCol, 7), 65, Iif(.intCol = 1, 100, Iif(.intCol = 2, 125, Iif(.intCol <> 8, 100, 175))))) > Endwith > Endproc > > Procedure setName(strRecordSource) > This.Name = Field(This.intCol, strRecordSource) > Endproc > > Procedure SetDynamicBackColor() > This.DynamicBackColor = "Iif(&this.strArmy, Rgb(0,128,128), Iif(&this.strNavy, Rgb(0,64,128), ; > Iif(&this.strUSAF, Rgb(0,128,255), Iif(&this.strTreas, Rgb(0,128,64), Iif(&this.strOSD, ; > Rgb(222,254,180), Rgb(255,255,255))))))" > Endproc > > Procedure SetDynamicForeColor() > This.DynamicForeColor = "Iif(&this.strArmy, Rgb(255,255,0), Iif(InList(Service, 'NAVY', 'USAF'), ; > Rgb(255,255,255), Iif(&this.strTreas, Rgb(255,254,230), Rgb(0,0,0))))" > Endproc > > Procedure settextFormat(strFormat) > This.text1.Format = strFormat > Endproc > > Procedure setEnabled(blnEnabled) > This.Enabled = blnEnabled > Endproc > > Procedure SetControlEnabled(blnEnabled) > With This > mobjCurrentControl = '.' + .CurrentControl + '.Enabled' > &mobjCurrentControl = blnEnabled > Endwith > Endproc > > Procedure SetBackgroundAttributes() > With This > mobjDisabledBackColor = '.' + .CurrentControl + '.DisabledBackColor' > mobjBackColor = '.' + .CurrentControl + '.BackColor' > Store Iif(&.strArmy, Rgb(0,128,128), Iif(&.strNavy, Rgb(0,64,128), Iif(&.strUSAF, Rgb(0,128,255), Iif(&.strTreas, Rgb(0,128,64), ; > Iif(&.strOSD, Rgb(222,254,180), Rgb(255,255,255)))))) To &mobjDisabledBackColor, &mobjBackColor > Endwith > Endproc > > Procedure SetForegroundAttributes() > With This > mobjDisabledForeColor = '.' + .CurrentControl + '.DisabledForeColor' > mobjForeColor = '.' + .CurrentControl + '.ForeColor' > Store Iif(&.strArmy, Rgb(255,255,0), Iif(Inlist(Service, 'NAVY', 'USAF'), Rgb(255,255,255), Iif(&.strTreas, Rgb(255,254,230), Rgb(0,0,0)))) ; > To &mobjDisabledForeColor, &mobjForeColor > Endwith > Endproc > > Procedure AddObject2Column() > With This > Do Case > Case .intCol = 6 > If Type('oCol.cmbActive') <> 'O' > .AddObject("cmbActive", "COMBOBOX") > Endif > .CurrentControl = "cmbActive" > .ControlSource = "dtlRecon1.ActiveVar" > .cmbActive.RowSource = "ThisForm.cntRecon" > .cmbActive.RowSourceType = 10 > Case .intCol = 1 > If Type('oCol.cmbService') <> 'O' > .AddObject("cmbService", "COMBOBOX") > Endif > .CurrentControl = "cmbService" > .ControlSource = "dtlRecon1.Service" > .cmbService.RowSource = "ServiceTypes.Service" > .cmbService.RowSourceType = 6 > Case Inlist(.intCol, 3, 9) > If Type('oCol.dtpPicker') <> 'O' > .AddObject('dtpPicker', Iif(intCol = 3, 'dtPicker', 'dtPickerCT'), 'MSComCtl2.DTPicker.2') > Endif > Store .F. To .dtpPicker.Visible, .dtpPicker.Enabled > .CurrentControl = "Text1" > Case .intCol = 2 >* .text1.Format = "@RK" > .text1.InputMask = "$$$,$$$,$$$,999,999.99" > Case intCol = 10 > .text1.ToolTipText = Alltrim(dtlRecon1.ActnTkn) > Case intCol = 7 > .text1.ToolTipText = Alltrim(dtlRecon1.Descriptn) > Endcase > mobjBackStyle = '.' + oCol.CurrentControl + '.backstyle' > mobjBorderStyle = '.' + oCol.CurrentControl + '.borderstyle' > mobjName = '.' + oCol.CurrentControl + '.name' > If Lower(&mobjName) = "cmb" > Store 0 To &mobjBorderStyle > *&mobjBackStyle > Endif > Endwith > Endproc >Enddefine > >Define Class grdDetail As Grid > ColumnCount = 0 > DeleteMark = .F. > Height = 348 > HighlightRow = .F. > Left = 5 > RecordMark = .T. > RecordSource = "dtlRecon1" > RecordSourceType = 1 > Top = 254 > Width = 1009 > Name = "grdDetail" > Visible = .T. > > Procedure Init() > For intCol = 1 To 10 > This.AddObject('Column' + Alltrim(Str(intCol)), 'DetailColumn', intCol) > Endfor > Endproc > > Procedure BuildGrid(oForm) >* SET STEP ON > This.ColumnCount = 0 > For intCol = 1 To 10 > This.AddObject('Column' + Alltrim(Str(intCol)), 'DetailColumn', intCol) > Endfor > > For Each oCol In This.Columns > oCol.setAlignment() > oCol.setWidth() > oCol.setName(This.RecordSource) > oCol.settextFormat("@KR!") > oCol.setEnabled(oForm.Editing Or oForm.Adding) > oCol.AddObject2Column() > oCol.SetBackgroundAttributes() > oCol.SetForegroundAttributes() > oCol.SetControlEnabled(oForm.Editing Or oForm.Adding) > oCol.SetDynamicBackColor() > oCol.SetDynamicForeColor() > oCol.Sparse = .F. > oCol.Visible = .T. > Endfor > Endproc > >Enddefine >For the moment, what happens if you change the this.AddObject to use default column and comment out for each code for now?