How would you design this Windows form?

R

Ronald S. Cook

I need ideas on how to best design a Windows form for my particular
situation.

On a cattle feeding yard there will be between about 300 and 600 pens. On
my "Pen Feeding Sequence" form, I want the user to be able to setup and
maintain the order in which the pens should be fed (ultimately in the Pen
table is a column named Sequence that gets an interger value).

So on the form...

Sequence Pen
1 A101
2 A102
3 B245
4 C763


Easy enough.

I suppose I could have a datagrid of Pens ordered by sequence and the user
would click to edit each row and put a number (or blank) for the sequence
number. But that's the easy way out for me the developer.

I want what would be slick for the user. Some sort of dragging of a pen to
a number? I could see that easily if the number of pens would fit on one
form but we're talking hundreds here.

Any thoughts?

Thanks,
Ron
 
E

EMartinez

I need ideas on how to best design a Windows form for my particular
situation.

On a cattle feeding yard there will be between about 300 and 600 pens. On
my "Pen Feeding Sequence" form, I want the user to be able to setup and
maintain the order in which the pens should be fed (ultimately in the Pen
table is a column named Sequence that gets an interger value).

So on the form...

Sequence Pen
1 A101
2 A102
3 B245
4 C763

Easy enough.

I suppose I could have a datagrid of Pens ordered by sequence and the user
would click to edit each row and put a number (or blank) for the sequence
number. But that's the easy way out for me the developer.

I want what would be slick for the user. Some sort of dragging of a pen to
a number? I could see that easily if the number of pens would fit on one
form but we're talking hundreds here.

Any thoughts?

Thanks,
Ron

I would most likely use a DataGridView for this purpose. Ofcourse, the
ultimate in fancy could be provided using an Adobe Flex front-end w/a
VB.NET middle tier. Here is an example and the Flex site as well. Hope
this is helpful.

http://www.templatesoft.com/
http://www.adobe.com/devnet/flex/?tab:samples=1

Regards,

Enrique Martinez
Sr. Software Consultant
 
J

jeff

If you are looking for a drag and drop type of interface ... maybe look at
Tree Views for doing this...

Two tree views on a form ...

Left side tree veiw - YOUR SCHEDULE
0-100 (77 openings)
0-10 (2 openings)
1 Pen001
2 - OPEN -
3 Pen356
4 -OPEN -
5
...
11-20 (10 openings)
21-30 (8 openings)
...
101-200
201-300
....

You can use whatever grouping (ie every 100, then 10's make it user
cutomizable)

Rigth Side Tree View - Your PENS
Same as you pens...but allow the user to define and build there own grouping
mechanism ... allow them 2 levels of group...
- Yard and Location - some way to organize / represent / group your tabular
data spatially.

Yard 1 (45 pens)
Location A (10 pens)
Pen001 - No Scheduled
Pen004 - 300
Pen007 - 301
Loaction B (20 pens)
Pen 034
Pen 050
Pen 051
Yard 2
Location C
Location D

.....

You could develop context menus to allow the user to easily drag and drop
items ...
You could have the two treeviews side by each ... allow the user to drag and
drop items BOTH ways ...


..................

OR another design approach...

Left side treeview ... YOUR PENS
Right hand 'grid view' like a calender...blocks...

-------------------------------------------------------------
| 1 - 10 | 11 - 20 | | ...
| Pen 1 | | |
| Pen 3 | | |
| | | |
-------------------------------------------------------------
| 31-40 | | | ...
| | | |
| | | |
| | | |
-------------------------------------------------------------

Hard to draw...but make it like a calender view, where you can see each day
of the month it a grid. (Sun to Sat along the top and each week below).

Make logical blocks ... have them roll-up and roll-down to show and hide
detail... Give information in the header of each block (sequence from,
available slots and so on) SO the user can tell what is going on when
looking at a row of blocks that are roll-up.

There a lots of ways to accomplish this, you simple need to determine how
often the user needs to set this up and how much fun you want to have
building the interface. The easy way is to have two grid views side by each
.... but this is not fun.

Food for thought
Jeff
 
R

Ronald S. Cook

Great ideas.. thanks!


jeff said:
If you are looking for a drag and drop type of interface ... maybe look at
Tree Views for doing this...

Two tree views on a form ...

Left side tree veiw - YOUR SCHEDULE
0-100 (77 openings)
0-10 (2 openings)
1 Pen001
2 - OPEN -
3 Pen356
4 -OPEN -
5
...
11-20 (10 openings)
21-30 (8 openings)
...
101-200
201-300
...

