w_key_value_edit.srw 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. $PBExportHeader$w_key_value_edit.srw
  2. forward
  3. global type w_key_value_edit from window
  4. end type
  5. type cb_2 from commandbutton within w_key_value_edit
  6. end type
  7. type cb_1 from commandbutton within w_key_value_edit
  8. end type
  9. type dw_1 from datawindow within w_key_value_edit
  10. end type
  11. end forward
  12. global type w_key_value_edit from window
  13. integer width = 1129
  14. integer height = 1092
  15. boolean titlebar = true
  16. string title = "键-值"
  17. windowtype windowtype = response!
  18. long backcolor = 67108864
  19. string icon = "AppIcon!"
  20. boolean center = true
  21. event ue_retrieve_keys ( )
  22. cb_2 cb_2
  23. cb_1 cb_1
  24. dw_1 dw_1
  25. end type
  26. global w_key_value_edit w_key_value_edit
  27. type variables
  28. uo_keyvaluecollection ins_keyvalues
  29. string ins_rslt
  30. end variables
  31. event ue_retrieve_keys();datawindowchild dwc
  32. Long row, i, j
  33. String Values[], ls_value
  34. uo_strhelper uo_str
  35. uo_str = Create uo_strhelper
  36. IF dw_1.GetChild('lvalue', Ref dwc) = 1 THEN
  37. dwc.Reset()
  38. j = dw_1.GetRow()
  39. IF j > 0 THEN
  40. ls_value = ins_keyvalues.uf_getvalue(dw_1.Object.lkey[j])
  41. uo_str.split(ls_value, ",", Values)
  42. row = dwc.InsertRow(0)
  43. dwc.SetItem(row, 1, "")
  44. FOR i = 1 To UpperBound(Values)
  45. IF Values[i] = '' THEN CONTINUE
  46. row = dwc.InsertRow(0)
  47. dwc.SetItem(row, 1, Values[i])
  48. NEXT
  49. END IF
  50. END IF
  51. Destroy uo_str
  52. end event
  53. on w_key_value_edit.create
  54. this.cb_2=create cb_2
  55. this.cb_1=create cb_1
  56. this.dw_1=create dw_1
  57. this.Control[]={this.cb_2,&
  58. this.cb_1,&
  59. this.dw_1}
  60. end on
  61. on w_key_value_edit.destroy
  62. destroy(this.cb_2)
  63. destroy(this.cb_1)
  64. destroy(this.dw_1)
  65. end on
  66. event open;String ins_allpros = "A:1,2,3;B:2,3,4;"
  67. String ins_curpros = "A:2;B:3"
  68. String parms[], parm[]
  69. Long i, row
  70. s_key_value_parm s_win
  71. s_win = message.powerobjectparm
  72. ins_allpros = s_win.allprops
  73. ins_curpros = s_win.curprops
  74. ins_keyvalues = Create uo_keyvaluecollection
  75. SetNull(ins_rslt)
  76. uo_keyvaluecollection lo_curpros
  77. lo_curpros = Create uo_keyvaluecollection
  78. uo_strhelper uo_str
  79. uo_str = Create uo_strhelper
  80. uo_str.split(ins_curpros, ";", parms)
  81. FOR i = 1 To UpperBound(parms)
  82. uo_str.split(parms[i], ":", parm)
  83. IF parm[1] <> '' And UpperBound(parm) > 1 THEN
  84. lo_curpros.uf_add(parm[1], parm[2])
  85. END IF
  86. NEXT
  87. uo_str.split(ins_allpros, ";", parms)
  88. FOR i = 1 To UpperBound(parms)
  89. uo_str.split(parms[i], ":", parm)
  90. IF parm[1] <> '' And UpperBound(parm) > 1 THEN
  91. ins_keyvalues.uf_add(parm[1], parm[2])
  92. row = dw_1.InsertRow(0)
  93. dw_1.Object.lkey[row] = parm[1]
  94. IF lo_curpros.uf_haskey(parm[1]) THEN
  95. dw_1.Object.lvalue[row] = lo_curpros.uf_getvalue(parm[1])
  96. END IF
  97. END IF
  98. NEXT
  99. TriggerEvent('ue_retrieve_keys')
  100. Destroy uo_str
  101. Destroy lo_curpros
  102. end event
  103. event close;CloseWithReturn(This, ins_rslt)
  104. end event
  105. type cb_2 from commandbutton within w_key_value_edit
  106. integer x = 795
  107. integer y = 896
  108. integer width = 288
  109. integer height = 108
  110. integer taborder = 30
  111. integer textsize = -9
  112. integer weight = 400
  113. fontcharset fontcharset = gb2312charset!
  114. fontpitch fontpitch = variable!
  115. string facename = "宋体"
  116. string text = "取消"
  117. end type
  118. event clicked;close(parent)
  119. end event
  120. type cb_1 from commandbutton within w_key_value_edit
  121. integer x = 498
  122. integer y = 896
  123. integer width = 288
  124. integer height = 108
  125. integer taborder = 20
  126. integer textsize = -9
  127. integer weight = 400
  128. fontcharset fontcharset = gb2312charset!
  129. fontpitch fontpitch = variable!
  130. string facename = "宋体"
  131. string text = "确定"
  132. end type
  133. event clicked;dw_1.AcceptText()
  134. Long i
  135. ins_rslt = ''
  136. FOR i = 1 To dw_1.RowCount()
  137. IF dw_1.Object.lvalue[i] <> '' THEN
  138. ins_rslt += dw_1.Object.lkey[i] + ":" + dw_1.Object.lvalue[i] + ";"
  139. END IF
  140. NEXT
  141. Close(Parent)
  142. end event
  143. type dw_1 from datawindow within w_key_value_edit
  144. integer width = 1115
  145. integer height = 884
  146. integer taborder = 10
  147. string title = "none"
  148. string dataobject = "dw_key_value_edit"
  149. boolean hscrollbar = true
  150. boolean vscrollbar = true
  151. boolean livescroll = true
  152. borderstyle borderstyle = stylelowered!
  153. end type
  154. event clicked;This.SelectRow(0, False)
  155. IF row > 0 THEN
  156. This.SetRow(row)
  157. END IF
  158. end event
  159. event rowfocuschanged;IF currentrow > 0 THEN
  160. This.SelectRow(currentrow, True)
  161. END IF
  162. parent.triggerevent('ue_retrieve_keys')
  163. end event