用sp_send_dbmail发邮件,怎么设置点击单元格中的数据,弹出另一窗口

lusawlx 2013-01-25 05:23:37
DECLARE @html NVARCHAR(MAX)
SET @html = '<style type=''text/css''>.header {text-align:center;font-weight:bold;white-space:nowrap;color:#7f7e82;} .cell_text {vertical-align:top;text-align:left;color:#333333;cursor:pointer} .cell_num {vertical-align:top;text-align:right;color:#333333;}</style>' ;
SET @html = @html + CAST(( SELECT 3 [@cellpadding],
0 [@cellspacing],
'font-family:verdana;font-size:10px;' [@style],
1 [@border],
--returns the header
( SELECT [@class] = 'header', 'Database Table' [text()] FOR XML PATH('th'), TYPE) tr,
( SELECT [@class] = 'header', 'Entity Count' [text()] FOR XML PATH('th'), TYPE) tr,
( SELECT [@class] = 'header', 'Total Rows' [text()] FOR XML PATH('th'), TYPE ) tr,
-- returns the rows in the table
( SELECT ( SELECT [@class] = 'cell_text',[@onClick]='window.open(test.html)',dbtable [text()] FOR XML PATH('td'), TYPE ),
( SELECT [@class] = 'cell_text', entities [text()] FOR XML PATH('td'), TYPE ),
( SELECT [@class] = 'cell_num', rows [text()] FOR XML PATH('td'), TYPE )
FROM ( SELECT TOP 3 dbtable = OBJECT_NAME(object_id), entities = COUNT(DISTINCT name), rows = COUNT(*)
FROM sys.columns
GROUP BY OBJECT_NAME(object_id)
) data FOR XML PATH('tr'), TYPE
)
FOR XML PATH('table'), TYPE
) AS VARCHAR(MAX))

Exec dbo.sp_send_dbmail @profile_name='MailForHr',
@recipients='teddd@163.com',
@subject=N'ddddd',
@body=@html,
@body_format='HTML';


怎么样才能在点dbtable时能弹出一窗口
...全文
382 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lusawlx 2013-01-29
  • 打赏
  • 举报
回复
引用 13 楼 quchen520 的回复:
try window.open(URL,name=_blank,...)
试了一下,应该不是写法问题,应该是邮箱不支持javascript 晕,那现在只能用<a></a>,, 但现在不知<a>要怎么写
quchen520 2013-01-29
  • 打赏
  • 举报
回复
try window.open(URL,name=_blank,...)
lusawlx 2013-01-29
  • 打赏
  • 举报
回复
DECLARE @html NVARCHAR(MAX) SET @html = '<style type=''text/css''>.header {text-align:center;font-weight:bold;white-space:nowrap;color:#7f7e82;} .cell_text {vertical-align:top;text-align:left;color:#333333;cursor:pointer} .cell_num {vertical-align:top;text-align:right;color:#333333;}</style><script language=''javascript''>function openwin(){window.open (''page.html'',''newwindow'',''height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no'')}</script>' ; SET @html = @html + CAST(( SELECT 3 [@cellpadding], 0 [@cellspacing], 'font-family:verdana;font-size:10px;' [@style], 1 [@border], --returns the header ( SELECT [@class] = 'header', 'Database Table' [text()] FOR XML PATH('th'), TYPE) tr, ( SELECT [@class] = 'header', 'Entity Count' [text()] FOR XML PATH('th'), TYPE) tr, ( SELECT [@class] = 'header', 'Total Rows' [text()] FOR XML PATH('th'), TYPE ) tr, -- returns the rows in the table ( SELECT ( SELECT [@class] = 'cell_text',[@onClick]='openwin()',dbtable [text()] FOR XML PATH('td'), TYPE ), ( SELECT [@class] = 'cell_text', entities [text()] FOR XML PATH('td'), TYPE ), ( SELECT [@class] = 'cell_num', rows [text()] FOR XML PATH('td'), TYPE ) FROM ( SELECT TOP 3 dbtable = OBJECT_NAME(object_id), entities = COUNT(DISTINCT name), rows = COUNT(*) FROM sys.columns GROUP BY OBJECT_NAME(object_id) ) data FOR XML PATH('tr'), TYPE ) FOR XML PATH('table'), TYPE ) AS VARCHAR(MAX)) Exec dbo.sp_send_dbmail @profile_name='MailForHr', @recipients='test@163.com', @subject=N'ddddd', @body=@html, @body_format='HTML'; 这样写也是没有报错,但就是收到的邮件,点了没有反应
lusawlx 2013-01-29
  • 打赏
  • 举报
