f_get_obj2dw_super.srf 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. $PBExportHeader$f_get_obj2dw_super.srf
  2. global type f_get_obj2dw_super from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_get_obj2dw_super (string arg_allowversion, string arg_dwname, ref datawindow arg_ds, datawindow arg_dw)
  6. end prototypes
  7. global function integer f_get_obj2dw_super (string arg_allowversion, string arg_dwname, ref datawindow arg_ds, datawindow arg_dw);//设定dw的column
  8. long ll_row
  9. Int rslt = 1
  10. string ls_mdfstr_visible_version
  11. String ls_object, ls_object_col, ls_object_txt, ls_object_txt_text
  12. String ls_mdfstr_visible, ls_mdfstr_x, ls_mdfstr_width, ls_mdfstr_alignment, ls_mdfstr_DftValue
  13. String ls_mdfstr_text
  14. String ls_mdfstr_height,ls_mdfstr_y,ls_mdfstr_Taborder
  15. string ls_AllowVersion
  16. String ls_mdfstr_tmp, ls_mdfstr_value
  17. String ls_dwname,ls_dbname,ls_dftvalue
  18. long ll_objvisible
  19. Long ll_alignment,ll_taborder
  20. Long ll_x, ll_y,ll_width, ll_height,ll_titlex,ll_titley
  21. string ls_objtype, ls_coltype
  22. String ls_modify
  23. String ls_dwobjectstr,ls_type
  24. Long li_start,li_tab_pos
  25. Boolean lb_def = True
  26. IF arg_dwname = '' THEN RETURN 0
  27. datawindow dw
  28. dw = create datawindow
  29. dw.dataobject = arg_dw.dataobject
  30. ls_dwname = arg_dwname
  31. ls_AllowVersion = arg_AllowVersion
  32. SELECT DwObjVisible
  33. INTO :ls_mdfstr_visible_version
  34. FROM sys_dwnSyntax_sys
  35. WHERE AllowVersion = :ls_AllowVersion
  36. And DwName = :ls_dwname;
  37. IF sqlca.SQLCode <> 0 THEN
  38. ls_mdfstr_visible_version = ""
  39. END IF
  40. ////用户解决方案
  41. SELECT dwnSyntax_layout_column_visible
  42. INTO :ls_mdfstr_visible
  43. FROM sys_user_dwnSyntax
  44. WHERE empid = -1
  45. And dwname = :ls_dwname;
  46. IF sqlca.SQLCode <> 0 THEN
  47. ls_mdfstr_visible = ''
  48. END IF
  49. ls_dwobjectstr = arg_dw.Describe("Datawindow.Objects") + "~t"
  50. li_start = 1
  51. li_tab_pos = Pos(ls_dwobjectstr, "~t", li_start)
  52. DO WHILE li_tab_pos > 0
  53. ls_object = Mid(ls_dwobjectstr, li_start, (li_tab_pos - li_start) )
  54. IF Pos(ls_object,'_t') > 0 THEN
  55. ls_object_col = Mid(ls_dwobjectstr, li_start, (li_tab_pos - li_start) - 2)
  56. ls_object_txt = ls_object
  57. ls_type = Lower(Left(arg_dw.Describe(ls_object_col+".Type"),4))
  58. IF ls_type = 'comp' Or ls_type = 'colu' THEN
  59. // des_1 = This.Describe( ls_object_col + ".Name")
  60. ls_object_txt_text = arg_dw.Describe(ls_object_txt+ ".Text")
  61. ls_dbname = arg_dw.Describe( ls_object_col + ".dbname")
  62. ls_object_txt_text = f_strip( ls_object_txt_text)
  63. IF ls_object_txt_text <> "!" THEN
  64. //查解决方案
  65. ls_mdfstr_value = f_get_obj_value(dw,ls_mdfstr_visible_version,"visible",ls_object_col)
  66. IF ls_mdfstr_value = "0" THEN //
  67. goto nxtcol
  68. END IF
  69. //=====visible=====================
  70. //查帐套
  71. ls_mdfstr_value = f_get_obj_value(arg_dw,ls_mdfstr_visible,"visible",ls_object_col)
  72. IF ls_mdfstr_value = "1" THEN //
  73. END IF
  74. ll_objvisible = long(ls_mdfstr_value)
  75. //=====visible=====================
  76. //ls_dftvalue
  77. ls_mdfstr_value = f_get_obj_value(arg_dw,ls_mdfstr_DftValue,"initial",ls_object_col)
  78. ls_dftvalue = ls_mdfstr_value
  79. //ll_x
  80. ls_mdfstr_value = f_get_obj_value(arg_dw,ls_mdfstr_x,"x",ls_object_col)
  81. ll_x = long(ls_mdfstr_value)
  82. //ll_titlex
  83. ls_mdfstr_value = f_get_obj_value(arg_dw,ls_mdfstr_x,"x",ls_object_col+"_t")
  84. ll_titlex = long(ls_mdfstr_value)
  85. //ll_width
  86. ls_mdfstr_value = f_get_obj_value(arg_dw,ls_mdfstr_width,"width",ls_object_col)
  87. ll_width = long(ls_mdfstr_value)
  88. //alignment
  89. ls_mdfstr_value = f_get_obj_value(arg_dw,ls_mdfstr_alignment,"alignment",ls_object_col)
  90. ll_alignment = long(ls_mdfstr_value)
  91. //ls_objtype
  92. ls_mdfstr_value = f_get_obj_value(arg_dw,"","Type",ls_object_col)
  93. ls_objtype = ls_mdfstr_value
  94. //ls_coltype
  95. ls_mdfstr_value = f_get_obj_value(arg_dw,"","coltype",ls_object_col)
  96. ls_coltype = ls_mdfstr_value
  97. //ls_dbname
  98. ls_mdfstr_value = f_get_obj_value(arg_dw,"","dbname",ls_object_col)
  99. ls_dbname = ls_mdfstr_value
  100. ll_row = arg_ds.insertrow(0)
  101. arg_ds.object.objname[ll_row] = ls_object_col
  102. arg_ds.object.objtext[ll_row] = ls_object_txt_text
  103. arg_ds.object.objvisible[ll_row] = ll_objvisible
  104. arg_ds.object.objdftvalue[ll_row] = ls_dftvalue
  105. arg_ds.object.objx[ll_row] = ll_x
  106. arg_ds.object.objy[ll_row] = ll_y
  107. arg_ds.object.objwidth[ll_row] = ll_width
  108. arg_ds.object.objheight[ll_row] = ll_height
  109. arg_ds.object.objalignment[ll_row] = ll_alignment
  110. arg_ds.object.objtaborder[ll_row] = ll_taborder
  111. arg_ds.object.objtitlex[ll_row] = ll_titlex
  112. arg_ds.object.objtitley[ll_row] = ll_titley
  113. arg_ds.object.objtype[ll_row] = ls_objtype
  114. arg_ds.object.coltype[ll_row] = ls_coltype
  115. arg_ds.object.dbname[ll_row] = ls_dbname
  116. // ls_modify += des_1+ ".alignment = "+string(ll_alignment) + "~r"
  117. // ls_modify += des_1+ ".initial = '"+String(ls_initial) + "'~r"
  118. END IF
  119. END IF
  120. END IF
  121. nxtcol:
  122. li_start = li_tab_pos + 1
  123. li_tab_pos = Pos(ls_dwobjectstr, "~t", li_start)
  124. LOOP
  125. //destroy dw
  126. RETURN rslt
  127. end function