API抓取数据后,仅在当前日期后的90天内显示结果 [英] Show only result within 90 days from present date after API grabs the data

查看:98
本文介绍了API抓取数据后,仅在当前日期后的90天内显示结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在下面粘贴了我的代码.现在,我完全不知道要在哪里插入什么代码,而只显示开始日期为(今天-90天)之内的数据.请帮助我.在这个卡子上呆了几个星期.

I have my code pasted below. Now I'm totally lost on where and what code to insert let's say I want to show only data which has a startdate within (date today - 90 days). Kindly help me please. Been stuck for weeks on this one.

顺便说一下,这段代码将在通过API从另一个程序中获取数据后运行.

By the way this code will run after it grabs the data from another program through API.

public DataTable FGetHasData(int iMode)
    {
        DataTable dtHASDataReturn = new DataTable();
        DataTable dtHASData = new DataTable();
        string sSorter = String.Empty;

        if (iMode.Equals(0))
        {
            try
            {
                dtHASData = this.oHASData.RetrievePayments();


                dtHASData.Columns[0].ColumnName = "Agency Code";
                dtHASData.Columns[1].ColumnName = "Agency Name";
                dtHASData.Columns[2].ColumnName = "Patient Code";
                dtHASData.Columns[3].ColumnName = "Claim Code";
                dtHASData.Columns[5].ColumnName = "Insurance Company Name";
                dtHASData.Columns[6].ColumnName = "Amount";
                dtHASData.Columns[7].ColumnName = "Document Number";
                dtHASData.Columns[8].ColumnName = "To Print";
                dtHASData.Columns[9].ColumnName = "Payment Type";
                dtHASData.Columns[10].ColumnName = "Memo";
                dtHASData.Columns[11].ColumnName = "Balance Type";
                dtHASData.Columns[12].ColumnName = "RAP";
                dtHASData.Columns[13].ColumnName = "Outlier";

                sSorter = "periodstart";
            }                
            catch (Exception e)
            {
                this.FLogTrans(e.Message.ToString());
                return dtHASDataReturn;
            }

        }
        else if (iMode.Equals(1))
        {
            try
            {
                dtHASData = this.oHASData.RetrieveRemittanceAdvices();

                dtHASData.Columns[0].ColumnName = "Agency Code";
                dtHASData.Columns[1].ColumnName = "Agency Name";
                dtHASData.Columns[3].ColumnName = "Check Amount";
                dtHASData.Columns[4].ColumnName = "Remittance Advice Memo";
                dtHASData.Columns[5].ColumnName = "Insurance Company Name";
                dtHASData.Columns[6].ColumnName = "Amount Paid";
                dtHASData.Columns[7].ColumnName = "Net Reimbursement";
                dtHASData.Columns[8].ColumnName = "Withheld";
                dtHASData.Columns[9].ColumnName = "Document Number";
                dtHASData.Columns[10].ColumnName = "To Print";
                dtHASData.Columns[11].ColumnName = "Payment Type";
                dtHASData.Columns[12].ColumnName = "Memo";

                sSorter = "RADate";
            }
            catch (Exception e)
            {
                this.FLogTrans(e.Message.ToString());
                return dtHASDataReturn;
            }
        }

        DataView dvSorter = new DataView(dtHASData);

        if (this.FConfigVarRetriever(4).Equals("1"))
        {
            int iRowsMany = int.Parse(this.FConfigVarRetriever(5));

            dvSorter.Sort = sSorter + " desc";
            dtHASData = dvSorter.ToTable();

            if (iMode.Equals(0))
            {
                dtHASData.Columns[4].ColumnName = "Period Start";
            }
            else if (iMode.Equals(1))
            {
                dtHASData.Columns[2].ColumnName = "Remittance Advice Date";
            }

            dtHASDataReturn = dtHASData.AsEnumerable().Take(iRowsMany).CopyToDataTable();                
        }
        else if (this.FConfigVarRetriever(4).Equals("2"))
        {
            dvSorter.RowFilter = sSorter + " >= '" + this.FConfigVarRetriever(6) + "'";
            dvSorter.Sort = sSorter + " desc";
            dtHASData = dvSorter.ToTable();

            if (iMode.Equals(0))
            {
                dtHASData.Columns[4].ColumnName = "Period Start";
            }
            else if (iMode.Equals(1))
            {
                dtHASData.Columns[2].ColumnName = "Remittance Advice Date";
            }

            dtHASDataReturn = dtHASData;
        }


        return dtHASDataReturn;
    }




推荐答案

你好,

要基于开始日期过滤数据,从我在代码中看到的情况来看,您应该在各列中都有该开始日期,两个数据表均不包含任何开始日期,因此无法知道值并对其进行过滤.

For filtering your data based on the startdate, you should have this startdate in the columns, from what I see in your code, both datatables do not contain any startdate, so it is impossible to know the value and filter them.

最好是更改您的API并通过此过滤器"值并仅获取所需的数据,例如数据的使用期限.然后,您将使用API​​返回的所有数据.

The best would be to alter your API and pass this "filter" value and get only the data you want for example the age of the data. Then you will use all the data the API returned.

如果您无法更改API以添加过滤器,并且API返回起始日期,那么您还需要将其添加到数据表中,并在显示数据或填充数据表期间使用它,而无需将其放在其中任何不满足的东西 您的过滤器.

If you cannot change the API to add filter and the API return the startdate, then you need to add it to the datatable as well and use it during showing of the data, or during populating the datatable, you will not put inside anything that do not satisfy your filter.

如果API不支持过滤器,或者不返回开始日期,并且您无法更改它,那么这是不可能的.

If the API do not support filter, or do not return the startdate and you cannot alter it, then it is impossible.

谢谢

克里斯


这篇关于API抓取数据后,仅在当前日期后的90天内显示结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