! UIMX ascii DTSCRIPT key: 5044 ! @(#)41 1.1 src/dtuimx/ibmr2/dtscriptdir/contrib/TimeSheet/TimeSheet.i, uimx, dtuimx720 8/8/94 20:09:45 ! COMPONENT_NAME: DT UIM/X ! ! ORIGINS: 58 ! ! ! Copyright IBM Corporation 1991, 1994 ! ! All Rights Reserved ! ! Permission to use, copy, modify, and distribute this software and its ! documentation for any purpose and without fee is hereby granted, ! provided that the above copyright notice appear in all copies and that ! both that copyright notice and this permission notice appear in ! supporting documentation, and that the name of IBM not be ! used in advertising or publicity pertaining to distribution of the ! software without specific, written prior permission. ! ! IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ! ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ! PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR ! CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF ! USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR ! OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE ! OR PERFORMANCE OF THIS SOFTWARE. *dialogWindow1.class: form *dialogWindow1.gbldecl: #include *dialogWindow1.funcdecl: swidget create_dialogWindow1(swidget UxParent) *dialogWindow1.funcname: create_dialogWindow1 *dialogWindow1.funcdef: "swidget", "(%)" *dialogWindow1.fcode: return(rtrn);\ *dialogWindow1.static: true *dialogWindow1.name: dialogWindow1 *dialogWindow1.parent: NO_PARENT *dialogWindow1.parentExpression: UxParent *dialogWindow1.defaultShell: topLevelShell *dialogWindow1.icode: #\ # The current PrintCommand is 'cat' this will print the timesheet to\ # stdout, to send the timesheet to the printer comment out the\ # 'PrintCommand=cat' and uncomment the PrintCommand=lp. It may be\ # necessary to configure this command to use your system's print\ # command, if it is different from the command 'lp'.\ #\ #typeset PrintCommand=lp\ typeset PrintCommand=cat\ \ #\ # The default timesheet data filename is '.ts.save', the default timesheet\ # directory is the current directory and the default company name is\ # 'Chez Nathalie'. You can change the value of these variables to meet\ # your own needs.\ #\ typeset TimeSheetFile=".ts.save" \\ TimeSheetDir=$(pwd) \\ CompanyName="Chez Nathalie"\ \ typeset NameField \\ DateField \\ InitialPopup="yes"\ \ set -A Week Sat Sun Mon Tue Wed Thu Fri\ set -A Column Job Description ${Week[@]} Total \ eval typeset ${Column[@]} ColumnTotal\ \ typeset -i RowId ColumnId\ \ if [[ -f $1 ]] then\ TimeSheetDir=$(dirname $1)\ TimeSheetFile=$(basename $1)\ fi \ \ function put_widget_in_row\ # Widget widget\ # char* rowname\ {\ eval typeset NRow='${#'$2'[@]}'\ \ eval $2'[$NRow]=$1'\ }\ \ function find_row_id\ # void* variable\ # char* name\ {\ typeset col\ \ for col in ${Column[@]}\ do\ typeset -i indx=0\ eval typeset items='${'$col'[@]}'\ \ for item in $items\ do\ if [[ $2 == $item ]] then\ eval $1=$indx\ return\ fi\ indx=$indx+1\ done\ done\ }\ \ function find_column_id\ # void* variable\ # char* name\ {\ typeset -i indx=0\ typeset col\ \ for col in ${Column[@]}\ do\ if [[ $2 == $col ]] then\ eval $1=$indx\ return\ fi\ indx=$indx+1\ done\ }\ \ \ function recalculate_row\ # int id\ {\ typeset -i id=$1\ \ typeset day rtotal_field=${Total[$id]}\ typeset -i rtotal=0\ \ for day in ${Week[@]}\ do\ typeset -i value\ eval XtGetValues '${'$day'[$id]}' value:value \ rtotal=$rtotal+value\ done\ \ if ((rtotal == 0)); then\ XtSetValues $rtotal_field value:""\ else\ XtSetValues $rtotal_field value:$rtotal\ fi\ \ \ }\ \ function recalculate_column\ # char* colname\ {\ typeset colname=$1\ \ typeset ctotal_field job jobs_in_day\ typeset -i ctotal=0\ typeset -i id\ \ find_column_id id $colname\ \ ctotal_field=${ColumnTotal[$id]}\ \ eval jobs_in_day='${'$colname'[@]}'\ \ for job in $jobs_in_day\ do\ typeset -i value\ XtGetValues $job value:value \ ctotal=$ctotal+value\ done\ \ if ((ctotal == 0)); then\ XtSetValues $ctotal_field value:""\ else\ XtSetValues $ctotal_field value:$ctotal\ fi\ }\ \ function recalculate_total\ {\ typeset -i total=0\ typeset -i id\ typeset subtotal_field total_field \ \ find_column_id id Total\ total_field=${ColumnTotal[$id]}\ \ for subtotal_field in ${ColumnTotal[@]}\ do\ typeset -i value\ \ if [[ $subtotal_field == $total_field ]] then\ break\ fi\ \ XtGetValues $subtotal_field value:value\ total=$total+value\ done\ \ if ((total == 0)); then\ XtSetValues $total_field value:""\ else\ XtSetValues $total_field value:$total\ fi\ }\ \ function recalculate\ # KeyValue keyvalue\ {\ typeset colname=$1\ typeset -i rowid=$2\ \ recalculate_row $rowid \ recalculate_column $colname\ recalculate_total\ }\ \ function SaveTimeSheet\ {\ typeset Name WeekEnding\ typeset -i value\ typeset -i nrows=${#Job[@]} indx=0\ \ XtGetValues $NameField value:Name\ XtGetValues $DateField value:WeekEnding\ \ ( \ \ print $Name\ print $WeekEnding\ print $nrows\ \ while ((indx < nrows))\ do \ typeset job description day\ \ XtGetValues ${Job[$indx]} value:job\ print "$job" \ \ XtGetValues ${Description[$indx]} value:description\ print "$description" \ \ for day in ${Week[@]}\ do\ eval XtGetValues '${'$day'[$indx]}' value:value\ printf "%-5d" value \ done\ \ XtGetValues ${Total[$indx]} value:value\ printf "%-5d" value \ \ print "" \ \ indx=indx+1\ done\ \ for total in ${ColumnTotal[@]} \ do\ XtGetValues $total value:value\ printf "%-5d" value \ done\ \ print "" \ ) > ${TimeSheetDir}/${TimeSheetFile}\ }\ \ function save_timesheet_cb\ {\ typeset filepath=${CB_CALL_DATA.VALUE}\ \ TimeSheetFile=$(basename $filepath)\ TimeSheetDir=$(dirname $filepath)\ \ SaveTimeSheet\ }\ \ # \ # NOTE: No error checking is done on timesheet content\ # \ function TimeSheetSave\ {\ typeset fsb dir\ \ XmCreateFileSelectionDialog fsb $pushButton1 \\ "Save TimeSheet" \\ autoUnmanage:True \\ directory:${TimeSheetDir} \ \ XtGetValues $fsb directory:dir\ XtSetValues $fsb dirSpec:${dir}${TimeSheetFile}\ \ XtAddCallback $fsb okCallback save_timesheet_cb \ XtManageChild $fsb\ }\ \ # \ # NOTE: No error checking is done on input file\ # \ function TimeSheetLoad\ {\ typeset item Values\ typeset -i i j NRow\ \ exec 3< ${TimeSheetDir}/$TimeSheetFile\ \ read -u3 item\ XtSetValues $NameField value:"$item"\ \ read -u3 item\ XtSetValues $DateField value:"$item"\ \ read -u3 NRow\ i=0\ while ((i < NRow))\ do\ typeset day widget\ \ read -u3 item\ XtSetValues ${Job[$i]} value:"$item"\ \ read -u3 item\ XtSetValues ${Description[$i]} value:"$item"\ \ read -u3 item\ set -A Values $item\ \ j=0\ for day in ${Week[@]} Total \ do\ eval widget='${'$day'[$i]}'\ if ((${Values[$j]} != 0)); then\ XtSetValues $widget value:${Values[$j]}\ fi\ \ j=j+1\ done\ \ i=i+1\ done\ \ read -u3 item\ set -A Values $item\ \ j=0\ for total in ${ColumnTotal[@]} \ do\ if ((${Values[$j]} != 0)); then\ XtSetValues $total value:${Values[$j]}\ fi\ j=j+1\ done\ \ exec 3<&-\ }\ \ function TimeSheetPrint\ {\ typeset -i value\ typeset -i nrows=${#Job[@]} indx=0\ \ XtGetValues $NameField value:Name\ XtGetValues $DateField value:WeekEnding\ \ ( \ \ print ""\ print $CompanyName\ print "======================" \ print "" \ printf "Name: %-39.38sWeek Ending: %-8.8s\n" "$Name" "$WeekEnding" \ print "=================================================================="\ print "Job No. Description Sat Sun Mon Tue Wed Thu Fri Total" \ print "=================================================================="\ \ while ((indx < nrows))\ do \ typeset job description day\ \ XtGetValues ${Job[$indx]} value:job\ printf "%-8.7s" "$job" \ \ XtGetValues ${Description[$indx]} value:description\ printf "%-18.17s" "$description" \ \ for day in ${Week[@]}\ do\ eval XtGetValues '${'$day'[$indx]}' value:value\ printf "%-5d" value \ done\ \ XtGetValues ${Total[$indx]} value:value\ printf "%-5d" value \ \ print "" \ \ indx=indx+1\ done\ \ print "=================================================================" \ printf "%-26.26s" "Totals" \ \ for total in ${ColumnTotal[@]} \ do\ XtGetValues $total value:value\ printf "%-5d" value \ done\ \ print "" \ ) | $PrintCommand\ }\ \ function TimeSheetClear\ {\ typeset column\ typeset -i i=0 NRow=${#Job[@]}\ \ XtSetValues $NameField value:""\ XtSetValues $DateField value:""\ \ while ((i < NRow))\ do\ typeset -i j=0\ \ for column in ${Column[@]}\ do\ eval typeset widget='${'$column'[$i]}'\ \ XtSetValues $widget value:${Values[$j]}\ \ j=j+1\ done\ \ i=i+1\ done\ \ i=0\ for column in ${ColumnTotal[@]} \ do\ XtSetValues $column value:""\ j=j+1\ done\ }\ \ # \ # This popupCallback is attached to the XmDialogShell widget, this Widget id\ # is held in the global variable 'theShell'. \ # \ # It is often necessary to perform some action once all the widgets have\ # been created, in this case loading the timesheet data. We can accomplish this\ # by attaching a popup callback to the XmDialogShell, we do this by\ # entering code to add the popupCallback in the createCallback for the\ # dialogWindow1.\ #\ function popup_cb\ {\ if [[ -f ${TimeSheetDir}/${TimeSheetFile} && $InitialPopup == "yes" ]] then\ TimeSheetLoad\ InitialPopup="no"\ fi\ }\ *dialogWindow1.resizePolicy: "resize_none" *dialogWindow1.isCompound: "true" *dialogWindow1.compoundIcon: "dialogW.xpm" *dialogWindow1.compoundName: "dialog_Window" *dialogWindow1.unitType: "pixels" *dialogWindow1.isDuplicatable: "false" *dialogWindow1.width: 740 *dialogWindow1.height: 453 *dialogWindow1.x: 184 *dialogWindow1.y: 195 *dialogWindow1.defaultButton: "defaultButton1" *dialogWindow1.dialogTitle: "Mark's Timesheet" *dialogWindow1.createCallback: XtAddCallback $theShell \\ popupCallback popup_cb *groupBox1.class: frame *groupBox1.static: true *groupBox1.name: groupBox1 *groupBox1.parent: dialogWindow1 *groupBox1.isCompound: "true" *groupBox1.compoundIcon: "group.xpm" *groupBox1.compoundName: "group_Box" *groupBox1.canBeTopLevel: "false" *groupBox1.canHaveChildren: "false" *groupBox1.isRegion: "true" *groupBox1.width: 720 *groupBox1.height: 330 *groupBox1.background.lock: true *groupBox1.foreground.lock: true *groupBox1.compoundResourceSet: "LabelString:labelBox1.labelString;\ LabelPixmap:labelBox1.labelPixmap;\ LabelType:labelBox1.labelType;\ Alignment:labelBox1.alignment;\ FontList:labelBox1.fontList;\ Background:groupBox1.background,labelBox1.background,formBox1.background;\ Foreground:groupBox1.foreground,labelBox1.foreground,formBox1.foreground" *groupBox1.x: 10 *groupBox1.y: 10 *labelBox1.class: label *labelBox1.static: true *labelBox1.name: labelBox1 *labelBox1.parent: groupBox1 *labelBox1.childType: "frame_title_child" *labelBox1.labelString: "Chez Nathalie" *labelBox1.labelType: "string" *labelBox1.isCompound: "false" *labelBox1.isInCompound: "true" *labelBox1.isRegion: "false" *labelBox1.isSelectable: "false" *labelBox1.usePropEditor: "false" *labelBox1.canHaveChildren: "false" *labelBox1.fontList: "9x15bold" *formBox1.class: form *formBox1.static: true *formBox1.name: formBox1 *formBox1.parent: groupBox1 *formBox1.resizePolicy: "resize_none" *formBox1.isCompound: "false" *formBox1.isInCompound: "true" *formBox1.isRegion: "false" *formBox1.isSelectable: "false" *formBox1.usePropEditor: "false" *separator1.class: separator *separator1.static: true *separator1.name: separator1 *separator1.parent: formBox1 *separator1.isCompound: "true" *separator1.compoundIcon: "sep.xpm" *separator1.compoundName: "separator_" *separator1.canBeTopLevel: "false" *separator1.canHaveChildren: "false" *separator1.width: 690 *separator1.height: 10 *separator1.x: 10 *separator1.y: 60 *separator2.class: separator *separator2.static: true *separator2.name: separator2 *separator2.parent: formBox1 *separator2.isCompound: "true" *separator2.compoundIcon: "sep.xpm" *separator2.compoundName: "separator_" *separator2.canBeTopLevel: "false" *separator2.canHaveChildren: "false" *separator2.width: 690 *separator2.height: 10 *separator2.x: 10 *separator2.y: 100 *separator3.class: separator *separator3.static: true *separator3.name: separator3 *separator3.parent: formBox1 *separator3.isCompound: "true" *separator3.compoundIcon: "sep.xpm" *separator3.compoundName: "separator_" *separator3.canBeTopLevel: "false" *separator3.canHaveChildren: "false" *separator3.width: 690 *separator3.height: 10 *separator3.x: 10 *separator3.y: 230 *label1.class: label *label1.static: true *label1.name: label1 *label1.parent: formBox1 *label1.isCompound: "true" *label1.compoundIcon: "label.xpm" *label1.compoundName: "label_" *label1.canBeTopLevel: "false" *label1.canHaveChildren: "false" *label1.width: 60 *label1.height: 35 *label1.x: 30 *label1.y: 10 *label1.labelString: "Name:" *label1.fontList: "9x15" *textField1.class: textField *textField1.static: true *textField1.name: textField1 *textField1.parent: formBox1 *textField1.isCompound: "true" *textField1.compoundIcon: "textfield.xpm" *textField1.compoundName: "text_Field" *textField1.canBeTopLevel: "false" *textField1.canHaveChildren: "false" *textField1.width: 260 *textField1.height: 35 *textField1.x: 110 *textField1.y: 10 *textField1.createCallback: NameField=$widget\ *label2.class: label *label2.static: true *label2.name: label2 *label2.parent: formBox1 *label2.isCompound: "true" *label2.compoundIcon: "label.xpm" *label2.compoundName: "label_" *label2.canBeTopLevel: "false" *label2.canHaveChildren: "false" *label2.width: 120 *label2.height: 30 *label2.x: 390 *label2.y: 10 *label2.labelString: "Week Ending:" *label2.fontList: "9x15" *textField3.class: textField *textField3.static: true *textField3.name: textField3 *textField3.parent: formBox1 *textField3.isCompound: "true" *textField3.compoundIcon: "textfield.xpm" *textField3.compoundName: "text_Field" *textField3.canBeTopLevel: "false" *textField3.canHaveChildren: "false" *textField3.width: 170 *textField3.height: 35 *textField3.x: 520 *textField3.y: 10 *textField3.createCallback: DateField=$widget *pushButton1.class: pushButton *pushButton1.static: true *pushButton1.name: pushButton1 *pushButton1.parent: formBox1 *pushButton1.isCompound: "true" *pushButton1.compoundIcon: "push.xpm" *pushButton1.compoundName: "push_Button" *pushButton1.canBeTopLevel: "false" *pushButton1.canHaveChildren: "false" *pushButton1.unitType: "pixels" *pushButton1.defaultButtonShadowThickness.lock: true *pushButton1.width: 120 *pushButton1.height: 40 *pushButton1.x: 20 *pushButton1.y: 240 *pushButton1.labelPixmap: "/usr/dt/appconfig/icons/C/DtCM.l.pm" *pushButton1.labelType: "pixmap" *pushButton1.activateCallback: TimeSheetClear *textField4.class: textField *textField4.static: true *textField4.name: textField4 *textField4.parent: formBox1 *textField4.isCompound: "true" *textField4.compoundIcon: "textfield.xpm" *textField4.compoundName: "text_Field" *textField4.canBeTopLevel: "false" *textField4.canHaveChildren: "false" *textField4.width: 120 *textField4.height: 35 *textField4.x: 10 *textField4.y: 115 *textField4.createCallback: put_widget_in_row $widget Job *textField5.class: textField *textField5.static: true *textField5.name: textField5 *textField5.parent: formBox1 *textField5.isCompound: "true" *textField5.compoundIcon: "textfield.xpm" *textField5.compoundName: "text_Field" *textField5.canBeTopLevel: "false" *textField5.canHaveChildren: "false" *textField5.width: 210 *textField5.height: 35 *textField5.x: 140 *textField5.y: 115 *textField5.createCallback: put_widget_in_row $widget Description *textField6.class: textField *textField6.static: true *textField6.name: textField6 *textField6.parent: formBox1 *textField6.isCompound: "true" *textField6.compoundIcon: "textfield.xpm" *textField6.compoundName: "text_Field" *textField6.canBeTopLevel: "false" *textField6.canHaveChildren: "false" *textField6.width: 30 *textField6.height: 35 *textField6.x: 360 *textField6.y: 115 *textField6.background: "#f08d90" *textField6.sensitive: "false" *textField6.createCallback: put_widget_in_row $widget Sat *textField6.valueChangedCallback: find_row_id RowId $widget; recalculate Sat $RowId *textField7.class: textField *textField7.static: true *textField7.name: textField7 *textField7.parent: formBox1 *textField7.isCompound: "true" *textField7.compoundIcon: "textfield.xpm" *textField7.compoundName: "text_Field" *textField7.canBeTopLevel: "false" *textField7.canHaveChildren: "false" *textField7.width: 30 *textField7.height: 35 *textField7.x: 400 *textField7.y: 115 *textField7.background: "#f08d90" *textField7.sensitive: "false" *textField7.createCallback: put_widget_in_row $widget Sun *textField7.valueChangedCallback: find_row_id RowId $widget; recalculate Sun $RowId *textField8.class: textField *textField8.static: true *textField8.name: textField8 *textField8.parent: formBox1 *textField8.isCompound: "true" *textField8.compoundIcon: "textfield.xpm" *textField8.compoundName: "text_Field" *textField8.canBeTopLevel: "false" *textField8.canHaveChildren: "false" *textField8.width: 30 *textField8.height: 35 *textField8.x: 440 *textField8.y: 115 *textField8.createCallback: put_widget_in_row $widget Mon *textField8.valueChangedCallback: find_row_id RowId $widget; recalculate Mon $RowId *textField9.class: textField *textField9.static: true *textField9.name: textField9 *textField9.parent: formBox1 *textField9.isCompound: "true" *textField9.compoundIcon: "textfield.xpm" *textField9.compoundName: "text_Field" *textField9.canBeTopLevel: "false" *textField9.canHaveChildren: "false" *textField9.width: 30 *textField9.height: 35 *textField9.x: 480 *textField9.y: 115 *textField9.createCallback: put_widget_in_row $widget Tue *textField9.valueChangedCallback: find_row_id RowId $widget; recalculate Tue $RowId *textField10.class: textField *textField10.static: true *textField10.name: textField10 *textField10.parent: formBox1 *textField10.isCompound: "true" *textField10.compoundIcon: "textfield.xpm" *textField10.compoundName: "text_Field" *textField10.canBeTopLevel: "false" *textField10.canHaveChildren: "false" *textField10.width: 30 *textField10.height: 35 *textField10.x: 520 *textField10.y: 115 *textField10.createCallback: put_widget_in_row $widget Wed *textField10.valueChangedCallback: find_row_id RowId $widget; recalculate Wed $RowId *textField11.class: textField *textField11.static: true *textField11.name: textField11 *textField11.parent: formBox1 *textField11.isCompound: "true" *textField11.compoundIcon: "textfield.xpm" *textField11.compoundName: "text_Field" *textField11.canBeTopLevel: "false" *textField11.canHaveChildren: "false" *textField11.width: 30 *textField11.height: 35 *textField11.x: 560 *textField11.y: 115 *textField11.createCallback: put_widget_in_row $widget Thu *textField11.valueChangedCallback: find_row_id RowId $widget; recalculate Thu $RowId *textField12.class: textField *textField12.static: true *textField12.name: textField12 *textField12.parent: formBox1 *textField12.isCompound: "true" *textField12.compoundIcon: "textfield.xpm" *textField12.compoundName: "text_Field" *textField12.canBeTopLevel: "false" *textField12.canHaveChildren: "false" *textField12.width: 30 *textField12.height: 35 *textField12.x: 600 *textField12.y: 115 *textField12.createCallback: put_widget_in_row $widget Fri *textField12.valueChangedCallback: find_row_id RowId $widget; recalculate Fri $RowId *textField13.class: textField *textField13.static: true *textField13.name: textField13 *textField13.parent: formBox1 *textField13.isCompound: "true" *textField13.compoundIcon: "textfield.xpm" *textField13.compoundName: "text_Field" *textField13.canBeTopLevel: "false" *textField13.canHaveChildren: "false" *textField13.width: 60 *textField13.height: 35 *textField13.x: 640 *textField13.y: 115 *textField13.sensitive: "false" *textField13.fontList: "9x15bold" *textField13.createCallback: put_widget_in_row $widget Total *label3.class: label *label3.static: true *label3.name: label3 *label3.parent: formBox1 *label3.isCompound: "true" *label3.compoundIcon: "label.xpm" *label3.compoundName: "label_" *label3.canBeTopLevel: "false" *label3.canHaveChildren: "false" *label3.width: 120 *label3.height: 30 *label3.x: 10 *label3.y: 70 *label3.labelString: "Job No." *label3.fontList: "9x15" *label4.class: label *label4.static: true *label4.name: label4 *label4.parent: formBox1 *label4.isCompound: "true" *label4.compoundIcon: "label.xpm" *label4.compoundName: "label_" *label4.canBeTopLevel: "false" *label4.canHaveChildren: "false" *label4.width: 170 *label4.height: 30 *label4.x: 140 *label4.y: 70 *label4.labelString: "Description" *label4.fontList: "9x15" *label5.class: label *label5.static: true *label5.name: label5 *label5.parent: formBox1 *label5.isCompound: "true" *label5.compoundIcon: "label.xpm" *label5.compoundName: "label_" *label5.canBeTopLevel: "false" *label5.canHaveChildren: "false" *label5.width: 30 *label5.height: 30 *label5.x: 360 *label5.y: 70 *label5.labelString: "Sat" *label6.class: label *label6.static: true *label6.name: label6 *label6.parent: formBox1 *label6.isCompound: "true" *label6.compoundIcon: "label.xpm" *label6.compoundName: "label_" *label6.canBeTopLevel: "false" *label6.canHaveChildren: "false" *label6.width: 30 *label6.height: 30 *label6.x: 400 *label6.y: 70 *label6.labelString: "Sun" *label7.class: label *label7.static: true *label7.name: label7 *label7.parent: formBox1 *label7.isCompound: "true" *label7.compoundIcon: "label.xpm" *label7.compoundName: "label_" *label7.canBeTopLevel: "false" *label7.canHaveChildren: "false" *label7.width: 30 *label7.height: 30 *label7.x: 440 *label7.y: 70 *label7.labelString: "Mon" *label8.class: label *label8.static: true *label8.name: label8 *label8.parent: formBox1 *label8.isCompound: "true" *label8.compoundIcon: "label.xpm" *label8.compoundName: "label_" *label8.canBeTopLevel: "false" *label8.canHaveChildren: "false" *label8.width: 30 *label8.height: 30 *label8.x: 480 *label8.y: 70 *label8.labelString: "Tue" *label9.class: label *label9.static: true *label9.name: label9 *label9.parent: formBox1 *label9.isCompound: "true" *label9.compoundIcon: "label.xpm" *label9.compoundName: "label_" *label9.canBeTopLevel: "false" *label9.canHaveChildren: "false" *label9.width: 30 *label9.height: 30 *label9.x: 520 *label9.y: 70 *label9.labelString: "Wed" *label10.class: label *label10.static: true *label10.name: label10 *label10.parent: formBox1 *label10.isCompound: "true" *label10.compoundIcon: "label.xpm" *label10.compoundName: "label_" *label10.canBeTopLevel: "false" *label10.canHaveChildren: "false" *label10.width: 30 *label10.height: 30 *label10.x: 560 *label10.y: 70 *label10.labelString: "Thu" *label11.class: label *label11.static: true *label11.name: label11 *label11.parent: formBox1 *label11.isCompound: "true" *label11.compoundIcon: "label.xpm" *label11.compoundName: "label_" *label11.canBeTopLevel: "false" *label11.canHaveChildren: "false" *label11.width: 30 *label11.height: 30 *label11.x: 600 *label11.y: 70 *label11.labelString: "Fri" *label12.class: label *label12.static: true *label12.name: label12 *label12.parent: formBox1 *label12.isCompound: "true" *label12.compoundIcon: "label.xpm" *label12.compoundName: "label_" *label12.canBeTopLevel: "false" *label12.canHaveChildren: "false" *label12.width: 60 *label12.height: 30 *label12.x: 640 *label12.y: 70 *label12.labelString: "Total" *textField34.class: textField *textField34.static: true *textField34.name: textField34 *textField34.parent: formBox1 *textField34.isCompound: "true" *textField34.compoundIcon: "textfield.xpm" *textField34.compoundName: "text_Field" *textField34.canBeTopLevel: "false" *textField34.canHaveChildren: "false" *textField34.width: 30 *textField34.height: 35 *textField34.x: 360 *textField34.y: 245 *textField34.background: "#f08d90" *textField34.sensitive: "false" *textField34.createCallback: find_column_id ColumnId Sat; ColumnTotal[$ColumnId]=$widget *textField35.class: textField *textField35.static: true *textField35.name: textField35 *textField35.parent: formBox1 *textField35.isCompound: "true" *textField35.compoundIcon: "textfield.xpm" *textField35.compoundName: "text_Field" *textField35.canBeTopLevel: "false" *textField35.canHaveChildren: "false" *textField35.width: 30 *textField35.height: 35 *textField35.x: 400 *textField35.y: 245 *textField35.background: "#f08d90" *textField35.sensitive: "false" *textField35.createCallback: find_column_id ColumnId Sun; ColumnTotal[$ColumnId]=$widget *textField36.class: textField *textField36.static: true *textField36.name: textField36 *textField36.parent: formBox1 *textField36.isCompound: "true" *textField36.compoundIcon: "textfield.xpm" *textField36.compoundName: "text_Field" *textField36.canBeTopLevel: "false" *textField36.canHaveChildren: "false" *textField36.width: 30 *textField36.height: 35 *textField36.x: 440 *textField36.y: 245 *textField36.createCallback: find_column_id ColumnId Mon; ColumnTotal[$ColumnId]=$widget *textField36.sensitive: "false" *textField37.class: textField *textField37.static: true *textField37.name: textField37 *textField37.parent: formBox1 *textField37.isCompound: "true" *textField37.compoundIcon: "textfield.xpm" *textField37.compoundName: "text_Field" *textField37.canBeTopLevel: "false" *textField37.canHaveChildren: "false" *textField37.width: 30 *textField37.height: 35 *textField37.x: 480 *textField37.y: 245 *textField37.createCallback: find_column_id ColumnId Tue; ColumnTotal[$ColumnId]=$widget *textField37.sensitive: "false" *textField38.class: textField *textField38.static: true *textField38.name: textField38 *textField38.parent: formBox1 *textField38.isCompound: "true" *textField38.compoundIcon: "textfield.xpm" *textField38.compoundName: "text_Field" *textField38.canBeTopLevel: "false" *textField38.canHaveChildren: "false" *textField38.width: 30 *textField38.height: 35 *textField38.x: 520 *textField38.y: 245 *textField38.createCallback: find_column_id ColumnId Wed; ColumnTotal[$ColumnId]=$widget *textField38.sensitive: "false" *textField39.class: textField *textField39.static: true *textField39.name: textField39 *textField39.parent: formBox1 *textField39.isCompound: "true" *textField39.compoundIcon: "textfield.xpm" *textField39.compoundName: "text_Field" *textField39.canBeTopLevel: "false" *textField39.canHaveChildren: "false" *textField39.width: 30 *textField39.height: 35 *textField39.x: 560 *textField39.y: 245 *textField39.createCallback: find_column_id ColumnId Thu; ColumnTotal[$ColumnId]=$widget *textField39.sensitive: "false" *textField40.class: textField *textField40.static: true *textField40.name: textField40 *textField40.parent: formBox1 *textField40.isCompound: "true" *textField40.compoundIcon: "textfield.xpm" *textField40.compoundName: "text_Field" *textField40.canBeTopLevel: "false" *textField40.canHaveChildren: "false" *textField40.width: 30 *textField40.height: 35 *textField40.x: 600 *textField40.y: 245 *textField40.createCallback: find_column_id ColumnId Fri; ColumnTotal[$ColumnId]=$widget *textField40.sensitive: "false" *textField41.class: textField *textField41.static: true *textField41.name: textField41 *textField41.parent: formBox1 *textField41.isCompound: "true" *textField41.compoundIcon: "textfield.xpm" *textField41.compoundName: "text_Field" *textField41.canBeTopLevel: "false" *textField41.canHaveChildren: "false" *textField41.width: 60 *textField41.height: 35 *textField41.x: 640 *textField41.y: 245 *textField41.sensitive: "false" *textField41.fontList: "9x15bold" *textField41.createCallback: find_column_id ColumnId Total; ColumnTotal[$ColumnId]=$widget *label13.class: label *label13.static: true *label13.name: label13 *label13.parent: formBox1 *label13.isCompound: "true" *label13.compoundIcon: "label.xpm" *label13.compoundName: "label_" *label13.canBeTopLevel: "false" *label13.canHaveChildren: "false" *label13.width: 120 *label13.height: 40 *label13.x: 230 *label13.y: 250 *label13.fontList: "9x15" *label13.labelString: "TOTALS" *textField14.class: textField *textField14.static: true *textField14.name: textField14 *textField14.parent: formBox1 *textField14.isCompound: "true" *textField14.compoundIcon: "textfield.xpm" *textField14.compoundName: "text_Field" *textField14.canBeTopLevel: "false" *textField14.canHaveChildren: "false" *textField14.width: 120 *textField14.height: 35 *textField14.x: 10 *textField14.y: 155 *textField14.createCallback: put_widget_in_row $widget Job *textField15.class: textField *textField15.static: true *textField15.name: textField15 *textField15.parent: formBox1 *textField15.isCompound: "true" *textField15.compoundIcon: "textfield.xpm" *textField15.compoundName: "text_Field" *textField15.canBeTopLevel: "false" *textField15.canHaveChildren: "false" *textField15.width: 60 *textField15.height: 35 *textField15.x: 640 *textField15.y: 155 *textField15.sensitive: "false" *textField15.fontList: "9x15bold" *textField15.createCallback: put_widget_in_row $widget Total *textField16.class: textField *textField16.static: true *textField16.name: textField16 *textField16.parent: formBox1 *textField16.isCompound: "true" *textField16.compoundIcon: "textfield.xpm" *textField16.compoundName: "text_Field" *textField16.canBeTopLevel: "false" *textField16.canHaveChildren: "false" *textField16.width: 30 *textField16.height: 35 *textField16.x: 360 *textField16.y: 155 *textField16.background: "#f08d90" *textField16.sensitive: "false" *textField16.createCallback: put_widget_in_row $widget Sat *textField16.valueChangedCallback: find_row_id RowId $widget; recalculate Sat $RowId *textField17.class: textField *textField17.static: true *textField17.name: textField17 *textField17.parent: formBox1 *textField17.isCompound: "true" *textField17.compoundIcon: "textfield.xpm" *textField17.compoundName: "text_Field" *textField17.canBeTopLevel: "false" *textField17.canHaveChildren: "false" *textField17.width: 210 *textField17.height: 35 *textField17.x: 140 *textField17.y: 155 *textField17.createCallback: put_widget_in_row $widget Description *textField18.class: textField *textField18.static: true *textField18.name: textField18 *textField18.parent: formBox1 *textField18.isCompound: "true" *textField18.compoundIcon: "textfield.xpm" *textField18.compoundName: "text_Field" *textField18.canBeTopLevel: "false" *textField18.canHaveChildren: "false" *textField18.width: 30 *textField18.height: 35 *textField18.x: 520 *textField18.y: 155 *textField18.createCallback: put_widget_in_row $widget Wed *textField18.valueChangedCallback: find_row_id RowId $widget; recalculate Wed $RowId *textField19.class: textField *textField19.static: true *textField19.name: textField19 *textField19.parent: formBox1 *textField19.isCompound: "true" *textField19.compoundIcon: "textfield.xpm" *textField19.compoundName: "text_Field" *textField19.canBeTopLevel: "false" *textField19.canHaveChildren: "false" *textField19.width: 30 *textField19.height: 35 *textField19.x: 440 *textField19.y: 155 *textField19.createCallback: put_widget_in_row $widget Mon *textField19.valueChangedCallback: find_row_id RowId $widget; recalculate Mon $RowId *textField20.class: textField *textField20.static: true *textField20.name: textField20 *textField20.parent: formBox1 *textField20.isCompound: "true" *textField20.compoundIcon: "textfield.xpm" *textField20.compoundName: "text_Field" *textField20.canBeTopLevel: "false" *textField20.canHaveChildren: "false" *textField20.width: 30 *textField20.height: 35 *textField20.x: 480 *textField20.y: 155 *textField20.createCallback: put_widget_in_row $widget Tue *textField20.valueChangedCallback: find_row_id RowId $widget; recalculate Tue $RowId *textField21.class: textField *textField21.static: true *textField21.name: textField21 *textField21.parent: formBox1 *textField21.isCompound: "true" *textField21.compoundIcon: "textfield.xpm" *textField21.compoundName: "text_Field" *textField21.canBeTopLevel: "false" *textField21.canHaveChildren: "false" *textField21.width: 30 *textField21.height: 35 *textField21.x: 400 *textField21.y: 155 *textField21.background: "#f08d90" *textField21.sensitive: "false" *textField21.createCallback: put_widget_in_row $widget Sun *textField21.valueChangedCallback: find_row_id RowId $widget; recalculate Sun $RowId *textField22.class: textField *textField22.static: true *textField22.name: textField22 *textField22.parent: formBox1 *textField22.isCompound: "true" *textField22.compoundIcon: "textfield.xpm" *textField22.compoundName: "text_Field" *textField22.canBeTopLevel: "false" *textField22.canHaveChildren: "false" *textField22.width: 30 *textField22.height: 35 *textField22.x: 560 *textField22.y: 155 *textField22.createCallback: put_widget_in_row $widget Thu *textField22.valueChangedCallback: find_row_id RowId $widget; recalculate Thu $RowId *textField23.class: textField *textField23.static: true *textField23.name: textField23 *textField23.parent: formBox1 *textField23.isCompound: "true" *textField23.compoundIcon: "textfield.xpm" *textField23.compoundName: "text_Field" *textField23.canBeTopLevel: "false" *textField23.canHaveChildren: "false" *textField23.width: 30 *textField23.height: 35 *textField23.x: 600 *textField23.y: 155 *textField23.createCallback: put_widget_in_row $widget Fri *textField23.valueChangedCallback: find_row_id RowId $widget; recalculate Fri $RowId *textField24.class: textField *textField24.static: true *textField24.name: textField24 *textField24.parent: formBox1 *textField24.isCompound: "true" *textField24.compoundIcon: "textfield.xpm" *textField24.compoundName: "text_Field" *textField24.canBeTopLevel: "false" *textField24.canHaveChildren: "false" *textField24.width: 30 *textField24.height: 35 *textField24.x: 360 *textField24.y: 195 *textField24.background: "#f08d90" *textField24.sensitive: "false" *textField24.createCallback: put_widget_in_row $widget Sat *textField24.valueChangedCallback: find_row_id RowId $widget; recalculate Sat $RowId *textField25.class: textField *textField25.static: true *textField25.name: textField25 *textField25.parent: formBox1 *textField25.isCompound: "true" *textField25.compoundIcon: "textfield.xpm" *textField25.compoundName: "text_Field" *textField25.canBeTopLevel: "false" *textField25.canHaveChildren: "false" *textField25.width: 120 *textField25.height: 35 *textField25.x: 10 *textField25.y: 195 *textField25.createCallback: put_widget_in_row $widget Job *textField26.class: textField *textField26.static: true *textField26.name: textField26 *textField26.parent: formBox1 *textField26.isCompound: "true" *textField26.compoundIcon: "textfield.xpm" *textField26.compoundName: "text_Field" *textField26.canBeTopLevel: "false" *textField26.canHaveChildren: "false" *textField26.width: 210 *textField26.height: 35 *textField26.x: 140 *textField26.y: 195 *textField26.createCallback: put_widget_in_row $widget Description *textField27.class: textField *textField27.static: true *textField27.name: textField27 *textField27.parent: formBox1 *textField27.isCompound: "true" *textField27.compoundIcon: "textfield.xpm" *textField27.compoundName: "text_Field" *textField27.canBeTopLevel: "false" *textField27.canHaveChildren: "false" *textField27.width: 30 *textField27.height: 35 *textField27.x: 600 *textField27.y: 195 *textField27.createCallback: put_widget_in_row $widget Fri *textField27.valueChangedCallback: find_row_id RowId $widget; recalculate Fri $RowId *textField28.class: textField *textField28.static: true *textField28.name: textField28 *textField28.parent: formBox1 *textField28.isCompound: "true" *textField28.compoundIcon: "textfield.xpm" *textField28.compoundName: "text_Field" *textField28.canBeTopLevel: "false" *textField28.canHaveChildren: "false" *textField28.width: 30 *textField28.height: 35 *textField28.x: 560 *textField28.y: 195 *textField28.createCallback: put_widget_in_row $widget Thu *textField28.valueChangedCallback: find_row_id RowId $widget; recalculate Thu $RowId *textField29.class: textField *textField29.static: true *textField29.name: textField29 *textField29.parent: formBox1 *textField29.isCompound: "true" *textField29.compoundIcon: "textfield.xpm" *textField29.compoundName: "text_Field" *textField29.canBeTopLevel: "false" *textField29.canHaveChildren: "false" *textField29.width: 30 *textField29.height: 35 *textField29.x: 480 *textField29.y: 195 *textField29.createCallback: put_widget_in_row $widget Tue *textField29.valueChangedCallback: find_row_id RowId $widget; recalculate Tue $RowId *textField30.class: textField *textField30.static: true *textField30.name: textField30 *textField30.parent: formBox1 *textField30.isCompound: "true" *textField30.compoundIcon: "textfield.xpm" *textField30.compoundName: "text_Field" *textField30.canBeTopLevel: "false" *textField30.canHaveChildren: "false" *textField30.width: 30 *textField30.height: 35 *textField30.x: 440 *textField30.y: 195 *textField30.createCallback: put_widget_in_row $widget Mon *textField30.valueChangedCallback: find_row_id RowId $widget; recalculate Mon $RowId *textField31.class: textField *textField31.static: true *textField31.name: textField31 *textField31.parent: formBox1 *textField31.isCompound: "true" *textField31.compoundIcon: "textfield.xpm" *textField31.compoundName: "text_Field" *textField31.canBeTopLevel: "false" *textField31.canHaveChildren: "false" *textField31.width: 30 *textField31.height: 35 *textField31.x: 520 *textField31.y: 195 *textField31.createCallback: put_widget_in_row $widget Wed *textField31.valueChangedCallback: find_row_id RowId $widget; recalculate Wed $RowId *textField32.class: textField *textField32.static: true *textField32.name: textField32 *textField32.parent: formBox1 *textField32.isCompound: "true" *textField32.compoundIcon: "textfield.xpm" *textField32.compoundName: "text_Field" *textField32.canBeTopLevel: "false" *textField32.canHaveChildren: "false" *textField32.width: 30 *textField32.height: 35 *textField32.x: 400 *textField32.y: 195 *textField32.background: "#f08d90" *textField32.sensitive: "false" *textField32.createCallback: put_widget_in_row $widget Sun *textField32.valueChangedCallback: find_row_id RowId $widget; recalculate Sun $RowId *textField33.class: textField *textField33.static: true *textField33.name: textField33 *textField33.parent: formBox1 *textField33.isCompound: "true" *textField33.compoundIcon: "textfield.xpm" *textField33.compoundName: "text_Field" *textField33.canBeTopLevel: "false" *textField33.canHaveChildren: "false" *textField33.width: 60 *textField33.height: 35 *textField33.x: 640 *textField33.y: 195 *textField33.sensitive: "false" *textField33.fontList: "9x15bold" *textField33.createCallback: put_widget_in_row $widget Total *pushButton2.class: pushButton *pushButton2.static: true *pushButton2.name: pushButton2 *pushButton2.parent: dialogWindow1 *pushButton2.isCompound: "true" *pushButton2.compoundIcon: "push.xpm" *pushButton2.compoundName: "push_Button" *pushButton2.canBeTopLevel: "false" *pushButton2.canHaveChildren: "false" *pushButton2.unitType: "pixels" *pushButton2.defaultButtonShadowThickness.lock: true *pushButton2.width: 120 *pushButton2.height: 50 *pushButton2.x: 30 *pushButton2.y: 360 *pushButton2.labelString: "SAVE" *pushButton2.activateCallback: TimeSheetSave *pushButton3.class: pushButton *pushButton3.static: true *pushButton3.name: pushButton3 *pushButton3.parent: dialogWindow1 *pushButton3.isCompound: "true" *pushButton3.compoundIcon: "push.xpm" *pushButton3.compoundName: "push_Button" *pushButton3.canBeTopLevel: "false" *pushButton3.canHaveChildren: "false" *pushButton3.unitType: "pixels" *pushButton3.defaultButtonShadowThickness.lock: true *pushButton3.width: 120 *pushButton3.height: 50 *pushButton3.x: 310 *pushButton3.y: 360 *pushButton3.labelString: "PRINT" *pushButton3.activateCallback: TimeSheetPrint *defaultButton1.class: pushButton *defaultButton1.static: true *defaultButton1.name: defaultButton1 *defaultButton1.parent: dialogWindow1 *defaultButton1.isCompound: "true" *defaultButton1.compoundIcon: "defPush.xpm" *defaultButton1.compoundName: "default_Button" *defaultButton1.canBeTopLevel: "false" *defaultButton1.canHaveChildren: "false" *defaultButton1.unitType: "pixels" *defaultButton1.defaultButtonShadowThickness: 1 *defaultButton1.showAsDefault: 1 *defaultButton1.width: 120 *defaultButton1.height: 50 *defaultButton1.x: 570 *defaultButton1.y: 360 *defaultButton1.labelString: "EXIT" *defaultButton1.activateCallback: exit 0