|
Hi Sunny I've moved this thread to the RPG400-L list as per David's request. First of all, and giving you the benefit of the doubt, you need to run a virus check on your machine - I received six emails from your address all infected with the W32.Blackmal.E virus which I wasn't too happy about. I missed the part in your original post about the RPG400 side of it and took for granted it was RPG IV. The following subroutines will do what I think you want in RPG400. Regards Jonathan E MTH 12 12 3 Month Text E TXT 8 1 Input Text ** ** Constants for case translation... ** I 'abcdefghijklmnopqrst-C LO I 'uvwxyz' I 'ABCDEFGHIJKLMNOPQRST-C UP I 'UVWXYZ' ** ** Work fields... ** I DS I 1 40DDMM I 1 20DD I 3 40MM ** ** --------------------------------------------------------------- ** This example uses two subroutines to convert the "screen" date ** format to the file format and vice-versa. The screen date ** format is a 6/- character field in the format "dd-mmm" or ** "d-mmm" - a leading zero may or may not be specified. The file ** date format is 4.0 packed in the form "ddmm"... ** --------------------------------------------------------------- ** ** The case for the month doesn't matter... ** C MOVE '27-Oct' WK006A 6 C EXSR SCRFIL C Z-ADDWK004N EMPDAT 40 ** C WK006A DSPLY C WK004N DSPLY ** ** Leading zeros can be excluded if necessary... ** C MOVE '2-feb ' WK006A C EXSR SCRFIL C Z-ADDWK004N EMPDAT ** C WK006A DSPLY C WK004N DSPLY ** ** Now go the other way... ** C Z-ADD3112 WK004N C EXSR FILSCR ** C WK004N DSPLY C WK006A DSPLY ** ** Leading zeros can be excluded if necessary... ** C Z-ADD0202 WK004N C EXSR FILSCR ** C WK004N DSPLY C WK006A DSPLY ** ** End the program ** C MOVE *ON *INLR C RETRN ** =============================================================== ** SCRFIL - Determine file date format ** =============================================================== C SCRFIL BEGSR C* C* Preserve the contents of any indicators used by this routine... C* C MOVE *IN99 @IN99 1 C* C* Ensure there's a '-' in the date and that there is at least one C* character to the left of it. If there isn't then return with C* WK004N set to -1 to indicate an error... C* C '-' SCAN WK006A IX 20 C IX IFLT 2 C Z-ADD-1 WK004N C ELSE C* C* The three characters to the right of the '-' are the month... C* C MOVEAWK006A TXT,1 C ADD 1 IX C MOVEATXT,IX WK003A 3 C* C* Convert the month to upper case and then check it against the C* MTH array to make sure it's valid... C* C LO:UP XLATEWK003A WK003B 3 C Z-ADD1 IX C WK003B LOKUPMTH,IX 99 C *IN99 IFEQ *ON C Z-ADDIX MM C ELSE C Z-ADD*ZEROS MM C ENDIF C* C* Now pick up the day portion of the date... C* C* a) First ensure neither of the first two positions are blank... C* C TXT,1 IFEQ *BLANK C MOVEA'0' TXT,1 C ENDIF C* C TXT,2 IFEQ *BLANK C MOVEA'0' TXT,1 C ENDIF C* C* b) The '-' should be in position 2 or 3 of the field... C* C SELEC C TXT,2 WHEQ '-' C MOVE TXT,1 WK001N 10 C Z-ADDWK001N DD C TXT,3 WHEQ '-' C MOVEATXT,1 WK002A 2 C MOVE WK002A WK002N 20 C Z-ADDWK002N DD C OTHER C Z-ADD*ZEROS DD C ENDSL C* C Z-ADDDDMM WK004N 40 C ENDIF C* C* Reset the contents of indicators used by this subroutine... C* C MOVE @IN99 *IN99 C* C ENDSR ** =============================================================== ** FILSCR - Determine screen date format ** =============================================================== C FILSCR BEGSR C* C* Reset the work fields... C* C MOVE *BLANKS WK006A 6 C MOVEA*BLANKS TXT C* C* Split the input date into its DD and MM parts... C* C Z-ADDWK004N DDMM C* C* And then start piecing together the screen date... C* C MOVE DD WK002A C MOVEAWK002A TXT,1 C TXT,1 IFEQ '0' C MOVE *BLANK TXT,1 C ENDIF C* C MOVE '-' TXT,3 C* C MOVEAMTH,MM TXT,4 C* C* Next three lines convert the month into mixed case, eg. "Oct" C* instead of "OCT"... C* C MOVE MTH,MM WK002A 2 C UP:LO XLATEWK002A WK002B 2 C MOVEAWK002B TXT,5 C* C MOVEATXT,1 WK006A C* C ENDSR ** JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC -----Original Message----- From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of sunny singh Sent: 16 April 2006 17:54 To: Midrange Systems Technical Discussion Subject: RE: prob - storing date in rpg /400 jonathan i am really sorry but i am learning rpg3 i couldnot understand rpgle upto the point,,,,,, i havent started rpgle yet... i need to do this in rpg -3 and in case of updating a physical file user will enter the date in DD-MMM format(e.g 2-jan ) and it should be stored in database in case of updating in dd - mm format which is packed decimal.....in rpg3 not in le.....please give me solution.. thanks for ur help so far..(solution for displaying and updating a physical file) in rpg -3 thasnks a lot...
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.