Mateen
asked on
ITEMCHANGED EVENTS DOES NOT FIRE.
Powerbuilder 7
Window Name : w_employee
Datawindow control: dw_master, dataobject: dw_employee
Datawindow control: dw_tab1, dataobject: dw_emp_admin
Datawindow control: dw_tab2, dataobject: dw_emp_leave
Datawindow control: dw_tab3, dataobject: dw_emp_pay_det
User Object: Uo_toolbar ( with few command buttons)
In the itemchanged event I am doing something for e.g.
ls_emp_status = tab_1.tabpage_1.dw_tab1.ge titemstrin g(ll_tab1r ow, "emp_status")
ls_shift_nature = tab_1.tabpage_2.dw_tab2.ge titemstrin g(ll_tab2r ow, "shift_nature")
ll_index_pay = tab_1.tabpage_3.dw_tab3.ge titemnumbe r(ll_tab3r ow,"index_ pay")
etc
PROBLEM:
If any data is entered into any column in any of the above dws, and tab key is not pressed, then if any button of uo_toolbar (say save button) is clicked, THE ITEMCHANGED EVENT WILL NOT FIRE.
I WANT ITEMCHANGED EVENTS TO FIRE IN SUCH CASE, AND IF ITEMCHANGED EVENTS RETURN ERROR THEN THE CURSOR SHOULD REMAIN WHERE IT WAS BEFORE CLICKING ANY BUTTON OF UO_TOOLBAR.
Window Name : w_employee
Datawindow control: dw_master, dataobject: dw_employee
Datawindow control: dw_tab1, dataobject: dw_emp_admin
Datawindow control: dw_tab2, dataobject: dw_emp_leave
Datawindow control: dw_tab3, dataobject: dw_emp_pay_det
User Object: Uo_toolbar ( with few command buttons)
In the itemchanged event I am doing something for e.g.
ls_emp_status = tab_1.tabpage_1.dw_tab1.ge
ls_shift_nature = tab_1.tabpage_2.dw_tab2.ge
ll_index_pay = tab_1.tabpage_3.dw_tab3.ge
etc
PROBLEM:
If any data is entered into any column in any of the above dws, and tab key is not pressed, then if any button of uo_toolbar (say save button) is clicked, THE ITEMCHANGED EVENT WILL NOT FIRE.
I WANT ITEMCHANGED EVENTS TO FIRE IN SUCH CASE, AND IF ITEMCHANGED EVENTS RETURN ERROR THEN THE CURSOR SHOULD REMAIN WHERE IT WAS BEFORE CLICKING ANY BUTTON OF UO_TOOLBAR.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Hi,
it is a normal practise to write accepttext in ur code in almost all events where u wud require value from ur datawindow... once uve entered value in the last column of ur DW and dont press tab the value remains in the edit control and not applied to the buffer... so accepttext is important...
so what u need to do is write the following code in the button clicked events of all ur buttons...
tab_1.tabpage_1.dw_tab1.Ac ceptText()
tab_1.tabpage_2.dw_tab2.Ac ceptText()
tab_1.tabpage_3.dw_tab3.Ac ceptText()
Cheers,
Rosh
it is a normal practise to write accepttext in ur code in almost all events where u wud require value from ur datawindow... once uve entered value in the last column of ur DW and dont press tab the value remains in the edit control and not applied to the buffer... so accepttext is important...
so what u need to do is write the following code in the button clicked events of all ur buttons...
tab_1.tabpage_1.dw_tab1.Ac
tab_1.tabpage_2.dw_tab2.Ac
tab_1.tabpage_3.dw_tab3.Ac
Cheers,
Rosh
ASKER
Ok,
I would go as u suggest.
Actually , Now I see, that in my save event, I have already writen
ll_tab1row = tab_1.tabpage_1.dw_tab1.ge trow()
ll_tab2row = tab_1.tabpage_2.dw_tab2.ge trow()
ll_tab3row = tab_1.tabpage_3.dw_tab3.ge trow()
dw_master.accepttext()
tab_1.tabpage_1.dw_tab1.Ac ceptText()
tab_1.tabpage_2.dw_tab2.Ac ceptText()
tab_1.tabpage_3.dw_tab3.Ac ceptText()
Despite this, something seems to be wrong ( specially current row number).
I would like to try myself to find where I am wrong.
Please wait
I would come back to u, if help needed.
Regards
I would go as u suggest.
Actually , Now I see, that in my save event, I have already writen
ll_tab1row = tab_1.tabpage_1.dw_tab1.ge
ll_tab2row = tab_1.tabpage_2.dw_tab2.ge
ll_tab3row = tab_1.tabpage_3.dw_tab3.ge
dw_master.accepttext()
tab_1.tabpage_1.dw_tab1.Ac
tab_1.tabpage_2.dw_tab2.Ac
tab_1.tabpage_3.dw_tab3.Ac
Despite this, something seems to be wrong ( specially current row number).
I would like to try myself to find where I am wrong.
Please wait
I would come back to u, if help needed.
Regards
ASKER
There was a problem of instance variable in my application. When changed with local variable, everything became ok.
There is no way to put any amount of money for what I learn from U and EE
Regards
Mateen
There is no way to put any amount of money for what I learn from U and EE
Regards
Mateen
Hi,
Thanx pal!!!
All the best and Cheers... ;)
Rosh
Thanx pal!!!
All the best and Cheers... ;)
Rosh
ASKER
uo_toolbar actually u_toolbar_double is inherited
//////////////////////////
$PBExportHeader$u_toolbar_
forward
global type u_toolbar_double from userobject
end type
type pb_post from picturebutton within u_toolbar_double
end type
type pb_last from picturebutton within u_toolbar_double
end type
type pb_first from picturebutton within u_toolbar_double
end type
type pb_find from picturebutton within u_toolbar_double
end type
type pb_prev from picturebutton within u_toolbar_double
end type
type pb_next from picturebutton within u_toolbar_double
end type
type pb_save from picturebutton within u_toolbar_double
end type
type pb_delete from picturebutton within u_toolbar_double
end type
type pb_exit from picturebutton within u_toolbar_double
end type
type pb_new from picturebutton within u_toolbar_double
end type
end forward
global type u_toolbar_double from userobject
integer width = 2007
integer height = 152
boolean border = true
long backcolor = 67108864
long tabtextcolor = 33554432
long picturemaskcolor = 536870912
event ue_new pbm_custom01
event ue_delete pbm_custom02
event ue_update pbm_custom03
event ue_retrieve pbm_custom04
event ue_next pbm_custom05
event ue_prev pbm_custom06
event ue_exit pbm_custom07
event ue_help pbm_custom08
event ue_first pbm_custom09
event ue_last pbm_custom10
event ue_find pbm_custom11
event ue_save pbm_custom12
event ue_del pbm_custom13
event ue_submit_save pbm_custom14
event ue_post pbm_custom15
event ue_bf_submit_save pbm_custom16
pb_post pb_post
pb_last pb_last
pb_first pb_first
pb_find pb_find
pb_prev pb_prev
pb_next pb_next
pb_save pb_save
pb_delete pb_delete
pb_exit pb_exit
pb_new pb_new
end type
global u_toolbar_double u_toolbar_double
forward prototypes
public subroutine bf_item_enable_desiable (string ra_botton_stat)
end prototypes
event ue_new;parent.TriggerEvent
end event
event ue_delete;parent.TriggerEv
end event
event ue_update;parent.TriggerEv
end event
event ue_retrieve;parent.Trigger
pb_prev.Enabled=TRUE
pb_next.Enabled=TRUE
end event
event ue_next;parent.TriggerEven
end event
event ue_prev;parent.TriggerEven
end event
event ue_exit;parent.triggereven
end event
event ue_help;Parent.TriggerEven
end event
event ue_first;parent.TriggerEve
end event
event ue_last;parent.TriggerEven
end event
event ue_find;parent.triggereven
end event
event ue_save;parent.TriggerEven
end event
event ue_del;parent.TriggerEvent
end event
event ue_post;parent.TriggerEven
end event
event ue_bf_submit_save;parent.T
end event
public subroutine bf_item_enable_desiable (string ra_botton_stat);if ra_botton_stat='Insert' then
pb_delete.Enabled =false
pb_find.Enabled =true
pb_first.Enabled =false
pb_next.Enabled =false
pb_prev.Enabled =false
pb_last.Enabled =false
pb_save.Enabled =true
end if
if ra_botton_stat='Query' then
pb_new.Enabled =false
pb_delete.Enabled =false
pb_first.Enabled =false
pb_next.Enabled =false
pb_prev.Enabled =false
pb_last.Enabled =false
pb_save.Enabled =false
end if
if ra_botton_stat='Ret' or ra_botton_stat = 'edit' then
pb_new.Enabled =true
pb_delete.Enabled =true
pb_first.Enabled =true
pb_next.Enabled =true
pb_prev.Enabled =true
pb_last.Enabled =true
pb_save.Enabled =true
end if
end subroutine
on u_toolbar_double.create
this.pb_post=create pb_post
this.pb_last=create pb_last
this.pb_first=create pb_first
this.pb_find=create pb_find
this.pb_prev=create pb_prev
this.pb_next=create pb_next
this.pb_save=create pb_save
this.pb_delete=create pb_delete
this.pb_exit=create pb_exit
this.pb_new=create pb_new
this.Control[]={this.pb_po
this.pb_last,&
this.pb_first,&
this.pb_find,&
this.pb_prev,&
this.pb_next,&
this.pb_save,&
this.pb_delete,&
this.pb_exit,&
this.pb_new}
end on
on u_toolbar_double.destroy
destroy(this.pb_post)
destroy(this.pb_last)
destroy(this.pb_first)
destroy(this.pb_find)
destroy(this.pb_prev)
destroy(this.pb_next)
destroy(this.pb_save)
destroy(this.pb_delete)
destroy(this.pb_exit)
destroy(this.pb_new)
end on
type pb_post from picturebutton within u_toolbar_double
event clicked pbm_bnclicked
integer x = 1792
integer y = 12
integer width = 197
integer height = 120
integer taborder = 71
integer textsize = -8
integer weight = 700
fontpitch fontpitch = variable!
fontfamily fontfamily = swiss!
string facename = "Arial"
string text = "Post"
alignment htextalign = left!
end type
event clicked;parent.TriggerEven
end event
type pb_last from picturebutton within u_toolbar_double
string tag = "Last"
integer x = 1202
integer y = 12
integer width = 197
integer height = 120
integer taborder = 60
integer textsize = -8
integer weight = 700
fontpitch fontpitch = variable!
fontfamily fontfamily = swiss!
string facename = "Arial"
boolean enabled = false
string text = "&Last"
end type
event clicked;parent.TriggerEven
end event
type pb_first from picturebutton within u_toolbar_double
event clicked pbm_bnclicked
string tag = "First"
integer x = 613
integer y = 12
integer width = 197
integer height = 120
integer taborder = 80
integer textsize = -8
integer weight = 700
fontpitch fontpitch = variable!
fontfamily fontfamily = swiss!
string facename = "Arial"
boolean enabled = false
string text = "&First"
alignment htextalign = left!
end type
event clicked;parent.TriggerEven
end event
type pb_find from picturebutton within u_toolbar_double
string tag = "Find"
integer x = 416
integer y = 12
integer width = 197
integer height = 120
integer taborder = 90
integer textsize = -8
integer weight = 700
fontpitch fontpitch = variable!
fontfamily fontfamily = swiss!
string facename = "Arial"
string text = "&Query"
end type
event clicked;
if pb_find.text = '&Query' then
bf_item_enable_desiable('Q
else
bf_item_enable_desiable('R
end if
parent.TriggerEvent("ue_fi
end event
type pb_prev from picturebutton within u_toolbar_double
string tag = "Prev"
integer x = 809
integer y = 12
integer width = 197
integer height = 120
integer taborder = 50
integer textsize = -8
integer weight = 700
fontpitch fontpitch = variable!
fontfamily fontfamily = swiss!
string facename = "Arial"
boolean enabled = false
string text = "&Prev"
alignment htextalign = left!
end type
event clicked;parent.TriggerEven
end event
type pb_next from picturebutton within u_toolbar_double
string tag = "Next"
integer x = 1006
integer y = 12
integer width = 197
integer height = 120
integer taborder = 40
integer textsize = -8
integer weight = 700
fontpitch fontpitch = variable!
fontfamily fontfamily = swiss!
string facename = "Arial"
boolean enabled = false
string text = "&Next"
alignment htextalign = left!
end type
event clicked;parent.TriggerEven
end event
type pb_save from picturebutton within u_toolbar_double
string tag = "Save"
integer x = 1399
integer y = 12
integer width = 197
integer height = 120
integer taborder = 30
integer textsize = -8
integer weight = 700
fontpitch fontpitch = variable!
fontfamily fontfamily = swiss!
string facename = "Arial"
string text = "&Save"
end type
event clicked;parent.TriggerEven
end event
type pb_delete from picturebutton within u_toolbar_double
string tag = "Delete"
integer x = 219
integer y = 12
integer width = 197
integer height = 120
integer taborder = 20
integer textsize = -8
integer weight = 700
fontpitch fontpitch = variable!
fontfamily fontfamily = swiss!
string facename = "Arial"
boolean enabled = false
string text = "&Del"
end type
event clicked;parent.TriggerEven
end event
type pb_exit from picturebutton within u_toolbar_double
integer x = 1586
integer y = 12
integer width = 197
integer height = 120
integer taborder = 70
integer textsize = -8
integer weight = 700
fontpitch fontpitch = variable!
fontfamily fontfamily = swiss!
string facename = "Arial"
string text = "&Exit"
string picturename = "bye.bmp"
alignment htextalign = left!
end type
event clicked; parent.TriggerEvent("ue_ex
end event
type pb_new from picturebutton within u_toolbar_double
string tag = "Add"
integer x = 23
integer y = 12
integer width = 197
integer height = 120
integer taborder = 10
integer textsize = -8
integer weight = 700
fontpitch fontpitch = variable!
fontfamily fontfamily = swiss!
string facename = "Arial"
string text = "&New"
end type
event clicked;bf_item_enable_des
parent.TriggerEvent("ue_ne
end event
//////////////////////////
Hi rosh,
Is this a case, which should be controlled by loose focus and get focus event?
If so, your expertise could design the proper code.