1 #!/dev/c/Progra~1/Rational/ClearQuest/CQPerl
5 my $cquser = "reporter";
8 my ($session, $query, $results, $status);
9 my ($junk, $mday, $mon, $year, $from_date, $to_date);
11 my @months = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334);
16 my ($year, $month, $day);
17 my ($juldate, $juldays);
19 ($year, $month, $day) = split /-/, $date;
21 $juldays = @months [$month-1] + $day;
22 $juldate = $year . "-" . $juldays;
33 ($year, $juldays) = split /-/, $juldate;
35 foreach my $nbr_of_days (@months) {
36 last if ($juldays < $nbr_of_days);
40 $day = $juldays - @months [$month - 1];
43 $month = "0" . $month;
49 return $year . "-" . $month . "-" . $day;
56 my $juldate = date2jul ($date);
59 ($year, $juldays) = split /-/, $juldate;
61 if ($juldays > $days) {
65 $juldays = 365 - ($days - $juldays);
68 $juldate = $year . "-" . $juldays;
69 return jul2date ($juldate);
73 # Create ClearQuest Session
74 $session = CQPerlExt::CQSession_Build ();
77 $session->UserLogon ($cquser, $cqpasswd, $cqdb, "");
81 my $from_date = shift;
84 # Build query for all defects
85 $query = $session->BuildQuery ("defect");
87 # Include fields into query
88 $query->BuildField ("id"); my $bugid;
89 $query->BuildField ("State"); my $state;
90 $query->BuildField ("Found_in"); my $found_in;
91 $query->BuildField ("submit_date"); my $submit_date;
94 $results = $session->BuildResultSet ($query);
100 my (@assigned, @closed, @duplicate, @info, @junked);
101 my (@opened, @pending, @resolved, @verified, @total);
104 $status = $results->MoveNext;
106 while ($status == 1) {
108 $bugid = $results->GetColumnValue (1);
109 $state = $results->GetColumnValue (2);
110 $found_in = $results->GetColumnValue (3);
111 $submit_date = $results->GetColumnValue (4);
113 $submit_date = substr $submit_date, 0, 10;
115 if ($found_in =~ /2\.0/) {
117 @assigned [0]++ if ($state eq "Assigned");
118 @closed [0]++ if ($state eq "Closed");
119 @duplicate [0]++ if ($state eq "Duplicate");
120 @info [0]++ if ($state eq "Info");
121 @junked [0]++ if ($state eq "Junked");
122 @opened [0]++ if ($state eq "Opened");
123 @pending [0]++ if ($state eq "Pending");
124 @resolved [0]++ if ($state eq "Resolved");
125 @verified [0]++ if ($state eq "Verified");
126 if ($submit_date ge $from_date && $submit_date le $to_date) {
128 @assigned [1]++ if ($state eq "Assigned");
129 @closed [1]++ if ($state eq "Closed");
130 @duplicate [1]++ if ($state eq "Duplicate");
131 @info [1]++ if ($state eq "Info");
132 @junked [1]++ if ($state eq "Junked");
133 @opened [1]++ if ($state eq "Opened");
134 @pending [1]++ if ($state eq "Pending");
135 @resolved [1]++ if ($state eq "Resolved");
136 @verified [1]++ if ($state eq "Verified");
140 $status = $results->MoveNext;
144 print "2.0 Bugs by date Totals $from_date\n";
145 print " to $to_date\n";
146 print "---------------- ---------- ----------\n";
149 if ($assigned[0] eq "") {
152 printf "%12d", $assigned[0];
154 if ($assigned [1] eq "") {
157 printf "%12d", $assigned[1];
162 if ($closed[0] eq "") {
165 printf "%12d", $closed[0];
167 if ($closed[1] eq "") {
170 printf "%12d", $closed[1];
174 print "Duplicate:\t";
175 if ($duplicate[0] eq "") {
178 printf "%12d", $duplicate[0];
180 if ($duplicate[1] eq "") {
183 printf "%12d", $duplicate[1];
188 if ($info[0] eq "") {
191 printf "%12d", $info[0];
193 if ($info[1] eq "") {
196 printf "%12d", $info[1];
201 if ($junked[0] eq "") {
204 printf "%12d", $junked[0];
206 if ($junked[1] eq "") {
209 printf "%12d", $junked[1];
214 if ($opened[0] eq "") {
217 printf "%12d", $opened[0];
219 if ($opened[1] eq "") {
222 printf "%12d", $opened[1];
227 if ($pending[0] eq "") {
230 printf "%12d", $pending[0];
232 if ($pending[1] eq "") {
235 printf "%12d", $pending[1];
240 if ($resolved[0] eq "") {
243 printf "%12d", $resolved[0];
245 if ($resolved[1] eq "") {
248 printf "%12d", $resolved[1];
253 if ($verified[0] eq "") {
256 printf "%12d", $verified[0];
258 if ($verified[1] eq "") {
261 printf "%12d", $verified[1];
264 print "---------------- ---------- ----------\n";
266 if ($total[0] eq "") {
269 printf "%12d", $total[0];
271 if ($total[1] eq "") {
274 printf "%12d", $total[1];
280 # Destroy ClearQuest Session
281 CQSession::Unbuild ($session);
285 $from_date = $ARGV[0];
288 ($junk,$junk,$junk, $mday, $mon, $year) = localtime (time);
292 $to_date = $year . "-0" . $mon . "-" . $mday;
294 $to_date = $year . "-" . $mon . "-" . $mday;
297 $from_date = subtract_days ($to_date, 7);
301 ProcessRecords ($from_date, $to_date);