版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 * GSP 数据库接口单元 设计:Tu Jianhua 2005.06.24 备注: 审核: Copyright (c) 1994-2005 GrandSoft Corporation * unit GSPInterface; interface uses Classes, SysUtils, Types, GrandXMLIntf, GEPInterface; const cGSPEngineVersion = 2.3.9;/ 平台引擎版本号(版本.存储.接口) cErrorRefCode = ?; / 非法引用代码 cParamMark = ?; / 参数标记 cRefForeignKe
2、yMark = ; / 引用外键字段标识 cVariableMark = ; / 变量标记 const ptUnknown = 0; / 未知 ptField = 1; / 字段 ptCustomMacro = 2; / 自定义宏 ptRowRefMacro = 3; / 行引用宏 ptConditionMacro = 4; / 条件宏 ptKeyValueMacro = 5; / 键值宏 ptExprEvaluator = 6; / 表达式求值器 ptViewFilterTrigger = 7; / 动态View 的记录过滤触发器 ptConstraintRule = 8; / 约束规则 c
3、onst edtIntegerProvider = 30; edtFloatProvider = 31; edtStringProvider = 32; edtBooleanProvider = 33; edtDatetimeProvider = 34; edtInt64Provider = 35; edtIntegerProviderList = 40; edtFloatProviderList = 41; edtStringProviderList = 42; edtBooleanProviderList = 43; edtDatetimeProviderList = 44; edtInt
4、64ProviderList = 45; edtModel = 50; / IGSPModel edtDatabase = 51; / IGSPDatabase edtTable = 52; / IGSPTable edtRecord = 53; / IGSPRecord edtField = 54; / IGSPField edtData = 55; / IGEPData edtView = 56; / IGSPView edtDatabaseDynArray = 60; / IGSPDatabaseDynArray edtTableDynArray = 61; / IGSPTableDyn
5、Array edtRecordDynArray = 62; / IGSPRecordDynArray type / 数据模式 TGSPMode = ( gmDesign = 0, / 设计期 gmLoad = 1, / 装载期 gmRuntime = 2 / 运行期 ); / 数据类型 TGSPDataType = ( dtString = 0, / 字符串 dtBoolean = 1, / 布尔型 dtLongInt = 2, / 4 字节有符号整数 dtShortInt = 3, / 1 字节有符号整数 dtByte = 4, / 1 字节无符号整数 dtSmallInt = 5, / 2
6、 字节有符号整数 dtWord = 6, / 2 字节无符号整数 dtDouble = 7, / 双精度浮点数 dtDecimal = 8, / 固定小数位数浮点数 dtDateTime = 9, / 日期时间型 dtText = 10, / 文本备注 dtBlob = 11, / 二进制OLE dtTable = 12, / 表 dtInt64 = 13 / 长整数 ); / 字段类型 TGSPFieldKind = ( fkPrimaryKey = 0, / 主键字段 fkForeignKey = 1, / 外键字段 fkNormalData = 2, / 普通数据字段 fkEnum =
7、3, / 枚举字段 fkExpr = 4, / 表达式字段(用户输入表达式) fkCalc = 5, / 计算字段(在Schema 中定义表达式) fkNullExprData = 6, / 带空值表达式数据字段 fkNestedTable = 7 / 嵌套表 ); / 主细关系 TGSPMasterDetailRelationship = ( mdrOneToMany = 0, / 1 对多 mdrOneToOne = 1 / 1 对1 ); / 表类型 TGSPTableKind = ( tkNormalTable = 0, / 普通表 tkPropTable = 1, / 属性表 tkN
8、estedTable = 2, / 嵌套表 tkTempTable = 3 / 临时表 ); / 基本数据类型 TGSPBaseDataType = ( bdtUnknown, / 未知 bdtInteger, / 整数 bdtFloat, / 浮点数 bdtString, / 字符串 bdtBoolean, / 布尔 bdtDatetime, / 日期时间 bdtTable, / 嵌套表 bdtInt64 / 长整数 ); / 命令状态 TGSPDoCommandMode = ( dcmNone, / 无 dcmUndo, / 撤销状态 dcmRedo / 重做状态 ); / Provide
9、r 类型 TGSPProviderType = Byte; / Seek 定位选项 TGSPSeekOption = ( gsoFirst, / 返回第一条匹配的记录下标 gsoLast, / 返回最后一条匹配的记录下标 gsoMatch / 返回二分查找时首次匹配的记录下标 ); / Seek 定位选项 TGSPSeekFlag = ( sfEqual, sfGreaterThan, sfGreaterEqual, sfLessThan, sfLessEqual ); / 比较结果 TGSPCompareResult = ( gcrLessThan = -1, / 小于 gcrEqual =
10、 0, / 等于 gcrGreaterThan = 1 / 大于 ); / 命令类型 TGSPCommandKind = Word; / 下拉列表选择项 TGSPPickItem = record DisplayText: string; / 显示文本 PickResult: string; / 返回值 end; / 下拉列表 TGSPPickItemDynArray = array of TGSPPickItem; / Lookup 类型 TGSPLookupKind = ( lkNone, / 无查询 lkTable, / 从表中查询 lkList, / 从固定列表中查询 lkSQL /
11、SQL 语句查询 ); / 自定义宏类型 TGSPCustomMacroType = ( cmtTableCustomMacro, cmtRecordCustomMacro ); type IGSPModel = interface; IGSPDatabase = interface; IGSPTables = interface; IGSPTable = interface; IGSPView = interface; IGSPRecord = interface; IGSPRecordProxy = interface; IGSPRecordParser = interface; IGSP
12、Field = interface; IGSPTableSchema = interface; IGSPFieldSchemas = interface; IGSPFieldSchema = interface; IGSPForeignKeyFieldSchema = interface; IGSPExtPropDefs = interface; IGSPExtPropDef = interface; IGSPKeyValueMacroDef = interface; IGSPCustomMacroDefs = interface; IGSPCustomMacroDef = interface
13、; IGSPConstDef = interface; IGSPConstDefs = interface; IGSPRuleDefs = interface; IGSPRuleDef = interface; IGSPReadonlyRuleDefs = interface; IGSPReadonlyRuleDef = interface; IGSPIndexFiles = interface; IGSPIndexFile = interface; IGSPVariable = interface; IGSPScripts = interface; IGSPScript = interfac
14、e; IGSPApplyUpdateCommands = interface; IGSPFilterRecordEventList = interface; IGSPModelEventContainer = interface; IGSPDatabaseEventContainer = interface; IGSPTableEventContainer = interface; IGSPRecordEventContainer = interface; IGSPFieldEventContainer = interface; IGSPViewObserver = interface; IG
15、SPCommand = interface; IGSPProvider = interface; IGSPExprEvaluator = interface; IGSPRecordList = interface; IGSPVarInfo = interface; IGSPSubModelInfo = interface; IGSPModelXMLReader = interface; IGSPModelXMLWriter = interface; IGSPTableXMLReader = interface; IGSPTableXMLWriter = interface; / 事件方法类型:
16、Mode 改变之前触发 TGSPBeforeModeChangeEvent = procedure (const AModel: IGSPModel; ANewMode: TGSPMode; var ACanChange: Boolean) of object; / 事件方法类型:Mode 改变之后触发 TGSPAfterModeChangeEvent = procedure (const AModel: IGSPModel; AOldMode: TGSPMode) of object; / 事件方法类型:创建SubModel 之前触发 TGSPBeforeGetSubModelEvent =
17、 procedure (const AModel: IGSPModel; const ASubModelInfo: IGSPSubModelInfo; var ACanCreate: Boolean) of object; / 事件方法类型:创建SubModel 之后触发 TGSPAfterGetSubModelEvent = procedure (const AModel, ASubModel: IGSPModel; const ASubModelInfo: IGSPSubModelInfo) of object; / 事件方法类型:提交更新之前触发 TGSPBeforeApplyUpdat
18、eEvent = procedure (const AModel: IGSPModel; const ACommands: IGSPApplyUpdateCommands; var ACanApplyUpdate: Boolean) of object; / 事件方法类型:提交更新之后触发 TGSPAfterApplyUpdateEvent = procedure (const AModel: IGSPModel; const ACommands: IGSPApplyUpdateCommands) of object; / 事件方法类型:插入数据库之前触发 TGSPBeforeInsertDa
19、tabaseEvent = procedure (AIndex: Integer; const ADatabase: IGSPDatabase; var ACanInsert: Boolean) of object; / 事件方法类型:插入数据库之后触发 TGSPAfterInsertDatabaseEvent = procedure (const ADatabase: IGSPDatabase) of object; / 事件方法类型:删除数据库之前触发 TGSPBeforeDeleteDatabaseEvent = procedure (const ADatabase: IGSPDatab
20、ase; var ACanDelete: Boolean) of object; / 事件方法类型:删除数据库之后触发 TGSPAfterDeleteDatabaseEvent = procedure (const ADatabase: IGSPDatabase) of object; / 事件方法类型:移动数据库之前触发 TGSPBeforeMoveDatabaseEvent = procedure (const AModel: IGSPModel; AFromIndex, AToIndex: Integer; var ACanMove: Boolean) of object; / 事件方法
21、类型:移动数据库之后触发 TGSPAfterMoveDatabaseEvent = procedure (const AModel: IGSPModel; AFromIndex, AToIndex: Integer) of object; / 事件方法类型:插入表之前触发 TGSPBeforeInsertTableEvent = procedure (AIndex: Integer; const ATable: IGSPTable; var ACanInsert: Boolean) of object; / 事件方法类型:插入表之后触发 TGSPAfterInsertTableEvent =
22、procedure (const ATable: IGSPTable) of object; / 事件方法类型:删除表之前触发 TGSPBeforeDeleteTableEvent = procedure (const ATable: IGSPTable; var ACanDelete: Boolean) of object; / 事件方法类型:删除表之后触发 TGSPAfterDeleteTableEvent = procedure (const ATable: IGSPTable) of object; / 事件方法类型:移动表之前触发 TGSPBeforeMoveTableEvent =
23、 procedure (const ADatabase: IGSPDatabase; AFromIndex, AToIndex: Integer; var ACanMove: Boolean) of object; / 事件方法类型:移动表之后触发 TGSPAfterMoveTableEvent = procedure (const ADatabase: IGSPDatabase; AFromIndex, AToIndex: Integer) of object; / 事件方法类型:插入记录之前触发 TGSPBeforeInsertRecordEvent = procedure (AIndex
24、: Integer; const ARecord: IGSPRecord; var ACanInsert: Boolean) of object; / 事件方法类型:插入记录之后触发 TGSPAfterInsertRecordEvent = procedure (const ARecord: IGSPRecord) of object; / 事件方法类型:删除记录之前触发 TGSPBeforeDeleteRecordEvent = procedure (const ARecord: IGSPRecord; var ACanDelete: Boolean) of object; / 事件方法类型
25、:删除记录之后触发 TGSPAfterDeleteRecordEvent = procedure (const ARecord: IGSPRecord) of object; / 事件方法类型:移动记录之前触发 TGSPBeforeMoveRecordEvent = procedure (const ATable: IGSPTable; AFromIndex, AToIndex: Integer; var ACanMove: Boolean) of object; / 事件方法类型:移动记录之后触发 TGSPAfterMoveRecordEvent = procedure (const ATa
26、ble: IGSPTable; AFromIndex, AToIndex: Integer) of object; / 事件方法类型:更新字段之前触发 TGSPBeforeUpdateFieldEvent = procedure (const AField: IGSPField; ANewValue: Variant; AIsExprUpdate: Boolean; var ACanChange: Boolean) of object; / 事件方法类型:更新字段之后触发 TGSPAfterUpdateFieldEvent = procedure (const AField: IGSPFiel
27、d; AIsExprUpdate: Boolean) of object; / 事件方法类型:查询主键值 TGSPQueryIDValueEvent = procedure (const ARecord: IGSPRecord; var AIDValue: Integer) of object; / 事件方法类型:取浮点类型字段精度 TGSPQueryDecimalEvent = procedure (const AField: IGSPField; var ADecimal: Integer) of Object; / 事件方法类型:过滤记录 TGSPFilterRecordEvent =
28、procedure(const ARecord: IGSPRecord; var Accept: Boolean) of object; / 事件方法类型:刷新ExprEvaluator 值 TGSPEvaluatorRefreshValueEvent = procedure(const AEvaluator: IGSPExprEvaluator) of object; / 记录排序比较函数 TGSPRecordCompareFunc = function (const ARecord1, ARecord2: IGSPRecord): TGSPCompareResult of object;
29、/ IGSPTableSchema 动态数组 TGSPTableSchemaDynArray = array of IGSPTableSchema; / 外键字段动态数组 TGSPForeignKeyFieldSchemaDynArray = array of IGSPForeignKeyFieldSchema; / IGSPDatabase 动态数组 TGSPDatabaseDynArray = array of IGSPDatabase; / IGSPTable 动态数组 TGSPTableDynArray = array of IGSPTable; / IGSPRecord 动态数组 T
30、GSPRecordDynArray = array of IGSPRecord; / IGSPField 动态数组 TGSPFieldDynArray = array of IGSPField; / IGSPProvider 动态数组 TGSPProviderDynArray = array of IGSPProvider; / IGSPView 动态数组 TGSPViewDynArray = array of IGSPView; / IGSPViewObserver 动态数组 TGSPViewObserverDynArray = array of IGSPViewObserver; / 字段
31、类型动态数组 TGSPFieldKindDynArray = array of TGSPFieldKind; / 平台引擎接口 IGSPEngine = interface 1B048041-1E81-4A41-8D30-73CCF78600AF function CreateModel( ALogCommand: Boolean = False; const AGEPEngine: IGEPEngine = nil): IGSPModel; function CreateTempTable( const ATableName: string = ; const AModel: IGSPMod
32、el = nil; const AGEPEngine: IGEPEngine = nil): IGSPTable; function CreateModelXMLReader(ASimpleDataIntf: Boolean = False): IGSPModelXMLReader; function CreateModelXMLWriter: IGSPModelXMLWriter; function CreateTableXMLReader: IGSPTableXMLReader; function CreateTableXMLWriter: IGSPTableXMLWriter; func
33、tion CreateGEPEngine: IGEPEngine; function GetDefaultGEPEngine: IGEPEngine; function GetVersion: string; property DefaultGEPEngine: IGEPEngine read GetDefaultGEPEngine; property Version: string read GetVersion; end; / 模型XML 格式读取接口 IGSPModelXMLReader = interface A67D20CB-E430-462B-8E6E-1B21ACE2071A p
34、rocedure Read(const AXMLNode: IXMLNode; const AModel: IGSPModel; AReadonly: Boolean = False); overload; procedure Read(const AXMLDoc: IXMLDocument; const AModel: IGSPModel; AReadonly: Boolean = False); overload; procedure Read(const AFileName: string; const AModel: IGSPModel; AReadonly: Boolean = Fa
35、lse); overload; procedure Read(const AStream: TStream; const AModel: IGSPModel; AReadonly: Boolean = False); overload; procedure Read(const AXMLNode: IXMLNode; const AModel: IGSPModel; AForceMode: TGSPMode; AReadonly: Boolean = False); overload; procedure Read(const AXMLDoc: IXMLDocument; const AMod
36、el: IGSPModel; AForceMode: TGSPMode; AReadonly: Boolean = False); overload; procedure Read(const AFileName: string; const AModel: IGSPModel; AForceMode: TGSPMode; AReadonly: Boolean = False); overload; procedure Read(const AStream: TStream; const AModel: IGSPModel; AForceMode: TGSPMode; AReadonly: B
37、oolean = False); overload; procedure Read(const AXMLNode: IXMLNode; const ADatabase: IGSPDatabase; const ADatabaseName: string); overload; procedure Read(const AXMLDoc: IXMLDocument; const ADatabase: IGSPDatabase; const ADatabaseName: string); overload; procedure Read(const AFileName: string; const
38、ADatabase: IGSPDatabase; const ADatabaseName: string); overload; procedure Read(const AStream: TStream; const ADatabase: IGSPDatabase; const ADatabaseName: string); overload; procedure ReadSchema(const AXMLNode: IXMLNode; const AModel: IGSPModel); overload; procedure ReadSchema(const AXMLDoc: IXMLDo
39、cument; const AModel: IGSPModel); overload; procedure ReadSchema(const AFileName: string; const AModel: IGSPModel); overload; procedure ReadSchema(const AStream: TStream; const AModel: IGSPModel); overload; procedure ReadData(const AXMLNode: IXMLNode; const AModel: IGSPModel; AReadonly: Boolean = Fa
40、lse); overload; procedure ReadData(const AXMLDoc: IXMLDocument; const AModel: IGSPModel; AReadonly: Boolean = False); overload; procedure ReadData(const AFileName: string; const AModel: IGSPModel; AReadonly: Boolean = False); overload; procedure ReadData(const AStream: TStream; const AModel: IGSPMod
41、el; AReadonly: Boolean = False); overload; end; / 模型XML 格式保存接口 IGSPModelXMLWriter = interface D656872F-FC67-44FC-A527-257FF8D6A519 procedure Write(const AXMLNode: IXMLNode; const AModel: IGSPModel; ACompressData: Boolean = True); overload; procedure Write(const AXMLDoc: IXMLDocument; const AModel: I
42、GSPModel; ACompressData: Boolean = True); overload; procedure Write(const AFileName: string; const AModel: IGSPModel; ACompressData: Boolean = True; AEncryptData: Boolean = True); overload; procedure Write(const AStream: TStream; const AModel: IGSPModel; ACompressData: Boolean = True; AEncryptData:
43、Boolean = True); overload; procedure WriteSchema(const AXMLNode: IXMLNode; const AModel: IGSPModel); overload; procedure WriteSchema(const AXMLDoc: IXMLDocument; const AModel: IGSPModel); overload; procedure WriteSchema(const AFileName: string; const AModel: IGSPModel; AEncryptData: Boolean = True);
44、 overload; procedure WriteSchema(const AStream: TStream; const AModel: IGSPModel); overload; procedure WriteData(const AXMLNode: IXMLNode; const AModel: IGSPModel; ACompressData: Boolean = True); overload; procedure WriteData(const AXMLDoc: IXMLDocument; const AModel: IGSPModel; ACompressData: Boole
45、an = True); overload; procedure WriteData(const AFileName: string; const AModel: IGSPModel; ACompressData: Boolean = True; AEncryptData: Boolean = True); overload; procedure WriteData(const AStream: TStream; const AModel: IGSPModel; ACompressData: Boolean = True); overload; end; / 表XML 格式读取接口 IGSPTa
46、bleXMLReader = interface 47D66096-CF94-4583-92FF-764AB57C510B procedure Read(const AXMLNode: IXMLNode; const ATable: IGSPTable); overload; procedure Read(const AXMLFile: string; const ATable: IGSPTable); overload; procedure Read(const AXMLDoc: IXMLDocument; const ATable: IGSPTable); overload; end; /
47、 表XML 格式保存接口 IGSPTableXMLWriter = interface 47D66096-CF94-4583-92FF-764AB57C510B procedure Write(const AXMLNode: IXMLNode; const ATable: IGSPTable; ACompressData: Boolean); overload; procedure Write(const AXMLFile: string; const ATable: IGSPTable; ACompressData: Boolean = False; AEncryptData: Boolea
48、n = True); overload; procedure Write(const AXMLDoc: IXMLDocument; const ATable: IGSPTable; ACompressData: Boolean); overload; end; / 提交命令接口 IGSPApplyUpdateCommands = interface 802541EC-B081-4DD5-9215-95694F5D5B86 procedure Execute(const AModel: IGSPModel); end; / 模型接口 IGSPModel = interface AA1E8499-
49、3EF8-4141-AE10-2B41882D2C8F function New(const ADatabaseName: string = ; const ADatabaseAliasName: string = ): IGSPDatabase; procedure Add(const ADatabase: IGSPDatabase); overload; procedure Add(const ADatabases: array of IGSPDatabase); overload; procedure Delete(AIndex: Integer); procedure Remove(c
50、onst ADatabaseName: string); overload; procedure Remove(const ADatabase: IGSPDatabase); overload; procedure Remove(const ADatabaseNames: TStringDynArray); overload; procedure Remove(const ADatabases: array of IGSPDatabase); overload; procedure Clear; procedure Move(AFromIndex, AToIndex: Integer); pr
51、ocedure Merge(const ASource: IGSPModel); overload; procedure Merge(const ASource: IGSPDatabase); overload; procedure Merge(const ADatabases: array of IGSPDatabase); overload; function IndexOf(const ADatabaseName: string): Integer; overload; function IndexOf(const ADatabase: IGSPDatabase): Integer; o
52、verload; function Find(const ADatabaseName: string): IGSPDatabase; function FindTable(const ADatabaseName, ATableName: string): IGSPTable; function TableByName(const ATableName: string; const ADatabaseName: string = ): IGSPTable; procedure AssignData(const ASource: IGSPModel); procedure ClearData; f
53、unction Clone(ALogCommand: Boolean = False; ASchemaOnly: Boolean = False): IGSPModel; procedure BatchInsertRecord(const ARecords: TGSPRecordDynArray; const ANextRecordIDs: TIntegerDynArray); overload; procedure BatchInsertRecord(const ARecords: IGSPRecordList; const ANextRecordIDs: TIntegerDynArray)
54、; overload; procedure BatchRemoveRecord(const ARecords: TGSPRecordDynArray); overload; procedure BatchRemoveRecord(const ARecords: IGSPRecordList); overload; procedure BeginLockObservers; procedure EndLockObservers; function InLockObserversState: Boolean; function ExecuteSQL(const ASQLText: string;
55、ASchemaOnly: Boolean = False): IGSPTable; procedure ApplyUpdate(const ACommands: IGSPApplyUpdateCommands); function CreateSubModel( const ASubModelInfo: IGSPSubModelInfo; ALogCommand: Boolean; ASchemaOnly: Boolean = False; ACheckValidaty: Boolean = True): IGSPModel; overload; function CreateSubModel
56、( const ASubModelInfo: TObject; ALogCommand: Boolean; ASchemaOnly: Boolean = False; ACheckValidaty: Boolean = True): IGSPModel; overload; procedure CheckModelValidaty( const ARefModel: IGSPModel; const ASubModelInfo: IGSPSubModelInfo; AForceForeignKey: Boolean); function RegisterVar(const ACode: str
57、ing; ADataType: TGEPDataType): IGSPVariable; function FindVar(const ACode: string): IGSPVariable; function HasCommand: Boolean; function FetchCommand: IGSPCommand; function CreateCommand(ACommandKind: TGSPCommandKind): IGSPCommand; procedure BeginPauseCommand; procedure EndPauseCommand; function InP
58、auseCommand: Boolean; procedure BeginTransaction; procedure EndTransaction; procedure Rollback; function InTransaction: Boolean; procedure BeginIgnoreFieldConstraint; procedure EndIgnoreFieldConstraint; procedure CancelIgnoreFieldConstraint; function InIgnoreFieldConstraint: Boolean; procedure Begin
59、Update; procedure EndUpdate; procedure CancelUpdate; function InUpdate: Boolean; function UpdateCount: Integer; procedure BeginPauseEvents; procedure EndPauseEvents; function InPauseEvents: Boolean; function ClearUpdateCount: Integer; procedure ResetUpdateCount(AUpdateCount: Integer); function GetMo
60、delEventContainer: IGSPModelEventContainer; function GetDatabaseEventContainer: IGSPDatabaseEventContainer; function GetTableEventContainer: IGSPTableEventContainer; function GetRecordEventContainer: IGSPRecordEventContainer; function GetFieldEventContainer: IGSPFieldEventContainer; function GetVers
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度智慧城市基础设施安装服务协议6篇
- 二零二五年度农业租赁续租协议书含农产品加工合作3篇
- 二零二五年度企业财务风险管理体系设计合同范本3篇
- 2025年度城市供水管道维修保养服务合同3篇
- 二零二五年度体育赛事赞助与品牌推广合同3篇
- 2025版模具制造与知识产权保密合同3篇
- 2024年贷款协议及抵押担保条款版B版
- 2025年度商业综合体物业管理与服务合同范本3篇
- 2025版智慧城市建设项目合同含大数据应用条款3篇
- 涂药法护理技术
- 2024国家开放大学电大本科《液压气动技术》期末试题及答案
- 肥猪销售合同模板
- 餐饮顾问合作协议
- 新教材牛津译林版高中英语必修第二册全册各单元重点语法精讲
- 两课 说课 单相桥式整流电路分析(获奖)
- 中国移动《下一代全光骨干传送网白皮书》
- 消费者行为学智慧树知到期末考试答案章节答案2024年浙江大学
- 拟攻读博士学位研究计划
- 九年级英语校本作业(合订)
- 九江市第一中学2024年高考数学一模试卷含解析
- 2022年版初中物理课程标准解读-课件
评论
0/150
提交评论