首页 [原创]实现用VB.Net(C#)开发K3 BOS 插件的真正可行方法

[原创]实现用VB.Net(C#)开发K3 BOS 插件的真正可行方法

举报
开通vip

[原创]实现用VB.Net(C#)开发K3 BOS 插件的真正可行方法 永不言弃 QQ105670118 Email:chzjxgd@21cn.com [原创]实现用VB.Net/(C#)开发K/3 BOS 插件的真正可行方法 ------------(网上流传的C Sharp写插件实是不可行的) 金蝶K3 BOS的插件官方是用VB6编写的,如果 能用.Net下的语言工具开发BOS插件是一件很愉快的事情,其中缘由不言而喻,而本文则是个人首创,实现在了用VB.NET 或C# C++.Net来开发BOS的插件(DLL),如果哪位还有比这...

[原创]实现用VB.Net(C#)开发K3 BOS 插件的真正可行方法
永不言弃 QQ105670118 Email:chzjxgd@21cn.com [原创]实现用VB.Net/(C#)开发K/3 BOS 插件的真正可行方法 ------------(网上流传的C Sharp写插件实是不可行的) 金蝶K3 BOS的插件官方是用VB6编写的,如果 能用.Net下的语言工具开发BOS插件是一件很愉快的事情,其中缘由不言而喻,而本文则是个人首创,实现在了用VB.NET 或C# C++.Net来开发BOS的插件(DLL),如果哪位还有比这方法更早的请联系作者,修改首创的宣称 在此先讲几个概念性的问题: 1、 Net类组件与COM组件:VB6开发的ActiveX.dll 可以用regsvr32.exe 注册,它是适合COM 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 的东西,.NET开发的类后缀也是dll,可是它们俩不是相同的东西,.NET(VB、C#)开发的DLL是跑在.net CLR上的中间二进制字节码以及其他一些有自描述功能的元数据组成的,它不符合COM+规范,金蝶K/3及BOS都是用VB6开发而来的,EAS那就另当别论了,所以BOS插件说白了也是VB6调用符合COM规范的DLL,它的原理就是在原程序里(宿主)先导入放在BOS插件上的dll然后直接Byref调用Public Sub Show(Byval XXX as Object) 来把需要编程的对象传递过来,所以我们要VB6能调用.Net的dll,那怎么办呢?Visual Studio提供了一个命令行工具,里面有一个叫regasm.exe的工具帮我们实现这个互通 命令有点汇编的那个masm! 2、 .NET中的强名strong name 说白了就是为了保护你的组件不被破坏,.Net开发的dll想给像com那样被调用那就必须加个强名(数字签名) ’------------------------------------------------------------------------------------------------------------------------------------------ 废话少说,照着我详细的步骤来依葫芦画瓢吧 1,打开VS创建一个类 看图1.1 图1.1 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 :注意图上的红线方框,类、类名、所使用的.Net Frame版本为3.5 2.0的也可以,此测试语言我选VB,当然C#也可以,本人是basic的忠实者! 2,进去后在菜单 [项目]>>[添加引用] 处添加 K3ClassEvents.dll 组件(和VB6一样要添加它)如:图2.1 图 2.1 3,以net的方式和规范编写代码,具体可参考BOS资料和VB6的工具栏插件生成的代码稍作修改作为骨架码 图 3.1 详细代码贴出 附件也带原测试 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 文件,不包括实际应用功能只作示例 Imports K3ClassEvents Public Class MenuBar '定义 ListEvents 接口. 必须具有的声明, 以此来获得事件 Private WithEvents m_ListInterface As ListEvents Public Sub Show(ByVal oListInterface As Object) 'ListEvents 接口实现 '注意: 此方法必须存在, 请勿修改 m_ListInterface = oListInterface End Sub Private Sub Class_Terminate() '释放接口对象 '注意: 此方法必须存在, 请勿修改 m_ListInterface = Nothing End Sub Private Sub m_ListInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, ByRef Cancel As Boolean) Handles m_ListInterface.MenuBarClick 'TODO: 请在此处添加代码响应事件 On Error Resume Next Select Case BOSTool.ToolName Case "shangla" '此处添加处理shangla 菜单对象的 Click 事件 Dim form As New Form form.Show() Case "dizhu" '此处添加处理dizhu 菜单对象的 Click 事件 Case "config" MsgBox("此处添加处理config 菜单对象的 Click 事件 config") Case "Info" '此处添加处理Info 菜单对象的 Click 事件 Dim strID As String strID = m_ListInterface.DataSrv.ClassType("FNAME") Dim strSQL As String strSQL = m_ListInterface.DataSrv.sqlselectdetail & " where " & m_ListInterface.DataSrv.Filter("filterstring") MsgBox(strSQL) Case Else End Select End Sub Private Sub m_ListInterface_MenuBarInitialize(ByVal oMenuBar As K3ClassEvents.MenuBar) Handles m_ListInterface.MenuBarInitialize Try 'TODO: 请在此处添加代码响应事件 Dim oTool As K3ClassEvents.BOSTool Dim oBand As K3ClassEvents.BOSBand '*************** 开始新增 BOS 菜单 *************** '新增 shangla 菜单对象,并设置属性 oTool = oMenuBar.BOSTools.Add("shangla") With oTool .Caption = "上拉" .TooltipText = "上拉源单据" .Description = "上拉" .ShortcutKey = 0 .Visible = True .Enabled = True .BeginGroup = True .ToolPicture = "D:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\ico\makequery.ico" .SetPicture(0, 0) End With oBand = oMenuBar.BOSBands("BandToolBar") oBand.BOSTools.InsertBefore("mnuBackData", oTool) '将菜单对象插入指定工具栏 '新增 dizhu 菜单对象,并设置属性 oTool = oMenuBar.BOSTools.Add("dizhu") With oTool .Caption = "斗地主" .TooltipText = "来休闲一下吧" .Description = "斗地主" .ShortcutKey = 0 .Visible = True .Enabled = True .BeginGroup = True .ToolPicture = "D:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\ico\icon.ico" .SetPicture(0, 0) End With oBand = oMenuBar.BOSBands("BandToolBar") oBand.BOSTools.InsertBefore("mnuBackData", oTool) '将菜单对象插入指定工具栏 '新增 config 菜单对象,并设置属性 oTool = oMenuBar.BOSTools.Add("config") With oTool .Caption = "设置" .TooltipText = "设置自定义执行的SQL" .Description = "执行" .ShortcutKey = 0 .Visible = True .Enabled = True .BeginGroup = True .ToolPicture = "D:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\ico\ProgressSuccess.ico" .SetPicture(0, 0) End With oBand = oMenuBar.BOSBands("BandToolBar") oBand.BOSTools.InsertBefore("mnuBackData", oTool) '将菜单对象插入指定工具栏 '新增 Info 菜单对象,并设置属性 oTool = oMenuBar.BOSTools.Add("Info") With oTool .Caption = "信息" .TooltipText = "显关相关信息" .Description = "信息" .ShortcutKey = 0 .Visible = True .Enabled = True .BeginGroup = True .ToolPicture = "D:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\ico\server.ico" .SetPicture(0, 0) End With oBand = oMenuBar.BOSBands("BandToolBar") oBand.BOSTools.InsertBefore("mnuBackData", oTool) '将菜单对象插入指定工具栏 '*************** 结束新增 BOS 菜单 *************** Catch ex As Exception MsgBox(ex.Message.ToString) End Try End Sub End Class 4. 1)进入菜单 [项目]>[xxx属性]>应用程序> 程序集信息 下在 使程序集COM可见 打勾 2) 进入 [项目]>[xxx属性]>编译 下 把 [为COM互操作] 打勾 3) 进入 [项目]>[xxx属性]>签名 下 把[为程序集签名] 打勾 并 <新建…> 一个snk签名 不设密码也可 5,进入VS tools 关键: 用regasm命令注册Net的dll D:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\BOS_ListEvent_PlugIns\BOS_ListEvent_PlugIns\bin\Release> regasm BOS_ListEvent_PlugIns.dll /tlb: TestPlugIns.Net.dll 6)结束,在BOS开发环境下调用 这个注册后的dll即可 因为我建了一个窗体 所以多了一个 form这项 有没有看多出工具栏这几项菜单 上拉 斗地主 信息 点[上拉]出现的事件 如下图 Select Case BOSTool.ToolName Case "shangla" '此处添加处理shangla 菜单对象的 Click 事件 Dim form As New Form form.Show() 其实可以把从主程序的数据拉到自己建的解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 下处理,这比VB6强一点,在VB6下试了一下,好像不能显示自己建的窗体,此次为演示测试插件,并无实现任何实际功能,大家撑握.NET做插件后可尽情发挥,本人之后可能没这么多时间接触金蝶了,换了个用用友的公司,其实本人还是挺喜欢K3 BOS的,闲话不说了^_^ 如有疑问请联系chzjxgd@21cn.com 或QQ 105670118 附上原工程文件: 2011-2-9 晚 金蝶K3经验3号分群 38119522 _1358789529/BOS_ListEvent_PlugIns.rar BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/ai.jpg BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V1/BOS_ListEvent_PlugIns.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V1/BOS_ListEvent_PlugIns.Net.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V1/BOS_ListEvent_PlugIns.pdb BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V1/BOS_ListEvent_PlugIns.tlb BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V1/BOS_ListEvent_PlugIns.xml BOS_ListEvent_PlugIns BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V1/Interop.ActiveBarLibrary.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V1/Interop.K3ClassEvents.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V1/Interop.KFO.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V2/BOS_ListEvent_PlugIns.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V2/BOS_ListEvent_PlugIns.Net.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V2/BOS_ListEvent_PlugIns.pdb BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V2/BOS_ListEvent_PlugIns.tlb BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V2/BOS_ListEvent_PlugIns.xml BOS_ListEvent_PlugIns BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V2/Interop.ActiveBarLibrary.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V2/Interop.K3ClassEvents.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V2/Interop.KFO.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V3/BOS_ListEvent_PlugIns.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V3/BOS_ListEvent_PlugIns.Net.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V3/BOS_ListEvent_PlugIns.pdb BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V3/BOS_ListEvent_PlugIns.tlb BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V3/BOS_ListEvent_PlugIns.xml BOS_ListEvent_PlugIns 返回此类使用的缓存 ResourceManager 实例。 为使用此强类型资源类的所有资源查找 重写当前线程的 CurrentUICulture 属性。 强类型资源类,用于查找本地化字符串等。 BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V3/Interop.ActiveBarLibrary.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V3/Interop.K3ClassEvents.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Beta/V3/Interop.KFO.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Release/BOS_ListEvent_PlugIns.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Release/BOS_ListEvent_PlugIns.pdb BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Release/BOS_ListEvent_PlugIns.tlb BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Release/BOS_ListEvent_PlugIns.xml BOS_ListEvent_PlugIns 返回此类使用的缓存 ResourceManager 实例。 为使用此强类型资源类的所有资源查找 重写当前线程的 CurrentUICulture 属性。 强类型资源类,用于查找本地化字符串等。 BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Release/Interop.ActiveBarLibrary.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Release/Interop.K3ClassEvents.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Release/Interop.KFO.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/bin/Release/TestPlugIns.Net.dll BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/BOSPlugInsSN.snk BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns.vbproj Debug AnyCPU 9.0.30729 2.0 {997E5C3D-588B-4C06-BCB2-359F18AF9CFD} Library BOS_ListEvent_PlugIns BOS_ListEvent_PlugIns 512 Windows v3.5 On Binary Off On true BOSPlugInsSN.snk true full true true bin\Debug\ BOS_ListEvent_PlugIns.xml 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 true pdbonly false true true bin\Release\ BOS_ListEvent_PlugIns.xml 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 true 3.5 3.5 3.5 Form.vb Form True Application.myapp True True Resources.resx True Settings.settings True Form.vb VbMyResourcesResXFileCodeGenerator Resources.Designer.vb My.Resources Designer MyApplicationCodeGenerator Application.Designer.vb SettingsSingleFileGenerator My Settings.Designer.vb {0F987290-56EE-11D0-9C43-00A0C90F29FC} 1 0 0 tlbimp False {00000206-0000-0010-8000-00AA006D2EA4} 2 6 0 primary False {BA3A7E83-EF81-47BF-BE5B-99C294267B53} 4 72 0 tlbimp False {BD29F730-5BDA-11D1-9C2A-127658000000} 1 0 0 tlbimp False {00020430-0000-0000-C000-000000000046} 2 0 0 primary False BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns.vbproj.user BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/Form.Designer.vb _ Partial Class Form Inherits System.Windows.Forms.Form 'Form 重写 Dispose,以清理组件列表。 _ Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then components.Dispose() End If Finally MyBase.Dispose(disposing) End Try End Sub 'Windows 窗体 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 器所必需的 Private components As System.ComponentModel.IContainer '注意: 以下过程是 Windows 窗体设计器所必需的 '可以使用 Windows 窗体设计器修改它。 '不要使用代码编辑器修改它。 _ Private Sub InitializeComponent() Me.Button1 = New System.Windows.Forms.Button Me.ComboBox1 = New System.Windows.Forms.ComboBox Me.TextBox1 = New System.Windows.Forms.TextBox Me.PictureBox1 = New System.Windows.Forms.PictureBox Me.Button2 = New System.Windows.Forms.Button Me.RichTextBox1 = New System.Windows.Forms.RichTextBox Me.Button3 = New System.Windows.Forms.Button CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'Button1 ' Me.Button1.Location = New System.Drawing.Point(204, 12) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 0 Me.Button1.Text = "Button1" Me.Button1.UseVisualStyleBackColor = True ' 'ComboBox1 ' Me.ComboBox1.FormattingEnabled = True Me.ComboBox1.Items.AddRange(New Object() {"chzjxgd@21cn.com", "2", "3", "4", "5", "QQ105670118"}) Me.ComboBox1.Location = New System.Drawing.Point(24, 12) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(121, 20) Me.ComboBox1.TabIndex = 1 ' 'TextBox1 ' Me.TextBox1.Location = New System.Drawing.Point(344, 12) Me.TextBox1.Multiline = True Me.TextBox1.Name = "TextBox1" Me.TextBox1.Size = New System.Drawing.Size(358, 143) Me.TextBox1.TabIndex = 2 ' 'PictureBox1 ' Me.PictureBox1.Image = Global.BOS_ListEvent_PlugIns.My.Resources.Resources.ai Me.PictureBox1.Location = New System.Drawing.Point(24, 75) Me.PictureBox1.Name = "PictureBox1" Me.PictureBox1.Size = New System.Drawing.Size(222, 212) Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize Me.PictureBox1.TabIndex = 3 Me.PictureBox1.TabStop = False ' 'Button2 ' Me.Button2.Location = New System.Drawing.Point(344, 211) Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(79, 30) Me.Button2.TabIndex = 4 Me.Button2.Text = "计算器" Me.Button2.UseVisualStyleBackColor = True ' 'RichTextBox1 ' Me.RichTextBox1.Location = New System.Drawing.Point(275, 272) Me.RichTextBox1.Name = "RichTextBox1" Me.RichTextBox1.Size = New System.Drawing.Size(360, 230) Me.RichTextBox1.TabIndex = 5 Me.RichTextBox1.Text = "" ' 'Button3 ' Me.Button3.Location = New System.Drawing.Point(398, 523) Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(76, 24) Me.Button3.TabIndex = 6 Me.Button3.Text = "保存" Me.Button3.UseVisualStyleBackColor = True ' 'Form ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(714, 559) Me.Controls.Add(Me.Button3) Me.Controls.Add(Me.RichTextBox1) Me.Controls.Add(Me.Button2) Me.Controls.Add(Me.PictureBox1) Me.Controls.Add(Me.TextBox1) Me.Controls.Add(Me.ComboBox1) Me.Controls.Add(Me.Button1) Me.Name = "Form" Me.Text = "Form" CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() End Sub Friend WithEvents Button1 As System.Windows.Forms.Button Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox Friend WithEvents TextBox1 As System.Windows.Forms.TextBox Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox Friend WithEvents Button2 As System.Windows.Forms.Button Friend WithEvents RichTextBox1 As System.Windows.Forms.RichTextBox Friend WithEvents Button3 As System.Windows.Forms.Button End Class BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/Form.resx text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/Form.vb Public Class Form Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MsgBox(TextBox1.Text) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Shell("%systemroot%\system32\calc.exe") Shell("%systemroot%\system32\notepad.exe") End Sub Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim SFD As New System.Windows.Forms.SaveFileDialog SFD.Filter = "RTF文件|*.rtf" Dim dr As Windows.Forms.DialogResult dr = SFD.ShowDialog() If dr = Windows.Forms.DialogResult.OK Then RichTextBox1.SaveFile(SFD.FileName.ToString) End If End Sub End Class BOS_ListEvent_PlugIns/BOS_ListEvent_PlugIns/MenuBar.vb Imports K3ClassEvents Public Class MenuBar Dim form As New Form '定义 ListEvents 接口. 必须具有的声明, 以此来获得事件 Private WithEvents m_ListInterface As ListEvents Public Sub Show(ByVal oListInterface As Object) 'ListEvents 接口实现 '注意: 此方法必须存在, 请勿修改 m_ListInterface = oListInterface End Sub Private Sub Class_Terminate() '释放接口对象 '注意: 此方法必须存在, 请勿修改 m_ListInterface = Nothing form = Nothing If form Is Nothing Then MsgBox("form 已消毁") End If End Sub Private Sub m_ListInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, ByRef Cancel As Boolean) Handles m_ListInterface.MenuBarClick 'TODO: 请在此处添加代码响应事件 On Error Resume Next Select Case BOSTool.ToolName
本文档为【[原创]实现用VB.Net(C#)开发K3 BOS 插件的真正可行方法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_614195
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:11
分类:互联网
上传时间:2013-06-17
浏览量:386