IBM Server Site

IBS Home Up

Popup Calendar Source

RPGLE - Display a Pop-up Calendar
Posted By: Kalpesh Patadia Contact

5722WDS V5R2M0  020719                  SEU SOURCE LISTING                            10/30/06 20:57:08
SOURCE FILE . . . . . . .  DEVNSK/QRPGLESRC
MEMBER  . . . . . . . . .  CALENDAR
SEQNBR*...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... 8 ...+... 9 ...+... 0
0100       **********************************************************************
0200       * Program Name . . . . : CALENDAR                                    *
0300       * Description. . . . . : Program to show a pop-up Calendar           *
0400       *--------------------------------------------------------------------*
0500       * Copyright (c). . . . : XxxxxxX Xxxxxxxxxxx, Xxxxxxxxx. XXXXX       *
0600       *--------------------------------------------------------------------*
0700       * Files Used . . . . . : *NONE                                       *
0800       *                      :                                             *
0900       * Display Files. . . . : CALEND1 - Screen for pop-up calendar        *
1000       * Printer Files. . . . : *NONE                                       *
1100       * Programs Called. . . : *NONE                                       *
1200       *--------------------------------------------------------------------*
1300       * Created by . . . . . : KALPESH PATADIA                             *
1400       * Company. . . . . . . : XxxxxxX Xxxxxxxxxxx, Xxxxxxxxx. XXXXX       *
1500       * Date . . . . . . . . : October 27, 2006                            *
1600       * Purpose. . . . . . . : To Show a Pop-up Calendar with previous     *
1700       *                      : and future dates as well. (Display Only)    *
1800       *--------------------------------------------------------------------*
1900       **********************************************************************
2000      HOPTION(*NODEBUGIO)
2100       **********************************************************************
2200      F* Files Used
2300      FCALEND1   CF   E             WORKSTN
2301       **********************************************************************
2302      D* Store Month Names
2303      DM@NAM            S              9    DIM(12) CTDATA PERRCD(1)
2400       *--------------------------------------------------------------------*
2401      D* Store No of Days in a Month
2402      DD@AYS            S              2  0 DIM(12) CTDATA PERRCD(12)
2403       *--------------------------------------------------------------------*
2404      D* Store the Dates for each day
2405      DD@ATE            S              2  0 DIM(42)
2406       *--------------------------------------------------------------------*
2407      D* Store the Current Date
2408      D@CURDAT          S               D   INZ(*SYS) DATFMT(*ISO)
2409      D@CURYER          S              4  0 INZ(*ZEROS)
2410      D@CURMTH          S              2  0 INZ(*ZEROS)
2411      D@CURDAY          S              2  0 INZ(*ZEROS)
2412       *--------------------------------------------------------------------*
2413      D* Display Attributes of each day
2414      D@DSPATR          DS
2415      D @DAY01                         1    INZ(@NORML)
2416      D @DAY02                         1    INZ(@NORML)
2417      D @DAY03                         1    INZ(@NORML)
2418      D @DAY04                         1    INZ(@NORML)
2419      D @DAY05                         1    INZ(@NORML)
2420      D @DAY06                         1    INZ(@NORML)
2421      D @DAY07                         1    INZ(@NORML)
2422      D @DAY08                         1    INZ(@NORML)
2423      D @DAY09                         1    INZ(@NORML)
2424      D @DAY10                         1    INZ(@NORML)
2425      D @DAY11                         1    INZ(@NORML)
2426      D @DAY12                         1    INZ(@NORML)
2427      D @DAY13                         1    INZ(@NORML)
2428      D @DAY14                         1    INZ(@NORML)
2429      D @DAY15                         1    INZ(@NORML)
2430      D @DAY16                         1    INZ(@NORML)
2431      D @DAY17                         1    INZ(@NORML)
2432      D @DAY18                         1    INZ(@NORML)
2433      D @DAY19                         1    INZ(@NORML)
2434      D @DAY20                         1    INZ(@NORML)
2435      D @DAY21                         1    INZ(@NORML)
2436      D @DAY22                         1    INZ(@NORML)
2437      D @DAY23                         1    INZ(@NORML)
2438      D @DAY24                         1    INZ(@NORML)
2439      D @DAY25                         1    INZ(@NORML)
2440      D @DAY26                         1    INZ(@NORML)
2441      D @DAY27                         1    INZ(@NORML)
2442      D @DAY28                         1    INZ(@NORML)
2443      D @DAY29                         1    INZ(@NORML)
2444      D @DAY30                         1    INZ(@NORML)
2445      D @DAY31                         1    INZ(@NORML)
2446      D @DAY32                         1    INZ(@NORML)
2447      D @DAY33                         1    INZ(@NORML)
2448      D @DAY34                         1    INZ(@NORML)
2449      D @DAY35                         1    INZ(@NORML)
2450      D @DAY36                         1    INZ(@NORML)
2451      D @DAY37                         1    INZ(@NORML)
2452      D @DAY38                         1    INZ(@NORML)
2453      D @DAY39                         1    INZ(@NORML)
2454      D @DAY40                         1    INZ(@NORML)
2455      D @DAY41                         1    INZ(@NORML)
2456      D @DAY42                         1    INZ(@NORML)
2457      D @DYATR                         1    DIM(42) OVERLAY(@DSPATR)
2458       *--------------------------------------------------------------------*
2459      D* Display Attributes in the Screen
2460      D @NORML          C                   CONST(x'20')
2461      D @RVIMG          C                   CONST(x'21')
2462       *--------------------------------------------------------------------*
2500      D* Program Variables
2501      D@STRTDT          DS
2503      D@STRYER                  1      4  0 INZ(*ZEROS)
2504      D@STRMTH                  5      6  0 INZ(*ZEROS)
2505      D@STRDAY                  7      8  0 INZ(*ZEROS)
2506      D@STRDT1                  1      8  0 INZ(*ZEROS)
2507       *--------------------------------------------------------------------*
2508      D* Program Variables
2509      D@STRDAT          S               D   DATFMT(*ISO)
2510      D@BEGDAT          S               D   DATFMT(*ISO) INZ(D'1905-12-31')
2511      D@DATE            S              2  0 INZ(*ZEROS)
2512      D@TMPVR1          S              2  0 INZ(*ZEROS)
2513      D@TMPVR2          S              4  0 INZ(*ZEROS)
2514      D@TMPVR3          S              6  0 INZ(*ZEROS)
2600       **********************************************************************
2700      C* MAIN LINE
2800       **********************************************************************
2900      C                   EXSR      SUBINIT
3000      C                   EXSR      SUBPROC
3100      C                   EXSR      SUBTERM
3200       **********************************************************************
3201      C* Main Process Routine
3300       *--------------------------------------------------------------------*
3301      C     SUBPROC       BEGSR
3302      C*
3303      C                   DOW       *IN03 = *OFF
3304      C*
3305      C                   EVAL      #MTHNAM = M@NAM(@STRMTH)
3306      C                   EVAL      #YERNUM = @STRYER
3307      C* Retrieve the 1st day of the Week
3308      C     @STRDAT       SUBDUR    @BEGDAT       @TMPVR3:*D
3309      C                   EVAL      @TMPVR2 = %REM(@TMPVR3:7)
3310      C                   EVAL      @TMPVR2 = @TMPVR2 + 1
3311      C* Store the Dates in the calendar
3312      C     01            DO        D@AYS(@STRMTH)@DATE
3313      C                   EVAL      D@ATE(@TMPVR2) = @DATE
3314      C                   EVAL      @TMPVR2 = @TMPVR2 + 1
3315      C                   ENDDO
3316      C* Fill Dates for Display
3317      C                   EVAL      #DAY01 = D@ATE(01)
3318      C                   EVAL      #DAY02 = D@ATE(02)
3319      C                   EVAL      #DAY03 = D@ATE(03)
3320      C                   EVAL      #DAY04 = D@ATE(04)
3321      C                   EVAL      #DAY05 = D@ATE(05)
3322      C                   EVAL      #DAY06 = D@ATE(06)
3323      C                   EVAL      #DAY07 = D@ATE(07)
3324      C                   EVAL      #DAY08 = D@ATE(08)
3325      C                   EVAL      #DAY09 = D@ATE(09)
3326      C                   EVAL      #DAY10 = D@ATE(10)
3327      C                   EVAL      #DAY11 = D@ATE(11)
3328      C                   EVAL      #DAY12 = D@ATE(12)
3329      C                   EVAL      #DAY13 = D@ATE(13)
3330      C                   EVAL      #DAY14 = D@ATE(14)
3331      C                   EVAL      #DAY15 = D@ATE(15)
3332      C                   EVAL      #DAY16 = D@ATE(16)
3333      C                   EVAL      #DAY17 = D@ATE(17)
3334      C                   EVAL      #DAY18 = D@ATE(18)
3335      C                   EVAL      #DAY19 = D@ATE(19)
3336      C                   EVAL      #DAY20 = D@ATE(20)
3337      C                   EVAL      #DAY21 = D@ATE(21)
3338      C                   EVAL      #DAY22 = D@ATE(22)
3339      C                   EVAL      #DAY23 = D@ATE(23)
3340      C                   EVAL      #DAY24 = D@ATE(24)
3341      C                   EVAL      #DAY25 = D@ATE(25)
3342      C                   EVAL      #DAY26 = D@ATE(26)
3343      C                   EVAL      #DAY27 = D@ATE(27)
3344      C                   EVAL      #DAY28 = D@ATE(28)
3345      C                   EVAL      #DAY29 = D@ATE(29)
3346      C                   EVAL      #DAY30 = D@ATE(30)
3347      C                   EVAL      #DAY31 = D@ATE(31)
3348      C                   EVAL      #DAY32 = D@ATE(32)
3349      C                   EVAL      #DAY33 = D@ATE(33)
3350      C                   EVAL      #DAY34 = D@ATE(34)
3351      C                   EVAL      #DAY35 = D@ATE(35)
3352      C                   EVAL      #DAY36 = D@ATE(36)
3353      C                   EVAL      #DAY37 = D@ATE(37)
3354      C                   EVAL      #DAY38 = D@ATE(38)
3355      C                   EVAL      #DAY39 = D@ATE(39)
3356      C                   EVAL      #DAY40 = D@ATE(40)
3357      C                   EVAL      #DAY41 = D@ATE(41)
3358      C                   EVAL      #DAY42 = D@ATE(42)
3359      C* Display the Calendar
3360      C* (Mark the current date)
3361      C                   EVAL      @TMPVR1 = %LOOKUP(@CURDAY:D@ATE)
3362      C                   IF        @TMPVR1 > *ZEROS
3363      C                   EVAL      @DYATR(@TMPVR1) = @RVIMG
3364      C                   ELSE
3365      C                   EVAL      @DYATR(@TMPVR2 - 1) = @RVIMG
3366      C                   ENDIF
3367      C                   EXFMT     CALENDAR
3368      C*
3369      C                   SELECT
3370      C                   WHEN      *IN03 = *ON
3371      C                   LEAVE
3372      C* On Page Up - Previous Month
3373      C                   WHEN      *IN84 = *ON
3374      C                   CLEAR                   D@ATE
3375      C                   CLEAR                   @DYATR
3376      C                   EVAL      @STRMTH = @STRMTH - 1
3377      C                   IF        @STRMTH <= 0
3378      C                   EVAL      @STRMTH = 12
3379      C                   EVAL      @STRYER = @STRYER - 1
3380      C                   ENDIF
3381      C                   EVAL      @STRDAY = 01
3385      C                   MOVEL     @STRDT1       @STRDAT
3386      C                   EXSR      SUBLPYR
3387      C                   EVAL      *IN84 = *OFF
3388      C* On Page Down - Next Month
3389      C                   WHEN      *IN85 = *ON
3391      C                   CLEAR                   D@ATE
3392      C                   CLEAR                   @DYATR
3393      C                   EVAL      @STRMTH = @STRMTH + 1
3394      C                   IF        @STRMTH > 12
3395      C                   EVAL      @STRMTH = 1
3396      C                   EVAL      @STRYER = @STRYER + 1
3397      C                   ENDIF
3398      C                   EVAL      @STRDAY = 01
3400      C                   MOVEL     @STRDT1       @STRDAT
3401      C                   EXSR      SUBLPYR
3402      C                   EVAL      *IN85 = *OFF
3403      C                   ENDSL
3404      C*
3405      C                   ENDDO
3406      C*
3407      C     ENDPROC       ENDSR
3408       *--------------------------------------------------------------------*
3409      C* Check for Leap Year
3410       *--------------------------------------------------------------------*
3411      C     SUBLPYR       BEGSR
3412      C*
3413      C  N84
3414      CANN85              MOVEL     *YEAR         @STRYER
3415      C                   EVAL      @TMPVR2 = %REM(@STRYER:4)
3416      C                   IF        @TMPVR2 = *ZEROS
3417      C                   EVAL      D@AYS(2) = 29
3418      C                   ENDIF
3419      C*
3420      C     ENDLPYR       ENDSR
3421       *--------------------------------------------------------------------*
3422      C* Initial Routine
3423       *--------------------------------------------------------------------*
3424      C     SUBINIT       BEGSR
3425      C*
3426      C                   MOVEL     *MONTH        @CURMTH
3427      C                   Z-ADD     @CURMTH       @STRMTH
3428      C                   EXSR      SUBLPYR
3429      C* Retrieve the 1st day of the Month
3430      C                   MOVEL     *DAY          @CURDAY
3431      C                   Z-ADD     @CURDAY       @STRDAY
3432      C                   IF        @CURDAY > 1
3433      C     @CURDAT       SUBDUR    @CURDAY:*D    @STRDAT
3434      C                   ELSE
3435      C                   MOVEL     @CURDAT       @STRDAT
3436      C                   ENDIF
3437      C*
3438      C     ENDINIT       ENDSR
3439       *--------------------------------------------------------------------*
3500      C* Termination Routine
3600       *--------------------------------------------------------------------*
3700      C     SUBTERM       BEGSR
3800      C*
3801      C                   EVAL      *INLR = *ON
3900      C*
4000      C     ENDTERM       ENDSR
4100       **********************************************************************
4200 ** CTDATA M@NAM
4300 January
4400 February
4500 March
4600 April
4700 May
4800 June
4900 July
5000 August
5100 September
5200 October
5300 November
5400 December
5500 ** CTDATA D@AYS
5600 312831303130313130313031
* * * *  E N D  O F  S O U R C E  * * * *
 

IBS Lumber and Building Material Software Copyright © 2006 IBS Lumber Software Inc (TM)
Last modified: November 7, 2011

IBS Sales & Support 888-640-1252
Main Office 888-640-1252
Fax IBS 877-712-8937

All pages contained in this support website are not intended for general public distribution. Any material here can be considered private, confidential with various copyrights and restrictions against public release. You 'the browser' cannot legally release this information for general public distribution.

remote support: http://www.gotomeeting.com | remote support download program