Hello,
Not only is this possible, it can be achieved straight through admin backend.
It utilizes a special method called Chained Select in which selection of values in one select field depends on the choice of values in another select field. Record Browser does it automatically for you.
Start by going to Menu->Administrator->CommonData. There create a new array, with key set to Categories, value can be left empty.
After it's created, select the View action on the newly created array and here start adding the parent categories. You must decide if you want to display them sorted alphabetically or by arbitrary order. If you want to sort them using arbitrary order, make sure to assign keys like 0001, 0002. If you want it sorted alphabetically, the key can be anything (they must be unique within the Categories array). The value for each entry should the Category name that will be displayed to the user.
Assuming the Parent Categories are created, you should now View each of the categories and while within that array add subcategories. The same rules apply here - key can be used for order, value will be displayed to the user.
With all that entered, all you need to do is to create the fields. Enter the admin section for RecordSet of your choice (Menu->Administrator->Record Browser) and switch to Manage Fields tab. Now add the first field. Let's say you call it Parent Category. Select the type of the field to commondata and click Save to update the form. A new field will appear called CommonData table. There, enter the name of your main CommonData table, in this case it will be Categories. You can also decide the ordering in this form. Save the field.
Now add the second field, you can name it any way you like (for instance, Category), set the type to commondata (save to refresh the form) and now the most important part: in the CommonData table enter Categories::Category - the first part is the name of the CommonData array, the second part is the name of the field that will contain the value to select the sub-array.
This will result in two fields that will be Chained together, select the Parent Category will load (via ajax) Categories into the other field select.
I hope this explains it. If you have any questions please don't hesitate to ask.
Kind regards,
Arek