uo_ddlb_scid.sru 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. $PBExportHeader$uo_ddlb_scid.sru
  2. forward
  3. global type uo_ddlb_scid from dropdownlistbox
  4. end type
  5. end forward
  6. global type uo_ddlb_scid from dropdownlistbox
  7. integer width = 521
  8. integer height = 524
  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 sorted = false
  17. boolean vscrollbar = true
  18. borderstyle borderstyle = stylelowered!
  19. end type
  20. global uo_ddlb_scid uo_ddlb_scid
  21. type variables
  22. long uo_scid
  23. long uo_scid_arr[]
  24. end variables
  25. forward prototypes
  26. public subroutine uf_selectsc (long arg_scid)
  27. end prototypes
  28. public subroutine uf_selectsc (long arg_scid);Long ll_count, ll_i
  29. ll_count = THIS.TotalItems()
  30. IF arg_scid = -1 THEN
  31. FOR ll_i = 1 TO ll_count
  32. IF THIS.Text(ll_i) = '[全部]' THEN
  33. THIS.SelectItem(ll_i)
  34. THIS.TRIGGER EVENT SelectionChanged(ll_i)
  35. RETURN
  36. END IF
  37. NEXT
  38. END IF
  39. string ls_txt
  40. FOR ll_i = 1 TO ll_count
  41. ls_txt = Mid ( THIS.Text(ll_i),Pos(THIS.Text(ll_i),'[') + 1,Len(THIS.Text(ll_i)) - Pos(THIS.Text(ll_i),'[') - 1 )
  42. IF string(arg_scid) = ls_txt THEN
  43. THIS.SelectItem(ll_i)
  44. THIS.TRIGGER EVENT SelectionChanged(ll_i)
  45. RETURN
  46. END IF
  47. NEXT
  48. end subroutine
  49. event constructor;Long ls_scid,ls_scid_save, ls_scid_get
  50. Long cnt = 0
  51. String ls_scname, ls_scname_get
  52. Long ll_i
  53. String ls_space
  54. Int li_spacenum
  55. String ls_scname_dft
  56. Boolean lb_getdft = FALSE
  57. ls_scid_save = Long(f_ProfileString(sys_empid, String(PARENT.ClassName()), "scid",'0'))
  58. SELECT count(*) INTO :cnt FROM u_scdef ;
  59. IF cnt > 1 THEN
  60. THIS.AddItem ('[全部]')
  61. END IF
  62. FOR ll_i = 1 TO UpperBound(sys_user_scid)
  63. ls_scid = sys_user_scid[ll_i]
  64. SELECT scname
  65. INTO :ls_scname
  66. FROM u_scdef
  67. Where scid = :ls_scid;
  68. IF sqlca.SQLCode <> 0 OR IsNull(ls_scname) THEN ls_scname = ''
  69. li_spacenum = 50 - Len(Trim(ls_scname)) - 2 - Len(String(ls_scid))
  70. ls_space = Fill(' ',li_spacenum)
  71. THIS.AddItem (ls_scname+ls_space+'['+String(ls_scid)+']')
  72. IF NOT lb_getdft THEN
  73. ls_scid_get = ls_scid
  74. ls_scname_get = ls_scname
  75. END IF
  76. IF ls_scid_save = ls_scid THEN
  77. lb_getdft = TRUE
  78. ls_scid_get = ls_scid
  79. ls_scname_get = ls_scname
  80. END IF
  81. NEXT
  82. //THIS.uo_scid = ls_scid
  83. //uo_scid_arr[1] = ls_scid
  84. //THIS.Text = ls_scname+ls_space+'['+String(ls_scid)+']'
  85. IF ls_scid_save = -1 THEN
  86. THIS.uo_scid = ls_scid_save
  87. THIS.uo_scid_arr = sys_user_scid
  88. THIS.Text = '[全部]'
  89. ELSE
  90. li_spacenum = 50 - Len(Trim(ls_scname_get)) - 2 - Len(String(ls_scid_get))
  91. ls_space = Fill(' ',li_spacenum)
  92. THIS.uo_scid = ls_scid_get
  93. THIS.uo_scid_arr[1] = ls_scid_get
  94. THIS.Text = ls_scname_get+ls_space+'['+String(ls_scid_get)+']'
  95. END IF
  96. end event
  97. event selectionchanged;long ll_scid_arr[]
  98. IF THIS.Text = '[全部]' THEN
  99. uo_scid = -1
  100. ll_scid_arr = sys_user_scid
  101. uo_scid_arr = ll_scid_arr
  102. ELSE
  103. uo_scid = Long(Mid ( THIS.Text,Pos(THIS.Text,'[') + 1,Len(THIS.Text) - Pos(THIS.Text,'[') - 1 ))
  104. ll_scid_arr[1] = uo_scid
  105. uo_scid_arr = ll_scid_arr
  106. END IF
  107. end event
  108. on uo_ddlb_scid.create
  109. end on
  110. on uo_ddlb_scid.destroy
  111. end on
  112. event destructor;f_SetProfileString(sys_empid, String(parent.ClassName()), "scid", string(this.uo_scid))
  113. //f_SetProfileString(SYS_INIFILENAME, String(parent.ClassName()), "scname", trim(mid(this.text,1,pos(this.text,' ') - 1)))
  114. end event