w_email_sendmx_new_gj.srw 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401
  1. $PBExportHeader$w_email_sendmx_new_gj.srw
  2. forward
  3. global type w_email_sendmx_new_gj from w_publ_base
  4. end type
  5. type cb_add from uo_imflatbutton within w_email_sendmx_new_gj
  6. end type
  7. type cb_del from uo_imflatbutton within w_email_sendmx_new_gj
  8. end type
  9. type dw_revlist from u_dw_rbtnfilter within w_email_sendmx_new_gj
  10. end type
  11. type cb_ok from uo_imflatbutton within w_email_sendmx_new_gj
  12. end type
  13. type cb_cancel from uo_imflatbutton within w_email_sendmx_new_gj
  14. end type
  15. type tv_1 from treeview within w_email_sendmx_new_gj
  16. end type
  17. type sle_1 from singlelineedit within w_email_sendmx_new_gj
  18. end type
  19. type sle_2 from singlelineedit within w_email_sendmx_new_gj
  20. end type
  21. type lv_1 from listview within w_email_sendmx_new_gj
  22. end type
  23. type cb_find from uo_imflatbutton within w_email_sendmx_new_gj
  24. end type
  25. type cb_3 from uo_imflatbutton within w_email_sendmx_new_gj
  26. end type
  27. type cb_1 from uo_imflatbutton within w_email_sendmx_new_gj
  28. end type
  29. type dw_1 from u_dw_rbtnfilter within w_email_sendmx_new_gj
  30. end type
  31. type cbx_1 from checkbox within w_email_sendmx_new_gj
  32. end type
  33. type cbx_2 from checkbox within w_email_sendmx_new_gj
  34. end type
  35. type ln_bar from line within w_email_sendmx_new_gj
  36. end type
  37. type ln_bar2 from line within w_email_sendmx_new_gj
  38. end type
  39. end forward
  40. global type w_email_sendmx_new_gj from w_publ_base
  41. integer width = 4037
  42. integer height = 2144
  43. string title = "选择收件人"
  44. boolean minbox = false
  45. windowtype windowtype = response!
  46. event ue_add_mail ( )
  47. cb_add cb_add
  48. cb_del cb_del
  49. dw_revlist dw_revlist
  50. cb_ok cb_ok
  51. cb_cancel cb_cancel
  52. tv_1 tv_1
  53. sle_1 sle_1
  54. sle_2 sle_2
  55. lv_1 lv_1
  56. cb_find cb_find
  57. cb_3 cb_3
  58. cb_1 cb_1
  59. dw_1 dw_1
  60. cbx_1 cbx_1
  61. cbx_2 cbx_2
  62. ln_bar ln_bar
  63. ln_bar2 ln_bar2
  64. end type
  65. global w_email_sendmx_new_gj w_email_sendmx_new_gj
  66. type variables
  67. long il_tv_handle
  68. long ll_lastrow = 0
  69. s_email_sendmx_search s_sendmx
  70. end variables
  71. forward prototypes
  72. public function boolean wf_cansee_cusarea (long arg_cusareaid)
  73. public function boolean wf_cansee_spttype (long arg_spttypeid)
  74. public function boolean wf_cusarea_haschild (long cusareaid)
  75. public function boolean wf_cus_haschild (long cusid)
  76. public function boolean wf_spttype_haschild (long spttypeid)
  77. public function boolean wf_spt_haschild (long sptid)
  78. end prototypes
  79. event ue_add_mail();long ll_row
  80. if trim(sle_2.text) = '' then return
  81. if dw_revlist.Find('revaddress=~'' + trim(sle_2.text) + '~'', 1, dw_revlist.RowCount()) = 0 then
  82. ll_row = dw_revlist.insertrow(0)
  83. dw_revlist.object.sendid[ll_row] = 0
  84. dw_revlist.object.printid[ll_row] = 0
  85. dw_revlist.object.reltype[ll_row] = 3
  86. dw_revlist.object.relid[ll_row] = 0
  87. dw_revlist.object.revaddress[ll_row] = trim(sle_2.text)
  88. dw_revlist.object.revname[ll_row] = trim(sle_2.text)
  89. dw_revlist.object.dscrp[ll_row] = ''
  90. else
  91. MessageBox('提示', sle_2.text + '已存在!')
  92. end if
  93. end event
  94. public function boolean wf_cansee_cusarea (long arg_cusareaid);long i
  95. for i = lowerbound(sys_areaid) to upperbound(sys_areaid)
  96. if arg_cusareaid = sys_areaid[i] then
  97. return true
  98. end if
  99. next
  100. return false
  101. end function
  102. public function boolean wf_cansee_spttype (long arg_spttypeid);long i
  103. for i = lowerbound(sys_user_spttype) to upperbound(sys_user_spttype)
  104. if arg_spttypeid = sys_user_spttype[i] then
  105. return true
  106. end if
  107. next
  108. return false
  109. end function
  110. public function boolean wf_cusarea_haschild (long cusareaid);boolean rslt = false
  111. long ll_cusareaid
  112. declare cursor1 cursor for
  113. select cusareaid
  114. from u_cusarea
  115. where parentid = :cusareaid;
  116. open cursor1;
  117. fetch cursor1 INTO :ll_cusareaid;
  118. do while sqlca.sqlcode = 0
  119. if not wf_cansee_cusarea(ll_cusareaid) then goto ext1
  120. rslt = true
  121. goto ext2
  122. ext1:
  123. fetch cursor1 INTO :ll_cusareaid;
  124. loop
  125. ext2:
  126. close cursor1;
  127. if rslt then goto ext
  128. long ll_cusid
  129. string ls_mailname, ls_mailaddress
  130. declare cursor2 cursor for
  131. SELECT cusid AS relid, cuscode AS mailname, email AS mailaddress
  132. FROM u_cust
  133. WHERE (inuse = 1) AND (cusareaid = :cusareaid);
  134. open cursor2;
  135. fetch cursor2 INTO :ll_cusid, :ls_mailname, :ls_mailaddress;
  136. do while sqlca.sqlcode = 0
  137. if trim(ls_mailaddress) <> '' then
  138. rslt = true
  139. exit
  140. else
  141. if wf_cus_haschild(ll_cusid) then
  142. rslt = true
  143. exit
  144. end if
  145. end if
  146. fetch cursor2 INTO :ll_cusid, :ls_mailname, :ls_mailaddress;
  147. loop
  148. close cursor2;
  149. ext:
  150. return rslt
  151. end function
  152. public function boolean wf_cus_haschild (long cusid);boolean rslt = false
  153. long ll_count = 0
  154. SELECT count(0) INTO :ll_count
  155. FROM u_cust_rep
  156. WHERE (cusid = :cusid) and RTRIM(LTRIM(email)) <> '';
  157. if ll_count > 0 then
  158. rslt = true
  159. end if
  160. return rslt
  161. end function
  162. public function boolean wf_spttype_haschild (long spttypeid);return false
  163. end function
  164. public function boolean wf_spt_haschild (long sptid);boolean rslt = false
  165. long ll_count = 0
  166. SELECT count(0) INTO :ll_count
  167. FROM u_spt_rep
  168. WHERE (sptid = :sptid)
  169. and RTRIM(LTRIM(u_spt_rep.email)) <> '';
  170. if ll_count > 0 then rslt = true
  171. return rslt
  172. end function
  173. on w_email_sendmx_new_gj.create
  174. int iCurrent
  175. call super::create
  176. this.cb_add=create cb_add
  177. this.cb_del=create cb_del
  178. this.dw_revlist=create dw_revlist
  179. this.cb_ok=create cb_ok
  180. this.cb_cancel=create cb_cancel
  181. this.tv_1=create tv_1
  182. this.sle_1=create sle_1
  183. this.sle_2=create sle_2
  184. this.lv_1=create lv_1
  185. this.cb_find=create cb_find
  186. this.cb_3=create cb_3
  187. this.cb_1=create cb_1
  188. this.dw_1=create dw_1
  189. this.cbx_1=create cbx_1
  190. this.cbx_2=create cbx_2
  191. this.ln_bar=create ln_bar
  192. this.ln_bar2=create ln_bar2
  193. iCurrent=UpperBound(this.Control)
  194. this.Control[iCurrent+1]=this.cb_add
  195. this.Control[iCurrent+2]=this.cb_del
  196. this.Control[iCurrent+3]=this.dw_revlist
  197. this.Control[iCurrent+4]=this.cb_ok
  198. this.Control[iCurrent+5]=this.cb_cancel
  199. this.Control[iCurrent+6]=this.tv_1
  200. this.Control[iCurrent+7]=this.sle_1
  201. this.Control[iCurrent+8]=this.sle_2
  202. this.Control[iCurrent+9]=this.lv_1
  203. this.Control[iCurrent+10]=this.cb_find
  204. this.Control[iCurrent+11]=this.cb_3
  205. this.Control[iCurrent+12]=this.cb_1
  206. this.Control[iCurrent+13]=this.dw_1
  207. this.Control[iCurrent+14]=this.cbx_1
  208. this.Control[iCurrent+15]=this.cbx_2
  209. this.Control[iCurrent+16]=this.ln_bar
  210. this.Control[iCurrent+17]=this.ln_bar2
  211. end on
  212. on w_email_sendmx_new_gj.destroy
  213. call super::destroy
  214. destroy(this.cb_add)
  215. destroy(this.cb_del)
  216. destroy(this.dw_revlist)
  217. destroy(this.cb_ok)
  218. destroy(this.cb_cancel)
  219. destroy(this.tv_1)
  220. destroy(this.sle_1)
  221. destroy(this.sle_2)
  222. destroy(this.lv_1)
  223. destroy(this.cb_find)
  224. destroy(this.cb_3)
  225. destroy(this.cb_1)
  226. destroy(this.dw_1)
  227. destroy(this.cbx_1)
  228. destroy(this.cbx_2)
  229. destroy(this.ln_bar)
  230. destroy(this.ln_bar2)
  231. end on
  232. event open;call super::open;s_email_sendmx_search s_sendmxx
  233. long i, ll_row
  234. s_sendmxx = Message.PowerObjectParm
  235. for i = 1 to upperbound(s_sendmxx.ss_email_sendmx.sendmx)
  236. ll_row = dw_revlist.InsertRow(0)
  237. dw_revlist.Object.sendid[ll_row] = 0
  238. dw_revlist.Object.printid[ll_row] = ll_row
  239. dw_revlist.Object.reltype[ll_row] = s_sendmxx.ss_email_sendmx.sendmx[i].reltype
  240. dw_revlist.Object.relid[ll_row] = s_sendmxx.ss_email_sendmx.sendmx[i].relid
  241. dw_revlist.Object.revaddress[ll_row] = s_sendmxx.ss_email_sendmx.sendmx[i].revaddress
  242. dw_revlist.Object.revname[ll_row] = s_sendmxx.ss_email_sendmx.sendmx[i].revname
  243. next
  244. sle_1.text=s_sendmxx.s_search
  245. cb_1.TriggerEvent('clicked')
  246. end event
  247. event resize;call super::resize;ln_bar.endx = this.width
  248. ln_bar2.endx = this.width
  249. end event
  250. event close;call super::close;//s_email_sendmx_search s_sendmx
  251. //long i
  252. //FOR i = 1 TO dw_revlist.RowCount()
  253. // s_sendmx.ss_email_sendmx.sendmx[i].printid = i
  254. // s_sendmx.ss_email_sendmx.sendmx[i].sendid = 0
  255. // s_sendmx.ss_email_sendmx.sendmx[i].reltype = dw_revlist.Object.reltype[i]
  256. // s_sendmx.ss_email_sendmx.sendmx[i].Relid = dw_revlist.Object.Relid[i]
  257. // s_sendmx.ss_email_sendmx.sendmx[i].Revname = RightTrim(LeftTrim(dw_revlist.Object.Revname[i]))
  258. // s_sendmx.ss_email_sendmx.sendmx[i].revaddress = RightTrim(LeftTrim(dw_revlist.Object.revaddress[i]))
  259. //NEXT
  260. closewithreturn(this, s_sendmx)
  261. end event
  262. type cb_func from w_publ_base`cb_func within w_email_sendmx_new_gj
  263. boolean visible = false
  264. integer x = 2245
  265. integer y = 1656
  266. end type
  267. type cb_exit from w_publ_base`cb_exit within w_email_sendmx_new_gj
  268. boolean visible = false
  269. end type
  270. type cb_add from uo_imflatbutton within w_email_sendmx_new_gj
  271. integer x = 1705
  272. integer y = 612
  273. integer taborder = 20
  274. boolean bringtotop = true
  275. string text = "添加"
  276. string normalpicname = "p4.ICO"
  277. integer picsize = 16
  278. toolbaralignment pic_align = alignatright!
  279. end type
  280. event clicked;call super::clicked;integer i,ll_row
  281. for i=1 to dw_1.rowcount()
  282. if dw_1.Object.isselect[i]=1 then
  283. dw_1.RowsCopy(i, i, Primary!, dw_revlist, dw_revlist.RowCount() + 1, Primary!)
  284. dw_revlist.Object.isselect[ dw_revlist.RowCount()]=0
  285. end if
  286. next
  287. //if tv_1.visible then
  288. // tv_1.trigger event doubleclicked(il_tv_handle)
  289. // tv_1.setfocus( )
  290. //else
  291. // listviewitem l_lvi
  292. // s_tv_data s_data
  293. // long ll_index = 0, ll_row
  294. // ll_index = lv_1.finditem(ll_index, DirectionAll!, false, true, false, false)
  295. // do while (ll_index > 0)
  296. // if lv_1.getitem(ll_index, l_lvi) = 1 then
  297. // s_data = l_lvi.data
  298. // if trim(s_data.mailaddress) = '' then goto ext
  299. // if dw_revlist.Find('relid=' + string(s_data.relid) + ' and reltype=' + string(s_data.reltype), 1, dw_revlist.RowCount()) = 0 then
  300. // ll_row = dw_revlist.insertrow(0)
  301. // dw_revlist.object.sendid[ll_row] = 0
  302. // dw_revlist.object.printid[ll_row] = 0
  303. // dw_revlist.object.reltype[ll_row] = s_data.reltype
  304. // dw_revlist.object.relid[ll_row] = s_data.relid
  305. // dw_revlist.object.revaddress[ll_row] = s_data.mailaddress
  306. // dw_revlist.object.revname[ll_row] = s_data.mailname
  307. // dw_revlist.object.dscrp[ll_row] = ''
  308. // end if
  309. // end if
  310. // ext:
  311. // ll_index = lv_1.finditem(ll_index, DirectionDown!, false, true, false, false)
  312. // loop
  313. //end if
  314. end event
  315. type cb_del from uo_imflatbutton within w_email_sendmx_new_gj
  316. integer x = 1705
  317. integer y = 768
  318. integer taborder = 30
  319. boolean bringtotop = true
  320. string text = "删除"
  321. string normalpicname = "p1.ICO"
  322. integer picsize = 16
  323. end type
  324. event clicked;call super::clicked;integer i,ll_row
  325. next1:
  326. for ll_row=1 to dw_revlist.rowcount()
  327. if dw_revlist.Object.isselect[ll_row]=1 then
  328. dw_revlist.deleteRow(ll_row)
  329. goto next1
  330. end if
  331. next
  332. //long ll_row
  333. //dw_revlist.setredraw(false)
  334. //for ll_row = dw_revlist.RowCount() TO 1 Step -1
  335. // if dw_revlist.IsSelected(ll_row) then
  336. // dw_revlist.deleteRow(ll_row)
  337. // end if
  338. //next
  339. //
  340. //dw_revlist.setredraw(true)
  341. //dw_revlist.setfocus( )
  342. //
  343. end event
  344. type dw_revlist from u_dw_rbtnfilter within w_email_sendmx_new_gj
  345. integer x = 2048
  346. integer y = 112
  347. integer width = 1952
  348. integer height = 1788
  349. integer taborder = 20
  350. boolean bringtotop = true
  351. string dataobject = "dw_email_sendmx_view_gj"
  352. boolean hscrollbar = true
  353. boolean vscrollbar = true
  354. boolean hsplitscroll = true
  355. boolean rbutton_filter_use = true
  356. boolean titleclick_sort_use = true
  357. string cur_allowversion = "0"
  358. end type
  359. event doubleclicked;call super::doubleclicked;if row > 0 then
  360. dw_revlist.deleterow(row)
  361. end if
  362. end event
  363. event clicked;call super::clicked;long ll_i
  364. IF row > 0 THEN
  365. THIS.SetRow(row)
  366. IF KeyDown(keycontrol!) THEN
  367. THIS.SelectRow(row,NOT THIS.IsSelected(row))
  368. ll_lastrow = row
  369. ELSEIF KeyDown(keyshift!) THEN //按下SHIFT键
  370. IF ll_lastrow = 0 THEN //上次没选中任何行
  371. THIS.SelectRow(row,TRUE)
  372. ll_lastrow = row //ll_lastrow为实例变量,记录上次单击的行
  373. ELSE
  374. THIS.SelectRow(0,FALSE) //全都不选中
  375. IF row > ll_lastrow THEN
  376. FOR ll_i = ll_lastrow TO row
  377. THIS.SelectRow(ll_i,TRUE)
  378. NEXT
  379. ELSE
  380. FOR ll_i = ll_lastrow TO row STEP -1
  381. THIS.SelectRow(ll_i,TRUE)
  382. NEXT
  383. END IF
  384. END IF
  385. ELSE
  386. THIS.SelectRow(0,FALSE)
  387. THIS.SelectRow(row,TRUE)
  388. ll_lastrow = row
  389. END IF
  390. END IF
  391. end event
  392. type cb_ok from uo_imflatbutton within w_email_sendmx_new_gj
  393. integer x = 3337
  394. integer y = 1952
  395. integer taborder = 30
  396. boolean bringtotop = true
  397. string normalpicname = "ok.bmp"
  398. integer picsize = 16
  399. end type
  400. event clicked;call super::clicked;
  401. long i
  402. FOR i = 1 TO dw_revlist.RowCount()
  403. s_sendmx.ss_email_sendmx.sendmx[i].printid = i
  404. s_sendmx.ss_email_sendmx.sendmx[i].sendid = 0
  405. s_sendmx.ss_email_sendmx.sendmx[i].reltype = dw_revlist.Object.reltype[i]
  406. s_sendmx.ss_email_sendmx.sendmx[i].Relid = dw_revlist.Object.Relid[i]
  407. s_sendmx.ss_email_sendmx.sendmx[i].Revname = RightTrim(LeftTrim(dw_revlist.Object.Revname[i]))
  408. s_sendmx.ss_email_sendmx.sendmx[i].revaddress = RightTrim(LeftTrim(dw_revlist.Object.revaddress[i]))
  409. NEXT
  410. closewithreturn(parent, s_sendmx)
  411. end event
  412. type cb_cancel from uo_imflatbutton within w_email_sendmx_new_gj
  413. integer x = 3680
  414. integer y = 1952
  415. integer taborder = 40
  416. boolean bringtotop = true
  417. string text = "取消"
  418. boolean cancel = true
  419. string normalpicname = "exit.bmp"
  420. integer picsize = 16
  421. end type
  422. event clicked;call super::clicked;
  423. close(parent)
  424. end event
  425. type tv_1 from treeview within w_email_sendmx_new_gj
  426. boolean visible = false
  427. integer x = 658
  428. integer y = 2064
  429. integer width = 1659
  430. integer height = 1788
  431. integer taborder = 20
  432. boolean bringtotop = true
  433. integer textsize = -9
  434. fontcharset fontcharset = gb2312charset!
  435. fontpitch fontpitch = variable!
  436. string facename = "宋体"
  437. borderstyle borderstyle = stylelowered!
  438. string picturename[] = {"email_whitebook.bmp","email_colorbook.bmp","email_rep.bmp",""}
  439. long picturemaskcolor = 536870912
  440. long statepicturemaskcolor = 536870912
  441. end type
  442. event constructor;/****************************************************************
  443. * global type s_tv_data from structure
  444. * integer reltype
  445. * long relid
  446. * string mailname
  447. * string mailaddress
  448. * end type
  449. * reltype: 0: 通信录联系人
  450. * 1: 客户
  451. * 2: 供应商
  452. * 4: 客户联系人
  453. * 5: 供应商联系人
  454. * ---------------
  455. * 10: 通信录
  456. * 11: 客户区域
  457. * 12: 客户区域根目录
  458. * 13: 供应商类别
  459. * 14: 供应商类别根目录
  460. * -------------------
  461. * -1: 根目录
  462. *
  463. *
  464. *
  465. *****************************************************************/
  466. Long tvi_hdl = 0
  467. Long ll_parent, ll_rep_hand, ll_cus_hand, ll_spt_hand
  468. ll_parent = This.InsertItemLast(0,'[双击添加]', 1)
  469. ll_rep_hand = This.InsertItemLast(ll_parent, '通讯录', 2)
  470. ll_cus_hand = This.InsertItemLast(ll_parent, '客户', 2)
  471. ll_spt_hand = This.InsertItemLast(ll_parent, '供应商', 2)
  472. TreeViewItem l_tvi
  473. s_tv_data s_data
  474. IF This.GetItem(ll_parent, l_tvi) = 1 THEN
  475. s_data.reltype = -1
  476. s_data.relid = 0
  477. s_data.mailname = ''
  478. s_data.mailAddress = ''
  479. l_tvi.Data = s_data
  480. This.SetItem(ll_parent, l_tvi)
  481. END IF
  482. IF This.GetItem(ll_rep_hand, l_tvi) = 1 THEN
  483. l_tvi.Children = True
  484. s_data.reltype = 10
  485. s_data.relid = 0
  486. s_data.mailname = ''
  487. s_data.mailAddress = ''
  488. l_tvi.Data = s_data
  489. This.SetItem(ll_rep_hand, l_tvi)
  490. END IF
  491. IF This.GetItem(ll_cus_hand, l_tvi) = 1 THEN
  492. l_tvi.Children = True
  493. s_data.reltype = 12
  494. s_data.relid = 0
  495. s_data.mailname = ''
  496. s_data.mailAddress = ''
  497. l_tvi.Data = s_data
  498. This.SetItem(ll_cus_hand, l_tvi)
  499. END IF
  500. IF This.GetItem(ll_spt_hand, l_tvi) = 1 THEN
  501. l_tvi.Children = True
  502. s_data.reltype = 14
  503. s_data.relid = 0
  504. s_data.mailname = ''
  505. s_data.mailAddress = ''
  506. l_tvi.Data = s_data
  507. This.SetItem(ll_spt_hand, l_tvi)
  508. END IF
  509. This.ExpandItem(ll_parent)
  510. end event
  511. event itemexpanding;treeviewitem l_tvi, l_tvi_new
  512. IF This.GetItem(Handle, l_tvi) <> 1 THEN
  513. RETURN
  514. END IF
  515. s_tv_data s_data, s_data_new
  516. s_data = l_tvi.Data
  517. Long ll_relid, ll_new_handle, ll_cnt
  518. String ls_mailname, ls_mailaddress,ls_repname
  519. IF Not l_tvi.ExpandedOnce THEN
  520. Boolean hasChild = False
  521. /////////////////////////////////////////////////////////////// //
  522. IF s_data.reltype = 10 THEN // 加入通信录联系人
  523. DECLARE cursor10 CURSOR FOR
  524. SELECT repID AS relid, mailname, mailaddress
  525. FROM u_email_rep
  526. WHERE ( (empid = :sys_empid) OR
  527. (empid = 0) )And (reptype = 1);
  528. OPEN cursor10;
  529. FETCH cursor10 Into :ll_relid, :ls_mailname, :ls_mailaddress;
  530. DO While (sqlca.SQLCode = 0)
  531. s_data_new.reltype = 0 //
  532. s_data_new.relid = ll_relid
  533. s_data_new.mailname = ls_mailname
  534. s_data_new.mailAddress = ls_mailaddress
  535. ll_new_handle = This.InsertItemLast(Handle, ls_mailname + '<' + ls_mailaddress + '>', 3) // 在此设置联系人图标
  536. IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN
  537. l_tvi_new.Data = s_data_new
  538. This.SetItem(ll_new_handle, l_tvi_new)
  539. END IF
  540. hasChild = True
  541. FETCH cursor10 Into :ll_relid, :ls_mailname, :ls_mailaddress;
  542. LOOP
  543. CLOSE cursor10;
  544. ///////////////////////////////////////////////////////////////// //
  545. ELSEIF s_data.reltype = 12 Or s_data.reltype = 11 THEN // 加入客户区域
  546. DECLARE cursor12 CURSOR FOR
  547. SELECT cusareaid, cusareaname, areaname
  548. FROM u_cusarea
  549. Where parentid = :s_data.relid;
  550. OPEN cursor12;
  551. FETCH cursor12 Into :ll_relid, :ls_mailname, :ls_mailaddress;
  552. DO While (sqlca.SQLCode = 0)
  553. IF Not wf_cansee_cusarea(ll_relid) THEN GOTO ext12
  554. s_data_new.reltype = 11
  555. s_data_new.relid = ll_relid
  556. s_data_new.mailname = ''
  557. s_data_new.mailAddress = ''
  558. s_data_new.repname=''
  559. ll_new_handle = This.InsertItemLast(Handle, ls_mailname, 2) // 在此设置区域图标
  560. IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN
  561. l_tvi_new.Children = wf_cusarea_haschild(ll_relid)
  562. l_tvi_new.Data = s_data_new
  563. This.SetItem(ll_new_handle, l_tvi_new)
  564. END IF
  565. hasChild = True
  566. ext12:
  567. FETCH cursor12 Into :ll_relid, :ls_mailname, :ls_mailaddress;
  568. LOOP
  569. CLOSE cursor12;
  570. ///////////////////////////////////////////////////////////////// //
  571. IF s_data.reltype = 11 THEN // 加入客户
  572. DECLARE cursor11 CURSOR FOR
  573. SELECT cusid AS relid,ltrim(rtrim( name))+' '+rep AS mailname, email AS mailaddress,u_cust.rep
  574. FROM u_cust
  575. Where (inuse = 1) And (cusareaid = :s_data.relid);
  576. OPEN cursor11;
  577. FETCH cursor11 Into :ll_relid, :ls_mailname, :ls_mailaddress,:ls_repname;
  578. DO While (sqlca.SQLCode = 0)
  579. s_data_new.reltype = 1
  580. s_data_new.relid = ll_relid
  581. s_data_new.mailname = ls_mailname
  582. s_data_new.mailAddress = ls_mailaddress
  583. s_data_new.repname=ls_repname
  584. long len
  585. len=len(ls_mailname)
  586. IF Trim(ls_mailaddress) = '' And Not wf_cus_haschild(ll_relid) THEN GOTO ext11
  587. ll_new_handle = This.InsertItemLast(Handle,ls_mailname + '<' + ls_mailaddress + '>', 3) // 在此设置客户图标
  588. IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN
  589. l_tvi_new.Children = wf_cus_haschild(ll_relid)
  590. l_tvi_new.Data = s_data_new
  591. This.SetItem(ll_new_handle, l_tvi_new)
  592. END IF
  593. hasChild = True
  594. ext11:
  595. FETCH cursor11 Into :ll_relid, :ls_mailname, :ls_mailaddress,:ls_repname;
  596. LOOP
  597. CLOSE cursor11;
  598. END IF
  599. ///////////////////////////////////////////////////////////////////// //
  600. ELSEIF s_data.reltype = 14 THEN // 加入供应商类别
  601. DECLARE cursor14 CURSOR FOR
  602. SELECT u_spttype.spttypeid,
  603. u_spttype.spttypename
  604. FROM u_spttype
  605. Where u_spttype.inuse = 1;
  606. OPEN cursor14;
  607. FETCH cursor14 Into :ll_relid, :ls_mailname;
  608. DO While (sqlca.SQLCode = 0)
  609. IF Not wf_cansee_spttype(ll_relid) THEN GOTO ext14
  610. s_data_new.reltype = 13
  611. s_data_new.relid = ll_relid
  612. s_data_new.mailname = ''
  613. s_data_new.mailAddress = ''
  614. s_data_new.repname=''
  615. ll_new_handle = This.InsertItemLast(Handle, ls_mailname, 2) // 在此设置供应商类别图标
  616. IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN
  617. SELECT count(0) Into :ll_cnt From u_spt Where spttypeid = :ll_relid;
  618. IF sqlca.SQLCode = 0 And ll_cnt > 0 THEN
  619. l_tvi_new.Children = True
  620. END IF
  621. l_tvi_new.Data = s_data_new
  622. This.SetItem(ll_new_handle, l_tvi_new)
  623. END IF
  624. hasChild = True
  625. ext14:
  626. FETCH cursor14 Into :ll_relid, :ls_mailname;
  627. LOOP
  628. CLOSE cursor14;
  629. ///////////////////////////////////////////////////// //
  630. ELSEIF s_data.reltype = 13 THEN // 加入供应商
  631. DECLARE cursor13 CURSOR FOR
  632. SELECT sptid AS relid, ltrim(rtrim( name))+' '+rep AS mailname, email AS mailaddress,u_spt.rep
  633. FROM u_spt
  634. Where (inuse = 1) And (spttypeid = :s_data.relid);
  635. OPEN cursor13;
  636. FETCH cursor13 Into :ll_relid, :ls_mailname, :ls_mailaddress,:ls_repname;
  637. DO While (sqlca.SQLCode = 0)
  638. s_data_new.reltype = 2
  639. s_data_new.relid = ll_relid
  640. s_data_new.mailname = ls_mailname
  641. s_data_new.mailAddress = ls_mailaddress
  642. s_data_new.repname=ls_repname
  643. IF Trim(ls_mailaddress) = '' And Not wf_spt_haschild(ll_relid) THEN GOTO ext13
  644. ll_new_handle = This.InsertItemLast(Handle, ls_mailname + '<' + ls_mailaddress + '>', 3) // 设置供应商图标
  645. IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN
  646. SELECT count(0) Into :ll_cnt From u_spt_rep Where sptid = :ll_relid;
  647. IF sqlca.SQLCode = 0 And ll_cnt > 0 THEN
  648. l_tvi_new.Children = True
  649. END IF
  650. l_tvi_new.Data = s_data_new
  651. This.SetItem(ll_new_handle, l_tvi_new)
  652. END IF
  653. hasChild = True
  654. ext13:
  655. FETCH cursor13 Into :ll_relid, :ls_mailname, :ls_mailaddress,:ls_repname;
  656. LOOP
  657. CLOSE cursor13;
  658. //////////////////////////////////////////////////////////// //
  659. ELSEIF s_data.reltype = 1 THEN // 加入客户联系人
  660. DECLARE cursor1 CURSOR FOR
  661. SELECT u_cust_rep.repid, RTRIM(LTRIM(u_cust_1.cuscode)) + '-' + RTRIM(LTRIM(u_cust_rep.repname)) AS mailname,u_cust_rep.repname,
  662. u_cust_rep.email AS mailaddress
  663. FROM u_cust AS u_cust_1 INNER JOIN
  664. u_cust_rep ON u_cust_1.cusid = u_cust_rep.cusid
  665. WHERE (u_cust_1.inuse = 1) AND (u_cust_1.cusid = :s_data.relid)
  666. And (RTRIM(LTRIM(u_cust_rep.email)) <> '');
  667. OPEN cursor1;
  668. FETCH cursor1 Into :ll_relid, :ls_mailname, :ls_mailaddress,:ls_repname;
  669. DO While(sqlca.SQLCode = 0)
  670. s_data_new.reltype = 4
  671. s_data_new.relid = ll_relid
  672. s_data_new.mailname = ls_mailname
  673. s_data_new.mailAddress = ls_mailaddress
  674. s_data_new.repname=ls_repname
  675. ll_new_handle = This.InsertItemLast(Handle, ls_mailname + '<' + ls_mailaddress + '>', 3) // 设置客户联系人图标
  676. IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN
  677. l_tvi_new.Data = s_data_new
  678. This.SetItem(ll_new_handle, l_tvi_new)
  679. END IF
  680. hasChild = True
  681. FETCH cursor1 Into :ll_relid, :ls_mailname, :ls_mailaddress,:ls_repname;
  682. LOOP
  683. CLOSE cursor1;
  684. ELSEIF s_data.reltype = 2 THEN // 加入供应商联系人
  685. DECLARE cursor2 CURSOR FOR
  686. SELECT u_spt_rep.repid, RTRIM(LTRIM(u_spt_1.sptcode)) + '-' + RTRIM(LTRIM(u_spt_rep.repname)) AS mailname,u_spt_rep.repname,
  687. u_spt_rep.email AS mailaddress
  688. FROM u_spt AS u_spt_1 INNER JOIN
  689. u_spt_rep ON u_spt_1.sptid = u_spt_rep.sptid
  690. WHERE (u_spt_1.inuse = 1) AND (u_spt_1.sptid = :s_data.relid)
  691. And (RTRIM(LTRIM(u_spt_rep.email)) <> '');
  692. OPEN cursor2;
  693. FETCH cursor2 Into :ll_relid, :ls_mailname, :ls_mailaddress,:ls_repname;
  694. DO While(sqlca.SQLCode = 0)
  695. s_data_new.reltype = 5
  696. s_data_new.relid = ll_relid
  697. s_data_new.mailname = ls_mailname
  698. s_data_new.mailAddress = ls_mailaddress
  699. s_data_new.repname=ls_repname
  700. ll_new_handle = This.InsertItemLast(Handle, ls_mailname + '<' + ls_mailaddress + '>', 3) // 设置供应商联系人图标
  701. IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN
  702. l_tvi_new.Data = s_data_new
  703. This.SetItem(ll_new_handle, l_tvi_new)
  704. END IF
  705. hasChild = True
  706. FETCH cursor2 Into :ll_relid, :ls_mailname, :ls_mailaddress,:ls_repname;
  707. LOOP
  708. CLOSE cursor2;
  709. END IF
  710. IF s_data.reltype <> -1 THEN
  711. l_tvi.Children = hasChild
  712. This.SetItem(Handle, l_tvi)
  713. END IF
  714. END IF
  715. end event
  716. event doubleclicked;treeviewitem l_tvi
  717. long ll_row
  718. s_tv_data s_data
  719. if this.getitem(handle, l_tvi) = 1 then
  720. s_data = l_tvi.data
  721. if trim(s_data.mailaddress) = '' then
  722. return
  723. end if
  724. if dw_revlist.Find('relid=' + string(s_data.relid) + ' and reltype=' + string(s_data.reltype), 1, dw_revlist.RowCount()) = 0 then
  725. ll_row = dw_revlist.insertrow(0)
  726. dw_revlist.object.sendid[ll_row] = 0
  727. dw_revlist.object.printid[ll_row] = 0
  728. dw_revlist.object.reltype[ll_row] = s_data.reltype
  729. dw_revlist.object.relid[ll_row] = s_data.relid
  730. dw_revlist.object.revaddress[ll_row] = s_data.mailaddress
  731. dw_revlist.object.revname[ll_row] = s_data.mailname
  732. dw_revlist.object.dscrp[ll_row] = ''
  733. end if
  734. end if
  735. end event
  736. event selectionchanged;il_tv_handle = newhandle
  737. end event
  738. type sle_1 from singlelineedit within w_email_sendmx_new_gj
  739. event keyup pbm_keyup
  740. integer x = 128
  741. integer y = 12
  742. integer width = 1193
  743. integer height = 84
  744. integer taborder = 20
  745. boolean bringtotop = true
  746. integer textsize = -9
  747. fontcharset fontcharset = gb2312charset!
  748. fontpitch fontpitch = variable!
  749. string facename = "宋体"
  750. borderstyle borderstyle = stylelowered!
  751. end type
  752. event keyup;if key <> KeyEnter! then return
  753. cb_find.triggerevent(clicked!)
  754. end event
  755. type sle_2 from singlelineedit within w_email_sendmx_new_gj
  756. event keyup pbm_keyup
  757. integer x = 2162
  758. integer y = 12
  759. integer width = 1518
  760. integer height = 84
  761. integer taborder = 40
  762. boolean bringtotop = true
  763. integer textsize = -9
  764. fontcharset fontcharset = gb2312charset!
  765. fontpitch fontpitch = variable!
  766. string facename = "宋体"
  767. borderstyle borderstyle = stylelowered!
  768. end type
  769. event keyup;if key = KeyEnter! then
  770. parent.triggerevent('ue_add_mail')
  771. end if
  772. end event
  773. type lv_1 from listview within w_email_sendmx_new_gj
  774. boolean visible = false
  775. integer x = 1792
  776. integer y = 2404
  777. integer width = 1678
  778. integer height = 924
  779. integer taborder = 40
  780. boolean bringtotop = true
  781. integer textsize = -9
  782. fontcharset fontcharset = gb2312charset!
  783. fontpitch fontpitch = variable!
  784. string facename = "宋体"
  785. borderstyle borderstyle = stylelowered!
  786. boolean extendedselect = true
  787. grsorttype sorttype = ascending!
  788. listviewview view = listviewsmallicon!
  789. long largepicturemaskcolor = 536870912
  790. string smallpicturename[] = {"email_rep.bmp"}
  791. long smallpicturemaskcolor = 536870912
  792. long statepicturemaskcolor = 536870912
  793. end type
  794. event doubleclicked;listviewitem l_tvi
  795. long ll_row
  796. s_tv_data s_data
  797. if this.getitem(index, l_tvi) = 1 then
  798. s_data = l_tvi.data
  799. if trim(s_data.mailaddress) = '' then
  800. return
  801. end if
  802. if dw_revlist.Find('relid=' + string(s_data.relid) + ' and reltype=' + string(s_data.reltype), 1, dw_revlist.RowCount()) = 0 then
  803. ll_row = dw_revlist.insertrow(0)
  804. dw_revlist.object.sendid[ll_row] = 0
  805. dw_revlist.object.printid[ll_row] = 0
  806. dw_revlist.object.reltype[ll_row] = s_data.reltype
  807. dw_revlist.object.relid[ll_row] = s_data.relid
  808. dw_revlist.object.revaddress[ll_row] = s_data.mailaddress
  809. dw_revlist.object.revname[ll_row] = s_data.mailname
  810. dw_revlist.object.dscrp[ll_row] = ''
  811. end if
  812. end if
  813. end event
  814. type cb_find from uo_imflatbutton within w_email_sendmx_new_gj
  815. boolean visible = false
  816. integer y = 1960
  817. integer taborder = 30
  818. boolean bringtotop = true
  819. boolean enabled = false
  820. string text = "查找"
  821. string normalpicname = "PREVIEW.BMP"
  822. integer picsize = 16
  823. end type
  824. event clicked;call super::clicked;if sle_1.text = '' then
  825. tv_1.visible = true
  826. lv_1.visible = not tv_1.visible
  827. else
  828. tv_1.visible = false
  829. lv_1.visible = not tv_1.visible
  830. lv_1.DeleteItems()
  831. long ll_relid, ll_tmp
  832. string arg_parm, ls_mailname, ls_mailaddress
  833. s_tv_data s_data
  834. listviewitem l_lvi
  835. arg_parm = '%' + sle_1.text + '%'
  836. lv_1.setredraw(false)
  837. // 通信录
  838. declare cursor1 cursor for
  839. SELECT repID AS relid, mailname, mailaddress
  840. FROM u_email_rep
  841. WHERE (empid = :sys_empid OR
  842. empid = 0) AND (reptype = 1) AND (LOWER(mailname) LIKE LOWER(:arg_parm) OR
  843. LOWER(mailaddress) LIKE LOWER(:arg_parm));
  844. open cursor1;
  845. fetch cursor1 INTO :ll_relid, :ls_mailname, :ls_mailaddress;
  846. do while (sqlca.sqlcode = 0)
  847. s_data.reltype = 0
  848. s_data.relid = ll_relid
  849. s_data.mailname = ls_mailname
  850. s_data.mailaddress = ls_mailaddress
  851. l_lvi.label = ls_mailname + '<' + ls_mailaddress + '>'
  852. l_lvi.data = s_data
  853. l_lvi.pictureindex = 1
  854. lv_1.additem(l_lvi)
  855. fetch cursor1 INTO :ll_relid, :ls_mailname, :ls_mailaddress;
  856. loop
  857. close cursor1;
  858. // 客户
  859. declare cursor2 cursor for
  860. SELECT cusid, cuscode, email, cusareaid
  861. FROM u_cust
  862. WHERE (inuse = 1) AND (RTRIM(LTRIM(email)) <> '') AND (LOWER(cuscode) LIKE LOWER(:arg_parm) OR
  863. LOWER(email) LIKE LOWER(:arg_parm));
  864. open cursor2;
  865. fetch cursor2 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp;
  866. do while (sqlca.sqlcode = 0)
  867. if not wf_cansee_cusarea(ll_tmp) then goto ext2
  868. s_data.reltype = 1
  869. s_data.relid = ll_relid
  870. s_data.mailname = ls_mailname
  871. s_data.mailaddress = ls_mailaddress
  872. l_lvi.label = ls_mailname + '<' + ls_mailaddress + '>'
  873. l_lvi.data = s_data
  874. l_lvi.pictureindex = 1
  875. lv_1.additem(l_lvi)
  876. ext2:
  877. fetch cursor2 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp;
  878. loop
  879. close cursor2;
  880. // 客户联系人
  881. declare cursor3 cursor for
  882. SELECT u_cust_rep.repid, RTRIM(LTRIM(u_cust_1.cuscode)) + '-' + RTRIM(LTRIM(u_cust_rep.repname)) AS mailname,
  883. u_cust_rep.email AS mailaddress, u_cust_1.cusareaid
  884. FROM u_cust AS u_cust_1 INNER JOIN
  885. u_cust_rep ON u_cust_1.cusid = u_cust_rep.cusid AND u_cust_1.cusid = u_cust_rep.cusid
  886. WHERE (u_cust_1.inuse = 1) AND (RTRIM(LTRIM(u_cust_rep.email)) <> '') AND
  887. (LOWER(RTRIM(LTRIM(u_cust_1.cuscode)) + '-' + RTRIM(LTRIM(u_cust_rep.repname))) LIKE LOWER(:arg_parm) OR
  888. LOWER(u_cust_rep.email) LIKE LOWER(:arg_parm));
  889. open cursor3;
  890. fetch cursor3 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp;
  891. do while (sqlca.sqlcode = 0)
  892. if not wf_cansee_cusarea(ll_tmp) then goto ext3
  893. s_data.reltype = 4
  894. s_data.relid = ll_relid
  895. s_data.mailname = ls_mailname
  896. s_data.mailaddress = ls_mailaddress
  897. l_lvi.label = ls_mailname + '<' + ls_mailaddress + '>'
  898. l_lvi.data = s_data
  899. l_lvi.pictureindex = 1
  900. lv_1.additem(l_lvi)
  901. ext3:
  902. fetch cursor3 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp;
  903. loop
  904. close cursor3;
  905. // 供应商
  906. declare cursor4 cursor for
  907. SELECT sptid, sptcode, email,spttypeid
  908. FROM u_spt
  909. WHERE (inuse = 1) AND (RTRIM(LTRIM(email)) <> '') AND (LOWER(sptcode) LIKE LOWER(:arg_parm) OR
  910. LOWER(email) LIKE LOWER(:arg_parm));
  911. open cursor4;
  912. fetch cursor4 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp;
  913. do while (sqlca.sqlcode = 0)
  914. if not wf_cansee_spttype(ll_tmp) then goto ext4
  915. s_data.reltype = 2
  916. s_data.relid = ll_relid
  917. s_data.mailname = ls_mailname
  918. s_data.mailaddress = ls_mailaddress
  919. l_lvi.label = ls_mailname + '<' + ls_mailaddress + '>'
  920. l_lvi.data = s_data
  921. l_lvi.pictureindex = 1
  922. lv_1.additem(l_lvi)
  923. ext4:
  924. fetch cursor4 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp;
  925. loop
  926. close cursor4;
  927. // 供应商联系人
  928. declare cursor5 cursor for
  929. SELECT u_spt_rep.repid, RTRIM(LTRIM(u_spt_1.sptcode)) + '-' + RTRIM(LTRIM(u_spt_rep.repname)) AS mailname,
  930. u_spt_rep.email AS mailaddress,u_spt_1.spttypeid
  931. FROM u_spt AS u_spt_1 INNER JOIN
  932. u_spt_rep ON u_spt_1.sptid = u_spt_rep.sptid AND u_spt_1.sptid = u_spt_rep.sptid
  933. WHERE (u_spt_1.inuse = 1) AND (RTRIM(LTRIM(u_spt_rep.email)) <> '') AND
  934. (LOWER(RTRIM(LTRIM(u_spt_1.sptcode)) + '-' + RTRIM(LTRIM(u_spt_rep.repname))) LIKE LOWER(:arg_parm) OR
  935. LOWER(u_spt_rep.email) LIKE LOWER(:arg_parm));
  936. open cursor5;
  937. fetch cursor5 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp;
  938. do while (sqlca.sqlcode = 0)
  939. if not wf_cansee_spttype(ll_tmp) then goto ext5
  940. s_data.reltype = 2
  941. s_data.relid = ll_relid
  942. s_data.mailname = ls_mailname
  943. s_data.mailaddress = ls_mailaddress
  944. l_lvi.label = ls_mailname + '<' + ls_mailaddress + '>'
  945. l_lvi.data = s_data
  946. l_lvi.pictureindex = 1
  947. lv_1.additem(l_lvi)
  948. ext5:
  949. fetch cursor5 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp;
  950. loop
  951. close cursor5;
  952. lv_1.setredraw(true)
  953. end if
  954. end event
  955. type cb_3 from uo_imflatbutton within w_email_sendmx_new_gj
  956. integer x = 3698
  957. integer y = 4
  958. integer taborder = 30
  959. boolean bringtotop = true
  960. string text = "添加"
  961. string normalpicname = "NEW.BMP"
  962. integer picsize = 16
  963. end type
  964. event clicked;call super::clicked;parent.triggerevent('ue_add_mail')
  965. end event
  966. type cb_1 from uo_imflatbutton within w_email_sendmx_new_gj
  967. integer x = 1344
  968. integer width = 329
  969. integer taborder = 40
  970. boolean bringtotop = true
  971. string text = "查找"
  972. string normalpicname = "PREVIEW.BMP"
  973. integer picsize = 16
  974. end type
  975. event clicked;call super::clicked;long ll_row
  976. lv_1.visible=false
  977. tv_1.visible=false
  978. if sle_1.text = '' then
  979. tv_1.visible = true
  980. lv_1.visible = not tv_1.visible
  981. else
  982. tv_1.visible = false
  983. lv_1.visible = not tv_1.visible
  984. lv_1.DeleteItems()
  985. long ll_relid, ll_tmp
  986. string arg_parm, ls_mailname, ls_mailaddress
  987. s_tv_data s_data
  988. listviewitem l_lvi
  989. arg_parm = '%' + sle_1.text + '%'
  990. lv_1.setredraw(false)
  991. // 通信录
  992. declare cursor1 cursor for
  993. SELECT repID AS relid, mailname, mailaddress
  994. FROM u_email_rep
  995. WHERE (empid = :sys_empid OR
  996. empid = 0) AND (reptype = 1) AND (LOWER(mailname) LIKE LOWER(:arg_parm) OR
  997. LOWER(mailaddress) LIKE LOWER(:arg_parm));
  998. open cursor1;
  999. fetch cursor1 INTO :ll_relid, :ls_mailname, :ls_mailaddress;
  1000. do while (sqlca.sqlcode = 0)
  1001. s_data.reltype = 0
  1002. s_data.relid = ll_relid
  1003. s_data.mailname = ls_mailname
  1004. s_data.mailaddress = ls_mailaddress
  1005. l_lvi.label = ls_mailname + '<' + ls_mailaddress + '>'
  1006. l_lvi.data = s_data
  1007. l_lvi.pictureindex = 1
  1008. // lv_1.additem(l_lvi)
  1009. //
  1010. ll_row = dw_1.insertrow(0)
  1011. dw_1.object.isselect[ll_row] = 0
  1012. dw_1.object.sendid[ll_row] = 0
  1013. dw_1.object.printid[ll_row] = 0
  1014. dw_1.object.reltype[ll_row] = s_data.reltype
  1015. dw_1.object.relid[ll_row] = s_data.relid
  1016. dw_1.object.revaddress[ll_row] = s_data.mailaddress
  1017. dw_1.object.revname[ll_row] = s_data.mailname
  1018. dw_1.object.dscrp[ll_row] = ''
  1019. //
  1020. fetch cursor1 INTO :ll_relid, :ls_mailname, :ls_mailaddress;
  1021. loop
  1022. close cursor1;
  1023. // 客户
  1024. declare cursor2 cursor for
  1025. SELECT cusid, cuscode, email, cusareaid
  1026. FROM u_cust
  1027. WHERE (inuse = 1) AND (RTRIM(LTRIM(email)) <> '') AND (LOWER(cuscode) LIKE LOWER(:arg_parm) OR
  1028. LOWER(email) LIKE LOWER(:arg_parm));
  1029. open cursor2;
  1030. fetch cursor2 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp;
  1031. do while (sqlca.sqlcode = 0)
  1032. if not wf_cansee_cusarea(ll_tmp) then goto ext2
  1033. s_data.reltype = 1
  1034. s_data.relid = ll_relid
  1035. s_data.mailname = ls_mailname
  1036. s_data.mailaddress = ls_mailaddress
  1037. l_lvi.label = ls_mailname + '<' + ls_mailaddress + '>'
  1038. l_lvi.data = s_data
  1039. l_lvi.pictureindex = 1
  1040. // lv_1.additem(l_lvi)
  1041. //
  1042. ll_row = dw_1.insertrow(0)
  1043. dw_1.object.isselect[ll_row] = 0
  1044. dw_1.object.sendid[ll_row] = 0
  1045. dw_1.object.printid[ll_row] = 0
  1046. dw_1.object.reltype[ll_row] = s_data.reltype
  1047. dw_1.object.relid[ll_row] = s_data.relid
  1048. dw_1.object.revaddress[ll_row] = s_data.mailaddress
  1049. dw_1.object.revname[ll_row] = s_data.mailname
  1050. dw_1.object.dscrp[ll_row] = ''
  1051. //
  1052. ext2:
  1053. fetch cursor2 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp;
  1054. loop
  1055. close cursor2;
  1056. // 客户联系人
  1057. declare cursor3 cursor for
  1058. SELECT u_cust_rep.repid, RTRIM(LTRIM(u_cust_1.cuscode)) + '-' + RTRIM(LTRIM(u_cust_rep.repname)) AS mailname,
  1059. u_cust_rep.email AS mailaddress, u_cust_1.cusareaid
  1060. FROM u_cust AS u_cust_1 INNER JOIN
  1061. u_cust_rep ON u_cust_1.cusid = u_cust_rep.cusid AND u_cust_1.cusid = u_cust_rep.cusid
  1062. WHERE (u_cust_1.inuse = 1) AND (RTRIM(LTRIM(u_cust_rep.email)) <> '') AND
  1063. (LOWER(RTRIM(LTRIM(u_cust_1.cuscode)) + '-' + RTRIM(LTRIM(u_cust_rep.repname))) LIKE LOWER(:arg_parm) OR
  1064. LOWER(u_cust_rep.email) LIKE LOWER(:arg_parm));
  1065. open cursor3;
  1066. fetch cursor3 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp;
  1067. do while (sqlca.sqlcode = 0)
  1068. if not wf_cansee_cusarea(ll_tmp) then goto ext3
  1069. s_data.reltype = 4
  1070. s_data.relid = ll_relid
  1071. s_data.mailname = ls_mailname
  1072. s_data.mailaddress = ls_mailaddress
  1073. l_lvi.label = ls_mailname + '<' + ls_mailaddress + '>'
  1074. l_lvi.data = s_data
  1075. l_lvi.pictureindex = 1
  1076. //
  1077. ll_row = dw_1.insertrow(0)
  1078. dw_1.object.isselect[ll_row] = 0
  1079. dw_1.object.sendid[ll_row] = 0
  1080. dw_1.object.printid[ll_row] = 0
  1081. dw_1.object.reltype[ll_row] = s_data.reltype
  1082. dw_1.object.relid[ll_row] = s_data.relid
  1083. dw_1.object.revaddress[ll_row] = s_data.mailaddress
  1084. dw_1.object.revname[ll_row] = s_data.mailname
  1085. dw_1.object.dscrp[ll_row] = ''
  1086. //
  1087. // lv_1.additem(l_lvi)
  1088. ext3:
  1089. fetch cursor3 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp;
  1090. loop
  1091. close cursor3;
  1092. // 供应商
  1093. declare cursor4 cursor for
  1094. SELECT sptid, sptcode, email,spttypeid
  1095. FROM u_spt
  1096. WHERE (inuse = 1) AND (RTRIM(LTRIM(email)) <> '') AND (LOWER(sptcode) LIKE LOWER(:arg_parm) OR
  1097. LOWER(email) LIKE LOWER(:arg_parm));
  1098. open cursor4;
  1099. fetch cursor4 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp;
  1100. do while (sqlca.sqlcode = 0)
  1101. if not wf_cansee_spttype(ll_tmp) then goto ext4
  1102. s_data.reltype = 2
  1103. s_data.relid = ll_relid
  1104. s_data.mailname = ls_mailname
  1105. s_data.mailaddress = ls_mailaddress
  1106. l_lvi.label = ls_mailname + '<' + ls_mailaddress + '>'
  1107. l_lvi.data = s_data
  1108. l_lvi.pictureindex = 1
  1109. // lv_1.additem(l_lvi)
  1110. //
  1111. ll_row = dw_1.insertrow(0)
  1112. dw_1.object.isselect[ll_row] = 0
  1113. dw_1.object.sendid[ll_row] = 0
  1114. dw_1.object.printid[ll_row] = 0
  1115. dw_1.object.reltype[ll_row] = s_data.reltype
  1116. dw_1.object.relid[ll_row] = s_data.relid
  1117. dw_1.object.revaddress[ll_row] = s_data.mailaddress
  1118. dw_1.object.revname[ll_row] = s_data.mailname
  1119. dw_1.object.dscrp[ll_row] = ''
  1120. //
  1121. ext4:
  1122. fetch cursor4 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp;
  1123. loop
  1124. close cursor4;
  1125. // 供应商联系人
  1126. declare cursor5 cursor for
  1127. SELECT u_spt_rep.repid, RTRIM(LTRIM(u_spt_1.sptcode)) + '-' + RTRIM(LTRIM(u_spt_rep.repname)) AS mailname,
  1128. u_spt_rep.email AS mailaddress,u_spt_1.spttypeid
  1129. FROM u_spt AS u_spt_1 INNER JOIN
  1130. u_spt_rep ON u_spt_1.sptid = u_spt_rep.sptid AND u_spt_1.sptid = u_spt_rep.sptid
  1131. WHERE (u_spt_1.inuse = 1) AND (RTRIM(LTRIM(u_spt_rep.email)) <> '') AND
  1132. (LOWER(RTRIM(LTRIM(u_spt_1.sptcode)) + '-' + RTRIM(LTRIM(u_spt_rep.repname))) LIKE LOWER(:arg_parm) OR
  1133. LOWER(u_spt_rep.email) LIKE LOWER(:arg_parm));
  1134. open cursor5;
  1135. fetch cursor5 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp;
  1136. do while (sqlca.sqlcode = 0)
  1137. if not wf_cansee_spttype(ll_tmp) then goto ext5
  1138. s_data.reltype = 2
  1139. s_data.relid = ll_relid
  1140. s_data.mailname = ls_mailname
  1141. s_data.mailaddress = ls_mailaddress
  1142. l_lvi.label = ls_mailname + '<' + ls_mailaddress + '>'
  1143. l_lvi.data = s_data
  1144. l_lvi.pictureindex = 1
  1145. // lv_1.additem(l_lvi)
  1146. //
  1147. ll_row = dw_1.insertrow(0)
  1148. dw_1.object.isselect[ll_row] = 0
  1149. dw_1.object.sendid[ll_row] = 0
  1150. dw_1.object.printid[ll_row] = 0
  1151. dw_1.object.reltype[ll_row] = s_data.reltype
  1152. dw_1.object.relid[ll_row] = s_data.relid
  1153. dw_1.object.revaddress[ll_row] = s_data.mailaddress
  1154. dw_1.object.revname[ll_row] = s_data.mailname
  1155. dw_1.object.dscrp[ll_row] = ''
  1156. //
  1157. ext5:
  1158. fetch cursor5 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp;
  1159. loop
  1160. close cursor5;
  1161. // lv_1.setredraw(true)
  1162. lv_1.visible=false
  1163. tv_1.visible=false
  1164. end if
  1165. end event
  1166. type dw_1 from u_dw_rbtnfilter within w_email_sendmx_new_gj
  1167. integer x = 14
  1168. integer y = 112
  1169. integer width = 1664
  1170. integer height = 1788
  1171. integer taborder = 30
  1172. boolean bringtotop = true
  1173. string dataobject = "dw_email_sendmx_view_gj"
  1174. boolean hscrollbar = true
  1175. boolean vscrollbar = true
  1176. boolean hsplitscroll = true
  1177. boolean rbutton_filter_use = true
  1178. boolean titleclick_sort_use = true
  1179. string cur_allowversion = "0"
  1180. end type
  1181. event clicked;call super::clicked;long ll_i
  1182. IF row > 0 THEN
  1183. THIS.SetRow(row)
  1184. IF KeyDown(keycontrol!) THEN
  1185. THIS.SelectRow(row,NOT THIS.IsSelected(row))
  1186. ll_lastrow = row
  1187. ELSEIF KeyDown(keyshift!) THEN //按下SHIFT键
  1188. IF ll_lastrow = 0 THEN //上次没选中任何行
  1189. THIS.SelectRow(row,TRUE)
  1190. ll_lastrow = row //ll_lastrow为实例变量,记录上次单击的行
  1191. ELSE
  1192. THIS.SelectRow(0,FALSE) //全都不选中
  1193. IF row > ll_lastrow THEN
  1194. FOR ll_i = ll_lastrow TO row
  1195. THIS.SelectRow(ll_i,TRUE)
  1196. NEXT
  1197. ELSE
  1198. FOR ll_i = ll_lastrow TO row STEP -1
  1199. THIS.SelectRow(ll_i,TRUE)
  1200. NEXT
  1201. END IF
  1202. END IF
  1203. ELSE
  1204. THIS.SelectRow(0,FALSE)
  1205. THIS.SelectRow(row,TRUE)
  1206. ll_lastrow = row
  1207. END IF
  1208. END IF
  1209. end event
  1210. event doubleclicked;call super::doubleclicked;if row > 0 then
  1211. dw_revlist.deleterow(row)
  1212. end if
  1213. end event
  1214. type cbx_1 from checkbox within w_email_sendmx_new_gj
  1215. integer x = 37
  1216. integer y = 16
  1217. integer width = 78
  1218. integer height = 76
  1219. boolean bringtotop = true
  1220. integer textsize = -9
  1221. fontcharset fontcharset = gb2312charset!
  1222. fontpitch fontpitch = variable!
  1223. string facename = "宋体"
  1224. long textcolor = 33554432
  1225. long backcolor = 67108864
  1226. boolean lefttext = true
  1227. end type
  1228. event clicked;integer i
  1229. if this.checked=true then
  1230. for i=1 to dw_1.rowcount()
  1231. dw_1.Object.isselect[i]=1
  1232. next
  1233. else
  1234. for i=1 to dw_1.rowcount()
  1235. dw_1.Object.isselect[i]=0
  1236. next
  1237. end if
  1238. end event
  1239. type cbx_2 from checkbox within w_email_sendmx_new_gj
  1240. integer x = 2066
  1241. integer y = 16
  1242. integer width = 78
  1243. integer height = 76
  1244. boolean bringtotop = true
  1245. integer textsize = -9
  1246. fontcharset fontcharset = gb2312charset!
  1247. fontpitch fontpitch = variable!
  1248. string facename = "宋体"
  1249. long textcolor = 33554432
  1250. long backcolor = 67108864
  1251. boolean lefttext = true
  1252. end type
  1253. event clicked;integer i
  1254. if this.checked=true then
  1255. for i=1 to dw_revlist.rowcount()
  1256. dw_revlist.Object.isselect[i]=1
  1257. next
  1258. else
  1259. for i=1 to dw_revlist.rowcount()
  1260. dw_revlist.Object.isselect[i]=0
  1261. next
  1262. end if
  1263. end event
  1264. type ln_bar from line within w_email_sendmx_new_gj
  1265. long linecolor = 268435456
  1266. integer linethickness = 4
  1267. integer beginy = 1924
  1268. integer endx = 3118
  1269. integer endy = 1924
  1270. end type
  1271. type ln_bar2 from line within w_email_sendmx_new_gj
  1272. long linecolor = 16777215
  1273. integer linethickness = 4
  1274. integer beginy = 1928
  1275. integer endx = 3150
  1276. integer endy = 1928
  1277. end type