PowerBuilder总结(一)

PowerBuilder总结(一)

  1. DataWindow窗口dw_1dw_2载入页面(FreeForm类型和Grid类型的)
    int row_cnt
    dw_2.dataobject ='freeform_name'
    dw_1.dataobject ='grid_name'
    dw_1.settransobject(sqlca)
    dw_2.settransobject(sqlca)
    dw_2.sharedata(dw_1)
    row_cnt =dw_1.Retrieve()
    dw_1.setsort("system_idasc, domain_code asc")
    dw_1.sort()
    dw_1.SetRow(row_cnt)
    dw_1.ScrollToRow(row_cnt)
    dw_1.setfocus()
  2. 设置DataWindow的可编辑性和背景色(modify()方法)
    dw_2.modify("datawindow.color= 16777215")
    dw_2.modify("DataWindow.ReadOnly=yes")
    dw_2.modify ("question_picture_status.TabSequence=0")
    dw_2.modify ("data_status.TabSequence=0")
  3. 设置Window对象的可见性或可编辑性
    button_name.visible= true/false
    dropdownlistbox_name.enabled= true/false
  4. 设置DropDownListBox控件的item项(下拉列表值)
    ddlb_name.reset()
    stringv_policecode
    declarepolicecodecur cursor for select policecode from biz_ code;
    openpolicecodecur;
    fetchpolicecodecur into :v_policecode;
    if sqlca.sqlcode=-1 then
           Messagebox("","获取列表失败")
    end if
    DO WHILE(sqlca.sqlcode=0 )
           ddlb_name.additem(v_policecode)
           fetch policecodecur into :v_policecode;
    LOOP
    closepolicecodecur;
  5. 一个保存按钮功能的实现代码
    long ll_row
    dwItemStatus      l_mod
     
    dw_2.accepttext()
    ll_row =dw_2.getrow()
    dw_2.object.update_time[ll_row]= string(now(), 'yyyy-MM-dd hh:mm:ss')
    if ll_row <= 0then return
    l_mod =dw_2.GetItemStatus (ll_row, 0, primary!)
    if l_mod =DataModified! or l_mod = NewModified! then
       if (dw_2.Update(true) = 1) then
             commit;   
                  //获取编辑页面的区域编码等信息
                  v_ code = dw_2.object.d_code[ll_row]
                  v_ time = string(now(),'yyyy-MM-dd hh:mm:ss')
                  delete biz_d_domain_class_r wheredomain_code = :v_domain_code;
                  commit;
                  //判断区域分类选项的选中状态,并向区域分类关系表插入有效数据
                  for v_cnt = 1 todw_domain_class_name.rowcount() step 1
                         v_check_flag = dw_name.getitemnumber(v_cnt,"check_flag")
                         if v_check_flag = 1 then
                                v_class_code = dw_name.getitemstring(v_cnt,"class_code")
                                insert into tname(d_code,cr_time) values(:v_ code,:v_ time);
                                commit;
                         end if
                  next
                  messagebox("","保存成功")
       else
               rollback;
       end if
    end if
    dw_1.setrow(ll_row)
    dw_1.scrolltorow(ll_row)
  6. 两个数据窗口同步数据(写在dw_1rbuttondown事件中)
    dw_1.selectrow(0,false)
    dw_1.selectrow(row,true)
    dw_2.scrolltorow(row)
  7. 创建动态DataWindow
    string str_err_sql,str_err_create,str_sql,str_syntax,str_style
         str_sql="select name,class from biz_class where id = " + gv_id;
    	  str_style= "style(type = Grid)"
    	 //生成SELECT语句对应的自由风格的数据窗口语法
         str_syntax=sqlca.SyntaxFromSQL(str_sql,str_style,str_err_sql)
    	  messagebox("str_sql",str_sql)
    	  messagebox("str_syntax",str_syntax)
         if len(str_err_sql)>0 then
            messagebox("错误","取得SQL语法时出错" + str_err_sql)
            return
         else
            dw_1.create(str_syntax,str_err_create)
            if len(str_err_create)>0 then
               messagebox("错误","创建数据窗口时出错!") 
               return
            end if
         end if
         dw_1.settransobject(sqlca)
         dw_1.retrieve()
  8. 其他
    window_name.dw_2.setitem(row,"d_code","0")  //设置dw_2某字段的值
     
    ddlb_1.selectitem(0)   //设置DropDownListBox的默认选项
     
    //截取字符串v_ret_code的末两位,并转换成integer类型
    v_sub_num = integer(mid(v_ret_code,2,2))+ 1
     
    //弹出确认窗口
    int v_ret
    v_ret =MessageBox("","确定删除这条区域信息?",Question!,YesNo!)
    if v_ret = 1 then
           delete from biz_d_domain where  and domain_code=”111”;
           commit;
    end if
     
    //设置焦点
    dw_d_name.setfocus()
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值