web层

.js导出事件:

//导出为excel文档
$('#btn-export').click(function () {
//得到查询的参数
var temp = { //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
ProcessSteps_RecordId: $("#ProcessSteps_RecordId").val(),
OperationModeId: $("#OperationModeId").val(),
ScanCodeProduce: $("#ScanCodeProduce").val(),
ReceiveValue: $("#ReceiveValue").val(),
IsOK: $("#IsOK").val(),
SerialNumber: $("#SerialNumber").val(),
OperationCategory: $("#OperationCategory").val(),
StationId: $("#StationName").val(),
LineId: $("#LineName").val(),
MinTime: $("#MinTime1").val(),
MaxTime: $("#MaxTime1").val()
};

layer.load(0, {
shade: [0.3, '#000'] //0.1透明度的白色背景
});

_processSteps_Detail_RecordService
.getProcessSteps_Detail_RecordToExcel(temp)
.done(function (result) {
layer.closeAll('loading');
app.downloadTempFile(result);
});

});

注释:

‘#’后面的字符是HTML里的Id名

temp 里面是条件(这个将传给Application层的方法),getProcessSteps_Detail_RecordToExcel(temp)方法是对应的Application层的方法。

Application层

接口:

Task<FileDto> GetProcessSteps_Detail_RecordToExcel(GetProcessSteps_Detail_RecordInput input);

方法:

public async Task<FileDto> GetProcessSteps_Detail_RecordToExcel(GetProcessSteps_Detail_RecordInput input)
{
var OperationCategoryDir = DictionaryDto.OperationCategoryDir;
var IsOKDir = DictionaryDto.IsOKDir;

//初步过滤
var query = from pdr in _processSteps_Detail_RecordRepository.GetAll()
join ed in _EnumDictRepository.GetAll() on pdr.OperationModeId equals ed.Id
join pr in _processSteps_RecordRepository.GetAll() on pdr.ProcessSteps_RecordId equals pr.Id
join p in _ProcessStepsRepository.GetAll() on pr.ProcessStepsId equals p.Id
join s in _StationRepository.GetAll() on p.StationId equals s.Id
join l in _LineRepository.GetAll() on s.LineId equals l.Id
orderby pdr.Id descending
select new ProcessSteps_Detail_RecordListDto()
{
Id = pdr.Id,
LineId = l.Id,
};

query = query
.WhereIf(!(input.LineId == "0"), u => u.LineId == LineId)
;

var list = query.ToList();

var fileDto = _processSteps_Detail_RecordListExcelExporter.ExportProcessSteps_Detail_RecordToFile(list);

return fileDto;
}

注释:方法对应接口

ABP框架按条件导出的更多相关文章

  1. abp框架Excel导出——基于vue

    abp框架Excel导出--基于vue 目录 abp框架Excel导出--基于vue 1.技术栈 1.1 前端采用vue,官方提供 1.2 后台是abp--aspnetboilerplate 2. E ...

  2. ABP 框架 数据库底层迁移 Mysql 集群

    技术交流,请加QQ群:538327407 我的各种github 开源项目和代码:https://github.com/linbin524 背景 笔者 目前架构的IOT 项目是使用abp 框架作为后台, ...

  3. ABP 框架代码批量生成器

    需要最新源码,或技术提问,请加QQ群:538327407 我的各种github 开源项目和代码:https://github.com/linbin524 简介 用abp 框架快两年了,用它完成了多个项 ...

  4. ABP开发框架前后端开发系列---(8)ABP框架之Winform界面的开发过程

    在前面随笔介绍的<ABP开发框架前后端开发系列---(7)系统审计日志和登录日志的管理>里面,介绍了如何改进和完善审计日志和登录日志的应用服务端和Winform客户端,由于篇幅限制,没有进 ...

  5. 使用代码生成工具快速生成基于ABP框架的Vue+Element的前端界面

    世界上唯一不变的东西就是变化,我们通过总结变化的规律,以规律来应付变化,一切事情处理起来事半功倍.我们在开发后端服务代码,前端界面代码的时候,界面都是依照一定的规律进行变化的,我们通过抽取数据库信息, ...

  6. 使用代码生成工具快速开发ABP框架项目

    在一般系统开发中,我们一般要借助于高度定制化的代码生成工具,用于统一代码风,节省开发时间,提高开发效率.不同的项目,它的项目不同分层的基类定义不同,我们需要在框架基类的基础上扩展我们的业务类代码,尽量 ...

  7. ABP框架详解(二)AbpKernelModule

    AbpKernelModule类是Abp框架自己的Module,它也跟所有其他的Module一样继承自AbpModule,重写PreInitialize,Initialize,PostInitiali ...

  8. ABP框架展示异常信息

    接触ABP框架有一段时间了,也遇到了一些问题,看了官网文档,但是或许是看的不够细致的原因,实际开发中还是遇到了一些问题,耗费了时间去处理,回头一看,原来文档中早已提及. 开发环境:ABP+MPA模式+ ...

  9. ABP框架系列之三十四:(Multi-Tenancy-多租户)

    What Is Multi Tenancy? "Software Multitenancy refers to a software architecture in which a sing ...

随机推荐

  1. a[b]和b[a]区别

    #include <stdio.h> main() { char a[5] = "abcd"; int b = 3; printf("%c\n",a ...

  2. ChainMap简单示例

    ChainMap是dict的子类,拥有dict的所有功能, 感觉用它的地方吧??? from collections import ChainMap """ 相当于joi ...

  3. 20180705-Java基础语法

    Java基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一条 ...

  4. python测试redis是否可以使用

    前提打开redis服务,windows打开方式到redis的安装目录命令行输入redis-server from redis import StrictRedis redis = StrictRedi ...

  5. (转)pycharm autopep8配置

    转:https://blog.csdn.net/BobYuan888/article/details/81943808 1.pip下载安装: 在命令行下输入以下命令安装autopep8 pip ins ...

  6. Step1 - How to: Define a Windows Communication Foundation Service Contract

    https://msdn.microsoft.com/en-us/library/ms731835.aspx This is the first of six tasks required to cr ...

  7. BZOJ 5170: Fable

    离散化+树状数组 求当前位之前是否有k位比它大 这样的话它就需要前移k位 剩下的按照原来的顺序依次填入 其实我觉得sort一下就可以做出来了 太久没写树状数组了 所以写了一下树状数组 #include ...

  8. p5471 [NOI2019]弹跳

    分析 代码 #include<bits/stdc++.h> using namespace std; #define fi first #define se second #define ...

  9. 1204C Anna, Svyatoslav and Maps

    题目大意 给你一个有向图和一个路径 让你在给定路径中选出尽量少的点使得新路径的最短路长度和原路径相等 给定路径相邻两点间距离为1 分析 先floyd求出两点间最短路 之后每次对于点i找到所有跟它的最短 ...

  10. Ceiling analysis

    Course note: Coursera Machine learning by Andrew Ng, 2014, week 10: Application example: photo OCR ( ...