数据窗口问题

ma_z2 2009-12-10 04:10:11
本人编程当中遇到这样问题
客户提出,象exel表格一样,一拖拉,相应的数据就复制下来
数据窗口怎么实现呢,而且效果也象exell一样
...全文
127 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ma_z2 2009-12-10
  • 打赏
  • 举报
回复
就是列复制,而且数据类型的,而且就一个列,能再根据这个具体情况,在拖拉事件里怎么写啊
ma_z2 2009-12-10
  • 打赏
  • 举报
回复
再拖拉时间里怎么写啊,
行范围怎么判断啊,在拖拉过程中
HVIVIP 2009-12-10
  • 打赏
  • 举报
回复
用这种方式:行复制+ 列复制,大概行吧
xuam 2009-12-10
  • 打赏
  • 举报
回复
完全做到跟EXCEL一样,找微软了!
ma_z2 2009-12-10
  • 打赏
  • 举报
回复
再拖拉时间里怎么写啊,
行范围怎么判断啊,在拖拉过程中
ma_z2 2009-12-10
  • 打赏
  • 举报
回复
上面的代码是在哪个事件里写啊
ma_z2 2009-12-10
  • 打赏
  • 举报
回复
一拖拉这个范围的行怎么判断啊,这个是难点
xuam 2009-12-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ma_z2 的回复:]
只是某一列,数据格式而已
而且不是所有行都是那样,是拖拉范围内的行
[/Quote]

那在上面基础上修改就差不多了
行复制+ 列复制!
ma_z2 2009-12-10
  • 打赏
  • 举报
回复
能象exell那样一拖拉就复制了
ma_z2 2009-12-10
  • 打赏
  • 举报
回复
只是某一列,数据格式而已
而且不是所有行都是那样,是拖拉范围内的行
xuam 2009-12-10
  • 打赏
  • 举报
回复
//行复制
dw_1.RowsCopy(dw_1.GetRow(), &

dw_1.RowCount(), Primary!, dw_2, 1, Primary!)
xuam 2009-12-10
  • 打赏
  • 举报
回复
//列复制功能
Long current_col,current_row ,m_k ,row_count
String ls_col_type,m_string,ls_column_name
Long m_number,select_row
Dec ld_number
DateTime m_data
Time m_time
Boolean relu
Integer li_ret
m_string=Clipboard()
if isnull(m_string) or trim(m_string)='' then return
li_ret = MessageBox('提示','确定要复制?',Question!,Yesno!)
IF li_ret <> 1 THEN
RETURN
END IF

dwnow.AcceptText()
current_col = dwnow.GetColumn ( )
current_row = dwnow.GetRow ( )
select_row = dwnow.GetSelectedRow(0)
IF current_row <= 0 OR current_col <= 0 THEN
RETURN
END IF
ls_column_name = dwnow.GetColumnName ( )
ls_col_type = dwnow.Describe(ls_column_name+".ColType")
row_count = dwnow.RowCount ( )

CHOOSE CASE Left(ls_col_type,4)
CASE 'varc' ,'char','stri'
m_string=Clipboard()
FOR m_k = 1 TO row_count
relu = dwnow.IsSelected(m_k)
if dwnow.IsSelected(m_k) then
dwnow.SetItem(m_k, current_col ,m_string)
end if

NEXT

CASE "numb",'long','deci','inte'

m_number=dec(Clipboard())
FOR m_k = 1 TO row_count
if dwnow.IsSelected(m_k) then
dwnow.SetItem(m_k, current_col ,m_number)
end if

NEXT

CASE "date"

m_data=datetime(Clipboard())
FOR m_k = 1 TO row_count
if dwnow.IsSelected(m_k) then
dwnow.SetItem(m_k, current_col ,m_data)
end if
NEXT
END CHOOSE
ma_z2 2009-12-10
  • 打赏
  • 举报
回复
就是一个小功能而已,嵌进EXCEL 不现实
就是行中一个列,人家修改的时候想拖拉一下,相应范伟的列就复制下来,节省输入工作量
drag应该能实现,只不过象exell那样那么自如美观
xuam 2009-12-10
  • 打赏
  • 举报
回复
ole 嵌进EXCEL
永生天地 2009-12-10
  • 打赏
  • 举报
回复
我们也有这样经历,没办法

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