求助_call_str 打开自定义报表疑难问题_产供销
学习.交流
专业源于专注
www. onlyit. cn   
学习交流 文件下载 手册资料 交流QQ群

    

 2  1/1   1  
作者
内容
htc  [个人空间]


注册  2017-12-30
发贴数  538
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#1»发布于2022-05-31 15:53

用 csp去调用自定义报表 
     aa.csp 
      
      int main() 
     { 
           call_str('view_csp_rep.aaa'); 
           gui_set_text('this','人事职位报表'); //这个有时候文本会设置在调用前的窗口上 
           gui_create_speedbutton(..... 
           //此时,如果报表加载较慢的时候,大概率会将控件创建在调用前的窗口里 
          // 如何实现精准创建到加载的报表窗口里呢? 
         //如果用 change_to_win的话,由于报表加载的时候,并不是即刻将报表名称显示上去 
        //因此,change to 不到,也有加载慢的情况 
      } 
 
以下是设想的解决办法: 
 
1、程序在加载csp报表的时候,就报表的 脚本名称 像gui_set_text 一样显示在窗口的名称上 
     如果不方便的话,则在这个报表里加一个设定项,报表名称,不为空时,则用这个设定窗口名称,为空时,则保留当前做法 
 
     这样脚本里就可以循环判断是否存在这个名称的窗口,切换成功才进行控件创建 
 
2、增加一个 当前已打开的窗口数量函数  gui_get_win_num() I 获取当前已打开的窗口数量 
     再用 get_win_id_by_id 去获取已打开窗口的标题 去判断是否包含了某个特定的字符,再用 change_to_win 去创建控件


        


htc  [个人空间]


注册  2017-12-30
发贴数  538
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#2»发布于2022-05-31 15:54

 
脚本加载完 定义一个变量,在csp调用里循环判断这个变量,直到变量为真是才创建这个控件


        



 2  1/1   1  

登录后方可发贴


[ 电话: 0571-85462761 王先生 QQ: 124520435 加入软件QQ群 - 杭州 - 浙ICP备19051128号-1 网安 33010402003225 ]