Solved

record dependent on other records

Posted on 2003-11-28
4
197 Views
Last Modified: 2013-12-24
Hello Experts,

I need to write a scheduling program, where a task can be dependent on another task. Each record will have a start date, number of days, and end date(end date is a calculation of start date + number of days.), dependent on(True or false), and Dependent on Record Number(The ID of the task that the record is dependent on).

Now if phase two is dependent on phase one, The phase two date can not be less than phase one end date.

Now my issue is if the user where to go back and edit the phase one date, say extend it by 15 days, I would need for the phase two to automatically move forward so that its start date does not occure prior to the phase one end date. (This would work the same way Microsoft Project works).

Thanks,
AJ
0
Comment
Question by:aj10101
4 Comments
 

Expert Comment

by:ECohen
ID: 9839953
This probably needs to be done at the user interface level.  Since you will know what task the user is basing the second task on, you'll be able to police for this.  If  the user tries to input a dependent date in the past, you simply won't allow that to go into the database.  There are several ways I could think of to carry out the check, but the bottom line is you'll just test against the date of the original task, and then let the user continue only if the date for part two is after the date from the initial task.  You will find the datecompare() function in Coldfusion useful for doing this.  The basic syntax is DateCompare("date1", "date2" [, "datePart"]) -- but you'll need to decide what datepart to use, maybe minutes, hours or days...depending what you've got in mind.  

HTH.

0
 
LVL 17

Expert Comment

by:anandkp
ID: 9841500
i guess u can have the schedules set up in your CFSCHEDULE !

for your records of phase one & two.
u can have a trigger at teh back end [MSSQL] / u cld also use procedures for this.

so that everytime the user updates the date of the phase one- the dates of phase 2 are automatically shifted.

hth

let me know ...

K'Rgds
Anand

0
 
LVL 4

Accepted Solution

by:
procept earned 500 total points
ID: 9841731
Hi,

you can join the table with itself to accomplish this. Assuming that your table is called "myTable" and your fields are called "ID", "start_date", "days", "depOn", "depRecID", the following should work with MS SQL:

UPDATE myTable
SET start_date = DateAdd(d, t2.days, t2.start_date)
FROM myTable t1, myTable t2
WHERE t1.depOn = 1
AND t2.ID = t1.depRecID
AND DateAdd(d, t2.days, t2.start_date) > t1.start_date

HTH,

Chris



0
 

Author Comment

by:aj10101
ID: 9843353
Thanks procept,

That seems like an elegant solution. I will play with it this weekend.

Best regards,
AJ
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

A web service (http://en.wikipedia.org/wiki/Web_service) is a software related technology that facilitates machine-to-machine interaction over a network. This article helps beginners in creating and consuming a web service using the ColdFusion Ma…
Introduction This article explores the design of a cache system that can improve the performance of a web site or web application.  The assumption is that the web site has many more “read” operations than “write” operations (this is commonly the ca…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

707 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

13 Experts available now in Live!

Get 1:1 Help Now