ifix:如何禁止excel报表被修改 点击:5481 | 回复:37



火湖

    
  • 精华:2帖
  • 求助:0帖
  • 帖子:11帖 | 28回
  • 年度积分:0
  • 历史总积分:97
  • 注册:2003年7月29日
发表于:2004-04-23 19:31:00
楼主
最近有个工程。ifix组态软件。我用excel做报表输出。如何做,防止业主在使用的时候,修改报表(打开报表浏览或者打印的时候)。



谢烟客 _16

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 14回
  • 年度积分:0
  • 历史总积分:124
  • 注册:2003年12月31日
发表于:2004-04-26 17:03:00
1楼
excel 里面可以禁止

deng_lp

  • 精华:5帖
  • 求助:0帖
  • 帖子:65帖 | 2669回
  • 年度积分:0
  • 历史总积分:2876
  • 注册:2001年6月19日
发表于:2004-04-27 08:02:00
2楼
可在程序生成报表后只给出预览界面, 不给出原始的网格,或者在EXCEL中直接设定模板为禁止.

火湖

  • 精华:2帖
  • 求助:0帖
  • 帖子:11帖 | 28回
  • 年度积分:0
  • 历史总积分:97
  • 注册:2003年7月29日
发表于:2004-04-28 17:08:00
3楼
请教: 我如果把模板禁止。如何用vba打开模板正常写入数据呢。 如果设成浏览模式,是不是把文档属性设成不可见? 多指教!

火湖

  • 精华:2帖
  • 求助:0帖
  • 帖子:11帖 | 28回
  • 年度积分:0
  • 历史总积分:97
  • 注册:2003年7月29日
发表于:2004-04-29 11:05:00
4楼
可以改成只能预览的格式了。 多谢。

天堂鸟 _1

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 15回
  • 年度积分:0
  • 历史总积分:84
  • 注册:2002年11月11日
发表于:2004-07-03 14:11:00
5楼
可以利用web ole控件进行预览,这样即使修改了,也不会保存,我就是这么做的。打印可以利用后台的vba编程进行。

阿尔斯通

  • 精华:0帖
  • 求助:0帖
  • 帖子:21帖 | 168回
  • 年度积分:0
  • 历史总积分:230
  • 注册:2002年3月31日
发表于:2004-07-09 00:21:00
6楼
好像应该使用打开模板再另存的做法更合适一些,我就是这样做的,操作员打开的永远只是报表不会打开模板

努力的菜鸟 _70

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:56
  • 注册:2004年8月19日
发表于:2004-08-19 18:53:00
7楼
各位高手: 大家好! 我现在在重庆的一家系统集成公司工作。眼下,我们公司接的一个项目是用ABB的AC800F做转炉,然后用vba作报表。小弟对vba是菜菜鸟,希望各位高手提供关于用vba作报表的资料,小弟感谢万分。最好有些用vba作报表的小程序。我的邮箱:188950819@qq.com 帮帮忙,谢谢!qq:188950819欢迎指教!

卧龙凤楮

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:166
  • 注册:2004年3月10日
发表于:2004-10-02 19:18:00
8楼
我们用的也是ABB的AC800F,本人想用vba作报表,但是不会,请各位大哥哥,大姐姐们帮忙,万分感谢! zhangshuaigreat@163.com qq: 172389230

SUB

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 30回
  • 年度积分:0
  • 历史总积分:113
  • 注册:2002年12月05日
发表于:2004-10-02 19:25:00
9楼
用WEBBROWER

LYJ005

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 10回
  • 年度积分:0
  • 历史总积分:32
  • 注册:2004年3月01日
发表于:2005-01-26 10:03:00
10楼
我有报表原代码,详情 LYJ005@263.NET

kingoffurong

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 4回
  • 年度积分:0
  • 历史总积分:81
  • 注册:2003年12月02日
发表于:2005-02-24 15:25:00
11楼
能不能给我一分报表原代码 yinbangle@126.com

