At 09:21 AM 5/12/2010, TOM HART wrote:

On the newest build of compiled app(of which I have changed
nothing, just recompiled my rmd file), something seems to
have happened to the scratch settings.  I have scratch set
to tmp in the startup file.


Tom,

Try the updated code below and see what you find. Make sure
to verify all relevant table/column names prior to using this
sample.

Use TRACE option to go through the whole code and understand
each step accordingly.

-- Start here ...
-- Test Sample For Tom Hart
-- Created: 05/12/2010
-- Define All Global Variables
   SET VAR vEmpID INTEGER = NULL
   SET VAR vEmpIDTxt TEXT = NULL
   SET VAR vEmpFullName TEXT = NULL
   SET VAR vPause2Message TEXT = NULL
   SET VAR vRows INTEGER = 0
   SET VAR vCaption TEXT = 'Employee ID'
LABEL Start
   CLS
   DIALOG 'Enter Employee ID' vEmpIDTxt=26 vEndKey 1 +
   CAPTION .vCaption ICON QUESTION +
   OPTION THEMENAME R:BASE Rocks!
IF vEndKey = '[Esc]' THEN
   GOTO Done
ENDIF
-- Validate Dialog Entry
IF vEmpIDTxt IS NULL THEN
   PAUSE 2 USING 'Missing Employee ID!' +
   CAPTION .vCaption ICON STOP +
   BUTTON 'Click here to enter Employee ID ...' +
   OPTION MESSAGE_FONT_NAME Verdana +
   |MESSAGE_FONT_COLOR RED +
   |MESSAGE_FONT_SIZE 10 +
   |BUTTON_FONT_COLOR GREEN +
   |THEMENAME R:BASE Rocks!
   GOTO Start
ENDIF
-- Validate Data Type
   SET VAR vEmpID = (INT(.vEmpIDTxt))
IF vEmpID IS NULL THEN
   PAUSE 2 USING 'Invalid Employee ID!' +
   CAPTION .vCaption ICON STOP +
   BUTTON 'Click here to enter Employee ID ...' +
   OPTION MESSAGE_FONT_NAME Verdana +
   |MESSAGE_FONT_COLOR RED +
   |MESSAGE_FONT_SIZE 10 +
   |BUTTON_FONT_COLOR GREEN +
   |THEMENAME R:BASE Rocks!
   GOTO Start
ENDIF
-- Validate Employee ID
   SET VAR vRows = 0
   SELECT COUNT(*) INTO vRows INDIC ivRows FROM EmployeeTab +
   WHERE EmpID = .vEmpID
IF vRows = 0 THEN
   PAUSE 2 USING 'No Employee with such Employee ID!' +
   CAPTION .vCaption ICON STOP +
   BUTTON 'Click here to enter correct Employee ID ...' +
   OPTION MESSAGE_FONT_NAME Verdana +
   |MESSAGE_FONT_COLOR RED +
   |MESSAGE_FONT_SIZE 10 +
   |BUTTON_FONT_COLOR GREEN +
   |THEMENAME R:BASE Rocks!
   GOTO Start
ELSE
   SELECT (EmpFName&EmpLName) INTO vEmpFullName INDIC iv1 +
   FROM EmployeeTab WHERE EmpID = .vEmpID
ENDIF
-- Check for Existing Record for the current day in AAEmpClock table
   SET VAR vRows = 0
   SELECT COUNT(*) INTO vRows INDIC ivRows FROM AAEmpClock +
   WHERE EmpID = .vEmpID AND EmpDate = .#DATE
-- If exists then Update. If Null then create a new record
IF vRows = 0 THEN
   CLS
   ENTER USING AAEmpClockIn FOR 1 ROW
   SET VAR vPause2Message = (.vEmpFullName&'has Clocked-In')
   CLS
   PAUSE 2 USING .vPause2Message +
   CAPTION .vCaption ICON Confirm +
   BUTTON 'Click here to continue ...' +
   OPTION MESSAGE_FONT_NAME Verdana +
   |MESSAGE_FONT_COLOR GREEN +
   |MESSAGE_FONT_SIZE 10 +
   |MESSAGE_FONT_BOLD OFF +
   |BUTTON_COLOR WHITE +
   |BUTTON_FONT_COLOR GREEN +
   |THEMENAME R:BASE Rocks!
   GOTO Done
ELSE
   CLS
   EDIT USING AAEmpClockOut WHERE EmpID = .vEmpID AND EmpDate = .#DATE
   SET VAR vPause2Message = (.vEmpFullName&'has Clocked-Out')
   CLS
   PAUSE 2 USING .vPause2Message +
   CAPTION .vCaption ICON Confirm +
   BUTTON 'Click here to continue ...' +
   OPTION MESSAGE_FONT_NAME Verdana +
   |MESSAGE_FONT_COLOR GREEN +
   |MESSAGE_FONT_SIZE 10 +
   |MESSAGE_FONT_BOLD OFF +
   |BUTTON_COLOR WHITE +
   |BUTTON_FONT_COLOR GREEN +
   |THEMENAME R:BASE Rocks!
ENDIF

LABEL Done
CLS
CLEAR VARIABLES iv%,vEmpID,vEmpIDTxt,vEmpFullName,vPause2Message, +
vRows,vCaption
RETURN
-- End here ...

Have fun!

Very Best R:egards,

Razzak.


Reply via email to