You can use whatever grouping (ie every 100, then 10's make it user
cutomizable)

Rigth Side Tree View - Your PENS
Same as you pens...but allow the user to define and build there own
grouping mechanism ... allow them 2 levels of group...
- Yard and Location - some way to organize / represent / group your
tabular data spatially.

Yard 1 (45 pens)
Location A (10 pens)
Pen001 - No Scheduled
Pen004 - 300
Pen007 - 301
Loaction B (20 pens)
Pen 034
Pen 050
Pen 051
Yard 2
Location C
Location D

....

You could develop context menus to allow the user to easily drag and drop
items ...
You could have the two treeviews side by each ... allow the user to drag
and drop items BOTH ways ...


.................

OR another design approach...

Left side treeview ... YOUR PENS
Right hand 'grid view' like a calender...blocks...

-------------------------------------------------------------
| 1 - 10 | 11 - 20 | | ...
| Pen 1 | | |
| Pen 3 | | |
| | |
|
-------------------------------------------------------------
| 31-40 | | |
...
| | |
|
| | |
|
| | |
|
-------------------------------------------------------------

Hard to draw...but make it like a calender view, where you can see each
day of the month it a grid. (Sun to Sat along the top and each week
below).

Make logical blocks ... have them roll-up and roll-down to show and hide
detail... Give information in the header of each block (sequence from,
available slots and so on) SO the user can tell what is going on when
looking at a row of blocks that are roll-up.

There a lots of ways to accomplish this, you simple need to determine how
often the user needs to set this up and how much fun you want to have
building the interface. The easy way is to have two grid views side by
each ... but this is not fun.

Food for thought
Jeff
 
B

Branco Medeiros

Ro Cook wrote:
On a cattle feeding yard there will be between about 300 and 600 pens. On
my "Pen Feeding Sequence" form, I want the user to be able to setup and
maintain the order in which the pens should be fed (ultimately in the Pen
table is a column named Sequence that gets an interger value).

So on the form...

Sequence Pen
1 A101
2 A102
3 B245
4 C763
I want what would be slick for the user. Some sort of dragging of a pen to
a number? I could see that easily if the number of pens would fit on one
form but we're talking hundreds here.
<snip>

Hi, Ron.

You could use the (popular) move up/down buttons, only that it could
operate in multiple selected items; and context menu items for "Move
to...", "Move selected items to here", etc.

HTH.

Regards,

Branco.
 
J

jeff

....another idea would be to have a schedule hierachy...

not knowing your business, but I would assume that the pens are grouped in
some logical manner ... spatially ... by a work area or work zone or
something ... similar to Employees in a company ... company, division,
department ... this allows you (the programmer) to form some type of
relationship between groups of pens

So, ... saying this and based on the following assumations... here is what I
am trying to say.

Assume:
many cattle feeding yards per install (top of the pen 'grouping')
each yard is broken into work zones.
each pen belongs to 1 work zone.

Now, you would create the yards (yard A, yard B, yard C, ...)
Now, you would create all the Work Zones in yard A (WZ A01, WZ A02...), yard
B (WZ B01, WZ B02) and so on for each yard Come up with some type of naming
convention.
Now, you assign each pen to a work zone...

So, you now have your pens organized by logical units of work...or
management units.

Now, for each work zone, you would schedule your pens for feeding ...
relative to the parent work zone.
Now, for each yard, you would schedule each work zone...relative to the
parent yard.
Now, you would schedule each yard.

This way, when you are 'rescheduling' feeding patterns (for what ever
reason, mix it up for the farmer ... i do not know...), you can easily
reschedule BLOCKS of pens without having to touch or move every single pen.

This will only work if pens can be logically grouped and remained grouped.
Otherwise, if the user is constantly having to move pens from one work zone
to another, in order to achieve the proper feed schedule, this approach many
cause them a bit of problem.

However, saying this, it is a more logical approach to help with the 'Pens
Feeding Schedule WorkFlow' ... chances are - intentionally or
unintentionally, the pens are grouped in some logical manner for improved
feeding efficiency. Identify this and mirror this in the program and you
will be ahead of the game.

Even if the farmer or client does not operate like this (or says he does not
operate like this), i would implement this structure anyways, because,
somebody will operate like this and this will be a good feature to have.
For the guy that does not, simply create 1 yard with 1 zone and assign all
the pens to that zone ... done!

Food for thought ... ooops stupid joke.

Jeff
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top