ehxz 发表于 2015-5-28 16:20:35

PB数据窗口保存前删除空行(转)

在UpdateStart事件中添加以下代码:

Long ll_row



FOR ll_row = RowCount() To 1 Step -1
       
        If ((IsNull(Object.part_no)) Or (Object.part_no = "")) THEN
                SetRow(ll_row)
                DeleteRow(0)
                CONTINUE
        END IF
       
NEXT

RETURN


rbrjgzs 发表于 2016-6-3 14:47:06

测试成功,可用

叫兽兽 发表于 2023-7-6 10:18:35

SQLserver产生的空行,setfilter(" not isnull(col)")还过滤不掉,而且find找到的始终是空行,最后只有删除空行才行

swimchen 发表于 2023-9-25 05:33:57

本帖最后由 swimchen 于 2023-9-25 05:38 编辑

THIS.SetRedraw(False) //加速界面显示
LONG ll_Row
FOR ll_Row=THIS.RowCount() TO 1 STEP -1
        IF THIS.GetItemStatus(ll_Row,0,Primary!)=New! THEN THIS.RowsDiscard(ll_Row,ll_Row,Primary!) //RowsDiscard和DeleteRow的区别是DeleteRow会生成Delete SQL
NEXT
FOR ll_Row=THIS.FilteredCount() TO 1 STEP -1
        IF THIS.GetItemStatus(ll_Row,0,Filter!)=New! THEN THIS.RowsDiscard(ll_Row,ll_Row,Filter!)
NEXT
THIS.SetRedraw(True)

swimchen 发表于 2023-9-25 05:38:28

THIS.SetRedraw(False) //加速界面显示 LONG ll_Row FOR ll_Row=THIS.RowCount() TO 1 STEP -1         IF THIS.GetItemStatus(ll_Row,0,Primary!)=New! THEN THIS.RowsDiscard(ll_Row,ll_Row,Primary!) //RowsDiscard和DeleteRow的区别是DeleteRow会生成Delete SQL NEXT FOR ll_Row=THIS.FilteredCount() TO 1 STEP -1         IF THIS.GetItemStatus(ll_Row,0,Filter!)=New! THEN THIS.RowsDiscard(ll_Row,ll_Row,Filter!) NEXT THIS.SetRedraw(True)
页: [1]
查看完整版本: PB数据窗口保存前删除空行(转)

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com