$PBExportHeader$f_quk_allcol.srf global type f_quk_allcol from function_object end type forward prototypes global function s_dw2xls_dytitle f_quk_allcol (ref datawindow dw_dw, string str_dw_s) end prototypes global function s_dw2xls_dytitle f_quk_allcol (ref datawindow dw_dw, string str_dw_s);s_dw2xls_dytitle rtn_s_dw2xls_dytitle Int cur_development = 0 Int cur_developtype = 0 String cur_AllowVersion Long count datastore ls_ds ls_ds = Create datastore ls_ds.DataObject = 'dw_rbtnfilter_setlayout' datastore ls_ds_ori ls_ds_ori = Create datastore ls_ds_ori.DataObject = str_dw_s String ls_dwname, ls_AllowVersion String ls_mdfstr //存放modify string String des_1,des_2,szColumn,ls_dbname Long nColumnIndex,nColumnCount,lRow,ls_i s_dw_rbtnfilter_setlayout_rt ls_s_rt String ls_dwobjectstr,ls_type Long li_start,li_tab_pos Int li_lock String ls_object, ls_object_col, ls_object_txt, ls_object_txt_text String ls_mdfstr_visible, ls_mdfstr_x, ls_mdfstr_width, ls_mdfstr_alignment, ls_mdfstr_DftValue String ls_mdfstr_text String ls_mdfstr_height,ls_mdfstr_y,ls_mdfstr_Taborder String ls_mdfstr_value String ls_mdfstr_visible_zt String ls_mdfstr_value_zt ls_dwobjectstr = dw_dw.Describe("Datawindow.Objects") + "~t" ls_dwname = str_dw_s //修改点 //Int li_dwstyle //li_dwstyle = Long(This.Object.DataWindow.Processing) //IF li_dwstyle <> 4 THEN //crosstab 不能保存布局 IF cur_development = 0 THEN ls_AllowVersion = Fill("0",sys_version_int - 1)+"1"+Fill("0",20 - sys_version_int) ELSE IF cur_AllowVersion = "" THEN ls_AllowVersion = Fill("0",sys_version_int - 1)+"1"+Fill("0",20 - sys_version_int) ELSE ls_AllowVersion = cur_AllowVersion END IF END IF //版本方案 SELECT DwObjVisible, DwObjText, DwObjX, DwObjY, DwObjWidth, DwObjHeight, DwObjAlignment, DwObjTaborder, DwObjDftValue INTO :ls_mdfstr_visible,:ls_mdfstr_text, :ls_mdfstr_x,:ls_mdfstr_y,:ls_mdfstr_width, :ls_mdfstr_height,:ls_mdfstr_alignment, :ls_mdfstr_Taborder, :ls_mdfstr_DftValue FROM sys_dwnSyntax_sys WHERE AllowVersion = :ls_AllowVersion And DwName = :ls_dwname; IF sqlca.SQLCode <> 0 THEN // lb_def = False END IF // //管理员解决方案 SELECT dwnSyntax_layout_column_visible INTO :ls_mdfstr_visible_zt FROM sys_user_dwnSyntax WHERE empid = -1 And DwName = :ls_dwname; IF sqlca.SQLCode <> 0 THEN ls_mdfstr_visible_zt = '' END IF li_start = 1 li_tab_pos = Pos(ls_dwobjectstr, "~t", li_start) DO WHILE li_tab_pos > 0 ls_object = Mid(ls_dwobjectstr, li_start, (li_tab_pos - li_start) ) IF Pos(ls_object,'_t') > 0 THEN ls_object = Mid(ls_dwobjectstr, li_start, (li_tab_pos - li_start) - 2) ls_type = Lower(Left(dw_dw.Describe(ls_object+".Type"),4)) IF ls_type = 'comp' Or ls_type = 'colu' THEN des_1 = dw_dw.Describe( ls_object + ".Name") des_2 = dw_dw.Describe(des_1+ "_t.Text") ls_object_col = des_1 ls_dbname = dw_dw.Describe( ls_object + ".dbname") szColumn = f_strip( des_2) IF szColumn <> "!" THEN IF cur_developtype = 2 THEN //版本控制模式 ELSE //查版本方案 ls_mdfstr_value = f_get_obj_visible(dw_dw.DataObject,ls_mdfstr_visible,"visible",ls_object_col) //版本有效,查用户解决方案 IF ls_mdfstr_value = "1" THEN // //查用户解决方案是否有效 ls_mdfstr_value_zt = f_get_obj_visible(dw_dw.DataObject,ls_mdfstr_visible_zt,"visible",ls_object_col) IF ls_mdfstr_value_zt = "1" THEN li_lock = 0 ELSE IF sys_power_issuper THEN li_lock = 2 ELSE li_lock = 1 END IF END IF ELSE GOTO nxtcol //用户解决方案不显示 END IF END IF lRow = ls_ds.InsertRow( 0) ls_ds.SetItem( lRow, "ctitle", szColumn) ls_ds.SetItem( lRow, "cname", ls_dbname) ls_ds.SetItem( lRow, "name", des_1) ls_ds.SetItem( lRow, "cshow_flag", Long(dw_dw.Describe(des_1+ ".Visible"))) ls_ds.SetItem( lRow, "cwidth", Long(dw_dw.Describe(des_1+ ".width"))) ls_ds.SetItem( lRow, "cx", Long(dw_dw.Describe(des_1+ ".x"))) ls_ds.SetItem( lRow, "nColumnIndex", nColumnIndex) ls_ds.SetItem( lRow, "lock_flag", li_lock) ls_ds.SetItem( lRow, "ctype", dw_dw.Describe(des_1+ ".type")) ls_ds.SetItem( lRow, "ccoltype", dw_dw.Describe(des_1+ ".coltype")) IF String(dw_dw.Describe(des_1+ ".Visible")) = '1' THEN count++ rtn_s_dw2xls_dytitle.col_name[count] = des_1 rtn_s_dw2xls_dytitle.title_name[count] = szColumn rtn_s_dw2xls_dytitle.col_visible[count] = String(dw_dw.Describe(des_1+ ".Visible")) // messagebox('',rtn_s_dw2xls_dytitle.col_visible[count]) String lkk_type lkk_type = Lower(Left(dw_dw.Describe(des_1+ ".type"),4)) rtn_s_dw2xls_dytitle.col_type[count] = lkk_type // messagebox(string(rtn_s_dw2xls_dytitle.col_name[count]),string(rtn_s_dw2xls_dytitle.title_name[count])) // messagebox(string(rtn_s_dw2xls_dytitle.col_type[count]),string(rtn_s_dw2xls_dytitle.title_name[count])) END IF END IF END IF END IF nxtcol: li_start = li_tab_pos + 1 li_tab_pos = Pos(ls_dwobjectstr, "~t", li_start) LOOP ls_ds.SetSort("cx") ls_ds.Sort() RETURN rtn_s_dw2xls_dytitle end function