123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- $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
|