Solved

Project management app (best way to do this?)

Posted on 2010-08-12
17
266 Views
Last Modified: 2013-11-26
My boss has asked me to write a Lite version of Microsoft Project.  It will contain just a few basic functions.  If you look at the left side of a MS Project screenshot, you will see where they show Task Name, Duration, etc.  I assume a listview would be ok to use there.  On the right side, where you see the date span information - what controls would you suggest I use there?  I just want suggestions on how you guys would handle that.

I was hoping to databind the left side to a database but I guess VB doesn't allow databinding in a listview.  So far I have created a SQL database to store TaskNumber, TaskName, Who, Duration, Start, Finish, Dependancy.

I know there are free Project apps out there, but he wants me to write our own.

Thanks in advance.

Edit:  included a pic of what i have so far (using a Split container control)

 Pic of what i have so far
0
Comment
Question by:LD147
  • 9
  • 8
17 Comments
 
LVL 24

Expert Comment

by:alexey_gusev
ID: 33427211
0
 
LVL 1

Author Comment

by:LD147
ID: 33428739
I appreciate the response, but that project is written in C++.  I'm looking to do this in VB as i am familiar with VB.
0
 
LVL 24

Expert Comment

by:alexey_gusev
ID: 33429171
well, you wanted ideas, didn't you ;)
0
 
LVL 1

Author Comment

by:LD147
ID: 33429586
I'm going to use a bound DataGrid view for the left pane (because the user can then edit the fields).  Still need to figure out the date span thing though.  Can I draw/paint in a cell in a datagrid?
0
 
LVL 24

Expert Comment

by:alexey_gusev
ID: 33429648
yes, you can, you can even create custom column for datagrid and perform there whatever you want
0
 
LVL 1

Author Comment

by:LD147
ID: 33430719
Well, my dataGrid is being a pain in the *#*&#*&#@.  I had assumed that because I bound it to the SQL database, and it shows the data just fine, it would also update back to the database automatically when I typed into the grids.  Guess not.... grrrrrrr! ;)
0
 
LVL 24

Expert Comment

by:alexey_gusev
ID: 33430878
0
 
LVL 1

Author Comment

by:LD147
ID: 33431563
Aha!  Thanks for the link.  I was able to add a line of code that makes the update work as planned.
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 24

Expert Comment

by:alexey_gusev
ID: 33432474
great.

so generally speaking, you might base your UI on datagridview + a bunch of custom columns if necessary. that would be the simplest case.

in more complicated approach you might want something like treeview maybe, or custom grid to be able to define hierarchical sub-tasks. the possibilities are infinite :)
0
 
LVL 1

Author Comment

by:LD147
ID: 33433506
Well I decided to do the whole thing in a datagrid and not mess with the split container.  Here's a pic of what I have so far.  Now, in the column to the right of the "Dependency" column, I just need to be able to draw a bar, to represent the time span of the tasks.  I have already determined the earliest date used, the latest date used, which of course gives me a complete span value, in days.  

BTW, I would love to omit weekends from the duration.
capture2.JPG
0
 
LVL 24

Accepted Solution

by:
alexey_gusev earned 500 total points
ID: 33435420
just define your custom column and add it to the datagrid:

http://www.code-magazine.com/Article.aspx?quickid=0707061

you can find a lot of samples on the net, just google for it :) . Above one seems doing what you want
0
 
LVL 24

Expert Comment

by:alexey_gusev
ID: 33444268
any news?
0
 
LVL 1

Author Comment

by:LD147
ID: 33444914
I'll be on this today.  You sent the previous response on the weekend ;)
0
 
LVL 1

Author Comment

by:LD147
ID: 33445850
I guess I will keep googling for something more simple.  I can't follow that web page.  I pasted everything in and I guess I haven't pasted something in the right spot and it's giving me errors.  I need something easy to implement, but I will reward you in a little bit for your work.

Why can't a solution to something like this be as easy as:

1) Specify which cell you would like to draw in.
2) draw a filled rectangle in that cell.
3) Done.

:)

It should be 4 or 5 lines of code.  Instead, you have to jump through rings of fire to do anything.

lol
0
 
LVL 24

Expert Comment

by:alexey_gusev
ID: 33445953
that's what custom column is for.

but before doing it, you could inspect datagridview existing events:

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview_members.aspx

one of OnCellXXX might be just what you need.
0
 
LVL 1

Author Comment

by:LD147
ID: 33447845
This is what I've managed to do.  It's a bit of a cheat but it works surprisingly well.  I simply used the "|" character and repeated it based on the duration.  It looks ok (to me) and does the job well enough. ;)  Now I can make a few little enhancements to it, and I should be done with it soon :)


Capture3.JPG
0
 
LVL 24

Expert Comment

by:alexey_gusev
ID: 33448152
as long as it works for you :)


but honestly, I don't see why couldn't you follow the sample from the article, it describes how to create custom column and optionally custom cell for it, then you could do whatever you like in its OnPaint() method
0

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now