Link to home
Start Free TrialLog in
Avatar of erikTsomik
erikTsomikFlag for United States of America

asked on

ColdFusion Suggestion

I have a task which involve a lot decision making. For example, I have the main course. If the there is no completion for that course i need to check the alternative courses, (if there any). If there are alternative course and they done by the date EndDate of the main course the give completion for the main course (all the alternaitives has be done), Also check the prerequsite course. If there are any make sure they are done . If tey not done then grayed out the main course.

What would be best approach to this task. There a lot more criterias for the task But I want to start from the begging.
ASKER CERTIFIED SOLUTION
Avatar of gdemaria
gdemaria
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of erikTsomik

ASKER

i understand what i need to do , I am looking for the best approach in terms of programming Technics
I was really just a little joke, that's how you answer many of your questions.

Here's my real suggestion.

Make a flow chart which each decision you have to make
Here's a sample image

http://mtanga.com/images/flowchart.jpg

Then you convert each step into coldfusion, perform the needed test using cfquery (or whatever is needed) check it with CFIF and branch down another path.

You can set a series of flags to help keep you organized such as this..

<cfset isCourseCompleted = false>
<cfset isOtherCoursesAvailable = true>
.. etc..

Then you can use this variables in your code along the way..
what I am doing is I am creating a static query for the main course, prereq, and alternative. Then I will combibe all 3 static query in to one ,\

Do you think it will work ???
I think having a query to answer each of the questions you have is good.  
The questions being:  

1) Is the main course completed
2) Are there any alternative courses, are they done by endDate
3) Are there any prerequisite courses, are they done

If you can write a query to answer each of these, I think that will really help you.

I don't think there are any real advantages to combining them into one query.  Just keep them separate, it will be easier to code and debug.  It won't be any slower..



OK. I ve built the the 3 queries and trying to output the result but get the error that query of queries only support 2 tables . Please advice . How can i get around this . I do not really want to use another QofQ

here is how I am outputting
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Dynamic Menu System</title>
<style type="text/css">
	body,tr,td,th{font-family:Arial, Helvetica, sans-serif; font-size:14px;}
	html{background-color:#4AA5FF}
</style>
</head>
 
<cfinclude template="DynamicMenu_dataset.cfm">
<cfdump var="#TempQuery#">
<cfdump var="#PreReq#">
<cfdump var="#Alternatives#">
 
<cfquery name="TempQuery" dbtype="query">
	Select *
	from TempQuery,PreReq,Alternatives
	where TempQuery.WorkFlowID = PreReq.WorkFlowID 
	and Alternatives.WorkFlowID = TempQuery.WorkFlowID
</cfquery>
 
<body>
<h2 align="center">Dynamic Menu System</h2>
<table width="50%" border="1">
<cfoutput query="TempQuery" group="workFlowID">
	<cfif DoIseeThelink eq 1>
		<tr>
			<td>#WORKFLOWID#--#MAINCOURSENAME#</td>
			<td>Due Date:#DateFormat(DueDate,"mm/dd/yyyy")#</td>
		</tr>
			
			<tr>
				<td colspan="2">
					<strong>Prerequisites:</strong><br />
				
			
					<cfoutput>#PREREQNAME#</cfoutput>
				</td>
			</tr>
			<tr>
				<td colspan="2">
					<strong>Alternatives:</strong><br />
				
			
					<cfoutput>#ALTERNATIVENAME#</cfoutput>
				</td>
			</tr>
			
 	</cfif>
</cfoutput>
</table>
</body>
</html> 

Open in new window