linger _47

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 14回
  • 年度积分:0
  • 历史总积分:75
  • 注册:2005年2月17日
发表于:2005-02-24 16:44:00
12楼
能不能给我一份报表源代码 现行谢过了 houhoulinglong@163.com

zyjzyjzyj _70

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 13回
  • 年度积分:0
  • 历史总积分:163
  • 注册:2005年2月20日
发表于:2005-07-11 16:24:00
13楼
给我也发一份吧,谢谢了,信箱:zyj52575257@sohu.com

风中之祝

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2005年1月22日
发表于:2005-09-27 12:06:00
14楼
我也要一份,navy98072@sohu.com,谢谢了!!!

与时惧进

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 41回
  • 年度积分:0
  • 历史总积分:66
  • 注册:2005年4月29日
发表于:2005-09-28 17:07:00
15楼
设计报表时用excel,预览时用Microsoft 的Excel View 软件,只能查看和打印!

阿尔斯通

  • 精华:0帖
  • 求助:0帖
  • 帖子:21帖 | 168回
  • 年度积分:0
  • 历史总积分:230
  • 注册:2002年3月31日
发表于:2005-09-30 09:48:00
16楼
用Excel做报表本身很简单,主要是工艺不同要求不同略有复杂,如下为偶们一工程中做的一小报表源程序: '读数据传到excel Public Sub SendExcel() Dim pa, date1, date2 As String Dim i, j, k As Integer Dim Ct As Object Dim xlBook As excel.Workbook Dim xlSheet As excel.Worksheet Dim Temp As String Dim Rage As String Dim sTemp As String Dim FsTemp As String Dim TsTemp As String Dim LenTemp As Integer Dim kf As Integer Dim Ye As Integer Dim HourNum As Integer Dim ex Dim exwbook Dim Pass As String Dim PNum As Integer Set ConnDb = New ADODB.Connection pa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Report-Index.mdb" & ";User ID=;Password=;" ConnDb.Open pa ConnDb.CursorLocation = adUseClient Sql = "select * from ChooseIndex where ReportName='" & Combo1 & "'" Set rs3 = ConnDb.Execute(Sql) Expath = App.Path & "\" & rs3("DataName") & "Index.xls" Dim p1 As String Dim p2 As String On Error Resume Next Set ex = CreateObject("Excel.Application") Set exwbook = ex.Workbooks.Open(Expath) Set xlSheet = ex.Worksheets(rs3("ModeNum")) ex.Sheets(rs3("ModeNum")).Select Set ConnWZ = New ADODB.Connection pa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\DataLog\" & rs3("DataName") & ".mdb ;User ID=;Password=;" ConnWZ.Open pa ConnWZ.CursorLocation = adUseClient Sql = "select * from [" & rs3("DataName") & "Index] where ModeNum =" & rs3("ModeNum") If rs3("DataName") = "Runtime" Then Set rs = ConnDb.Execute(Sql) Do While Not rs.EOF If rs("TagName") <> "" Then Sql = "select * from TagTable where TagName= '" & rs("TagName") & "'" Set rs1 = ConnWZ.Execute(Sql) Sql2 = "select top 1 * from FloatTable where TagIndex= " & rs1("TagIndex") & _ " and dateandtime>#" & DateNow.CurrentDate + 1 & " # and dateandtime < # " & _ DateNow.CurrentDate + 2 & " #" Sql1 = "select top 1 * from FloatTable where TagIndex= " & rs1("TagIndex") & _ " and dateandtime>#" & DateNow.CurrentDate & " # and dateandtime < # " & _ DateNow.CurrentDate + 1 & " #" Set rs2 = ConnWZ.Execute(Sql2) Set rs4 = ConnWZ.Execute(Sql1) If rs("LineNum") > 0 And rs("RowNum") > 0 Then xlSheet.Cells(rs("LineNum") + 9, rs("RowNum") + 1) = rs("TagInfo") HourNum = ((rs2("val") - rs4("val")) / rs("TagCoef")) If HourNum > 24 Then HourNum = 24 Else If HourNum < 0 Then HourNum = 0 End If End If xlSheet.Cells(rs("LineNum") + 9, rs("RowNum") + 3) = CStr(HourNum) xlSheet.Cells(rs("LineNum") + 9, rs("RowNum") + 4) = CStr((rs2("val")) / rs("TagCoef")) End If End If rs.MoveNext Loop xlSheet.Cells(10, 27) = rs6("Station") xlSheet.Cells(10, 28) = DateNow.CurrentDate Else Set rs = ConnDb.Execute(Sql) Do While Not rs.EOF If rs("TagName") <> "" Then Sql = "select * from TagTable where TagName= '" & rs("TagName") & "'" Set rs1 = ConnWZ.Execute(Sql) Set rs2 = ConnWZ.Execute(" DROP VIEW V_Employees") Sql = "Create View V_Employees As select * from FloatTable where TagIndex= " & rs1("TagIndex") & _ " and dateandtime>#" & DateNow.CurrentDate & " # and dateandtime < # " & _ DateNow.CurrentDate + 1 & " #" Set rs2 = ConnWZ.Execute(Sql) For k = 0 To 23 Sql = "select top 1 val from V_Employees where hour(dateandtime) = " & k Set rs2 = ConnWZ.Execute(Sql) If rs("RowNum") > 0 Then If rs("RowNum") > 28 Then Sql1 = "select top 1 * from FloatTable where TagIndex= " & rs1("TagIndex") & _ " and dateandtime>#" & DateNow.CurrentDate + 1 & " # and dateandtime < # " & _ DateNow.CurrentDate + 2 & " # and hour(dateandtime) =0 " Set rs4 = ConnWZ.Execute(Sql1) xlSheet.Cells(k + 10, rs("RowNum") + 1) = (rs4("val") - rs2("val")) / rs("TagCoef") k = 24 Else xlSheet.Cells(k + 10, rs("RowNum") + 1) = (rs2("val") / rs("TagCoef")) End If End If Next k If rs("ShortName") <> "" Then xlSheet.Cells(24 + 10, rs("RowNum") + 1) = rs("ShortName") End If End If If rs3("DataName") = "Cooler" Then xlSheet.Cells(10, 27) = rs6("Station") xlSheet.Cells(10, 28) = DateNow.CurrentDate xlSheet.Cells(10, 29) = rs3("CoolerNum") Else xlSheet.Cells(10, 27) = rs6("Station") xlSheet.Cells(10, 28) = DateNow.CurrentDate End If rs.MoveNext Loop End If Label2.Visible = False ex.Sheets(rs3("ModeNum")).Select ex.Sheets(rs3("ModeNum")).Move ex.ActiveWorkbook.SaveAs FileName:= _ "d:\report\" & Combo1.Text & DateNow.CurrentDate & ".xls ", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False pa = (rs3("DataName") & "Index.xls") ex.Windows(pa).Activate ex.ActiveWindow.Close savechanges:=False ex.Application.DisplayFormulaBar = False ex.Application.CommandBars("Standard").Visible = False ex.Application.CommandBars("Formatting").Visible = False ex.Visible = True ex.Close ' SendExcelCom.Enabled = True End Sub

阿尔斯通

  • 精华:0帖
  • 求助:0帖
  • 帖子:21帖 | 168回
  • 年度积分:0
  • 历史总积分:230
  • 注册:2002年3月31日
发表于:2005-09-30 09:49:00
17楼
Excel View 软件谁有,提供一份,谢谢!

阿尔斯通

  • 精华:0帖
  • 求助:0帖
  • 帖子:21帖 | 168回
  • 年度积分:0
  • 历史总积分:230
  • 注册:2002年3月31日
发表于:2005-09-30 09:55:00
18楼
找到了excel viewer软件,下载地址如下: http://down.ddvip.net/softdown.php?id=23596&url=http://dlsctg.ddvip.net/2005-07-30/xlviewercn.exe

热门招聘
相关主题

官方公众号

智造工程师