473,659 Members | 3,553 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

How would you design this Windows form?

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


Mar 22 '07 #1
5 1518
On Mar 21, 7:09 pm, "Ronald S. Cook" <r...@westinis. comwrote:
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

Mar 22 '07 #2


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...bloc ks...

-------------------------------------------------------------
| 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
"Ronald S. Cook" <rc***@westinis .comwrote in message
news:u8******** ******@TK2MSFTN GP03.phx.gbl...
>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


Mar 22 '07 #3
Great ideas.. thanks!
"jeff" <jhersey at allnorth dottt comwrote in message
news:e0******** ********@TK2MSF TNGP02.phx.gbl. ..
>

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...bloc ks...

-------------------------------------------------------------
| 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
"Ronald S. Cook" <rc***@westinis .comwrote in message
news:u8******** ******@TK2MSFTN GP03.phx.gbl...
>>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



Mar 22 '07 #4
Ro Cook wrote:
<snip>
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
<snip>
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.

Mar 22 '07 #5

....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
"Ronald S. Cook" <rc***@westinis .comwrote in message
news:u9******** ******@TK2MSFTN GP04.phx.gbl...
Great ideas.. thanks!
"jeff" <jhersey at allnorth dottt comwrote in message
news:e0******** ********@TK2MSF TNGP02.phx.gbl. ..
>>

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...bloc ks...

-------------------------------------------------------------
| 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
"Ronald S. Cook" <rc***@westinis .comwrote in message
news:u8******* *******@TK2MSFT NGP03.phx.gbl.. .
>>>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




Mar 23 '07 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
2742
by: SammyBar | last post by:
Hi, I'm trying to bind a custom collection class to a data grid, following the guidelines from the article http://msdn.microsoft.com/msdnmag/issues/05/08/CollectionsandDataBinding/default.aspx. The problem is the article is in VisualBasic. I already get the collection to be recognized as a Data Source by the IDE. It populated the DataGrid correctly from the fields on the items object of the collection, but I can't get the DataGrid to...
1
3607
by: Jiang Yue Brandon | last post by:
I am very confused about the different ways of VC++ and C# for doing windows form/dialog design in Visual Studio.NET. In C#, after you drag & drop the components to the form, the underlying codes will be automatically modified to add corresponding objects. However, in VC++, in order to design any forms/dialogs, resources must to be created first, then we need manually
14
4021
by: Jan Nielsen | last post by:
Hi In Microsoft Access it is possible to write code like this Sub test() DoCmd.OpenForm "TestForm", acDesign Dim a As Control For Each a In Forms("TestForm").Controls Do stuff Next End Sub
1
1532
by: Lance | last post by:
I get an exception when attempting to open a form in design mode if the form inherits from a form that is declared as MustInherit. For example, if I have: Public MustInherit Class TestFormBase Inherits Windows.Forms.Form '...Normal Windows Form Designer generated code here Public MustOverride Function GetValue() As Integer End Class
11
5575
by: chopsnsauce | last post by:
Here's the example: Dim frm As New FORM1 Try frm.show Catch ex As Exception msgbox ex.message
9
1388
by: Reidar | last post by:
Is it possible to have the source in one window and the design in another window and perhaps the code in a third window? reidarT
6
18117
by: Ryan | last post by:
I have 2 forms, Form1.vb and Form2.vb. In Solution Explorer, Form2.vb no longer shows a Form icon nor do I have the option to open Form2.vb in the main explorer window where usually I have the design view options for any forms. I don't get it. Why can I not get back to design view for Form2?? Thanks, Ryan
0
2502
by: YellowFin Announcements | last post by:
Introduction Usability and relevance have been identified as the major factors preventing mass adoption of Business Intelligence applications. What we have today are traditional BI tools that don't work nearly as well as they should, even for analysts and power users. The reason they haven't reached the masses is because most of the tools are so difficult to use and reveal so little
11
18112
by: Pete Kane | last post by:
Hi All, does anyone know how to add TabPages of ones own classes at design time ? ideally when adding a new TabControl it would contain tab pages of my own classes, I know you can achieve this with ListView columns so it should be doable, thanks
2
3163
by: teixeira1985 | last post by:
Hi , Due an unknown cause VS2005 started to show an error when i switch from code to design in windows forms projects. I repaired the installation but the same happens. The error is: One or more errors encountered while loading the designer. The errors are listed below. Some errors can be fixed by rebuilding your project, while others may require code changes.
0
8851
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
8748
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
8628
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
7359
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6181
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5650
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4175
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
2
1978
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
2
1739
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.