Erica,
Set your Clock-Out button to run multiple actions. Add a model on your timesheet object that returns one row. Set the conditions to return records for the current user and where the Time Out field is blank/none. On your button you will Query the new model, update the Time Out field with now, save the new model, and then query your timesheet model.
Here is what the formula looks like to calculate the number of Hours:
IF(ISBLANK({{TimeOut}}),null,({{TimeOut}} - {{TimeIn}})/1000/60/60)
I have attached a sample page based on the Task object to demonstrate the solution.
Thanks,
Bill
<skuidpage unsavedchangeswarning="yes" personalizationmode="server" useviewportmeta="true" showsidebar="true" showheader="true" tabtooverride="Task"> <models>
<model id="Task" limit="100" query="true" createrowifnonefound="false" datasource="salesforce" sobject="Task" type="" orderby="CreatedDate DESC">
<fields>
<field id="Subject"/>
<field id="CreatedDate"/>
<field id="ActivityDate"/>
<field id="ReminderDateTime"/>
<field id="Duration" uionly="true" displaytype="FORMULA" label="Duration (Hrs)" ogdisplaytype="TEXT" readonly="true" returntype="DOUBLE" precision="9" scale="2">
<formula>IF(ISBLANK({{ReminderDateTime}}),null,({{ReminderDateTime}} - {{CreatedDate}})/1000/60/60)</formula>
</field>
</fields>
<conditions>
<condition type="userinfo" value="" field="OwnerId" operator="=" enclosevalueinquotes="true" userinfotype="userid"/>
</conditions>
<actions/>
</model>
<model id="RecentTask" limit="1" query="false" createrowifnonefound="false" datasource="salesforce" sobject="Task" type="" orderby="CreatedDate DESC">
<fields>
<field id="Subject"/>
<field id="CreatedDate"/>
<field id="ActivityDate"/>
<field id="ReminderDateTime"/>
</fields>
<conditions>
<condition type="userinfo" value="" field="OwnerId" operator="=" enclosevalueinquotes="true" userinfotype="userid"/>
<condition type="blank" value="null" field="ReminderDateTime" operator="=" enclosevalueinquotes="false"/>
</conditions>
<actions/>
</model>
</models>
<components>
<pagetitle model="Task" uniqueid="sk-2gBr9v-93">
<maintitle>
<template>{{Model.labelPlural}}</template>
</maintitle>
<subtitle>
<template>Home</template>
</subtitle>
<actions>
<action type="multi" label="Set Reminder Date" icon="fa-clock-o">
<actions>
<action type="requeryModel" model="RecentTask" behavior="standard"/>
<action type="updateRow" fieldmodel="RecentTask" affectedrows="context" field="ReminderDateTime" enclosevalueinquotes="false" value="NOW"/>
<action type="save">
<models>
<model>RecentTask</model>
</models>
</action>
<action type="requeryModel" model="Task" behavior="standard"/>
</actions>
</action>
<action type="savecancel">
<savehotkeys>
<hotkey modifiers="ctrl" key="s"/>
</savehotkeys>
</action>
</actions>
</pagetitle>
<skootable showconditions="true" showsavecancel="false" searchmethod="server" searchbox="true" showexportbuttons="false" pagesize="10" createrecords="true" model="Task" mode="read" allowcolumnreordering="true" uniqueid="sk-2gBr9v-94">
<fields>
<field id="Subject" hideable="true" allowordering="true" uniqueid="fi-2gBqC0-373" valuehalign="" type=""/>
<field id="CreatedDate" hideable="true" allowordering="true" uniqueid="fi-2gBqC0-374" valuehalign="" type=""/>
<field id="ReminderDateTime" hideable="true" uniqueid="fi-2gC6EW-152" valuehalign="" type="" allowordering="true"/>
<field id="Duration" hideable="true" uniqueid="fi-2gCUUH-276" decimalplaces="" valuehalign="" type=""/>
</fields>
<rowactions>
<action type="edit"/>
<action type="delete"/>
</rowactions>
<massactions usefirstitemasdefault="true">
<action type="massupdate"/>
<action type="massdelete"/>
</massactions>
<views>
<view type="standard"/>
</views>
</skootable>
</components>
<resources>
<labels/>
<css/>
<javascript/>
</resources>
<styles>
<styleitem type="background" bgtype="none"/>
</styles>
</skuidpage>