uo_ddlb_storageid.sru 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. $PBExportHeader$uo_ddlb_storageid.sru
  2. forward
  3. global type uo_ddlb_storageid from dropdownlistbox
  4. end type
  5. end forward
  6. global type uo_ddlb_storageid from dropdownlistbox
  7. integer width = 247
  8. integer height = 228
  9. integer taborder = 10
  10. integer textsize = -9
  11. integer weight = 400
  12. fontcharset fontcharset = gb2312charset!
  13. fontpitch fontpitch = variable!
  14. string facename = "宋体"
  15. long textcolor = 33554432
  16. boolean vscrollbar = true
  17. borderstyle borderstyle = stylelowered!
  18. end type
  19. global uo_ddlb_storageid uo_ddlb_storageid
  20. type variables
  21. long uo_storageid
  22. long uo_storageid_arr[]
  23. end variables
  24. event constructor;Long ll_storageid
  25. String ls_storagename,ls_scode
  26. Long ll_storageid_ddlb_text
  27. String ls_storagename_ddlbtext,ls_scode_ddlbtext
  28. String ls_ddlbtext
  29. Long cnt = 0
  30. Long ll_i
  31. Int li_inuse
  32. FOR ll_i = 1 To UpperBound(sys_user_storageid)
  33. ll_storageid = sys_user_storageid[ll_i]
  34. SELECT storagename,scode,inuse
  35. INTO :ls_storagename,:ls_scode,:li_inuse
  36. FROM u_storage
  37. WHERE storageid = :ll_storageid
  38. Order By scode Asc;
  39. IF sqlca.SQLCode <> 0 Or IsNull(ls_storagename) THEN ls_storagename = ''
  40. IF sqlca.SQLCode <> 0 Or IsNull(ls_scode) THEN ls_scode = ''
  41. IF li_inuse = 0 THEN CONTINUE
  42. ls_ddlbtext = f_scode_name(ll_storageid,ls_scode,ls_storagename)
  43. This.AddItem (ls_ddlbtext)
  44. ll_storageid_ddlb_text = ll_storageid
  45. ls_storagename_ddlbtext = ls_storagename
  46. ls_scode_ddlbtext = ls_scode
  47. cnt++
  48. NEXT
  49. This.uo_storageid = ll_storageid_ddlb_text
  50. uo_storageid_arr[1] = ll_storageid_ddlb_text
  51. This.Text = f_scode_name(ll_storageid_ddlb_text,ls_scode_ddlbtext,ls_storagename_ddlbtext)
  52. //SELECT count(*) Into :cnt From u_storage Where inuse = 1 ;
  53. IF cnt > 1 THEN
  54. This.AddItem ('[全部仓库]')
  55. END IF
  56. end event
  57. event selectionchanged;Long ll_storageid_arr[]
  58. IF THIS.Text = '[全部仓库]' THEN
  59. uo_storageid = -1
  60. ll_storageid_arr = sys_user_storageid
  61. uo_storageid_arr = ll_storageid_arr
  62. ELSE
  63. uo_storageid = Long(Mid ( THIS.Text,Pos(THIS.Text,'[') + 1,Len(THIS.Text) - Pos(THIS.Text,'[') - 1 ))
  64. ll_storageid_arr[1] = uo_storageid
  65. uo_storageid_arr = ll_storageid_arr
  66. END IF
  67. end event
  68. on uo_ddlb_storageid.create
  69. end on
  70. on uo_ddlb_storageid.destroy
  71. end on