| | | 
StrataFrame Novice
       
Group: StrataFrame Users Last Login: 11/17/2008 11:49:36 PM Posts: 86, Visits: 150 |
| | Hi Sorry for the last post, It was completly wrong. Hope this time I can explain better. I want to fill a Combo according the value of another Combo. I have this scenario Table States IdState - Int32 Statename - String Table Cities IdCity - Int32 IdState - Int32 CityName - String Table Streets IdStreets - Int32 IdCity - Int32 IdState - Int32 StreetName - String The three tables have relations defined. I create a form to mantein the states, the a form to mantein the cities and all fine. I create a new form to mantein the streets, and here is my problem. In this user first select the state from a combo and the according to the selected state a second combo must be filled with only the cities of the state selected in the first combo. There are three BO, one for the form, another for the States and a thierd one for the cities. In the BO of the cities I have this: Public Sub FillByState(ByVal State As Integer)...loCommand.CommandText = "SELECT * FROM Cities WHERE IdState = @IdSate"... End Sub The fill is copy of the one used in the tutorial. The PopulationDataSourceSettings for the CitiesBO are set to execute the FillByState: CitiesBO.FillByState(System.Int32) and PopulateOnFormLoad is FormLoad In the combo of State I add this code for the SelectedvalueChanged event Me.CitiesBO.FillBySate(Me.ComboBoxState.SelectedValue)Me.ComboBoxCities.Requery()But when I select a state the combo for the cities is not filled. What do I need to do? Regards
Everything is possible, just keep trying... |
| | | | Advanced StrataFrame User
       
Group: StrataFrame Users Last Login: Yesterday @ 8:48:41 PM Posts: 714, Visits: 3,004 |
| | Hola Juan Carlos, A couple of things: You don't need to have a BO in the main form for a lookup comboboxes, so in your case you don't need the BOs for the States and Cities in the form. If all you need is to filter the Cities by the data selected in the State combo, setup the Cities combo as follow: ComboBoxCities.PopulationDataSourceSettings = CitiesBO.FillByState(System.Int32) (which I believe you have it that way ) In the ComboBoxCities.ListPopulating Event have a code like this, which is the step you are missing: Private Sub ComboBoxCities_ListPopulating(ByVal e As MicroFour.StrataFrame.UI.ListPopulatingEventArgs) Handles ComboBoxCities.ListPopulating If Me.StatesBO.Count > 0 Then e.Parameters(0).Value = Me.StatesBO.YourStatePKFieldValue Else e.Parameters(0).Value = 0 End IfEnd SubPrivate Sub cboStates_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboStates.SelectedIndexChanged ' This is needed to show the correct filtered Cities in the combo. Me.ComboBoxCities.Requery()End Sub
|
| | | | 
StrataFrame Developer

Group: StrataFrame Developers Last Login: Yesterday @ 7:08:30 PM Posts: 4,811, Visits: 4,781 |
| | All good advice...the only thing that I see is that you need to supply the second parameter also if you are using the CopyDatafrom method. The ListPopulating event would look something like this: e.Parameters(0).Value = MyBO e.Parameters(1).Value = MicroFour.StrataFrame.Business.BusinessCloneType.ClearAndFillWithDefaultView You have to supply all of the parms to match the method that is being executed on the BO. |
| | | | 
StrataFrame Novice
       
Group: StrataFrame Users Last Login: 11/17/2008 11:49:36 PM Posts: 86, Visits: 150 |
| | Edji, Trent Thanks for your support, following your insructions the combos work as needed. Regards
Everything is possible, just keep trying... |
| | | | 
StrataFrame Developer

Group: StrataFrame Developers Last Login: Yesterday @ 7:08:30 PM Posts: 4,811, Visits: 4,781 |
| Good to hear |
| | | | 
StrataFrame Novice
       
Group: StrataFrame Users Last Login: 11/17/2008 11:49:36 PM Posts: 86, Visits: 150 |
| | Hi I already use your model and works fine with two combos, but now I try to put three combos (example: one for Country, another for State and final the City). Using the same solution for two, in the last combo City it alwas give an error: {"The CurrentRow for table '[dbo].[States_Pub]' could not be evaluated because the CurrentRowIndex is out of range. Business object record count: 0. CurrentRowIndex: -1."} What I have is the first (country) combo and second combo (states) is exactly as you indicate me before and works fine. How can put three combos what depend of the previous value selected. Regards
Everything is possible, just keep trying... |
| | | | Advanced StrataFrame User
       
Group: StrataFrame Users Last Login: Yesterday @ 8:48:41 PM Posts: 714, Visits: 3,004 |
| Juan Carlos, it is the same rule for all combos you want to use. The CurrentRowIndex: -1 error is due to the fact that the States_Pub BO does not have any records, so you need to check for this combo.count > 0 before trying to use it. Look at the sample code I posted here before.
|
| | | | 
StrataFrame Novice
       
Group: StrataFrame Users Last Login: 11/17/2008 11:49:36 PM Posts: 86, Visits: 150 |
| | Hi I have records in the three tables. In fact the problem, is generated in the Requery(), the event for the list with the validation for 0 is passed correctly. Any ideas?
Everything is possible, just keep trying... |
| | | |
|