f_init_table_field.srf 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. $PBExportHeader$f_init_table_field.srf
  2. global type f_init_table_field from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_init_table_field (ref string arg_msg)
  6. end prototypes
  7. global function integer f_init_table_field (ref string arg_msg);Int rslt
  8. rslt = 1
  9. datastore ds_table
  10. ds_table = CREATE datastore
  11. ds_table.DataObject = 'ds_rpt_table_def'
  12. ds_table.SetTransObject(sqlca)
  13. datastore ds_field
  14. ds_field = CREATE datastore
  15. ds_field.DataObject = 'ds_rpt_field_def'
  16. ds_field.SetTransObject(sqlca)
  17. Long ll_row,ll_row2
  18. ll_row = ds_table.RowCount()
  19. ll_row2 = ds_field.RowCount()
  20. Long cnt
  21. Long ll_i
  22. cnt = 0
  23. SELECT count(*) INTO :cnt
  24. FROM u_report_table;
  25. IF sqlca.SQLCode <> 0 THEN
  26. arg_msg = '查询数据字典表数量失败'+sqlca.SQLErrText
  27. rslt = 0
  28. GOTO ext
  29. END IF
  30. Long ll_cnt = 1
  31. IF cnt < ll_row THEN
  32. DELETE FROM u_report_table;
  33. IF sqlca.SQLCode <> 0 THEN
  34. arg_msg = '删除原数据字典表数据失败,'+sqlca.SQLErrText
  35. rslt = 0
  36. GOTO ext
  37. END IF
  38. Long ll_tableid
  39. String ls_table_english
  40. String ls_table_chinese
  41. FOR ll_i = 1 TO ds_table.RowCount()
  42. ll_tableid = ds_table.Object.tableid[ll_i]
  43. ls_table_english = ds_table.Object.table_english[ll_i]
  44. ls_table_chinese = ds_table.Object.table_chinese[ll_i]
  45. INSERT INTO
  46. u_report_table(u_report_table.tableid,
  47. u_report_table.table_english,
  48. u_report_table.table_chinese)
  49. VALUES(:ll_tableid,
  50. :ls_table_english,
  51. :ls_table_chinese);
  52. IF sqlca.SQLCode <> 0 THEN
  53. arg_msg = '新增数据字典表数据数据失败,'+sqlca.SQLErrText
  54. rslt = 0
  55. GOTO ext
  56. END IF
  57. NEXT
  58. END IF
  59. cnt = 0
  60. SELECT count(*) INTO :cnt
  61. FROM pbcatcol;
  62. IF sqlca.SQLCode <> 0 THEN
  63. arg_msg = '查询数据字典字段数量失败'+sqlca.SQLErrText
  64. rslt = 0
  65. GOTO ext
  66. END IF
  67. IF cnt < ll_row2 THEN
  68. DELETE FROM pbcatcol;
  69. IF sqlca.SQLCode <> 0 THEN
  70. arg_msg = '删除原数据字典字段数据失败,'+sqlca.SQLErrText
  71. rslt = 0
  72. GOTO ext
  73. END IF
  74. String pbc_labl
  75. String pbc_hdr
  76. String pbc_cnam
  77. String pbc_tnam
  78. Long pbc_tid
  79. String pbc_ownr
  80. Long pbc_cid
  81. Long pbc_lpos
  82. Long pbc_hpos
  83. Long pbc_jtfy
  84. String pbc_mask
  85. Long pbc_case
  86. Long pbc_wdth
  87. Long pbc_hght
  88. String pbc_ptrn
  89. String pbc_bmap
  90. String pbc_init
  91. String pbc_cmnt
  92. String pbc_edit
  93. String pbc_tag
  94. FOR ll_i = 1 TO ds_field.RowCount()
  95. pbc_labl = ds_field.Object.pbc_labl[ll_i]
  96. pbc_hdr = ds_field.Object.pbc_hdr[ll_i]
  97. pbc_cnam = ds_field.Object.pbc_cnam[ll_i]
  98. pbc_tnam = ds_field.Object.pbc_tnam[ll_i]
  99. pbc_tid = ds_field.Object.pbc_tid[ll_i]
  100. pbc_ownr = ds_field.Object.pbc_ownr[ll_i]
  101. pbc_cid = ds_field.Object.pbc_cid[ll_i]
  102. pbc_lpos = ds_field.Object.pbc_lpos[ll_i]
  103. pbc_hpos = ds_field.Object.pbc_hpos[ll_i]
  104. pbc_jtfy = ds_field.Object.pbc_jtfy[ll_i]
  105. pbc_mask = ds_field.Object.pbc_mask[ll_i]
  106. pbc_case = ds_field.Object.pbc_case[ll_i]
  107. pbc_wdth = ds_field.Object.pbc_wdth[ll_i]
  108. pbc_hght = ds_field.Object.pbc_hght[ll_i]
  109. pbc_ptrn = ds_field.Object.pbc_ptrn[ll_i]
  110. pbc_bmap = ds_field.Object.pbc_bmap[ll_i]
  111. pbc_init = ds_field.Object.pbc_init[ll_i]
  112. pbc_cmnt = ds_field.Object.pbc_cmnt[ll_i]
  113. pbc_edit = ds_field.Object.pbc_edit[ll_i]
  114. pbc_tag = ds_field.Object.pbc_tag[ll_i]
  115. INSERT INTO pbcatcol(pbcatcol.pbc_labl,
  116. pbcatcol.pbc_hdr,
  117. pbcatcol.pbc_cnam,
  118. pbcatcol.pbc_tnam,
  119. pbcatcol.pbc_tid,
  120. pbcatcol.pbc_ownr,
  121. pbcatcol.pbc_cid,
  122. pbcatcol.pbc_lpos,
  123. pbcatcol.pbc_hpos,
  124. pbcatcol.pbc_jtfy,
  125. pbcatcol.pbc_mask,
  126. pbcatcol.pbc_case,
  127. pbcatcol.pbc_wdth,
  128. pbcatcol.pbc_hght,
  129. pbcatcol.pbc_ptrn,
  130. pbcatcol.pbc_bmap,
  131. pbcatcol.pbc_init,
  132. pbcatcol.pbc_cmnt,
  133. pbcatcol.pbc_edit,
  134. pbcatcol.pbc_tag)
  135. VALUES(:pbc_labl,
  136. :pbc_hdr,
  137. :pbc_cnam,
  138. :pbc_tnam,
  139. :pbc_tid,
  140. :pbc_ownr,
  141. :pbc_cid,
  142. :pbc_lpos,
  143. :pbc_hpos,
  144. :pbc_jtfy,
  145. :pbc_mask,
  146. :pbc_case,
  147. :pbc_wdth,
  148. :pbc_hght,
  149. :pbc_ptrn,
  150. :pbc_bmap,
  151. :pbc_init,
  152. :pbc_cmnt,
  153. :pbc_edit,
  154. :pbc_tag);
  155. IF sqlca.SQLCode <> 0 THEN
  156. arg_msg = '新增数据字典字段数据数据失败,'+sqlca.SQLErrText
  157. rslt = 0
  158. GOTO ext
  159. END IF
  160. NEXT
  161. END IF
  162. ext:
  163. IF rslt = 0 THEN
  164. ROLLBACK;
  165. ELSE
  166. COMMIT;
  167. END IF
  168. RETURN rslt
  169. end function