回复
引用 9 楼 shoppo0505 的回复:
引用 8 楼 shoppo0505 的回复: 你确定是 javascript这段出错么?把报错信息贴一下。 我测试了一下 [@onClick]='window.open(''test.html'')' 这么写是对的,你再看看自己的code 起码输出的 @html code是对的,你的存储过程没法测试。
copy我最上面的代码,直接放在msdb中的查询分析器中就可以运行,把邮件改下就可以到邮箱看收到的邮件
lusawlx 2013-01-29
  • 打赏
  • 举报
回复
引用 8 楼 shoppo0505 的回复:
你确定是 javascript这段出错么?把报错信息贴一下。 我测试了一下 [@onClick]='window.open(''test.html'')' 这么写是对的,你再看看自己的code
没有报错啊,只是收到的邮件,在邮件中点了没起作用
lusawlx 2013-01-28
  • 打赏
  • 举报
回复
( SELECT ( SELECT [@class] = 'cell_text',[@onClick]='javascript:window.open(''test.html'')',dbtable [text()] FOR XML PATH('td'), TYPE ), 写这样的都没用
lusawlx 2013-01-28
  • 打赏
  • 举报
回复
引用 3 楼 shoppo0505 的回复:
引用 2 楼 lusawlx 的回复: 引用 1 楼 shoppo0505 的回复:用javascript好了。 直接html我知道 怎么弄,,,,现在就是想在邮件中怎么弄 我是说用javascript,在单元格设置onclick函数,然后调用数据库中的存储过程,发送邮件
在邮件内容中就是不知怎么设置javascript了
shoppo0505 2013-01-28
  • 打赏
  • 举报
回复
引用 8 楼 shoppo0505 的回复:
你确定是 javascript这段出错么?把报错信息贴一下。 我测试了一下 [@onClick]='window.open(''test.html'')' 这么写是对的,你再看看自己的code
起码输出的 @html code是对的,你的存储过程没法测试。
shoppo0505 2013-01-28
  • 打赏
  • 举报
回复
你确定是 javascript这段出错么?把报错信息贴一下。 我测试了一下 [@onClick]='window.open(''test.html'')' 这么写是对的,你再看看自己的code
lusawlx 2013-01-28
  • 打赏
  • 举报
回复
引用 6 楼 shoppo0505 的回复:
引用 5 楼 lusawlx 的回复: ( SELECT ( SELECT [@class] = 'cell_text',[@onClick]='javascript:window.open(''test.html'')',dbtable [text()] FOR XML PATH('td'), TYPE ), 写这样的都没用 你的双引号和单引号反了。 javascrip……
那个不是双引号 ,是两个单引号 ( SELECT ( SELECT [@class] = 'cell_text',[@onclick]="window.open('test.html')",dbtable [text()] FOR XML PATH('td'), TYPE ), 这样是报错。 ( SELECT ( SELECT [@class] = 'cell_text',[@onclick]='window.open('test.html')',dbtable [text()] FOR XML PATH('td'), TYPE ), 这样也报错
shoppo0505 2013-01-28
  • 打赏
  • 举报
回复
引用 5 楼 lusawlx 的回复:
( SELECT ( SELECT [@class] = 'cell_text',[@onClick]='javascript:window.open(''test.html'')',dbtable [text()] FOR XML PATH('td'), TYPE ), 写这样的都没用
你的双引号和单引号反了。 javascript 的Debug确实很麻烦,很小的一个标点错误就不能运行了。 这个真没法帮,你自己慢慢检查一下生成的code吧。
shoppo0505 2013-01-27
  • 打赏
  • 举报
回复
引用 2 楼 lusawlx 的回复:
引用 1 楼 shoppo0505 的回复:用javascript好了。 直接html我知道 怎么弄,,,,现在就是想在邮件中怎么弄
我是说用javascript,在单元格设置onclick函数,然后调用数据库中的存储过程,发送邮件
lusawlx 2013-01-26
  • 打赏
  • 举报
回复
引用 1 楼 shoppo0505 的回复:
用javascript好了。
直接html我知道 怎么弄,,,,现在就是想在邮件中怎么弄
shoppo0505 2013-01-25
  • 打赏
  • 举报
回复
用javascript好了。

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