w_rp_tj.srw 52 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121
  1. $PBExportHeader$w_rp_tj.srw
  2. $PBExportComments$报表窗口
  3. forward
  4. global type w_rp_tj from w_publ_base
  5. end type
  6. type cb_2 from uo_imflatbutton within w_rp_tj
  7. end type
  8. type cb_psetup from uo_imflatbutton within w_rp_tj
  9. end type
  10. type cb_1 from uo_imflatbutton within w_rp_tj
  11. end type
  12. type st_3 from statictext within w_rp_tj
  13. end type
  14. type st_4 from statictext within w_rp_tj
  15. end type
  16. type em_1 from editmask within w_rp_tj
  17. end type
  18. type em_2 from editmask within w_rp_tj
  19. end type
  20. type ddlb_yl from dropdownlistbox within w_rp_tj
  21. end type
  22. type cbx_yl from checkbox within w_rp_tj
  23. end type
  24. type dw_1 from u_dw_rbtnfilter within w_rp_tj
  25. end type
  26. type sle_mtrl from singlelineedit within w_rp_tj
  27. end type
  28. type sle_cust from singlelineedit within w_rp_tj
  29. end type
  30. type st_mtrl from statictext within w_rp_tj
  31. end type
  32. type st_cust from statictext within w_rp_tj
  33. end type
  34. type cbx_loginretr from checkbox within w_rp_tj
  35. end type
  36. type pb_em1 from picturebutton within w_rp_tj
  37. end type
  38. type pb_em2 from picturebutton within w_rp_tj
  39. end type
  40. type pb_2 from picturebutton within w_rp_tj
  41. end type
  42. type cb_delete from uo_imflatbutton within w_rp_tj
  43. end type
  44. type cb_copyself from uo_imflatbutton within w_rp_tj
  45. end type
  46. type cb_save from uo_imflatbutton within w_rp_tj
  47. end type
  48. type cb_3 from uo_imflatbutton within w_rp_tj
  49. end type
  50. type tab_1 from tab within w_rp_tj
  51. end type
  52. type tabpage_1 from userobject within tab_1
  53. end type
  54. type dw_2 from u_dw_rbtnfilter within tabpage_1
  55. end type
  56. type tabpage_1 from userobject within tab_1
  57. dw_2 dw_2
  58. end type
  59. type tabpage_2 from userobject within tab_1
  60. end type
  61. type dw_3 from u_dw_rbtnfilter within tabpage_2
  62. end type
  63. type tabpage_2 from userobject within tab_1
  64. dw_3 dw_3
  65. end type
  66. type tab_1 from tab within w_rp_tj
  67. tabpage_1 tabpage_1
  68. tabpage_2 tabpage_2
  69. end type
  70. type gb_1 from groupbox within w_rp_tj
  71. end type
  72. type ln_bar from line within w_rp_tj
  73. end type
  74. type ln_bar2 from line within w_rp_tj
  75. end type
  76. type r_bar from rectangle within w_rp_tj
  77. end type
  78. type ln_1 from line within w_rp_tj
  79. end type
  80. type ln_2 from line within w_rp_tj
  81. end type
  82. type ln_3 from line within w_rp_tj
  83. end type
  84. type ln_4 from line within w_rp_tj
  85. end type
  86. end forward
  87. global type w_rp_tj from w_publ_base
  88. integer x = 270
  89. integer y = 136
  90. integer width = 3982
  91. integer height = 2404
  92. string title = "报表统计"
  93. boolean maxbox = true
  94. boolean resizable = true
  95. windowstate windowstate = maximized!
  96. event ue_filter ( )
  97. event ue_sort ( )
  98. event ue_sentdataout ( )
  99. event ue_date1 ( )
  100. event ue_date2 ( )
  101. event ue_date3 ( )
  102. event ue_help ( )
  103. event user_key ( )
  104. event ue_date4 ( )
  105. cb_2 cb_2
  106. cb_psetup cb_psetup
  107. cb_1 cb_1
  108. st_3 st_3
  109. st_4 st_4
  110. em_1 em_1
  111. em_2 em_2
  112. ddlb_yl ddlb_yl
  113. cbx_yl cbx_yl
  114. dw_1 dw_1
  115. sle_mtrl sle_mtrl
  116. sle_cust sle_cust
  117. st_mtrl st_mtrl
  118. st_cust st_cust
  119. cbx_loginretr cbx_loginretr
  120. pb_em1 pb_em1
  121. pb_em2 pb_em2
  122. pb_2 pb_2
  123. cb_delete cb_delete
  124. cb_copyself cb_copyself
  125. cb_save cb_save
  126. cb_3 cb_3
  127. tab_1 tab_1
  128. gb_1 gb_1
  129. ln_bar ln_bar
  130. ln_bar2 ln_bar2
  131. r_bar r_bar
  132. ln_1 ln_1
  133. ln_2 ln_2
  134. ln_3 ln_3
  135. ln_4 ln_4
  136. end type
  137. global w_rp_tj w_rp_tj
  138. type variables
  139. Boolean if_mdf_title = TRUE
  140. Boolean cb_reol
  141. Boolean if_retrieveing = FALSE //是否正在retrieve
  142. String cur_vspos
  143. Boolean if_power_sendout = true
  144. Boolean if_power_print = true
  145. ////////////////
  146. string s_col="",s_text=""
  147. integer l_row=0
  148. integer rp_dw_row
  149. integer rp_rptype
  150. long rp_rpid
  151. long rp_billid
  152. integer left_or_right
  153. long ll_dw3_row
  154. long rowid
  155. long rpid
  156. integer rowcode
  157. string rowname
  158. integer rowtype
  159. integer rowcmpltype
  160. string Rowformula1
  161. string Rowformula2
  162. uo_rp uo_this_rp
  163. datawindow dw_2,dw_3
  164. end variables
  165. forward prototypes
  166. public function integer days_in_month (integer month, integer year)
  167. public function integer wf_replacedw ()
  168. public subroutine f_bulid_rp (integer row)
  169. public subroutine f_get_rpid ()
  170. public function string of_globalreplace (string as_source, string as_old, string as_new)
  171. public function decimal of_sqlstring (string arg_sqlstring, string arg_star, string arg_end)
  172. public function string of_globalreplace1 (string as_source, string as_old, string as_new)
  173. public function string f_ss (string arg_s, string arg_colname)
  174. public function string f_sss (string arg_s)
  175. public subroutine wf_retrieve_mx (long arg_rpid)
  176. public subroutine f_bulid_rp_history (long arg_billid)
  177. public subroutine wf_lock_child ()
  178. end prototypes
  179. event ue_filter;call super::ue_filter;OPENWITHPARM(w_filter_query,dw_1)
  180. STRING LS_EXPR
  181. LS_EXPR=Message.StringParm
  182. if len(LS_EXPR)>2 and trim(LS_EXPR)='' then return
  183. dw_1.setfilter(LS_EXPR)
  184. dw_1.SetRedraw (false)
  185. dw_1.filter()
  186. dw_1.SetRedraw (TRUE)
  187. end event
  188. event ue_sort();OPENwithparm(w_sortrow,DW_1)
  189. STRING LS_EXPR
  190. LS_EXPR=Message.StringParm
  191. IF ISNULL(LS_EXPR) THEN LS_EXPR=' '
  192. if len(LS_EXPR)>2 and trim(LS_EXPR)='' then return
  193. dw_1.setsort(LS_EXPR)
  194. dw_1.SetRedraw (false)
  195. dw_1.sort()
  196. dw_1.SetRedraw (true)
  197. end event
  198. event ue_sentdataout;IF NOT f_power_ind(1822) THEN
  199. MessageBox('提示','你没有使用权限!', Information!, OK! )
  200. RETURN
  201. END IF
  202. OpenWithParm(w_sentdataout,DW_1)
  203. end event
  204. event ue_date1();//IF THIS.Text = "本日" THEN
  205. em_1.text = string(today(),"yyyy-mm-dd")
  206. em_2.text = string(today(),"yyyy-mm-dd")
  207. //ELSEIF THIS.Text = "本周" THEN
  208. // int li_DayNum
  209. // li_DayNum = DayNumber(today())
  210. // em_1.text = string(RelativeDate ( today(), 1 - li_DayNum ),"yyyy-mm-dd")
  211. // em_2.text = string(RelativeDate ( today(), 7 - li_DayNum ),"yyyy-mm-dd")
  212. //ELSEIF THIS.Text = "本月" THEN
  213. // int li_Month, li_Year, li_Days
  214. // li_Month = Month(today())
  215. // li_Year = Year(today())
  216. // li_Days = days_in_month(li_Month, li_Year)
  217. // em_1.text = string(Date(li_Year, li_Month, 1),"yyyy-mm-dd")
  218. // em_2.text = string(Date(li_Year, li_Month, li_Days),"yyyy-mm-dd")
  219. //END IF
  220. end event
  221. event ue_date2();//IF THIS.Text = "本日" THEN
  222. // em_1.text = string(today(),"yyyy-mm-dd")
  223. // em_2.text = string(today(),"yyyy-mm-dd")
  224. //ELSEIF THIS.Text = "本周" THEN
  225. int li_DayNum
  226. li_DayNum = DayNumber(today())
  227. em_1.text = string(RelativeDate ( today(), 1 - li_DayNum ),"yyyy-mm-dd")
  228. em_2.text = string(RelativeDate ( today(), 7 - li_DayNum ),"yyyy-mm-dd")
  229. //ELSEIF THIS.Text = "本月" THEN
  230. // int li_Month, li_Year, li_Days
  231. // li_Month = Month(today())
  232. // li_Year = Year(today())
  233. // li_Days = days_in_month(li_Month, li_Year)
  234. // em_1.text = string(Date(li_Year, li_Month, 1),"yyyy-mm-dd")
  235. // em_2.text = string(Date(li_Year, li_Month, li_Days),"yyyy-mm-dd")
  236. //END IF
  237. end event
  238. event ue_date3();//IF THIS.Text = "本日" THEN
  239. // em_1.text = string(today(),"yyyy-mm-dd")
  240. // em_2.text = string(today(),"yyyy-mm-dd")
  241. //ELSEIF THIS.Text = "本周" THEN
  242. // int li_DayNum
  243. // li_DayNum = DayNumber(today())
  244. // em_1.text = string(RelativeDate ( today(), 1 - li_DayNum ),"yyyy-mm-dd")
  245. // em_2.text = string(RelativeDate ( today(), 7 - li_DayNum ),"yyyy-mm-dd")
  246. //ELSEIF THIS.Text = "本月" THEN
  247. int li_Month, li_Year, li_Days
  248. li_Month = Month(today())
  249. li_Year = Year(today())
  250. li_Days = days_in_month(li_Month, li_Year)
  251. em_1.text = string(Date(li_Year, li_Month, 1),"yyyy-mm-dd")
  252. em_2.text = string(Date(li_Year, li_Month, li_Days),"yyyy-mm-dd")
  253. //END IF
  254. end event
  255. event ue_help();Int i
  256. i = htmlhelpA(Handle(THIS), sys_help_chm, 0, THIS.Title+".html")
  257. end event
  258. event user_key();IF KeyDown(KeyF1!) THEN
  259. THIS.TriggerEvent('ue_help')
  260. end if
  261. end event
  262. event ue_date4();//IF THIS.Text = "本日" THEN
  263. // em_1.text = string(today(),"yyyy-mm-dd")
  264. // em_2.text = string(today(),"yyyy-mm-dd")
  265. //ELSEIF THIS.Text = "本周" THEN
  266. // int li_DayNum
  267. // li_DayNum = DayNumber(today())
  268. // em_1.text = string(RelativeDate ( today(), 1 - li_DayNum ),"yyyy-mm-dd")
  269. // em_2.text = string(RelativeDate ( today(), 7 - li_DayNum ),"yyyy-mm-dd")
  270. //ELSEIF THIS.Text = "本月" THEN
  271. Int li_Month, li_Year, li_Days
  272. li_Month = Month(Today())
  273. li_Year = Year(Today())
  274. IF li_Month = 1 THEN
  275. li_Month = 12
  276. li_Year = li_Year - 1
  277. ELSE
  278. li_Month -= 1
  279. END IF
  280. li_Days = days_in_month(li_Month, li_Year)
  281. em_1.Text = String(Date(li_Year, li_Month, 1),"yyyy-mm-dd")
  282. em_2.Text = String(Date(li_Year, li_Month, li_Days),"yyyy-mm-dd")
  283. //END IF
  284. end event
  285. public function integer days_in_month (integer month, integer year);//Most cases are straight forward in that there are a fixed number of
  286. //days in 11 of the 12 months. February is, of course, the problem.
  287. //In a leap year February has 29 days, otherwise 28.
  288. Integer li_DaysInMonth, li_Days[12] = {31,28,31,30,31,30,31,31,30,31,30,31}
  289. // Get the number of days per month for a non leap year.
  290. li_DaysInMonth = li_Days[Month]
  291. // Check for a leap year.
  292. If Month = 2 Then
  293. // If the year is a leap year, change the number of days.
  294. // Leap Year Calculation:
  295. // Year divisible by 4, but not by 100, unless it is also divisible by 400
  296. If ( (Mod(Year,4) = 0 And Mod(Year,100) <> 0) Or (Mod(Year,400) = 0) ) Then
  297. li_DaysInMonth = 29
  298. End If
  299. End If
  300. //Return the number of days in the relevant month
  301. Return li_DaysInMonth
  302. end function
  303. public function integer wf_replacedw ();String ls_windowname
  304. ls_windowname = THIS.ClassName ( )
  305. String ls_old_dwname,ls_new_dwname = ''
  306. ls_old_dwname = dw_1.DataObject
  307. ls_new_dwname = f_get_dwprint_dynamic_chname(ls_old_dwname,ls_windowname)
  308. IF ls_new_dwname = '' THEN
  309. ls_new_dwname = ls_old_dwname
  310. END IF
  311. dw_1.DataObject = ls_new_dwname
  312. dw_1.SetTransObject(sqlca)
  313. dw_1.uf_read_profile_layout()
  314. f_title_change(dw_1)
  315. RETURN 1
  316. end function
  317. public subroutine f_bulid_rp (integer row);IF row <= 0 THEN RETURN
  318. f_get_rpid()
  319. dw_1.Reset()
  320. //dw_1.Object.rpid[row]
  321. //messagebox("",string("sql_l1.text ='" + dw_1.Object.col1name1[row] + "'"))
  322. dw_1.Object.Title.Text = dw_2.Object.rpname[row]
  323. dw_1.Modify("Colname_l_t.text ='" + dw_2.Object.col1name0[row] + "'")
  324. dw_1.Modify("Amt_l1_t.text ='" + dw_2.Object.col1name1[row] + "'")
  325. dw_1.Modify("Amt_l2_t.text ='" + dw_2.Object.col1name2[row] + "'")
  326. dw_1.Modify("Colname_r_t.text='" + dw_2.Object.col2name0[row] + "'")
  327. dw_1.Modify("Amt_r1_t.text ='" + dw_2.Object.col2name1[row] + "'")
  328. dw_1.Modify("Amt_r2_t.text ='" + dw_2.Object.col2name2[row] + "'")
  329. IF dw_2.Object.rptype[row] = 0 THEN
  330. dw_1.Modify('Colname_l.width = 1300')
  331. dw_1.Modify('compute_1.width =200')
  332. dw_1.Modify('Amt_l1.width = 800')
  333. dw_1.Modify('Amt_l2.width = 800')
  334. ELSE
  335. dw_1.Modify('Colname_l.width = 667')
  336. dw_1.Modify('compute_1.width =200')
  337. dw_1.Modify('Amt_l1.width = 348')
  338. dw_1.Modify('Amt_l2.width = 348')
  339. dw_1.Modify('Colname_r.width = 667')
  340. dw_1.Modify('compute_2.width =200')
  341. dw_1.Modify('Amt_r1.width = 348')
  342. dw_1.Modify('Amt_r2.width = 348')
  343. END IF
  344. Integer ll_rowcount,ll_i
  345. Integer s_rowcode
  346. String s_rowname
  347. Integer l_rowtype
  348. Integer l_rowcmpltype
  349. String s_Rowformula1
  350. String s_Rowformula2
  351. IF dw_2.Object.rptype[row] = 0 THEN
  352. dw_1.Modify("colname_r.Visible = 0")
  353. dw_1.Modify("compute_2.Visible = 0")
  354. dw_1.Modify("Amt_r1.Visible =0")
  355. dw_1.Modify("Amt_r2.Visible = 0")
  356. SELECT Max(rowcode) Into :ll_rowcount From u_rp_rowdef Where rpid = :rp_rpid;
  357. FOR ll_i = 1 To ll_rowcount
  358. dw_1.InsertRow(0)
  359. //左
  360. rowname = ""
  361. Rowformula1 = ""
  362. Rowformula2 = ""
  363. SELECT rowname,Rowformula1,Rowformula2 Into :s_rowname,:s_Rowformula1,:s_Rowformula2 From u_rp_rowdef Where rpid = :rp_rpid And rowcmpltype = 0 And rowcode = :ll_i ;
  364. dw_1.Object.Colname_l[ll_i] = s_rowname
  365. NEXT
  366. ELSE
  367. dw_1.Modify("colname_r.Visible = 1")
  368. dw_1.Modify("compute_2.Visible = 1")
  369. dw_1.Modify("Amt_r1.Visible =1")
  370. dw_1.Modify("Amt_r2.Visible = 1")
  371. SELECT Max(rowcode) Into :ll_rowcount From u_rp_rowdef Where rpid = :rp_rpid;
  372. FOR ll_i = 1 To ll_rowcount
  373. dw_1.InsertRow(0)
  374. //左
  375. rowname = ""
  376. Rowformula1 = ""
  377. Rowformula2 = ""
  378. SELECT rowname,Rowformula1,Rowformula2 Into :s_rowname,:s_Rowformula1,:s_Rowformula2 From u_rp_rowdef Where rpid = :rp_rpid And rowcmpltype = 0 And rowcode = :ll_i ;
  379. dw_1.Object.Colname_l[ll_i] = s_rowname
  380. //右
  381. rowname = ""
  382. Rowformula1 = ""
  383. Rowformula2 = ""
  384. SELECT rowname,Rowformula1,Rowformula2 Into :s_rowname,:s_Rowformula1,:s_Rowformula2 From u_rp_rowdef Where rpid = :rp_rpid And rowcmpltype = 1 And rowcode = :ll_i ;
  385. dw_1.Object.Colname_r[ll_i] = s_rowname
  386. NEXT
  387. END IF
  388. end subroutine
  389. public subroutine f_get_rpid ();Long ll_row, ll_i
  390. FOR ll_i = dw_2.RowCount() To 1 Step -1
  391. IF dw_2.IsSelected(ll_i) THEN
  392. ll_row = ll_i
  393. END IF
  394. NEXT
  395. IF ll_row <= 0 THEN RETURN
  396. rp_rpid = dw_2.Object.rpid[ll_row]
  397. rp_rptype= dw_2.Object.rptype[ll_row]
  398. end subroutine
  399. public function string of_globalreplace (string as_source, string as_old, string as_new);long ll_oldlen, ll_newlen, ll_pos
  400. ll_pos = Pos(as_source,as_old)
  401. IF ll_pos > 0 Then
  402. ll_oldlen = Len(as_old)
  403. ll_newlen = Len(as_new)
  404. DO WHILE ll_pos > 0
  405. as_source = Replace(as_source,ll_pos,ll_oldlen,as_new)
  406. ll_pos = Pos(as_source,as_old,ll_pos + ll_newlen)
  407. LOOP
  408. END IF
  409. RETURN as_source
  410. end function
  411. public function decimal of_sqlstring (string arg_sqlstring, string arg_star, string arg_end);Transaction commit_transaction
  412. commit_transaction = Create Transaction
  413. commit_transaction = sqlca
  414. Decimal jine=0
  415. long uc_row,i
  416. String t_star, t_end,sqlstring,Name
  417. sqlstring = Trim(string(arg_sqlstring))
  418. sqlstring = of_globalreplace(sqlstring,"@开始日期@",String(arg_star))
  419. sqlstring = of_globalreplace(sqlstring,"@结束日期@",String(arg_end))
  420. //messagebox("",sqlstring)
  421. DECLARE c1 Dynamic Cursor FOR SQLSA;
  422. PREPARE SQLSA From :sqlstring Using commit_transaction;
  423. OPEN Dynamic c1 ;
  424. Lable:
  425. FETCH c1 Into :jine;
  426. IF sqlca.SQLCode = 0 THEN //如果成功取出记录
  427. GOTO Lable //取下一条
  428. END IF
  429. CLOSE c1;
  430. //关闭游标
  431. if isnull(jine)=true then jine=0
  432. return jine
  433. end function
  434. public function string of_globalreplace1 (string as_source, string as_old, string as_new);long ll_oldlen, ll_newlen, ll_pos
  435. ll_pos = Pos(as_source,as_old)
  436. IF ll_pos > 0 Then
  437. ll_oldlen = Len(as_old)
  438. ll_newlen = Len(as_new)
  439. as_source = Replace(as_source,ll_pos,ll_oldlen,as_new)
  440. ll_pos = Pos(as_source,as_old,ll_pos + ll_newlen)
  441. END IF
  442. RETURN as_source
  443. end function
  444. public function string f_ss (string arg_s, string arg_colname);
  445. String s_rslt,s_s,s_s1,ls_s,ls_e
  446. String ss1,ss2,sss
  447. String s1,s2
  448. Integer i,j,arg_i,xx
  449. Decimal LName
  450. FOR i = 1 To Len(arg_s)
  451. ls_s = Mid(arg_s,i,1)
  452. IF ls_s = "[" THEN
  453. FOR j = i To Len(arg_s)
  454. ls_e = Mid(arg_s,j,1)
  455. IF ls_e = "]" THEN
  456. // IF ls_e = "[" THEN
  457. // i = j
  458. // END IF
  459. s_s = Mid(arg_s,i + 1,j - i -1)
  460. IF Pos(s_s,":") > 0 THEN
  461. ss1 = Left(s_s,Pos(s_s,":") - 1)
  462. ss2 = Right(s_s,Len(s_s) - Pos(s_s,":"))
  463. FOR xx = Long(ss1) To Long(ss2)
  464. sss = sss + "[" + String(xx) + "]"
  465. NEXT
  466. // IF arg_i <= Long(ss1) THEN
  467. // ss1 = String(Long(ss1) + 1)
  468. //
  469. // END IF
  470. // IF arg_i <= Long(ss2) THEN
  471. // ss2 = String(Long(ss2) + 1)
  472. // END IF
  473. arg_s = of_globalreplace1(arg_s,"[" +s_s + "]",sss)
  474. i = j - 1
  475. EXIT
  476. ELSE
  477. IF Long(s_s) = 0 THEN
  478. s_rslt = "公式错误"
  479. GOTO ext
  480. END IF
  481. s_s1 = String(dec(dw_1.GetItemDecimal(Long(s_s), arg_colname)))
  482. s1 = Left(arg_s,i - 1)
  483. s2 = Right(arg_s,Len(arg_s) - i + 1)
  484. IF IsNull(s_s1) = False THEN
  485. s2 = of_globalreplace1(s2,"[" +s_s + "]","(" +s_s1 + ")" )
  486. END IF
  487. arg_s = s1 + s2
  488. i = j - 2
  489. EXIT
  490. END IF
  491. END IF
  492. NEXT
  493. END IF
  494. NEXT
  495. s_rslt = arg_s
  496. ext:
  497. RETURN s_rslt
  498. end function
  499. public function string f_sss (string arg_s);String s_rslt,s_s,s_s1,ls_s,ls_e
  500. String ss1,ss2,sss,ssss
  501. String s1,s2
  502. Integer i,j,arg_i,xx,xxx = 1
  503. Decimal LName
  504. ext1:
  505. FOR i = xxx To Len(arg_s)
  506. ls_s = Mid(arg_s,i,1)
  507. IF ls_s = "[" THEN
  508. FOR j = i To Len(arg_s)
  509. ls_e = Mid(arg_s,j,1)
  510. IF ls_e = "[" THEN
  511. i = j
  512. END IF
  513. IF ls_e = "]" THEN
  514. s_s = Mid(arg_s,i + 1,j - i -1)
  515. IF Pos(s_s,":") > 0 THEN
  516. ss1 = Left(s_s,Pos(s_s,":") - 1)
  517. ss2 = Right(s_s,Len(s_s) - Pos(s_s,":"))
  518. FOR xx = Long(ss1) To Long(ss2)
  519. sss = sss + "[" + String(xx) + "]"
  520. IF xx <> Long(ss2) THEN
  521. sss = sss + "+"
  522. END IF
  523. NEXT
  524. arg_s = of_globalreplace1(arg_s,"[" +s_s + "]",sss)
  525. sss=""
  526. goto ext1
  527. ELSE
  528. // ss1= "(" + s_s + ")"
  529. //
  530. //
  531. // arg_s = of_globalreplace(arg_s,"[" +s_s + "]",ss1 )
  532. // // END IF
  533. // arg_s = s1 + s2
  534. // i = j
  535. // EXIT
  536. END IF
  537. END IF
  538. NEXT
  539. END IF
  540. NEXT
  541. s_rslt = arg_s
  542. RETURN s_rslt
  543. end function
  544. public subroutine wf_retrieve_mx (long arg_rpid);
  545. end subroutine
  546. public subroutine f_bulid_rp_history (long arg_billid);String rpname //报表名称
  547. Int rptype //报表类型
  548. String col1name0 //左边第0列统计标题
  549. String col1name1 //左边第1列统计标题
  550. String col1name2 //左边第2列统计标题
  551. String Col2name0 //右边第0列统计标题
  552. String col2name1 //右边第1列统计标题
  553. String col2name2 //右边第2列统计标题
  554. datetime sdate,edate
  555. SELECT u_rp.rpname,u_rp.rptype,u_rp.col1name0,u_rp.col1name1,u_rp.col1name2,u_rp.Col2name0,u_rp.col2name1,u_rp.col2name2,u_sp_rp.sdate,u_sp_rp.edate
  556. INTO :rpname,:rptype,:col1name0,:col1name1,:col1name2,:Col2name0,:col2name1,:col2name2,:sdate,:edate
  557. From u_rp,u_sp_rp Where u_rp.rpid = u_sp_rp.rpid And u_sp_rp.billid = :arg_billid;
  558. dw_1.Reset()
  559. dw_1.Object.Title.Text = rpname
  560. dw_1.Modify("Colname_l_t.text ='" + col1name0 + "'")
  561. dw_1.Modify("Amt_l1_t.text ='" + col1name1 + "'")
  562. dw_1.Modify("Amt_l2_t.text ='" + col1name2 + "'")
  563. dw_1.Modify("Colname_r_t.text='" + Col2name0 + "'")
  564. dw_1.Modify("Amt_r1_t.text ='" + col2name1 + "'")
  565. dw_1.Modify("Amt_r2_t.text ='" + col2name2 + "'")
  566. IF rptype = 0 THEN
  567. dw_1.Modify('Colname_l.width = 1300')
  568. dw_1.Modify('compute_1.width =200')
  569. dw_1.Modify('Amt_l1.width = 800')
  570. dw_1.Modify('Amt_l2.width = 800')
  571. ELSE
  572. dw_1.Modify('Colname_l.width = 667')
  573. dw_1.Modify('compute_1.width =200')
  574. dw_1.Modify('Amt_l1.width = 348')
  575. dw_1.Modify('Amt_l2.width = 348')
  576. dw_1.Modify('Colname_r.width = 667')
  577. dw_1.Modify('compute_2.width =200')
  578. dw_1.Modify('Amt_r1.width = 348')
  579. dw_1.Modify('Amt_r2.width = 348')
  580. END IF
  581. Integer ll_rowcount,ll_i
  582. Integer s_rowcode
  583. String s_rowname
  584. Integer l_rowtype
  585. Integer l_rowcmpltype
  586. String s_Rowformula1
  587. String s_Rowformula2
  588. String ss_col1name0 //左边第0列统计标题
  589. Decimal ll_col1name1 //左边第1列统计标题
  590. Decimal ll_col1name2 //左边第2列统计标题
  591. String ss_Col2name0 //右边第0列统计标题
  592. Decimal ll_col2name1 //右边第1列统计标题
  593. Decimal ll_col2name2 //右边第2列统计标题
  594. SELECT Max(printid) Into :ll_rowcount From u_sp_rp_mx Where billid = :arg_billid;
  595. FOR ll_i = 1 To ll_rowcount
  596. dw_1.InsertRow(0)
  597. //左
  598. ss_col1name0 = ""
  599. ll_col1name1 = 0
  600. ll_col1name2 = 0
  601. ss_Col2name0=""
  602. ll_col2name1=0
  603. ll_col2name2=0
  604. SELECT col1name0,col1name1,col1name2 ,Col2name0,col2name1,col2name2
  605. Into :ss_col1name0,:ll_col1name1,:ll_col1name2 ,:ss_Col2name0,:ll_col2name1,:ll_col2name2
  606. From u_sp_rp_mx Where billid = :arg_billid And printid = :ll_i ;
  607. dw_1.Object.Colname_l[ll_i]= ss_col1name0
  608. dw_1.Object.amt_l1[ll_i] = ll_col1name1
  609. dw_1.Object.amt_l2[ll_i] = ll_col1name2
  610. dw_1.Object.Colname_r[ll_i]= ss_Col2name0
  611. dw_1.Object.amt_r1[ll_i] = ll_col2name1
  612. dw_1.Object.amt_r2[ll_i] = ll_col2name2
  613. NEXT
  614. IF rptype = 0 THEN
  615. dw_1.Modify("colname_r.Visible = 0")
  616. dw_1.Modify("compute_2.Visible = 0")
  617. dw_1.Modify("Amt_r1.Visible =0")
  618. dw_1.Modify("Amt_r2.Visible = 0")
  619. ELSE
  620. dw_1.Modify("colname_r.Visible = 1")
  621. dw_1.Modify("compute_2.Visible = 1")
  622. dw_1.Modify("Amt_r1.Visible =1")
  623. dw_1.Modify("Amt_r2.Visible = 1")
  624. END IF
  625. dw_1.Object.dt_ar.Text = "日期范围: "+string(date(sdate))+" 到 "+string(date(edate))
  626. dw_1.Object.t_company.Text ="编制单位:" + sys_message_username
  627. dw_1.Object.t_2.Text ="制表人:" + publ_operator
  628. end subroutine
  629. public subroutine wf_lock_child ();Int LS_INT
  630. IF dw_edit_mode = True THEN
  631. cb_3.text="放弃"
  632. cb_3.TriggerEvent('ue_textchange')
  633. cb_save.enabled=true
  634. FOR LS_INT = 1 To 20
  635. dw_1.SetTabOrder (LS_INT,LS_INT * 10)
  636. NEXT
  637. FOR LS_INT = 1 To 20
  638. dw_3.SetTabOrder (LS_INT,LS_INT * 10)
  639. NEXT
  640. ELSE
  641. cb_3.text="修改"
  642. cb_3.TriggerEvent('ue_textchange')
  643. cb_save.enabled=false
  644. FOR LS_INT = 1 To 20
  645. dw_1.SetTabOrder (LS_INT,0)
  646. NEXT
  647. FOR LS_INT = 1 To 20
  648. dw_3.SetTabOrder (LS_INT,0)
  649. NEXT
  650. END IF
  651. end subroutine
  652. on w_rp_tj.create
  653. int iCurrent
  654. call super::create
  655. this.cb_2=create cb_2
  656. this.cb_psetup=create cb_psetup
  657. this.cb_1=create cb_1
  658. this.st_3=create st_3
  659. this.st_4=create st_4
  660. this.em_1=create em_1
  661. this.em_2=create em_2
  662. this.ddlb_yl=create ddlb_yl
  663. this.cbx_yl=create cbx_yl
  664. this.dw_1=create dw_1
  665. this.sle_mtrl=create sle_mtrl
  666. this.sle_cust=create sle_cust
  667. this.st_mtrl=create st_mtrl
  668. this.st_cust=create st_cust
  669. this.cbx_loginretr=create cbx_loginretr
  670. this.pb_em1=create pb_em1
  671. this.pb_em2=create pb_em2
  672. this.pb_2=create pb_2
  673. this.cb_delete=create cb_delete
  674. this.cb_copyself=create cb_copyself
  675. this.cb_save=create cb_save
  676. this.cb_3=create cb_3
  677. this.tab_1=create tab_1
  678. this.gb_1=create gb_1
  679. this.ln_bar=create ln_bar
  680. this.ln_bar2=create ln_bar2
  681. this.r_bar=create r_bar
  682. this.ln_1=create ln_1
  683. this.ln_2=create ln_2
  684. this.ln_3=create ln_3
  685. this.ln_4=create ln_4
  686. iCurrent=UpperBound(this.Control)
  687. this.Control[iCurrent+1]=this.cb_2
  688. this.Control[iCurrent+2]=this.cb_psetup
  689. this.Control[iCurrent+3]=this.cb_1
  690. this.Control[iCurrent+4]=this.st_3
  691. this.Control[iCurrent+5]=this.st_4
  692. this.Control[iCurrent+6]=this.em_1
  693. this.Control[iCurrent+7]=this.em_2
  694. this.Control[iCurrent+8]=this.ddlb_yl
  695. this.Control[iCurrent+9]=this.cbx_yl
  696. this.Control[iCurrent+10]=this.dw_1
  697. this.Control[iCurrent+11]=this.sle_mtrl
  698. this.Control[iCurrent+12]=this.sle_cust
  699. this.Control[iCurrent+13]=this.st_mtrl
  700. this.Control[iCurrent+14]=this.st_cust
  701. this.Control[iCurrent+15]=this.cbx_loginretr
  702. this.Control[iCurrent+16]=this.pb_em1
  703. this.Control[iCurrent+17]=this.pb_em2
  704. this.Control[iCurrent+18]=this.pb_2
  705. this.Control[iCurrent+19]=this.cb_delete
  706. this.Control[iCurrent+20]=this.cb_copyself
  707. this.Control[iCurrent+21]=this.cb_save
  708. this.Control[iCurrent+22]=this.cb_3
  709. this.Control[iCurrent+23]=this.tab_1
  710. this.Control[iCurrent+24]=this.gb_1
  711. this.Control[iCurrent+25]=this.ln_bar
  712. this.Control[iCurrent+26]=this.ln_bar2
  713. this.Control[iCurrent+27]=this.r_bar
  714. this.Control[iCurrent+28]=this.ln_1
  715. this.Control[iCurrent+29]=this.ln_2
  716. this.Control[iCurrent+30]=this.ln_3
  717. this.Control[iCurrent+31]=this.ln_4
  718. end on
  719. on w_rp_tj.destroy
  720. call super::destroy
  721. destroy(this.cb_2)
  722. destroy(this.cb_psetup)
  723. destroy(this.cb_1)
  724. destroy(this.st_3)
  725. destroy(this.st_4)
  726. destroy(this.em_1)
  727. destroy(this.em_2)
  728. destroy(this.ddlb_yl)
  729. destroy(this.cbx_yl)
  730. destroy(this.dw_1)
  731. destroy(this.sle_mtrl)
  732. destroy(this.sle_cust)
  733. destroy(this.st_mtrl)
  734. destroy(this.st_cust)
  735. destroy(this.cbx_loginretr)
  736. destroy(this.pb_em1)
  737. destroy(this.pb_em2)
  738. destroy(this.pb_2)
  739. destroy(this.cb_delete)
  740. destroy(this.cb_copyself)
  741. destroy(this.cb_save)
  742. destroy(this.cb_3)
  743. destroy(this.tab_1)
  744. destroy(this.gb_1)
  745. destroy(this.ln_bar)
  746. destroy(this.ln_bar2)
  747. destroy(this.r_bar)
  748. destroy(this.ln_1)
  749. destroy(this.ln_2)
  750. destroy(this.ln_3)
  751. destroy(this.ln_4)
  752. end on
  753. event resize;ln_bar.endx = this.width
  754. ln_bar2.endx = this.width
  755. ln_1.endx = this.width
  756. ln_2.endx = this.width
  757. ln_3.endx = this.width
  758. ln_4.endx = this.width
  759. r_bar.width = this.width
  760. dw_1.width=this.width - dw_1.x - 40
  761. dw_1.height=this.height - dw_1.y - 150
  762. //dw_2.width=this.width - dw_2.x - 40
  763. tab_1.height=this.height - tab_1.y - 150
  764. dw_2.height=this.height - dw_2.y - 150
  765. dw_3.height=this.height - dw_3.y - 150
  766. end event
  767. event open;call super::open;dw_2 = tab_1.tabpage_1.dw_2
  768. dw_3 = tab_1.tabpage_2.dw_3
  769. dw_1.SetTransObject (sqlca)
  770. dw_2.SetTransObject (sqlca)
  771. dw_3.SetTransObject (sqlca)
  772. dw_2.Retrieve()
  773. uo_this_rp = create uo_rp
  774. IF dw_1.Describe("DataWindow.Objects") = "" THEN dw_1.DataObject = ''
  775. EM_1.Text = String(Today(),'YYYY-MM-01')
  776. EM_2.Text = String(Today(),'YYYY-MM-DD')
  777. dw_1.RBUTTON_FILTER_USE = TRUE //右键查询功能开关
  778. IF Trim(dw_1.DataObject) <> '' THEN
  779. dw_1.Object.DataWindow.Print.MARGIN.Top = Integer(f_ProfileString(sys_empid,dw_1.DataObject, "MARGIN_TOP", "110"))
  780. dw_1.Object.DataWindow.Print.MARGIN.Left = Integer(f_ProfileString(sys_empid,dw_1.DataObject, "MARGIN_LEFT", "96" ))
  781. dw_1.Object.DataWindow.Print.MARGIN.bottom = Integer(f_ProfileString(sys_empid,dw_1.DataObject, "MARGIN_BOTTOM", "110"))
  782. dw_1.Object.DataWindow.Print.MARGIN.Right = Integer(f_ProfileString(sys_empid,dw_1.DataObject, "MARGIN_RIGHT", "96" ))
  783. END IF
  784. //IF cbx_loginretr.Checked THEN
  785. // cb_1.TriggerEvent(Clicked!)
  786. //END IF
  787. s_edit_index_tran s_tran
  788. s_tran = Message.PowerObjectParm
  789. IF NOT IsNull(s_tran) THEN
  790. if_power_sendout = s_tran.if_sendout
  791. if_power_print = s_tran.if_print
  792. END IF
  793. dw_3.retrieve(rp_rpid)
  794. wf_lock_child()
  795. end event
  796. event activate;IF Trim(dw_1.DataObject) <> '' THEN
  797. IF cbx_yl.Enabled AND cbx_yl.Visible THEN cbx_yl.TriggerEvent(Clicked!)
  798. END IF
  799. end event
  800. event key;call super::key;this.TRIGGEREVENT('USER_KEY')
  801. end event
  802. type cb_func from w_publ_base`cb_func within w_rp_tj
  803. integer x = 160
  804. integer width = 192
  805. integer height = 164
  806. string text = "Excel"
  807. end type
  808. event cb_func::clicked;call super::clicked;
  809. parent.triggerevent('ue_sentdataout')
  810. end event
  811. type cb_exit from w_publ_base`cb_exit within w_rp_tj
  812. integer x = 1874
  813. integer width = 151
  814. integer height = 164
  815. integer picsize = 16
  816. toolbaralignment pic_align = alignattop!
  817. boolean border = false
  818. end type
  819. type cb_2 from uo_imflatbutton within w_rp_tj
  820. integer x = 1719
  821. integer width = 151
  822. integer height = 164
  823. integer taborder = 90
  824. string text = "打印"
  825. string normalpicname = "print.bmp"
  826. integer picsize = 16
  827. toolbaralignment pic_align = alignattop!
  828. boolean border = false
  829. end type
  830. event clicked;call super::clicked;
  831. IF Not f_power_ind(1831) THEN
  832. MessageBox('提示','你没有使用权限!', Information!, OK! )
  833. RETURN
  834. END IF
  835. IF DW_1.RowCount() >= 1 THEN
  836. cbx_YL.Checked = TRUE
  837. cbx_YL.TriggerEvent(Clicked!)
  838. OpenWithParm(w_sys_printpagesetting,DW_1)
  839. ELSE
  840. MessageBox('NO','数据窗口中没有任何记录,不能打印!')
  841. END IF
  842. IF Trim(DW_1.DataObject) = '' THEN RETURN
  843. f_SetProfileString (sys_empid,DW_1.DataObject, "MARGIN_TOP", String(DW_1.Object.DataWindow.Print.MARGIN.Top))
  844. f_SetProfileString (sys_empid,DW_1.DataObject, "MARGIN_LEFT", String(DW_1.Object.DataWindow.Print.MARGIN.Left))
  845. f_SetProfileString (sys_empid,DW_1.DataObject, "MARGIN_BOTTOM", String(DW_1.Object.DataWindow.Print.MARGIN.BOTTOM))
  846. f_SetProfileString (sys_empid,DW_1.DataObject, "MARGIN_RIGHT", String(DW_1.Object.DataWindow.Print.MARGIN.Right))
  847. end event
  848. type cb_psetup from uo_imflatbutton within w_rp_tj
  849. integer x = 1449
  850. integer width = 256
  851. integer height = 164
  852. integer taborder = 80
  853. string text = "页面设置"
  854. string normalpicname = "PRINTFLD.BMP"
  855. integer picsize = 16
  856. toolbaralignment pic_align = alignattop!
  857. boolean border = false
  858. end type
  859. event clicked;call super::clicked;s_print_value s_print
  860. s_print.obj_dw = DW_1
  861. s_print.dft_printername = ''
  862. OpenWithParm(w_sys_printpage_value,s_print)
  863. end event
  864. type cb_1 from uo_imflatbutton within w_rp_tj
  865. integer width = 165
  866. integer height = 164
  867. integer taborder = 40
  868. string text = "统计"
  869. string normalpicname = "refresh.bmp"
  870. integer picsize = 16
  871. toolbaralignment pic_align = alignattop!
  872. boolean border = false
  873. end type
  874. event clicked;call super::clicked;Int i,uc_row
  875. String t_star,t_end
  876. IF rp_rpid <= 0 THEN RETURN
  877. t_star = "'" + String(Date(em_1.Text)) + " 00:00:00'"
  878. t_end = "'" + String(Date(em_2.Text )) + " 23:59:59'"
  879. IF IsNull(t_star) Or IsNull(t_end) THEN
  880. MessageBox("Error","请,设置统计开始和结束日期")
  881. RETURN 0
  882. END IF
  883. f_bulid_rp(rp_dw_row)
  884. String s_Rowformula1,s_Rowformula2
  885. Integer ll_i
  886. ////////// //先算sql
  887. FOR ll_i = 1 To dw_1.RowCount()
  888. IF rp_rptype = 0 THEN //单列
  889. s_Rowformula1 = ""
  890. s_Rowformula2 = ""
  891. SELECT Rowformula1,Rowformula2 Into :s_Rowformula1,:s_Rowformula2 From u_rp_rowdef Where rpid = :rp_rpid And rowcmpltype = 0 And rowcode = :ll_i ;
  892. IF IsNull(s_Rowformula1) THEN s_Rowformula1 = ""
  893. IF IsNull(s_Rowformula2) THEN s_Rowformula2 = ""
  894. IF s_Rowformula1 <> "" THEN dw_1.Object.Amt_l1[ll_i] = of_sqlstring(s_Rowformula1,t_star,t_end)
  895. IF s_Rowformula2 <> "" THEN dw_1.Object.Amt_l2[ll_i] = of_sqlstring(s_Rowformula2,t_star,t_end)
  896. ELSEIF rp_rptype = 1 THEN //双列
  897. s_Rowformula1 = ""
  898. s_Rowformula2 = ""
  899. SELECT Rowformula1,Rowformula2 Into :s_Rowformula1,:s_Rowformula2 From u_rp_rowdef Where rpid = :rp_rpid And rowcmpltype = 0 And rowcode = :ll_i ;
  900. IF IsNull(s_Rowformula1) THEN s_Rowformula1 = ""
  901. IF IsNull(s_Rowformula2) THEN s_Rowformula2 = ""
  902. IF s_Rowformula1 <> "" THEN dw_1.Object.Amt_l1[ll_i] = of_sqlstring(s_Rowformula1,t_star,t_end)
  903. IF s_Rowformula2 <> "" THEN dw_1.Object.Amt_l2[ll_i] = of_sqlstring(s_Rowformula2,t_star,t_end)
  904. s_Rowformula1 = ""
  905. s_Rowformula2 = ""
  906. SELECT Rowformula1,Rowformula2 Into :s_Rowformula1,:s_Rowformula2 From u_rp_rowdef Where rpid = :rp_rpid And rowcmpltype = 1 And rowcode = :ll_i ;
  907. IF IsNull(s_Rowformula1) THEN s_Rowformula1 = ""
  908. IF IsNull(s_Rowformula2) THEN s_Rowformula2 = ""
  909. IF s_Rowformula1 <> "" THEN dw_1.Object.Amt_r1[ll_i] = of_sqlstring(s_Rowformula1,t_star,t_end)
  910. IF s_Rowformula2 <> "" THEN dw_1.Object.Amt_r2[ll_i] = of_sqlstring(s_Rowformula2,t_star,t_end)
  911. END IF
  912. NEXT
  913. //////// //
  914. FOR i = 1 To 10
  915. dw_1.AcceptText()
  916. FOR ll_i = 1 To dw_1.RowCount()
  917. IF ll_i = 2 THEN
  918. ll_i = 2
  919. END IF
  920. IF rp_rptype = 0 THEN //单列
  921. s_Rowformula1 = ""
  922. s_Rowformula2 = ""
  923. SELECT Rowformula1,Rowformula2 Into :s_Rowformula1,:s_Rowformula2 From u_rp_rowdef Where rpid = :rp_rpid And rowcmpltype = 0 And rowcode = :ll_i ;
  924. IF IsNull(s_Rowformula1) THEN s_Rowformula1 = ""
  925. IF IsNull(s_Rowformula2) THEN s_Rowformula2 = ""
  926. //
  927. IF Pos(s_Rowformula1,"[") > 0 And Pos(s_Rowformula1,"]") > 0 THEN
  928. IF Pos(s_Rowformula1,":") > 0 THEN s_Rowformula1 = f_sss(s_Rowformula1)
  929. IF IsNull(dw_1.Object.Amt_l1[ll_i]) = True Or dw_1.Object.Amt_l1[ll_i] = 0 THEN
  930. IF f_rp_excute(f_ss(s_Rowformula1,"amt_l1")) <> "error" THEN
  931. dw_1.Object.Amt_l1[ll_i] = Dec(f_rp_excute(f_ss(s_Rowformula1,"amt_l1")))
  932. END IF
  933. END IF
  934. ELSE
  935. IF IsNull(dw_1.Object.Amt_l1[ll_i]) = True THEN
  936. dw_1.Object.Amt_l1[ll_i] = Dec(of_sqlstring(s_Rowformula1,t_star,t_end))
  937. END IF
  938. END IF
  939. //
  940. //
  941. IF Pos(s_Rowformula2,"[") > 0 And Pos(s_Rowformula2,"]") > 0 THEN
  942. IF Pos(s_Rowformula2,":") > 0 THEN s_Rowformula2 = f_sss(s_Rowformula2)
  943. IF IsNull(dw_1.Object.Amt_l2[ll_i]) = True Or dw_1.Object.Amt_l2[ll_i] = 0 THEN
  944. IF f_rp_excute(f_ss(s_Rowformula2,"amt_l2")) <> "error" THEN
  945. dw_1.Object.Amt_l2[ll_i] = Dec(f_rp_excute(f_ss(s_Rowformula2,"amt_l2")))
  946. END IF
  947. END IF
  948. ELSE
  949. IF IsNull(dw_1.Object.Amt_l2[ll_i]) = True THEN
  950. dw_1.Object.Amt_l2[ll_i] = of_sqlstring(s_Rowformula2,t_star,t_end)
  951. END IF
  952. END IF
  953. //
  954. ELSEIF rp_rptype = 1 THEN //双列
  955. s_Rowformula1 = ""
  956. s_Rowformula2 = ""
  957. SELECT Rowformula1,Rowformula2 Into :s_Rowformula1,:s_Rowformula2 From u_rp_rowdef Where rpid = :rp_rpid And rowcmpltype = 0 And rowcode = :ll_i ;
  958. IF IsNull(s_Rowformula1) THEN s_Rowformula1 = ""
  959. IF IsNull(s_Rowformula2) THEN s_Rowformula2 = ""
  960. //
  961. IF Pos(s_Rowformula1,"[") > 0 And Pos(s_Rowformula1,"]") > 0 THEN
  962. IF Pos(s_Rowformula1,":") > 0 THEN s_Rowformula1 = f_sss(s_Rowformula1)
  963. IF dw_1.Object.Amt_l1[ll_i] = 0 THEN
  964. IF ll_i = 17 THEN
  965. ll_i = 17
  966. END IF
  967. IF f_rp_excute(f_ss(s_Rowformula1,"amt_l1")) <> "error" THEN
  968. dw_1.Object.Amt_l1[ll_i] = Dec(f_rp_excute(f_ss(s_Rowformula1,"amt_l1")))
  969. END IF
  970. END IF
  971. ELSE
  972. IF IsNull(dw_1.Object.Amt_l1[ll_i]) = True THEN
  973. dw_1.Object.Amt_l1[ll_i] = Dec(of_sqlstring(s_Rowformula1,t_star,t_end))
  974. END IF
  975. END IF
  976. //
  977. //
  978. IF Pos(s_Rowformula2,"[") > 0 And Pos(s_Rowformula2,"]") > 0 THEN
  979. IF Pos(s_Rowformula2,":") > 0 THEN s_Rowformula2 = f_sss(s_Rowformula2)
  980. IF dw_1.Object.Amt_l2[ll_i] = 0 THEN
  981. IF f_rp_excute(f_ss(s_Rowformula2,"amt_l2")) <> "error" THEN
  982. dw_1.Object.Amt_l2[ll_i] = Dec(f_rp_excute(f_ss(s_Rowformula2,"amt_l2")))
  983. END IF
  984. END IF
  985. ELSE
  986. IF IsNull(dw_1.Object.Amt_l2[ll_i]) = True THEN
  987. dw_1.Object.Amt_l2[ll_i] = Dec(of_sqlstring(s_Rowformula2,t_star,t_end))
  988. END IF
  989. END IF
  990. //
  991. s_Rowformula1 = ""
  992. s_Rowformula2 = ""
  993. SELECT Rowformula1,Rowformula2 Into :s_Rowformula1,:s_Rowformula2 From u_rp_rowdef Where rpid = :rp_rpid And rowcmpltype = 1 And rowcode = :ll_i ;
  994. IF IsNull(s_Rowformula1) THEN s_Rowformula1 = ""
  995. IF IsNull(s_Rowformula2) THEN s_Rowformula2 = ""
  996. //
  997. IF Pos(s_Rowformula1,"[") > 0 And Pos(s_Rowformula1,"]") > 0 THEN
  998. IF Pos(s_Rowformula1,":") > 0 THEN s_Rowformula1 = f_sss(s_Rowformula1)
  999. IF dw_1.Object.Amt_r1[ll_i] = 0 THEN
  1000. IF f_rp_excute(f_ss(s_Rowformula1,"amt_r1")) <> "error" THEN
  1001. dw_1.Object.Amt_r1[ll_i] = Dec(f_rp_excute(f_ss(s_Rowformula1,"amt_r1")))
  1002. END IF
  1003. END IF
  1004. ELSE
  1005. IF IsNull(dw_1.Object.Amt_r1[ll_i]) = True THEN
  1006. dw_1.Object.Amt_r1[ll_i] = Dec(of_sqlstring(s_Rowformula1,t_star,t_end))
  1007. END IF
  1008. END IF
  1009. //
  1010. //
  1011. IF Pos(s_Rowformula2,"[") > 0 And Pos(s_Rowformula2,"]") > 0 THEN
  1012. IF Pos(s_Rowformula2,":") > 0 THEN s_Rowformula2 = f_sss(s_Rowformula2)
  1013. IF dw_1.Object.Amt_r2[ll_i] = 0 THEN
  1014. IF f_rp_excute(f_ss(s_Rowformula2,"amt_r2")) <> "error" THEN
  1015. dw_1.Object.Amt_r2[ll_i] = Dec(f_rp_excute(f_ss(s_Rowformula2,"amt_r2")))
  1016. END IF
  1017. END IF
  1018. ELSE
  1019. IF IsNull(dw_1.Object.Amt_r2[ll_i]) = True THEN
  1020. dw_1.Object.Amt_r2[ll_i] = Dec( of_sqlstring(s_Rowformula2,t_star,t_end))
  1021. END IF
  1022. END IF
  1023. //
  1024. END IF
  1025. NEXT
  1026. NEXT
  1027. dw_1.Object.dt_ar.Text = "日期范围: "+em_1.Text+" 到 "+em_2.Text
  1028. dw_1.Object.t_company.Text = "编制单位:" + sys_message_username
  1029. dw_1.Object.t_2.Text = "制表人:" + publ_operator
  1030. end event
  1031. type st_3 from statictext within w_rp_tj
  1032. integer x = 18
  1033. integer y = 208
  1034. integer width = 201
  1035. integer height = 60
  1036. boolean bringtotop = true
  1037. integer textsize = -9
  1038. integer weight = 400
  1039. fontcharset fontcharset = gb2312charset!
  1040. fontpitch fontpitch = variable!
  1041. string facename = "宋体"
  1042. long textcolor = 33554432
  1043. long backcolor = 134217739
  1044. boolean enabled = false
  1045. string text = "日期从:"
  1046. alignment alignment = right!
  1047. boolean focusrectangle = false
  1048. end type
  1049. type st_4 from statictext within w_rp_tj
  1050. integer x = 727
  1051. integer y = 208
  1052. integer width = 105
  1053. integer height = 60
  1054. boolean bringtotop = true
  1055. integer textsize = -9
  1056. integer weight = 400
  1057. fontcharset fontcharset = gb2312charset!
  1058. fontpitch fontpitch = variable!
  1059. string facename = "宋体"
  1060. long textcolor = 33554432
  1061. long backcolor = 134217739
  1062. boolean enabled = false
  1063. string text = "到:"
  1064. alignment alignment = right!
  1065. boolean focusrectangle = false
  1066. end type
  1067. type em_1 from editmask within w_rp_tj
  1068. integer x = 219
  1069. integer y = 192
  1070. integer width = 407
  1071. integer height = 88
  1072. integer taborder = 100
  1073. boolean bringtotop = true
  1074. integer textsize = -9
  1075. integer weight = 400
  1076. fontcharset fontcharset = gb2312charset!
  1077. fontpitch fontpitch = variable!
  1078. string facename = "宋体"
  1079. long textcolor = 33554432
  1080. borderstyle borderstyle = stylelowered!
  1081. maskdatatype maskdatatype = datemask!
  1082. string mask = "yyyy-mm-dd"
  1083. boolean spin = true
  1084. end type
  1085. event rbuttondown;s_calender_arg s_calender
  1086. s_calender.PointerX = THIS.PointerX()
  1087. s_calender.PointerY = THIS.PointerY()
  1088. s_calender.X = THIS.X
  1089. s_calender.Y = THIS.Y
  1090. OpenWithParm(w_calendar,s_calender)
  1091. THIS.Text = String(id_date_selected)
  1092. end event
  1093. type em_2 from editmask within w_rp_tj
  1094. event ue_enchange pbm_enchange
  1095. integer x = 832
  1096. integer y = 192
  1097. integer width = 407
  1098. integer height = 88
  1099. integer taborder = 110
  1100. boolean bringtotop = true
  1101. integer textsize = -9
  1102. integer weight = 400
  1103. fontcharset fontcharset = gb2312charset!
  1104. fontpitch fontpitch = variable!
  1105. string facename = "宋体"
  1106. long textcolor = 33554432
  1107. borderstyle borderstyle = stylelowered!
  1108. maskdatatype maskdatatype = datemask!
  1109. string mask = "yyyy-mm-dd"
  1110. boolean spin = true
  1111. end type
  1112. event ue_enchange;Integer li_year,li_month,li_day
  1113. Date ld_lastday
  1114. String s_str,s1_str
  1115. IF IsDate(This.Text) = False THEN
  1116. s1_str = Right(This.Text,1)
  1117. s1_str = String(Long(s1_str) - 3)
  1118. s_str= Left(This.Text,Len(This.Text) - 1) + s1_str
  1119. ld_lastday = Date(s_str)
  1120. li_year = Year(ld_lastday)
  1121. li_month = Month(ld_lastday) + 1 //下一个月
  1122. IF li_month > 12 THEN //跨年度
  1123. li_year = li_year + 1
  1124. END IF
  1125. li_month = Mod(li_month,12)
  1126. li_day = 1 //每个月都是从1号开始
  1127. ld_lastday = RelativeDate( Date(li_year, li_month, li_day), -1 )
  1128. This.Text = String(ld_lastday)
  1129. END IF
  1130. end event
  1131. event rbuttondown;s_calender_arg s_calender
  1132. s_calender.PointerX = THIS.PointerX()
  1133. s_calender.PointerY = THIS.PointerY()
  1134. s_calender.X = THIS.X
  1135. s_calender.Y = THIS.Y
  1136. OpenWithParm(w_calendar,s_calender)
  1137. THIS.Text = String(id_date_selected)
  1138. end event
  1139. type ddlb_yl from dropdownlistbox within w_rp_tj
  1140. integer x = 2281
  1141. integer y = 16
  1142. integer width = 261
  1143. integer height = 532
  1144. integer taborder = 60
  1145. integer textsize = -9
  1146. integer weight = 400
  1147. fontcharset fontcharset = gb2312charset!
  1148. fontpitch fontpitch = variable!
  1149. string facename = "宋体"
  1150. long textcolor = 33554432
  1151. boolean enabled = false
  1152. string text = "适当大小"
  1153. boolean vscrollbar = true
  1154. string item[] = {"100%","75%","50%","25%","200%","150%"}
  1155. borderstyle borderstyle = stylelowered!
  1156. end type
  1157. event selectionchanged;dw_1.Object.DataWindow.Print.Preview.Zoom = INTEGER(LEFT(TRIM(this.text),LEN(TRIM(this.text)) - 1))
  1158. dw_1.object.DataWindow.Print.Preview = 'yes'
  1159. end event
  1160. event constructor;if THIS.TotalItems ( )>=1 then THIS.SelectItem(1)
  1161. end event
  1162. type cbx_yl from checkbox within w_rp_tj
  1163. integer x = 2062
  1164. integer y = 20
  1165. integer width = 206
  1166. integer height = 76
  1167. integer taborder = 70
  1168. boolean bringtotop = true
  1169. integer textsize = -9
  1170. integer weight = 400
  1171. fontcharset fontcharset = gb2312charset!
  1172. fontpitch fontpitch = variable!
  1173. string facename = "宋体"
  1174. long textcolor = 33554432
  1175. long backcolor = 134217739
  1176. string text = "预览"
  1177. end type
  1178. event clicked;try
  1179. ddlb_yl.Enabled = THIS.Checked
  1180. IF THIS.Checked THEN
  1181. IF Lower(dw_1.Object.DataWindow.Print.Preview) = 'yes' THEN RETURN
  1182. dw_1.Object.DataWindow.Print.Preview = 'yes'
  1183. dw_1.Object.DataWindow.Print.Preview.Rulers = "yes"
  1184. ELSE
  1185. IF Lower(dw_1.Object.DataWindow.Print.Preview) = 'no' THEN RETURN
  1186. dw_1.Object.DataWindow.Print.Preview = 'NO'
  1187. END IF
  1188. catch(runtimeerror e)
  1189. end try
  1190. end event
  1191. event constructor;THIS.BackColor = 14215660
  1192. end event
  1193. type dw_1 from u_dw_rbtnfilter within w_rp_tj
  1194. integer x = 1257
  1195. integer y = 420
  1196. integer width = 2656
  1197. integer height = 1820
  1198. boolean bringtotop = true
  1199. string dataobject = "dw_open_rp"
  1200. boolean hscrollbar = true
  1201. boolean vscrollbar = true
  1202. boolean hsplitscroll = true
  1203. boolean rbutton_filter_use = true
  1204. boolean rbutton_setposition_use = true
  1205. boolean titleclick_sort_use = true
  1206. end type
  1207. event constructor;call super::constructor; titleclick_sort_use=true //单击标题排序功能开关
  1208. RBUTTON_FILTER_USE=true //右键查询功能开关
  1209. end event
  1210. event retrievestart;call super::retrievestart;cb_reol = cb_1.Enabled
  1211. cb_1.Enabled = FALSE
  1212. if_retrieveing = TRUE
  1213. cur_vspos = THIS.Describe("DataWindow.VerticalScrollPosition")
  1214. end event
  1215. event retrieveend;call super::retrieveend;cb_1.Enabled = cb_reol
  1216. if_retrieveing = FALSE
  1217. IF Dec(cur_vspos) > 0 THEN
  1218. THIS.Modify("DataWindow.VerticalScrollPosition="+cur_vspos)
  1219. END IF
  1220. end event
  1221. event doubleclicked;call super::doubleclicked;if if_mdf_title then
  1222. if LOWER(LEFT(dwo.type,4))='text' then
  1223. s_inputbox S_SREU
  1224. STRING LS_STR,column_name
  1225. S_SREU.TITLE='目前标题为: '+dwo.TEXT+' 。请输入新标题: '
  1226. S_SREU.OLD_TEXT=dwo.TEXT
  1227. column_name=DWO.NAME
  1228. openwithparm(w_inputbox,S_SREU)
  1229. LS_STR=Message.StringParm
  1230. if trim(LS_STR)<>'' AND dwo.TEXT<>LS_STR then
  1231. THIS.Modify(column_name+'.text="'+LS_STR+'"')
  1232. END IF
  1233. end if
  1234. end if
  1235. end event
  1236. event rowfocuschanged;call super::rowfocuschanged;IF currentrow > 0 THEN
  1237. THIS.SelectRow(0,FALSE)
  1238. THIS.SelectRow(currentrow,TRUE)
  1239. END IF
  1240. end event
  1241. event dwnkey;call super::dwnkey;PARENT.TRIGGEREVENT('USER_KEY')
  1242. end event
  1243. type sle_mtrl from singlelineedit within w_rp_tj
  1244. boolean visible = false
  1245. integer x = 1637
  1246. integer y = 308
  1247. integer width = 677
  1248. integer height = 84
  1249. integer taborder = 120
  1250. boolean bringtotop = true
  1251. integer textsize = -9
  1252. integer weight = 400
  1253. fontcharset fontcharset = gb2312charset!
  1254. fontpitch fontpitch = variable!
  1255. string facename = "宋体"
  1256. long textcolor = 33554432
  1257. borderstyle borderstyle = stylelowered!
  1258. end type
  1259. type sle_cust from singlelineedit within w_rp_tj
  1260. boolean visible = false
  1261. integer x = 475
  1262. integer y = 308
  1263. integer width = 677
  1264. integer height = 84
  1265. integer taborder = 130
  1266. boolean bringtotop = true
  1267. integer textsize = -9
  1268. integer weight = 400
  1269. fontcharset fontcharset = gb2312charset!
  1270. fontpitch fontpitch = variable!
  1271. string facename = "宋体"
  1272. long textcolor = 33554432
  1273. borderstyle borderstyle = stylelowered!
  1274. end type
  1275. type st_mtrl from statictext within w_rp_tj
  1276. boolean visible = false
  1277. integer x = 1179
  1278. integer y = 324
  1279. integer width = 453
  1280. integer height = 48
  1281. boolean bringtotop = true
  1282. integer textsize = -9
  1283. integer weight = 400
  1284. fontcharset fontcharset = gb2312charset!
  1285. fontpitch fontpitch = variable!
  1286. string facename = "宋体"
  1287. long textcolor = 33554432
  1288. long backcolor = 134217739
  1289. string text = "物料编码/名称含:"
  1290. alignment alignment = right!
  1291. boolean focusrectangle = false
  1292. end type
  1293. type st_cust from statictext within w_rp_tj
  1294. boolean visible = false
  1295. integer x = 14
  1296. integer y = 324
  1297. integer width = 453
  1298. integer height = 48
  1299. boolean bringtotop = true
  1300. integer textsize = -9
  1301. integer weight = 400
  1302. fontcharset fontcharset = gb2312charset!
  1303. fontpitch fontpitch = variable!
  1304. string facename = "宋体"
  1305. long textcolor = 33554432
  1306. long backcolor = 134217739
  1307. string text = "客户编号/名称含:"
  1308. boolean focusrectangle = false
  1309. end type
  1310. type cbx_loginretr from checkbox within w_rp_tj
  1311. string tag = "此项勾选时,报表打开自动按缺省条件刷新数据,但会耗费系统资源[建议不勾选]"
  1312. boolean visible = false
  1313. integer x = 1317
  1314. integer y = 104
  1315. integer width = 521
  1316. integer height = 60
  1317. boolean bringtotop = true
  1318. integer textsize = -9
  1319. integer weight = 400
  1320. fontcharset fontcharset = gb2312charset!
  1321. fontpitch fontpitch = variable!
  1322. string facename = "宋体"
  1323. long textcolor = 33554432
  1324. long backcolor = 134217739
  1325. string text = "报表打开自动刷新"
  1326. boolean checked = true
  1327. end type
  1328. event clicked;Long ll_loginretr
  1329. IF THIS.Checked THEN
  1330. ll_loginretr = 1
  1331. ELSE
  1332. ll_loginretr = 0
  1333. END IF
  1334. f_SetProfileString(sys_empid,DW_1.DataObject, "LOGIN_RETRIEVE", String(ll_loginretr))
  1335. end event
  1336. event constructor;THIS.BackColor = 14215660
  1337. Int ll_loginretr
  1338. ll_loginretr = Integer(f_ProfileString(sys_empid,DW_1.DataObject, "LOGIN_RETRIEVE", "1"))
  1339. IF ll_loginretr = 1 THEN
  1340. THIS.Checked = TRUE
  1341. ELSE
  1342. THIS.Checked = FALSE
  1343. END IF
  1344. end event
  1345. type pb_em1 from picturebutton within w_rp_tj
  1346. integer x = 635
  1347. integer y = 192
  1348. integer width = 101
  1349. integer height = 92
  1350. integer taborder = 120
  1351. boolean bringtotop = true
  1352. integer textsize = -9
  1353. integer weight = 400
  1354. fontcharset fontcharset = gb2312charset!
  1355. fontpitch fontpitch = variable!
  1356. string facename = "宋体"
  1357. string picturename = "date.BMP"
  1358. alignment htextalign = left!
  1359. end type
  1360. event clicked;em_1.triggerevent(rbuttondown!)
  1361. end event
  1362. type pb_em2 from picturebutton within w_rp_tj
  1363. integer x = 1248
  1364. integer y = 192
  1365. integer width = 101
  1366. integer height = 92
  1367. integer taborder = 110
  1368. boolean bringtotop = true
  1369. integer textsize = -9
  1370. integer weight = 400
  1371. fontcharset fontcharset = gb2312charset!
  1372. fontpitch fontpitch = variable!
  1373. string facename = "宋体"
  1374. string picturename = "date.BMP"
  1375. alignment htextalign = left!
  1376. end type
  1377. event clicked;em_2.triggerevent(rbuttondown!)
  1378. end event
  1379. type pb_2 from picturebutton within w_rp_tj
  1380. integer x = 1358
  1381. integer y = 192
  1382. integer width = 101
  1383. integer height = 92
  1384. integer taborder = 120
  1385. boolean bringtotop = true
  1386. integer textsize = -9
  1387. integer weight = 400
  1388. fontcharset fontcharset = gb2312charset!
  1389. fontpitch fontpitch = variable!
  1390. string facename = "宋体"
  1391. string picturename = "date1.BMP"
  1392. alignment htextalign = left!
  1393. end type
  1394. event clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  1395. string menustr
  1396. menustr="Text=本日~tEvent=ue_date1"
  1397. menustr = menustr + "|" + "Text=本周~tEvent=ue_date2"
  1398. menustr = menustr + "|" + "Text=本月~tEvent=ue_date3"
  1399. menustr = menustr + "|" + "Text=上月~tEvent=ue_date4"
  1400. if len(trim(menustr))<>0 then
  1401. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  1402. dmPopupMenu.mf_BuildMenu(This, menustr)
  1403. dmPopupMenu.mf_PopMenu()
  1404. Destroy dmPopupMenu
  1405. end if
  1406. end event
  1407. type cb_delete from uo_imflatbutton within w_rp_tj
  1408. integer x = 1061
  1409. integer width = 384
  1410. integer height = 164
  1411. integer taborder = 20
  1412. boolean bringtotop = true
  1413. string text = "删除历史报表"
  1414. string normalpicname = "delete.bmp"
  1415. integer picsize = 16
  1416. toolbaralignment pic_align = alignattop!
  1417. boolean border = false
  1418. end type
  1419. event clicked;call super::clicked;Long ll_row, ll_i,ll_billid
  1420. String arg_msg,ls_name
  1421. FOR ll_i = dw_3.RowCount() To 1 Step -1
  1422. IF dw_3.IsSelected(ll_i) THEN
  1423. ll_row = ll_i
  1424. END IF
  1425. NEXT
  1426. IF ll_row <= 0 THEN RETURN
  1427. ls_name=dw_3.Object.billname[ll_row]
  1428. IF MessageBox ("询问","是否确定要删除当前选择行吗,报表名称:" + ls_name,Question!,YesNo! ) = 2 THEN RETURN
  1429. ll_billid = dw_3.Object.billid[ll_row]
  1430. IF ll_billid <= 0 THEN RETURN
  1431. IF uo_this_rp.f_delete(ll_billid,arg_msg) = 1 THEN
  1432. MessageBox('成功','删除成功' )
  1433. dw_3.deleterow(ll_row)
  1434. ELSE
  1435. MessageBox('错误',arg_msg)
  1436. return
  1437. END IF
  1438. end event
  1439. type cb_copyself from uo_imflatbutton within w_rp_tj
  1440. integer x = 347
  1441. integer width = 256
  1442. integer height = 164
  1443. integer taborder = 30
  1444. boolean bringtotop = true
  1445. string text = "打开副本"
  1446. string normalpicname = "COPY.BMP"
  1447. integer picsize = 16
  1448. toolbaralignment pic_align = alignattop!
  1449. boolean border = false
  1450. end type
  1451. event clicked;call super::clicked;window lw_win
  1452. s_edit_index_tran s_rpinfo
  1453. s_rpinfo.if_sendout = if_power_sendout
  1454. s_rpinfo.if_print = if_power_print
  1455. OpenWithParm(lw_win,s_rpinfo,PARENT.ClassName())
  1456. lw_win.WindowState = Normal!
  1457. end event
  1458. type cb_save from uo_imflatbutton within w_rp_tj
  1459. integer x = 603
  1460. integer width = 256
  1461. integer height = 164
  1462. integer taborder = 40
  1463. boolean bringtotop = true
  1464. boolean enabled = false
  1465. string text = "保存"
  1466. string normalpicname = "save.BMP"
  1467. integer picsize = 16
  1468. toolbaralignment pic_align = alignattop!
  1469. boolean border = false
  1470. end type
  1471. event clicked;call super::clicked;Long i,ll_row,ll_row1,ll_row2,old_cusid
  1472. String arg_msg,ls_rpname
  1473. IF dw_1.RowCount() < 10 THEN RETURN
  1474. IF tab_1.SelectedTab=1 and rp_billid<>0 THEN
  1475. dw_2.selectrow(0,false)
  1476. dw_3.selectrow(0,false)
  1477. RETURN
  1478. end if
  1479. IF tab_1.SelectedTab=2 and rp_rpid<>0 THEN
  1480. dw_2.selectrow(0,false)
  1481. dw_3.selectrow(0,false)
  1482. RETURN
  1483. end if
  1484. if dw_edit_mode=true then
  1485. dw_1.AcceptText()
  1486. dw_3.AcceptText()
  1487. uo_this_rp.billid = rp_billid
  1488. uo_this_rp.rpid = rp_rpid
  1489. IF rp_billid = 0 THEN
  1490. ls_rpname = dw_1.Object.Title.Text
  1491. OpenWithParm(w_rp_name, ls_rpname)
  1492. IF Message.StringParm = 'cancel' THEN
  1493. MessageBox("提示","用户取消操作")
  1494. RETURN
  1495. END IF
  1496. uo_this_rp.billname = Message.StringParm
  1497. ELSE
  1498. uo_this_rp.billname = dw_3.Object.billname[ll_dw3_row]
  1499. END IF
  1500. IF rp_billid = 0 THEN
  1501. uo_this_rp.sdate = DateTime(Date(em_1.Text),Time(0))
  1502. uo_this_rp.edate = DateTime(Date(em_2.Text),Time(0))
  1503. ELSE
  1504. uo_this_rp.sdate = dw_3.Object.sdate[ll_dw3_row]
  1505. uo_this_rp.edate = dw_3.Object.edate[ll_dw3_row]
  1506. END IF
  1507. IF uo_this_rp.sdate > uo_this_rp.edate THEN
  1508. MessageBox("错误","开始日期大于结束日期")
  1509. RETURN
  1510. END IF
  1511. if isnull(uo_this_rp.sdate ) or isnull(uo_this_rp.edate ) then
  1512. MessageBox("错误","开始日期或结束日期设置不正确")
  1513. RETURN
  1514. end if
  1515. //////// //dw_1
  1516. IF dw_1.RowCount() > 0 THEN
  1517. FOR i = 1 To dw_1.RowCount()
  1518. IF uo_this_rp.acceptmx(&
  1519. i,&
  1520. dw_1.Object.colname_l[i],&
  1521. dw_1.Object.amt_l1[i],&
  1522. dw_1.Object.amt_l2[i],&
  1523. dw_1.Object.colname_r[i],&
  1524. dw_1.Object.amt_r1[i],&
  1525. dw_1.Object.amt_r2[i],&
  1526. arg_msg ) = 0 THEN //i 为printid
  1527. MessageBox('Error!',arg_msg)
  1528. RETURN
  1529. END IF
  1530. NEXT
  1531. END IF
  1532. IF uo_this_rp.Save(arg_msg) = 0 THEN
  1533. MessageBox('Error!',arg_msg)
  1534. RETURN
  1535. END IF
  1536. MessageBox(publ_operator,'保存操作成功!')
  1537. end if
  1538. dw_edit_mode= not dw_edit_mode
  1539. if rp_rpid<>0 then
  1540. dw_3.retrieve(rp_rpid)
  1541. end if
  1542. wf_lock_child()
  1543. end event
  1544. type cb_3 from uo_imflatbutton within w_rp_tj
  1545. integer x = 864
  1546. integer width = 192
  1547. integer height = 164
  1548. integer taborder = 200
  1549. boolean bringtotop = true
  1550. string text = "修改&E"
  1551. string normalpicname = "open.bmp"
  1552. integer picsize = 16
  1553. toolbaralignment pic_align = alignattop!
  1554. boolean border = false
  1555. end type
  1556. event clicked;call super::clicked;IF tab_1.SelectedTab=1 and rp_billid<>0 THEN
  1557. dw_2.selectrow(0,false)
  1558. dw_3.selectrow(0,false)
  1559. RETURN
  1560. end if
  1561. IF tab_1.SelectedTab=2 and rp_rpid<>0 THEN
  1562. dw_2.selectrow(0,false)
  1563. dw_3.selectrow(0,false)
  1564. RETURN
  1565. end if
  1566. dw_edit_mode= not dw_edit_mode
  1567. wf_lock_child()
  1568. end event
  1569. type tab_1 from tab within w_rp_tj
  1570. integer x = 5
  1571. integer y = 324
  1572. integer width = 1248
  1573. integer height = 1940
  1574. integer taborder = 90
  1575. boolean bringtotop = true
  1576. integer textsize = -9
  1577. integer weight = 700
  1578. fontcharset fontcharset = gb2312charset!
  1579. fontpitch fontpitch = variable!
  1580. string facename = "宋体"
  1581. long backcolor = 134217739
  1582. boolean raggedright = true
  1583. boolean focusonbuttondown = true
  1584. integer selectedtab = 1
  1585. tabpage_1 tabpage_1
  1586. tabpage_2 tabpage_2
  1587. end type
  1588. on tab_1.create
  1589. this.tabpage_1=create tabpage_1
  1590. this.tabpage_2=create tabpage_2
  1591. this.Control[]={this.tabpage_1,&
  1592. this.tabpage_2}
  1593. end on
  1594. on tab_1.destroy
  1595. destroy(this.tabpage_1)
  1596. destroy(this.tabpage_2)
  1597. end on
  1598. type tabpage_1 from userobject within tab_1
  1599. integer x = 18
  1600. integer y = 96
  1601. integer width = 1211
  1602. integer height = 1828
  1603. long backcolor = 134217739
  1604. string text = "即时报表"
  1605. long tabtextcolor = 33554432
  1606. long tabbackcolor = 134217739
  1607. long picturemaskcolor = 536870912
  1608. dw_2 dw_2
  1609. end type
  1610. on tabpage_1.create
  1611. this.dw_2=create dw_2
  1612. this.Control[]={this.dw_2}
  1613. end on
  1614. on tabpage_1.destroy
  1615. destroy(this.dw_2)
  1616. end on
  1617. type dw_2 from u_dw_rbtnfilter within tabpage_1
  1618. integer x = 14
  1619. integer y = 12
  1620. integer width = 1198
  1621. integer height = 1812
  1622. integer taborder = 40
  1623. boolean bringtotop = true
  1624. string dataobject = "dw_rpdef"
  1625. boolean hscrollbar = true
  1626. boolean vscrollbar = true
  1627. boolean hsplitscroll = true
  1628. boolean rbutton_filter_use = true
  1629. boolean rbutton_setposition_use = true
  1630. boolean titleclick_sort_use = true
  1631. end type
  1632. event clicked;call super::clicked;IF row <= 0 THEN RETURN
  1633. This.SelectRow(0,False)
  1634. This.SelectRow(row,True)
  1635. rp_dw_row=row
  1636. f_bulid_rp(rp_dw_row)
  1637. rp_billid=0
  1638. dw_3.retrieve(rp_rpid)
  1639. Int LS_INT
  1640. //FOR LS_INT = 1 To 20
  1641. // dw_1.SetTabOrder (LS_INT,0 )
  1642. //NEXT
  1643. end event
  1644. type tabpage_2 from userobject within tab_1
  1645. integer x = 18
  1646. integer y = 96
  1647. integer width = 1211
  1648. integer height = 1828
  1649. long backcolor = 134217739
  1650. string text = "历史报表"
  1651. long tabtextcolor = 33554432
  1652. long tabbackcolor = 134217739
  1653. long picturemaskcolor = 536870912
  1654. dw_3 dw_3
  1655. end type
  1656. on tabpage_2.create
  1657. this.dw_3=create dw_3
  1658. this.Control[]={this.dw_3}
  1659. end on
  1660. on tabpage_2.destroy
  1661. destroy(this.dw_3)
  1662. end on
  1663. type dw_3 from u_dw_rbtnfilter within tabpage_2
  1664. integer y = 12
  1665. integer width = 1211
  1666. integer height = 1812
  1667. integer taborder = 50
  1668. boolean bringtotop = true
  1669. string dataobject = "dw_sp_rp"
  1670. boolean hscrollbar = true
  1671. boolean vscrollbar = true
  1672. boolean hsplitscroll = true
  1673. boolean rbutton_filter_use = true
  1674. boolean rbutton_setposition_use = true
  1675. boolean titleclick_sort_use = true
  1676. end type
  1677. event clicked;call super::clicked;IF row <= 0 THEN RETURN
  1678. This.SelectRow(0,False)
  1679. This.SelectRow(row,True)
  1680. ll_dw3_row=row
  1681. rp_billid=long(dw_3.object.billid[row])
  1682. rp_rpid=0
  1683. f_bulid_rp_history(rp_billid)
  1684. //FOR LS_INT = 1 To 20
  1685. // dw_1.SetTabOrder (LS_INT,0 )
  1686. //NEXT
  1687. end event
  1688. type gb_1 from groupbox within w_rp_tj
  1689. boolean visible = false
  1690. integer x = 357
  1691. integer y = 524
  1692. integer width = 1125
  1693. integer height = 148
  1694. integer taborder = 80
  1695. integer textsize = -9
  1696. integer weight = 400
  1697. fontcharset fontcharset = gb2312charset!
  1698. fontpitch fontpitch = variable!
  1699. string facename = "宋体"
  1700. long textcolor = 33554432
  1701. long backcolor = 15793151
  1702. end type
  1703. type ln_bar from line within w_rp_tj
  1704. long linecolor = 268435456
  1705. integer linethickness = 4
  1706. integer beginy = 172
  1707. integer endx = 2007
  1708. integer endy = 172
  1709. end type
  1710. type ln_bar2 from line within w_rp_tj
  1711. long linecolor = 16777215
  1712. integer linethickness = 4
  1713. integer beginy = 176
  1714. integer endx = 2039
  1715. integer endy = 176
  1716. end type
  1717. type r_bar from rectangle within w_rp_tj
  1718. long linecolor = 16777215
  1719. integer linethickness = 4
  1720. long fillcolor = 1073741824
  1721. integer x = 2382
  1722. integer width = 146
  1723. integer height = 68
  1724. end type
  1725. event constructor;this.fillcolor = 14215660
  1726. this.linecolor = 14215660
  1727. this.x = -1
  1728. this.y = -1
  1729. this.height = ln_bar.beginy - 5
  1730. end event
  1731. type ln_1 from line within w_rp_tj
  1732. long linecolor = 268435456
  1733. integer linethickness = 4
  1734. integer beginy = 292
  1735. integer endx = 2016
  1736. integer endy = 292
  1737. end type
  1738. type ln_2 from line within w_rp_tj
  1739. long linecolor = 16777215
  1740. integer linethickness = 4
  1741. integer beginy = 296
  1742. integer endx = 2048
  1743. integer endy = 296
  1744. end type
  1745. type ln_3 from line within w_rp_tj
  1746. long linecolor = 268435456
  1747. integer linethickness = 4
  1748. integer beginy = 404
  1749. integer endx = 2016
  1750. integer endy = 404
  1751. end type
  1752. type ln_4 from line within w_rp_tj
  1753. long linecolor = 16777215
  1754. integer linethickness = 4
  1755. integer beginy = 408
  1756. integer endx = 2048
  1757. integer endy = 408
  1758. end type