w_email_sendmx_new.srw 39 KB

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