views:

22

answers:

1

I'm trying to provide a simple way for our users to select a desired shipment method (ie: UPS ground) without having to know it's corresponding ShipmentMethodID. There are three key aspects of every shipmentmethod that uniquely identify it:

  1. Courier (ie: UPS, FedEx, OurTruck, To Be Determined)
  2. Service (ie: Ground, 2Day10am, To Be Determined)
  3. Billing (ie: Shipper, 3rd Party, To Be Determined)

What I would like is to have a listbox for each of these pieces so that the user can set each part individually and the contents of the other two listboxes would change dynamically.

Take for instance the following available Shipment methods:

|   SMID   |  COURIER |  SERVICE  |  BILLING  |
+=============================================+  
  ?-???-??    TBD        TBD         TBD
  ?-???-SH    TBD        TBD         Shipper
  ?-???-3P    TBD        TBD         3rdParty
  ?-D55-??    TBD        Ground      TBD
  ?-D55-SH    TBD        Ground      Shipper
  ?-D55-3P    TBD        Ground      3rdParty
  U-???-??    UPS        TBD         TBD
  U-???-SH    UPS        TBD         Shipper
  U-???-3P    UPS        TBD         3rdParty
  U-D55-??    UPS        Ground      TBD
  U-D55-SH    UPS        Ground      Shipper
  U-D55-3P    UPS        Ground      3rdParty
  U-D2A-??    UPS        2Day10am    TBD
  U-D2A-SH    UPS        2Day10am    Shipper
  U-D2A-3P    UPS        2Day10am    3rdParty
  F-???-??    FedEx      TBD         TBD
  F-???-SH    FedEx      TBD         Shipper
  F-???-3P    FedEx      TBD         3rdParty
  F-D55-??    FedEx      Ground      TBD
  F-D55-SH    FedEx      Ground      Shipper
  F-D55-3P    FedEx      Ground      3rdParty
  F-D35-??    FedEx      3DayEOD     TBD
  F-D35-SH    FedEx      3DayEOD     Shipper
  F-D35-3P    FedEx      3DayEOD     3rdParty  
  O-???-SH    OurTruck   TBD         Shipper
  O-D55-SH    OurTruck   Ground      Shipper
  O-INT-SH    OurTruck   Internal    Shipper

If the user were to specify the Courier, say to UPS, then the contents of the Service ListBox should be updated to show that, TBD, Ground and 2Day10am are available for this courier. Likewise, the Billing ListBox should have options for TBD, Shipper, and 3rd Party. In reality, I'd like to still be able to display those Services that are NOT available for UPS but have them grayed out so the user can tell that these services (in this case "3DayEOD" and "Internal") are not available for their currently selected service, but still have the ability to select it. If the User DID select one of these grayed out Services, then the contents of the Courier ListBox would change accordingly (UPS would no longer be selected and TBD would probably get selected instead).

I hope I'm being clear enough in what I am trying to accomplish here. Any input is greatly appreciated!

+1  A: 

This is not appropriate UI design. Presenting choices like this requires Radio buttons. You can disable or hide choices in another group box if they are not available due to an earlier selection.

Hans Passant
hmmm... I think I see why you feel this is inappropriate UI design, but I still feel like my concept could be much more user friendly (as well as compact and powerful) than by just using the radio button approach you are suggesting.
Hobo Spider
You are of course entitled to completely ignore the advice from a stranger on the internet. Your proposed UI is however so completely non-standard that you really ought to present *both* approaches to your customer (or colleagues) to get a second opinion.
Hans Passant
.. but ... but ... I don't want to ask them! They'll probably end up wanting to do it your way instead! :p
Hobo Spider