hur.cn - 华软网

 热门搜索

高分请教数据窗口中复选框处理问题!

  作者:未知    来源:网络    更新时间:2019/6/11
我的表中有一字段,用于存储快乐喜爱,快乐喜爱的内容存于数据字典中(动态),要怎么措置惩罚才能在数据窗口中能够举行复选多个快乐喜爱?查了一资质料了,没查到应该怎么做。不要告诉我要在内外面建多个字段,然后选择EDIT-》STYLE-》CHECKBOX。^_^
------华软网友回答------
多个快乐喜爱在你的表中也应该是一个字段呀,用某种符号分割是吧。可行的做法是对dw中该快乐喜爱列 用个按钮 展开,类似于选日历一样,打开一个新的dw,该dw用checkbox,选择好后拼成你需要的字段即可。
即就是多跳记录,也能够用这个方法,最后生成几条记录就是了。
------华软网友回复------
你的意思是在数据窗口中再内嵌数据窗口吧??然后用程序来控制??
------华软网友回复------
选择多行?行不行?
------华软网友回复------
数据窗口中多行选中程序 
 
  首先定义窗口实例变量:
  long Il_LastRow = 1 //最后一次点击的行。


  然后起头编写多行选中程序。程序算法描写以下:
  1、如果按下了Control键
   如果是在选中行上,取消该行
   否则,选中该行
   记录当前到窗口实例变量中
  2、如果按下了Shift键
   取消所有选中行
   选中上次点击行和当前行之间的所有数据行
   记录当前到窗口实例变量中
  3、如果没有按键
   如果点击行为选中行,不执行所有操作
   否则,取消所有选中行,选中当前行
   记录当前到窗口实例变量中


  比如,咱们在窗口dw_1的Clicked事件中编写该剧本,程序以下:
  LONG Ll_CurrentRow , Ll_Circle

  IF row <= 0 THEN RETURN
  Ll_CurrentRow = row //当前激活的行

  IF keydown(keyshift!) THEN
   IF Il_LastRow = 0 THEN
    THIS.SelectRow(Ll_CurrentRow , True)//高亮当前行
    Il_LastRow = Ll_CurrentRow
   ELSE
    THIS.SelectRow(0 , False)
    IF Ll_CurrentRow > Il_LastRow THEN
     FOR Ll_Circle = Il_LastRow TO Ll_CurrentRow
       THIS.SelectRow(Ll_Circle , TRUE)
     NEXT
    ELSE
     FOR Ll_Circle = Il_LastRow TO ll_CurrentRow STEP -1
       THIS.SelectRow(Ll_Circle , TRUE)
     NEXT
    END IF
   END IF
  ELSE
   Il_LastRow = Ll_CurrentRow
   IF keydown(keycontrol!) THEN
    THIS.SelectRow(Ll_CurrentRow , Not THIS.IsSelected(Ll_CurrentRow))
   ELSE//单选情况
    IF THIS.IsSelected(Ll_CurrentRow) = TRUE THEN //如果自身选中
     Il_LastRow = Ll_CurrentRow
    ELSE//如果没有选中,则选中该行,其余行不选中
     THIS.SelectRow(0 , FALSE)
     THIS.SelectRow(Ll_CurrentRow , TRUE)
     Il_LastRow = Ll_CurrentRow
    END IF
   END IF
  END IF


  在DoubleClicked中,写以下代码取消所有已经选择的行: 
  THIS.SelectRow(0 , FALSE)
  Il_LastRow = 0

  注意:在PB9中,选中Mouse Selection选项即可。 
 

------华软网友回复------
能够思量
增加一个新表
外键联系关系 快乐喜爱字典 和 用户表
实现方便
------华软网友回复------
符号分割or增加一个新表
是两个不同的方向,
增加一个新表综合的越发经济。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。