Hello, newbieo. What you're looking for is called a "cascading value list". If you do a search on the forum for that term, you'll find some examples. Here's a good thread for reference:
Oh, and to your second question: Managing the On Hand stock is typically done via a script, where you set the On Hand value equal to the current value minus the amount or quantity on the current line item when the invoice or order is placed into whatever status is appropriate. This offers more control than trying to use a calculation field.
You can, if you like, fire such a script using a Script Trigger (such as OnObjectModify) from a pull-down on your Status field (for example). It all depends on exactly how you want the workflow to function.
Thanks Mike. I will try your recommendations and see how it works out.