CDS标准视图:PM通知单 I_LocationAnalysisCube
- 视图名称:PM通知单 I_LocationAnalysisCube
- 视图类型:分析
- 视图代码:
点击查看代码
@EndUserText.label: 'Location Analysis - Cube'
@VDM.viewType: #COMPOSITE
@AbapCatalog.sqlViewName: 'ILOCANALYSISCUBE'
@AccessControl.authorizationCheck: #CHECK
@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata.ignorePropagatedAnnotations: true
@AbapCatalog.compiler.compareFilter: true
@Analytics: {
dataCategory: #CUBE,
dataExtraction: {
enabled: true,
delta.byElement: {
name: 'LastChangeDateTime'
}
}
}
@Metadata.allowExtensions:true
@ObjectModel: {
usageType: {
dataClass: #MIXED,
serviceQuality: #D,
sizeCategory: #XL
}
}
@ObjectModel.supportedCapabilities:[ #ANALYTICAL_PROVIDER ]
@ObjectModel.modelingPattern: #ANALYTICAL_CUBE
@AccessControl.personalData.blocking: #NOT_REQUIRED
// with this CDS view only partial details of CS notification would be visible, CS is only in compatibility mode and no further details would be made available
define view I_LocationAnalysisCube
as select from I_MaintNotificationTechObj
association [0..1] to I_WorkCenterBySemanticKey as _MainWorkCenterBySemanticKey on $projection.MainWorkCenter = _MainWorkCenterBySemanticKey.WorkCenter
and $projection.MainWorkCenterPlant = _MainWorkCenterBySemanticKey.Plant
association [0..1] to I_WorkCenterBySemanticKey as _WorkCenterBySemanticKey on $projection.workcenter = _WorkCenterBySemanticKey.WorkCenter
and $projection.WorkCenterPlant = _WorkCenterBySemanticKey.Plant
association [0..*] to I_EquipmentData as _EquipmentData on _EquipmentData.Equipment = $projection.Equipment
association [0..1] to I_FunctionalLocationData as _FunctionalLocationData on _FunctionalLocationData.FunctionalLocation = $projection.FunctionalLocation
association [0..1] to P_MaintNotifTaskCount as _MaintNotifTaskCount on _MaintNotifTaskCount.MaintenanceNotification = $projection.MaintenanceNotification
association [0..1] to P_MaintNotifSuccssflTaskCount as _MaintNotifSuccssflTaskCount on _MaintNotifSuccssflTaskCount.MaintenanceNotification = $projection.MaintenanceNotification
association [0..1] to P_MaintNotifOutStdgReldTaskCnt as _MaintNotifOutStdgReldTaskCnt on _MaintNotifOutStdgReldTaskCnt.MaintenanceNotification = $projection.MaintenanceNotification
-- Extensions, do not expose as association:
association [0..1] to E_PMNotifMaintenanceData as _NotifMaintenanceDataExtension on _NotifMaintenanceDataExtension.MaintenanceNotification = $projection.MaintenanceNotification
{
@ObjectModel.text.element: [ 'NotificationText' ]
key I_MaintNotificationTechObj.MaintenanceNotification,
@Semantics.text: true
I_MaintNotificationTechObj.NotificationText,
@ObjectModel.foreignKey.association: '_MaintenancePlant'
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.MaintenancePlant,
@ObjectModel.foreignKey.association: '_PlantSection'
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.PlantSection,
@ObjectModel.foreignKey.association: '_PMNotificationType'
I_MaintNotificationTechObj.NotificationType,
@ObjectModel.foreignKey.association: '_PMNotificationPhase'
I_MaintNotificationTechObj.NotifProcessingPhase,
@ObjectModel.foreignKey.association: '_MaintenancePlanPlant'
I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenancePlanningPlant,
@ObjectModel.foreignKey.association: '_PMNotificationPriority'
I_MaintNotificationTechObj.MaintPriority,
@ObjectModel.foreignKey.association: '_PMNotificationPriorityType'
I_MaintNotificationTechObj.MaintPriorityType,
I_MaintNotificationTechObj.NotificationOrigin,
@ObjectModel.foreignKey.association: '_IsDeleted'
I_MaintNotificationTechObj.IsDeleted,
@ObjectModel.foreignKey.association: '_BusinessArea'
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.BusinessArea,
I_MaintNotificationTechObj._PMNotifMaintenanceData.Assembly,
@ObjectModel.foreignKey.association: '_MaintenancePlannerGroup'
I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenancePlannerGroup,
@ObjectModel.foreignKey.association: '_MaintenanceObjectIsDown'
I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenanceObjectIsDown,
@ObjectModel.foreignKey.association: '_MainWorkCenterBySemanticKey'
cast( I_MaintNotificationTechObj._MainWorkCenter.WorkCenter as gewrk preserving type ) as MainWorkCenter,
@ObjectModel.foreignKey.association: '_MainWorkCenterPlant'
cast( I_MaintNotificationTechObj._MainWorkCenter.Plant as wergw preserving type ) as MainWorkCenterPlant,
@ObjectModel.foreignKey.association: '_WorkCenterBySemanticKey'
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._WorkCenter.WorkCenter,
@ObjectModel.foreignKey.association: '_WorkCenterPlant'
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._WorkCenter.Plant as WorkCenterPlant,
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.AssetLocation,
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.AssetRoom,
@ObjectModel.foreignKey.association: '_ABCIndicator'
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.ABCIndicator,
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.MaintObjectFreeDefinedAttrib,
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.CostCenter,
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.ControllingArea,
@ObjectModel.foreignKey.association: '_CompanyCode'
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.CompanyCode,
@ObjectModel.foreignKey.association: '_WBSElementBasicData'
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.WBSElementInternalID,
cast( I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._WBSElementBasicData.WBSElement as ps_posid preserving type ) as WBSElement,
// Dates
@Semantics.systemDate.createdAt: true
I_MaintNotificationTechObj.CreationDate,
@Semantics.systemTime.createdAt: true
I_MaintNotificationTechObj.CreationTime,
@Semantics.systemDate.lastChangedAt: true
I_MaintNotificationTechObj.LastChangeDate,
@Semantics.businessDate.createdAt: true
I_MaintNotificationTechObj.NotificationCreationDate,
I_MaintNotificationTechObj.NotificationCreationTime,
I_MaintNotificationTechObj.NotificationCompletionDate,
I_MaintNotificationTechObj.CompletionTime,
@Semantics.businessDate.at: true
I_MaintNotificationTechObj.NotificationReferenceDate,
I_MaintNotificationTechObj.RequiredStartDate,
I_MaintNotificationTechObj.RequiredStartTime,
I_MaintNotificationTechObj.RequiredEndDate,
I_MaintNotificationTechObj.RequiredEndTime,
I_MaintNotificationTechObj._PMNotifMaintenanceData.MalfunctionStartDate,
I_MaintNotificationTechObj._PMNotifMaintenanceData.MalfunctionStartTime,
I_MaintNotificationTechObj._PMNotifMaintenanceData.MalfunctionEndDate,
I_MaintNotificationTechObj._PMNotifMaintenanceData.MalfunctionEndTime,
// Timestamps
@Semantics.systemDateTime.lastChangedAt: true
I_MaintNotificationTechObj.LastChangeDateTime,
// Users
@Semantics.user.createdBy: true
I_MaintNotificationTechObj.CreatedByUser,
@Semantics.user.lastChangedBy: true
I_MaintNotificationTechObj.LastChangedByUser,
I_MaintNotificationTechObj.ReportedByUser,
/****************************************************************************************************
* Technical Object
****************************************************************************************************/
// Alternative labeling for Functional Locations is supported
I_MaintNotificationTechObj._TechnicalObject.TechnicalObjectLabel,
//@ObjectModel.foreignKey.association: '_TechnicalObject'
//I_MaintNotificationTechObj.TechnicalObject,
@ObjectModel.foreignKey.association: '_TechObjIsEquipOrFuncnlLoc'
I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc,
@ObjectModel.foreignKey.association: '_TechnicalObjectType'
I_MaintNotificationTechObj._TechnicalObject.TechnicalObjectType,
I_MaintNotificationTechObj._TechnicalObject.AssetManufacturerName,
I_MaintNotificationTechObj._TechnicalObject.ManufacturerPartTypeName,
I_MaintNotificationTechObj._TechnicalObject.AuthorizationGroup,
@ObjectModel.foreignKey.association: '_ManufacturerCountry'
I_MaintNotificationTechObj._TechnicalObject.ManufacturerCountry,
@Semantics.calendar.year: true
cast( I_MaintNotificationTechObj._TechnicalObject.ConstructionYear as eam_techobj_construction_year ) as ConstructionYear,
cast( I_MaintNotificationTechObj._TechnicalObject.ConstructionMonth as eam_techobj_construction_month ) as ConstructionMonth,
@ObjectModel.foreignKey.association: '_EquipmentData'
I_MaintNotificationTechObj.Equipment,
@ObjectModel.foreignKey.association: '_FunctionalLocationData'
I_MaintNotificationTechObj.FunctionalLocation,
@ObjectModel.foreignKey.association: '_TechnicalObjectCodeCatalog'
I_MaintNotificationTechObj._TechnicalObject.CatalogProfile,
//LinearAssetManagementData
cast( cast( I_MaintNotificationTechObj._LinearAssetManagementData.LinearDataStartPoint as abap.dec(11, 3) ) as eaml_start_point ) as LinearDataStartPoint,
cast( cast( I_MaintNotificationTechObj._LinearAssetManagementData.LinearDataEndPoint as abap.dec(11, 3) ) as eaml_end_point ) as LinearDataEndPoint,
@Semantics.quantity.unitOfMeasure: 'LinearDataUnitOfMeasure'
I_MaintNotificationTechObj._LinearAssetManagementData.LinearDataLength,
@ObjectModel.foreignKey.association: '_LinearDataUnitOfMeasure'
I_MaintNotificationTechObj._LinearAssetManagementData.LinearDataUnitOfMeasure,
/****************************************************************************************************
* Measures
****************************************************************************************************/
@DefaultAggregation: #SUM
cast( 1 as smofn ) as NumberOfCreatedMaintNotifs,
@DefaultAggregation: #SUM
cast( case when I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenanceObjectIsDown = 'X' then 1
else 0 end as sgmsaus ) as NumberOfReportedBreakdowns,
@DefaultAggregation: #SUM
cast( case when I_MaintNotificationTechObj.MaintenanceOrder != '' then 1
else 0 end as iaofn ) as NumberOfCreatedMaintOrders,
@DefaultAggregation: #SUM
cast( case when I_MaintNotificationTechObj.IsCompleted = 'X' then 1
else 0 end as smmab ) as NumberOfCompletedMaintNotif,
@DefaultAggregation: #SUM
cast( case when I_MaintNotificationTechObj.IsDeleted = 'X' then 1
else 0 end as eam_deleted_notifications ) as NmbrOfDeltdMaintNotifications,
@DefaultAggregation: #SUM
cast( case when I_MaintNotificationTechObj.IsDeleted = 'X' or I_MaintNotificationTechObj.IsCompleted = 'X' then 0
else 1 end as eam_open_notifications ) as NmbrOfOpenMaintNotifications,
//Downtime Duration in Hour
@DefaultAggregation: #SUM
// @Semantics.quantity.unitOfMeasure: 'MaintObjDowntimeDurationUnit'
cast(unit_conversion(
quantity => I_MaintNotificationTechObj.MaintObjectDowntimeDuration,
source_unit => cast('S' as maueh),
target_unit => cast('STD' as maueh),
error_handling=> 'SET_TO_NULL'
) as auszt ) as MaintObjectDowntimeDuration,
//Hour
@Semantics.unitOfMeasure: true
cast('STD' as maueh) as MaintObjDowntimeDurationUnit,
//Total Lead Time of Notifications
@DefaultAggregation: #SUM
// @Semantics.quantity.unitOfMeasure: 'LeadTimeUnit'
cast(division(TSTMP_SECONDS_BETWEEN (
(dats_tims_to_tstmp(NotificationCreationDate, NotificationCreationTime, abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL' ) ),
(dats_tims_to_tstmp(NotificationCompletionDate, CompletionTime, abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL' ) ),
'NULL' ), 86400, 11 ) as qnsumdlzt ) as TotalLeadTimeOfMaintNotif,
//Day
@Semantics.unitOfMeasure: true
cast('TAG' as qeinhtag) as LeadTimeUnit,
//Number of Notifications with Status Outstanding
@DefaultAggregation: #SUM
cast(case when I_MaintNotificationTechObj.IsDeleted = '' and NotificationCompletionDate = '00000000' then 1
else 0 end as qzhlmofn ) as NrOfOutstandingMaintNotif,
//Number of Notifications Completed on Schedule
@DefaultAggregation: #SUM
cast(case when I_MaintNotificationTechObj.IsDeleted = '' then
case when NotificationCompletionDate != '00000000' and RequiredEndDate != '00000000' then
case when NotificationCompletionDate < RequiredEndDate then 1
when NotificationCompletionDate = RequiredEndDate then
case when CompletionTime < RequiredEndTime then 1
else 0 end
else 0 end
when NotificationCompletionDate != '00000000' and RequiredEndDate = '00000000' then 1
else 0 end
else 0 end as qzhlerl_te ) as NrOfMaintNotifCmpltdOnSched,
//Number of Tasks
@DefaultAggregation: #SUM
cast(_MaintNotifTaskCount.NumberOfMaintNotifTasks as qzhlmass ) as NumberOfMaintNotifTasks,
//Number of Tasks with Status Successful
@DefaultAggregation: #SUM
cast(_MaintNotifSuccssflTaskCount.NrOfMaintNotifSuccssflTasks as qzhlmerf ) as NrOfMaintNotifSuccssflTasks,
//Number of Tasks with Status "Outstanding" or "Released" (Active Tasks)
@DefaultAggregation: #SUM
cast(_MaintNotifOutStdgReldTaskCnt.NrOfMaintNotifActiveTasks as qzhlmaof ) as NrOfMaintNotifActiveTasks,
//Associations
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._MaintenancePlant,
I_MaintNotificationTechObj._PMNotifMaintenanceData._MaintenancePlanningPlant,
I_MaintNotificationTechObj._PMNotifMaintenanceData._MaintenancePlanPlant,
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._PlantSection,
I_MaintNotificationTechObj._IsDeleted,
I_MaintNotificationTechObj._PMNotificationPhase,
I_MaintNotificationTechObj._PMNotificationType,
I_MaintNotificationTechObj._PMNotificationPriority,
I_MaintNotificationTechObj._PMNotificationPriorityType,
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._BusinessArea,
I_MaintNotificationTechObj._PMNotifMaintenanceData._MaintenancePlannerGroup,
I_MaintNotificationTechObj._PMNotifMaintenanceData._MaintenanceObjectIsDown,
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._ABCIndicator,
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._CompanyCode,
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._WBSElementBasicData,
I_MaintNotificationTechObj._LinearAssetManagementData._LinearDataUnitOfMeasure,
I_MaintNotificationTechObj._MainWorkCenter._Plant as _MainWorkCenterPlant,
I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._WorkCenter._Plant as _WorkCenterPlant,
//_TechnicalObject,
I_MaintNotificationTechObj._TechObjIsEquipOrFuncnlLoc,
I_MaintNotificationTechObj._TechnicalObject._TechnicalObjectType,
I_MaintNotificationTechObj._TechnicalObject._ManufacturerCountry,
--I_MaintNotificationTechObj._Equipment,
--I_MaintNotificationTechObj._FunctionalLocation,
I_MaintNotificationTechObj._TechnicalObject._TechnicalObjectCodeCatalog,
_EquipmentData,
_FunctionalLocationData,
_MainWorkCenterBySemanticKey,
_WorkCenterBySemanticKey
}
事务代码:IQS3
视图结构:
字段名称 | 设备名称 |
---|---|
通知 | MAINTENANCENOTIFICATION |
描述 | NOTIFICATIONTEXT |
维护工厂 | MAINTENANCEPLANT |
厂区 | PLANTSECTION |
通知类型 | NOTIFICATIONTYPE |
通知阶段 | NOTIFPROCESSINGPHASE |
计划工厂 | MAINTENANCEPLANNINGPLANT |
优先级 | MAINTPRIORITY |
优先级类型 | MAINTPRIORITYTYPE |
通知来源 | NOTIFICATIONORIGIN |
已删除 | ISDELETED |
业务范围 | BUSINESSAREA |
装配 | ASSEMBLY |
计划人员组 | MAINTENANCEPLANNERGROUP |
细分 | MAINTENANCEOBJECTISDOWN |
主工作中心 | MAINWORKCENTER |
工厂工作中心 | MAINWORKCENTERPLANT |
工作中心 | WORKCENTER |
工厂 | WORKCENTERPLANT |
位置 | ASSETLOCATION |
房间 | ASSETROOM |
ABC 标识 | ABCINDICATOR |
分类字段 | MAINTOBJECTFREEDEFINEDATTRIB |
成本中心 | COSTCENTER |
成本控制范围 | CONTROLLINGAREA |
公司代码 | COMPANYCODE |
WBS 要素 | WBSELEMENTINTERNALID |
WBS 要素 | WBSELEMENT |
创建日期 | CREATIONDATE |
创建时间 | CREATIONTIME |
更改日期 | LASTCHANGEDATE |
通知日期 | NOTIFICATIONCREATIONDATE |
通知时间 | NOTIFICATIONCREATIONTIME |
完成日期 | NOTIFICATIONCOMPLETIONDATE |
完成时间 | COMPLETIONTIME |
参考日期 | NOTIFICATIONREFERENCEDATE |
要求的起始日期 | REQUIREDSTARTDATE |
要求的开始时间 | REQUIREDSTARTTIME |
要求的结束日期 | REQUIREDENDDATE |
要求的结束时间 | REQUIREDENDTIME |
故障开始 | MALFUNCTIONSTARTDATE |
故障开始(时间) | MALFUNCTIONSTARTTIME |
故障结束 | MALFUNCTIONENDDATE |
故障结束 | MALFUNCTIONENDTIME |
时戳 | LASTCHANGEDATETIME |
创建人 | CREATEDBYUSER |
更改人 | LASTCHANGEDBYUSER |
报告人 | REPORTEDBYUSER |
技术对象 | TECHNICALOBJECTLABEL |
技术对象类型 | TECHOBJISEQUIPORFUNCNLLOC |
对象类型 | TECHNICALOBJECTTYPE |
制造商 | ASSETMANUFACTURERNAME |
型号 | MANUFACTURERPARTTYPENAME |
授权组 | AUTHORIZATIONGROUP |
制造国家/地区 | MANUFACTURERCOUNTRY |
制造年份 | CONSTRUCTIONYEAR |
制造月份 | CONSTRUCTIONMONTH |
设备 | EQUIPMENT |
功能位置 | FUNCTIONALLOCATION |
类别参数文件 | CATALOGPROFILE |
起点 | LINEARDATASTARTPOINT |
终点 | LINEARDATAENDPOINT |
LINEARDATALENGTH | |
计量单位 | LINEARDATAUNITOFMEASURE |
创建的通知 | NUMBEROFCREATEDMAINTNOTIFS |
明细报告 | NUMBEROFREPORTEDBREAKDOWNS |
订单被生成 | NUMBEROFCREATEDMAINTORDERS |
完成的通知 | NUMBEROFCOMPLETEDMAINTNOTIF |
已删除的通知 | NMBROFDELTDMAINTNOTIFICATIONS |
未清通知 | NMBROFOPENMAINTNOTIFICATIONS |
停机期间 | MAINTOBJECTDOWNTIMEDURATION |
单位 | MAINTOBJDOWNTIMEDURATIONUNIT |
总提前期 | TOTALLEADTIMEOFMAINTNOTIF |
天 | LEADTIMEUNIT |
未清通知 | NROFOUTSTANDINGMAINTNOTIF |
日程安排 | NROFMAINTNOTIFCMPLTDONSCHED |
全部的任务号码 | NUMBEROFMAINTNOTIFTASKS |
任务成功 | NROFMAINTNOTIFSUCCSSFLTASKS |
任务末结 | NROFMAINTNOTIFACTIVETASKS |
CDS标准视图:PM通知单 I_LocationAnalysisCube的更多相关文章
- IE9兼容性视图与IE9标准视图
如果你使用的是IE9,那么按下F12键就会出现开发者工具,上面有两个下拉菜单:浏览器模式和文档模式.那么什么是浏览器模式?什么又是文档模式?二者有何区别? 浏览器模式用于切换IE针对该网页的默认文档模 ...
- SAP CDS重定向视图和直接读这两者场景的性能比较
A very rough performance comparison is performed in ER9/001. Comparison scenario The two below opera ...
- 教程:基于访问控制的ABAP CDS视图权限
Hi! 对每一个CDS视图,我们都可以通过DCL(Data Control Language)定义访问控制.在这篇文章中,我会介绍ABAP CDS视图中非常重要的一面:权限管理. 本文的阐述基于我正在 ...
- Flask(10)- 标准类视图
前言 前面文章讲解 Flask 路由的时候,都是将 URL 路径和一个视图函数关联 当 Flask 框架接收到请求后,会根据请求 URL,调用响应的视图函数进行处理 Flask 不仅提供了视图函数来处 ...
- ABAP CDS-Part 1(ABAP CDS实体)
文章翻译自Tushar Sharma的文章,转载请注明原作者和译者! 目录 预备条件 一.概述 二.ABAP CDS实体(CDS Entity) a.定义ABAP CDS Views b.ABAP C ...
- SQL Server基础之《视图的概述和基本操作》
数据库中的视图是一个虚拟表.同真实的表一样,视图包含一系列带有名称的列和行数据,行和列数据用来自由定义视图和查询所引用的表,并且在引用视图时动态产生.本篇将通过一些实例来介绍视图的概念,视图的作用, ...
- SQLServer视图
视图简介:通过定义 SELECT 语句以检索将在视图中显示的数据来创建视图.SELECT 语句引用的数据表称为视图的基表.在SQL Server 2005系统中,可以把视图分为3种类型,即标准视图,索 ...
- sql视图学习笔记--视图
视图是为用户对数据多种显示需求而创建的,其主要用在一下几种情况: (1)限制用户只能访问特定表特定条件的内容,提高系统的安全性. (2)隐藏表结构.创建多种形式的数透视,满足不同用户需求. (3)将复 ...
- MVC小系列(三)【MVC的分部视图】
MVC的分部视图: 分部视图在action中返回一定要用PartialView(),而不要偷懒使用View(),因为如果使用后者,系统会认为是一个标准视图,会为它加个默认的母版页(LayOut),除非 ...
- Qt 学习之路:视图选择 (QItemSelectionModel)
选择是视图中常用的一个操作.在列表.树或者表格中,通过鼠标点击可以选中某一项,被选中项会变成高亮或者反色.在 Qt 中,选择也是使用了一种模型.在 model/view 架构中,这种选择模型提供了一种 ...
随机推荐
- 为什么在http协议中使用base64编码方式传输二进制文件
相关: 图解 Base64 实现原理并使用 js 实现一个简单的 Base64 编码器 常用加密方法之Base64编解码及代码实现 一直都知道在http协议中使用base64的方式传递二进制文件,虽然 ...
- IBM 开源的文档转化利器「GitHub 热点速览」
上周的热门开源项目,Star 数增长犹如坐上了火箭,一飞冲天.短短一周就飙升了 6k Star 的多格式文档解析和导出神器 Docling,支持库和命令行的使用方式.全新的可视化爬虫平台 Maxun, ...
- Metal 开发教程(二)
https://developer.apple.com/documentation/quartzcore/cametallayer?language=objc#3385893 CAMetalLayer ...
- MySQL原理简介—2.InnoDB架构原理和执行流程
大纲 1.更新语句在MySQL中是如何执行的 2.重要的内存结构-Buffer Pool缓冲池 3.undo日志文件如何让更新的数据可以回滚 4.更新Buffer Pool缓冲池中的缓存数据 5.Re ...
- python的egg的制作
egg包是目前最流行的python应用打包部署方式.如何制作和安装egg包?下面我就简单的分析了一下. 总是安装别人的egg包,是不是也想制作自己的egg包呢?好,接下来我们就自己制作一个简单的egg ...
- 通过jconsole查看tomcat运行情况的配置方法——基于JDK1.5、Linux(Redhat5.5)、Tomcat6
由于项目的原因,需要使用jconsole对tomcat进行远程监控,结合网上的资料对配置方法进行了总结. 第一步.配置tomcat 打开%TOMCAT_HOME%/bin下的文件catalina.sh ...
- Collections Framework中的算法(之二)
从本篇开始我们讲述Collections中的一些算法的源代码!本篇主要讲述与排序相关的一些方法,如:排序.反序.反序比较器.乱序.最大值和最小值等. 一.头及一些与算法相关的属性 package ja ...
- go官方包依赖管理工具之mod
1.1.go mod是什么 go mod 是Golang 1.11 版本引入的官方包(package)依赖管理工具,用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理. 之前Golang ...
- Codeforces Round 642 (Div3)
K-periodic Garland 给定一个长度位\(n\)的\(01\)串,每次操作可以将\(1\)变为\(0\)或者将\(0\)变为\(1\),现在你需要通过操作使得所有\(1\)之间的距离为\ ...
- springgateway 路由转发
有些情况下,我们希望不直接访问后端地址,这个时候可以通过springgateway网关进行处理.下面只是一个简单的例子. 至于URL,变化,我们可以通过编写程序逻辑来实现. 实现步骤: 1.新建项目 ...