Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Unable to Setfocus a column of a Grid after pressing PgUp / PgDn Key

Status
Not open for further replies.

bharatindia

Instructor
Dec 14, 2011
6
0
0
IN
Hi Experts,

I need your help more than ever.

I have a Voucher entry module in my Accounting Application.

When Voucher Initialised it got focus to TEXT3 TextBox, where user put CASH/BANK name for Payment entry.
It has an interactive change in it, so that as soon as user start typing the cash or bank name the list will appear in GRID_CB.

On pressing enter that cash/bank name become the value of TEXT3 TextBox.

After that it goes to GRID below the TEXTbox , called GRID_PAYMENT

it has three column, NAME ,TEMP, AMOUNT.

Here also in the first column i use interactive change so that list of account appear in GRID_LEDG as he/she start typing and user can select one.

After entering amount in third column it add new row in the grid for next new entry - if user press enter (i.e, keep the column1 blank),
it goes in the bottom TextBox TEXT5 for Narration , on lostfocus of TEXT5 a small box appear [save or cancel] on selecting Save it
actually write in the database, else it goes to text2 then TEXT3 and the mode become EDIT, following the same route it again come to the (save of cancel) box .

Here I have two problem.

First, When I press PgUp it reduce the voucher no. say (10 become 10-1=9 and all data for that number is selected from the table in cursor.
but it (GRID_PAYMENT) lost its fonts property namely boldness and size.

Secondly, with First time PgUp everything goes well it display the CASH/BANK name correctly also when it comes to grid below (GRID_PAYMENT) one can
change the data as it automatically display the ledger name list associated with cash/bank name due to interactive change, in other words the command
THISFORM.CONT_VOUCHER_PAYMENT..GRID_PAYMENT.Column1.Text1.SetFocus SETFOCUS perfactly on the 1st coloumn of the Grid (GRID_PAYMENT) ,
but with subsequent PgUp Keypress does not SETFOCUS perfactly on the 1st coloumn of the Grid (GRID_PAYMENT) ,


i.e, THISFORM.CONT_VOUCHER_PAYMENT..GRID_PAYMENT.Column1.Text1.SetFocus NOT WORKING.


I have done everything to set its Focus but fails to acheive the desired result.


*==========================================================================
In Text3.keypress i have the following code:

LPARAMETERS nKeyCode, nShiftAltCtrl

SELECT TEMP_CB_PYMT

IF nKeyCode=18 && PageUp press
THISFORM.PYMT_UP
THISFORM.CONT_VOUCHER_PAYMENT.Text2.SetFocus
ENDIF

IF nKeyCode=3 && PageDown press
IF LEN( ALLTRIM(THISFORM.CONT_VOUCHER_PAYMENT.TEXt3.Value) )#0
THISFORM.PYMT_DOWN
THISFORM.CONT_VOUCHER_PAYMENT.Text2.SetFocus
ELSE
THISFORM.CONT_VOUCHER_PAYMENT.Visible= .T.
THISFORM.CONT_VOUCHER_PAYMENT.Enabled= .T.
THISFORM.CONT_VOUCHER_PAYMENT.Refresh
THISFORM.CONT_VOUCHER_PAYMENT.Text3.Refresh
THISFORM.CONT_VOUCHER_PAYMENT.Text3.SetFocus
ENDIF
ENDIF

IF (nKeyCode=24) && down arrow(24)
IF .NOT. EOF('TEMP_CB_PYMT')
SKIP IN TEMP_CB_PYMT
ENDIF
STORE RECNO("TEMP_CB_PYMT") TO ZREC && NEWREC
THISFORM.GRID_CB.COLumn1.Header1.DblClick
THISFORM.GRID_CB.Refresh
THISFORM.CONT_VOUCHER_PAYMENT.Text6.Value=ZREC
THISFORM.CONT_VOUCHER_PAYMENT.Text6.Refresh
NoDefault
RETURN
ENDIF

IF (nKeyCode=5) && UP ARROW(5)
IF .NOT. BOF('TEMP_CB_PYMT')
SKIP -1 IN TEMP_CB_PYMT
ENDIF
STORE RECNO('TEMP_CB_PYMT') TO ZREC && NEWREC
THISFORM.GRID_CB.COLumn1.Header1.DblClick
THISFORM.GRID_CB.Refresh
THISFORM.CONT_VOUCHER_PAYMENT.Text6.Value=ZREC
THISFORM.CONT_VOUCHER_PAYMENT.Text6.Refresh
NoDefault
RETURN
ENDIF

IF (nKeyCode=13)
SET CONFIRM ON
SET EXCLUSIVE OFF
THISFORM.CONT_VOUCHER_PAYMENT.TEXT3.Value=TEMP_CB_PYMT.LEDGER && THISFORM.GRID_CB.COLumn1.Text1.Value
THISFORM.CONT_VOUCHER_PAYMENT.Text4.Value=TEMP_CB_PYMT.CUR_BAL
THISFORM.GRID_CB.Visible= .F.
THISFORM.CONT_VOUCHER_PAYMENT.Visible= .T.
THISFORM.CONT_VOUCHER_PAYMENT.Enabled= .T.
THISFORM.CONT_VOUCHER_PAYMENT.Refresh
THISFORM.Jpr_grid_payment
GO TOP
THISFORM.CONT_VOUCHER_PAYMENT.Text3.Enabled= .F.
THISFORM.GRID_CB.Visible= .F.
WITH THISFORM
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column1.Text1.Refresh
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column1.Text1.SetFocus && [P R O B L E M E X I S T IN THIS LINE AS SETFOCUS NOT WORK HERE]
ENDWITH && [FROM 2ND TIME ONWARD]
STORE RECNO('TEMP_JPR_PYMT') TO ZREC
NODEFAULT
WORD=""
THISFORM.CONT_VOUCHER_PAYMENT.Text3.Enabled= .T.
RETURN
ENDIF

*==========================================================================











*==========================================================================

THISFORM.Jpr_grid_payment has the following code

DO CASE

CASE LEN( ALLTRIM(MODE) )=0 && ""
STORE SUBSTR( ALLTRIM(THISFORM.CONT_VOUCHER_PAYMENT.Text1.Value),1,1 ) TO THISVTYPE
STORE THISFORM.CONT_VOUCHER_PAYMENT.Text10.Value TO THISVNO

SELECT 0
SELECT TEMP_JPR_PYMT
COUNT FOR (TEMP_JPR_PYMT.V_TYPE=THISVTYPE .AND. TEMP_JPR_PYMT.V_NO=THISVNO) TO RECORD_COUNT

IF RECORD_COUNT=0 && RECCOUNT()=0
APPEND BLANK IN TEMP_JPR_PYMT
STORE RECNO('TEMP_JPR_PYMT') TO ZREC
REPLACE TEMP_JPR_PYMT.V_TYPE WITH "P" && MAXV_NO && +1
REPLACE TEMP_JPR_PYMT.V_NO WITH THISFORM.CONT_VOUCHER_PAYMENT.TEXt10.Value && MAXV_NO && +1
REPLACE TEMP_JPR_PYMT.V_DATE WITH THISFORM.CONT_VOUCHER_PAYMENT.TEXt2.Value && MAXDATE && +1
REPLACE TEMP_JPR_PYMT.AMOUNT WITH 0
APPEND BLANK IN TEMP_JPR_PYMT
REPLACE TEMP_JPR_PYMT.V_NO WITH THISFORM.CONT_VOUCHER_PAYMENT.TEXt10.Value && MAXV_NO && +1
REPLACE TEMP_JPR_PYMT.V_DATE WITH THISFORM.CONT_VOUCHER_PAYMENT.TEXt2.Value && MAXDATE && +1
ENDIF
GOTO ZREC IN TEMP_JPR_PYMT
*-----------------------------------------------
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.SetAll("DynamicAlignment", ;
"IIF( ( SUBSTR( ALLTRIM(THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLumn1.Text1.Value),1,7)='Cur Bal' ) , 1,0)", "Column1")
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.SetAll("DynamicFontBold", ;
"IIF( ( SUBSTR(ALLTRIM(TEMP_JPR_PYMT.DR_AC),1,7)='Cur Bal' ) , .F., .T.)", "Column")
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.SetAll("DynamicFontItalic", ;
"IIF( ( SUBSTR(ALLTRIM(TEMP_JPR_PYMT.DR_AC),1,7)='Cur Bal' ) , .T., .F.)", "Column")
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.SetAll("DynamicFontSize", ;
"IIF( ( SUBSTR(ALLTRIM(TEMP_JPR_PYMT.DR_AC),1,7)='Cur Bal' ) , 9, 11)", "Column")
*-----------------------------------------------
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.RECORDSOURCE='TEMP_JPR_PYMT'
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMNCOUNT=3

THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN1.CONTROLSOURCE='TEMP_JPR_PYMT.DR_AC'
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN2.CONTROLSOURCE='TEMP_JPR_PYMT.KHALI'
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN3.CONTROLSOURCE='TEMP_JPR_PYMT.AMOUNT'

THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.HEADERHEIGHT=0
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLumn1.Alignment=0

WITH THISFORM
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN1.WIDTH=250
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN1.ENABLED=.T.
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column1.Text1.BackColor= RGB(0,0,0)
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column1.Text1.ForeColor= RGB(255,255,255)
ENDWITH

WITH THISFORM
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN2.WIDTH=900+5-30 && 60
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN2.ENABLED=.F.
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column2.Text1.BackColor= RGB(0,0,0)
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column2.Text1.ForeColor= RGB(255,255,255)
ENDWITH

WITH THISFORM
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN3.WIDTH=100
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN3.ENABLED=.T.
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLumn3.Alignment= 1
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLumn3.Format='Z'
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column3.Text1.BackColor= RGB(0,0,0)
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column3.Text1.ForeColor= RGB(255,255,255)
ENDWITH
*#######################

CASE ALLTRIM(MODE)="EDIT"

SELECT 0
SELECT TEMP_JPR_PYMT
GO TOP
*-----------------------------------------------
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.SetAll("DynamicAlignment", ;
"IIF( ( SUBSTR( ALLTRIM(THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLumn1.Text1.Value),1,7)='Cur Bal' ) , 1,0)", "Column1")
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.SetAll("DynamicFontBold", ;
"IIF( ( SUBSTR(ALLTRIM(TEMP_JPR_PYMT.DR_AC),1,7)='Cur Bal' ) , .F., .T.)", "Column")
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.SetAll("DynamicFontItalic", ;
"IIF( ( SUBSTR(ALLTRIM(TEMP_JPR_PYMT.DR_AC),1,7)='Cur Bal' ) , .T., .F.)", "Column")
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.SetAll("DynamicFontSize", ;
"IIF( ( SUBSTR(ALLTRIM(TEMP_JPR_PYMT.DR_AC),1,7)='Cur Bal' ) , 9, 11)", "Column")
*-----------------------------------------------

THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.RECORDSOURCE=''
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.RECORDSOURCE='TEMP_JPR_PYMT'
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMNCOUNT=3

THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN1.CONTROLSOURCE='TEMP_JPR_PYMT.DR_AC'
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN2.CONTROLSOURCE='TEMP_JPR_PYMT.KHALI'
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN3.CONTROLSOURCE='TEMP_JPR_PYMT.AMOUNT'

THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.HEADERHEIGHT=0
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLumn1.Alignment=0

WITH THISFORM
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN1.WIDTH=250
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN1.ENABLED=.T.
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column1.Text1.BackColor= RGB(0,0,0)
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column1.Text1.ForeColor= RGB(255,255,255)
ENDWITH

WITH THISFORM
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN2.WIDTH=900+5-30 && 60
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN2.ENABLED=.F.
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column2.Text1.BackColor= RGB(0,0,0)
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column2.Text1.ForeColor= RGB(255,255,255)
ENDWITH

WITH THISFORM
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN3.WIDTH=100
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN3.ENABLED=.T.
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLumn3.Alignment= 1
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLumn3.Format='Z'
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column3.Text1.BackColor= RGB(0,0,0)
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column3.Text1.ForeColor= RGB(255,255,255)
ENDWITH
THISFORM.GRID_LEDG.Visible= .F.
ENDCASE




*==========================================================================

























*==========================================================================

*pymt_up has following code:

THISFORM.CONT_VOUCHER_PAYMENT.Visible= .T.
SET DELETED ON

THISFORM.GRID_CB.Visible= .F.
THISFORM.CONT_VOUCHER_PAYMENT.TEXt10.Value=THISFORM.CONT_VOUCHER_PAYMENT.TEXt10.Value-1

IF THISFORM.CONT_VOUCHER_PAYMENT.TEXt10.Value<=0
THISFORM.CONT_VOUCHER_PAYMENT.TEXt10.Value=MAXV_NO
XCR_AC=""
ENDIF
SELECT * FROM JPR WHERE JPR.V_NO=(THISFORM.CONT_VOUCHER_PAYMENT.Text10.Value) INTO TABLE TEMP_JPR_PYMT READWRITE && NOFILTER

ALTER TABLE TEMP_JPR_PYMT ADD COLUMN KHALI C(1)
ALTER TABLE TEMP_JPR_PYMT ADD DUMMY C(1)

STORE RECCOUNT('TEMP_JPR_PYMT') TO TOT_TEMP_JPR_PYMT_REC

SELECT 0
SELECT TEMP_JPR_PYMT

SELECT * FROM TEMP_JPR_PYMT INTO TABLE TEMP_JPR2 READWRITE
SELECT TEMP_JPR2

SELECT TEMP_JPR2
GO TOP

DO WHILE .NOT. EOF()
STORE RECN() TO ZREC
STORE TEMP_JPR2.DR_AC TO XDR_AC
STORE TEMP_JPR2.CR_AC TO XCR_AC
STORE TEMP_JPR2.AMOUNT TO XAMOUNT

SELECT TEMP_JPR_PYMT
INSERT INTO TEMP_JPR_PYMT (DR_AC,CR_AC,AMOUNT,DUMMY) VALUES (XDR_AC,XCR_AC,XAMOUNT,'Y')

INSERT INTO TEMP_JPR_PYMT (DR_AC,DUMMY) VALUES ("Cur Bal : ",'Y')

SELECT TEMP_JPR2
IF .NOT. EOF()
SKIP IN TEMP_JPR2
ENDIF
ENDDO
SELECT TEMP_JPR_PYMT
DELETE ALL FOR DUMMY=" "
INDEX ON RECNO() TO KK
GO TOP
IF LEN( ALLTRIM(XCR_AC) )>0
THISFORM.CONT_VOUCHER_PAYMENT.TExt3.Value=XCR_AC
ELSE
THISFORM.CONT_VOUCHER_PAYMENT.TExt3.Value=""
ENDIF
**********************************************************************
THISFORM.CONT_VOUCHER_PAYMENT.Visible= .T.
THISFORM.CONT_VOUCHER_PAYMENT.Refresh
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Refresh
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.RECORDSOURCE='TEMP_JPR_PYMT'
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMNCOUNT=3

THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN1.CONTROLSOURCE='TEMP_JPR_PYMT.DR_AC'
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN3.CONTROLSOURCE='TEMP_JPR_PYMT.AMOUNT'

THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.HEADERHEIGHT=0
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLumn1.Alignment=0
WITH THISFORM
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN1.WIDTH=150
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN1.ENABLED=.T.
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column1.Text1.FontBold= .T.
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column1.Text1.FontSize= 11
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Refresh && .Column1.Text1.FontSize= 12
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column1.Text1.BackColor= RGB(0,0,0)
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column1.Text1.ForeColor= RGB(255,255,255)
ENDWITH

WITH THISFORM
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN2.WIDTH=1000+3 && 5
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN2.ENABLED=.F.
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column2.Text1.BackColor= RGB(0,0,0)
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column2.Text1.ForeColor= RGB(255,255,255)
ENDWITH

WITH THISFORM
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN3.WIDTH=100
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.COLUMN3.ENABLED=.T.
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column3.Text1.FontBold= .T.
THISFORM.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column3.Text1.FontSize= 11
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column3.Text1.BackColor= RGB(0,0,0)
.CONT_VOUCHER_PAYMENT.GRID_PAYMENT.Column3.Text1.ForeColor= RGB(255,255,255)
ENDWITH

MODE="EDIT"

IF TOT_TEMP_JPR_PYMT_REC#0
THISFORM.CONT_VOUCHER_PAYMENT.Visible= .T.
THISFORM.CONT_VOUCHER_PAYMENT.Enabled= .T.
THISFORM.CONT_VOUCHER_PAYMENT.Refresh

THISFORM.CONT_VOUCHER_PAYMENT.Text2.Refresh
THISFORM.CONT_VOUCHER_PAYMENT.Text2.SetFocus
ELSE
THISFORM.CONT_VOUCHER_PAYMENT.Visible= .T.
THISFORM.CONT_VOUCHER_PAYMENT.Enabled= .T.
THISFORM.CONT_VOUCHER_PAYMENT.Refresh

THISFORM.CONT_VOUCHER_PAYMENT.Text3.Value=" "
THISFORM.CONT_VOUCHER_PAYMENT.Text3.Refresh
THISFORM.CONT_VOUCHER_PAYMENT.Text3.SetFocus
ENDIF

*==========================================================================






Any help will be heighly appreciated.





Thanks & Regards
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top