1

教室の出席表を適切に表示するのに苦労していました。データベースに出席テーブルがあり、1つの教室のデータを使用して非常に簡単に表示できますが、データベースで出席テーブルを直接参照した場合のように表示されます。

自分の作品を見せることで説明するのはおそらく簡単です。

私は次のクラスを持っています:

実際のクラスルームクラス、またはコース:

public class Course
{
    public int CourseID { get; set; }
    public string Title { get; set; }
    public int AttendanceDate { get; set;}
    public virtual ICollection<Enrollment> Enrollments { get; set; } // allows Students to be enrolled in a Course
    etc. . .
}

私の学生:

public class Student
{
    public int StudentID { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Enrollment> Enrollments { get; set; } // allows Student to be enrolled in a Course
    etc. . .
}

学生をコースに結び付けるエンティティ:

public class Enrollment
{
    public int EnrollmentID { get; set; }
    public int CourseID { get; set; }
    public int StudentID { get; set; }
    public virtual Course Course { get; set; }
    public virtual Student Student { get; set; }
}

出席データ:

public class Attendance
{
    public int AttendanceID { get; set; }
    public int CourseID { get; set; }
    public int StudentID { get; set; }
    public int AttendanceDay { get; set; }  // used to set how many days people are supposed to attend this Course (each course has a different length, some are 10 day courses, some are 3, etc.)
    public bool Present { get; set; }  // absent or present (set to absent by default)
    public virtual Course Course { get; set; }
    public virtual Student Student { get; set; }
}

私のプロジェクトの流れでは、インストラクターが学生がサインアップするためのコースを作成しています。学生がコースにサインアップすると、必要なすべての出席データがデフォルト値(毎日存在しない)で出席データベーステーブルに入力されます。

for (int i = 0; i < course.AttendingDays; i++)
{
    Attendance newAttendance = new Attendance
    {
        CourseID = course.CourseID,
        StudentID = thisStudent.StudentID,
        AttendanceDay = i + 1,
        Present = false
    };
    db.Attendance.Add(newAttendance);
    db.Save();
}

そのため、多数の出席データを含むデータベーステーブルがあり、次のように並べ替えられて、画面に正しく表示されません。

出席1日目| 2 | 3 | 4 | 5 |

Student1欠席欠席欠席欠席欠席欠席

Student2欠席欠席欠席欠席欠席欠席

Student3欠席欠席欠席欠席欠席欠席

うまくいけば、あなたはそれを読むことができます。。。出席テーブルのかなり標準的なレイアウトだと思います。

GroupByでデータを並べ替えてみました。

var model = from s in db.Attendance
                             where s.CourseID == 4
                             group s.AttendanceDay by s.StudentID into t
                             select new
                             {
                                 StudentID = t.Key,
                                 Days = t.OrderBy(x => x)
                             };
        return View(model);

これは匿名型のIEnumerableを返します(私が正しく理解している場合)が、このデータを取得して何もできないようです。'simpler'テーブルジェネレーターを使用する場合(そしてAttendanceDay番号でグループ化しようとしない場合)、出席テーブルのデータは問題なく取得されますが、出席の実際のデータベーステーブルを表示するときと同じように並べ替えられます。インストラクターに情報を読んで編集してもらいたい場合に便利です。

匿名タイプのIEnumerable形式の着信出席データを調整するための適切なViewModelと、それに続くそのViewModelを適切に表示するビューが必要だと考えています。。。しかし、私はそのプロセスをどのように処理するかわかりません。

どんな助けでもいただければ幸いです。ありがとうございました。

アップデート:

「クロス集計レポート」/「ピボット」を利用して、次のようなものを使用する必要があると考え始めています:http: //linqlib.codeplex.com/wikipage?title =Pivot&referringTitle=Home

ポインタはありますか?

アップデート2:

以下の受け入れられた答えを使用してほぼ完全に解決されました、そしてこれが私の現在のコントローラーです:

        // Generates list of Attendances specifically for current Course
        var attendanceItems = db.Attendance.Where(s => s.CourseID == id);
        List<Attendance> attendanceItemsList = attendanceItems.ToList();
        // End of generating list of Attendances


        // CURRENT PROBLEM AREA - INCOMPLETE
        var student = attendanceItemsList.Select(a => a.Student).Distinct()/*.OrderBy(a => a)*/;  // This works for adding one student, Cannot use OrderBy in its current state - how can I properly order by name?  (right now it will order by id I believe)
        List<Student> StudentList = student.ToList();;

        //
        // Generates list of AttendingDays specifically for current Course
        Course course = db.Courses.FirstOrDefault(p => p.CourseID == id);
        List<int> attDayList = new List<int>();
        for (int i = 0; i < course.AttendingDays; i++)
        {
            attDayList.Add(i + 1);
        };
        // End of generating list of AttendingDays

        AttendanceReportViewModel model = new AttendanceReportViewModel
        {
            AttendanceDays = attDayList,
            Students = StudentList,
            Attendances = attendanceItemsList,
        };
        return View(model);
4

2 に答える 2

3

日のリスト、学生のリスト、および出席エントリのリストを含むViewModelの作成を検討し、学生とその中の出席日を繰り返して、それぞれの出席レコードを表示する必要があると思います。

したがって、ViewModelは次のようになります。


public class AttendanceReportViewModel
{
    public List<int> AttendanceDays { get; set; }
    public List<Student> Students { get; set; }
    public List<Attendance> Attendances { get; set; }

    public string IsPresent(Student student, int attendanceDay)
    {
         return Attendances.Single(a => a.StudentID == student.ID && a.AttendanceDay == attendanceDay).Present ? "present" : "absent";
    }
}

すべてのアイテムを希望どおりに並べ替えてください。ただし、これは単純なOrderByのものです。また、問題のコースの出席のみをロードし、表示するviewModelにコースデータを追加するようにしてください。

次に、ビューで次のように繰り返します。


<table>
    <thead>
        <tr>
            <th>Attendance Day</th>
            @foreach (var attendanceDay in Model.AttendanceDays)
            {
                <th>@attendanceDay</th>
            }
        </tr>
    <thead>
    <tbody>
        @foreach (var student in Model.Students)
        {
            <tr>
                <td>@student.Name</td>
                @foreach (var attendanceDay in Model.AttendanceDays)
                {
                    <td>@Model.IsPresent(student, attendanceDay)</td>
                }
            </tr>
        }
    </tbody>
}

ちょうどあなたのためにこれを一緒に叩いたので、私の正確なコードがコンパイルされるかどうかさえわかりませんが、それがあなたに良い出発点を与えることを願っています。もちろん、テーブルなどにスタイリングを適用する必要があります。

編集1:

ビューモデルにデータをロードするには、コントローラーでこれを行うことができます(最終的には、これは技術的に言えば、リポジトリー、場合によってはサービスレイヤーにあるはずです)


var viewModel = new AttendanceReportViewModel();

viewModel.AttendanceDays = db.Attendance.Select(a => a.AttendanceDay).Distinct().OrderBy(a => a)
...

もちろん、出席データをビューモデルにのみロードし、このデータからViewModelのAttendanceDaysプロパティとStudentプロパティを生成することもできます。学生データも必要になる可能性が高いため、今のところこれは避けました。

編集2

学生の場合、すべての学生をクラスに登録するのとほぼ同じですが、すべての日の出席データを事前に初期化したので、次のようにすることができます。


var viewModel = new AttendanceReportViewModel();

viewModel.AttendanceDays = db.Attendance.Select(a => a.AttendanceDay).Distinct().OrderBy(a => a);
viewModel.Students = db.Attendance.Select(a => a.Student).Distinct().OrderBy(s => s.Name);

または、次のように登録テーブルからこの情報を読み込むこともできます。


viewModel.Students = db.Enrollment.Where(e => e.CourseID == courseID).Select(e => e.Student).OrderBy(s => s.Name);

登録テーブルのコースと学生IDの間には固有の制約があり、コースIDが出席レポートを作成する対象であることに注意してください。また、上記の学生にマップされた登録テーブルのコースがありますが、これは正しくないと思います。

于 2012-05-16T02:05:14.850 に答える
0
        CREATE PROCEDURE [dbo].[SP_S_GetDaywise_EmpTotalDuties_AttendanceRegister]
        (
        @Month int=null,
        @Year int=null,
        @SCode bigint=null
        )
        AS
            /**Creating TempAllAttendance**/
            CREATE TABLE #TempAllAttendance
            (RecId bigint IDENTITY(1,1),EmpCode BIGINT,Duties FLOAT,AttDay INT, DESIGNATION NVARCHAR(250))
            /**Creating TempAllAttendance**/
            
            /**Creating SumAttendance**/
            CREATE TABLE #SumAttendance
            (Total FLOAT)
            /**Creating SumAttendance**/
            
            
            DECLARE @TotalDuties FLOAT=null
            
         BEGIN
            
            
            
            SET @TotalDuties=(SELECT SUM(ISNULL(Duties, 0)) AS Total FROM tbl_Attendance WHERE ([Month] = @Month) AND ([Year] = @Year) AND (SCode = @SCode))        
            
            INSERT INTO #SumAttendance
            (Total)VALUES(@TotalDuties)
            
            INSERT INTO #TempAllAttendance(EmpCode,Duties,AttDay,DESIGNATION)
            (
                SELECT EmpCode, SUM(ISNULL(Duty1, 0)) AS Duties, DAY(AttendanceDate) AS AttDay,DESIGNATION
                FROM  tbl_Attendance
                WHERE ([Month] = @Month) AND ([Year] = @Year) AND (SCode = @Code)
                GROUP BY EmpCode, AttendanceDate,DESIGNATION 
                
            )   
            /**This is used to get date wise & Swise Total duty When Records Not Saved In tbl_SiteWiseEmployee_TotalAttendance**/
            /**This is used to get date wise & Sise Total duty When Records Saved In tbl_SiteWiseEmployee_TotalAttendance**/
        
       
            /**This is used to get date wise & Swise Total duty**/
                SELECT * FROM #TempAllAttendance
            /**This is used to get date wise & Sitewise Total duty**/
            /**This is used to get date wise Total  duty**/
            SELECT EmpCode,SUM(ISNULL(Duties, 0)) AS Duties,AttDay,DESIGNATION FROM #TempAllAttendance
            GROUP BY EmpCode, AttDay,EmpCode,DESIGNATION
            /**This is used to get Employee SumAttendance**/
            SELECT SUM(Duties) AS Duties,DAY(AttendanceDate) AS AttDay FROM tbl_Attendance
            WHERE (SiteCode = @SCode) AND ([Month] = @Month) AND ([Year] = @Year)  GROUP BY AttendanceDate
            
            /**This is used to get Employee SumAttendance**/
            SELECT * FROM #SumAttendance
            /**This is used to get date wise & Sitewise Total duty AS P**/
                --SELECT RecId,EmpCode,'P' AS Duties,AttDay FROM #TempAllAttendance
                
            SELECT EmpCode,'P' AS Duties,AttDay FROM #TempAllAttendance
            GROUP BY EmpCode, AttDay
            /**This is used to get date wise & Swise Total duty  AS P**/
            
            DROP TABLE #SumAttendance
            DROP TABLE #TempAllAttendance
        END 
    
    
    
    
        private void STotalEmployeeAttendenceReportAsDuty()
        {
            #region  For Displaying page Header region
            lblMonthId.Value = Request.QueryString["Month"];
            lblMonthName.Value = Request.QueryString["MonthName"];
            lblYear.Value = Request.QueryString["year"];
            lblSCode.Value = Request.QueryString["SCode"];
            lblgvSName.Value = Request.QueryString["SName"];
            lblMonth.InnerText = lblMonthName.Value;
            lblYears.InnerText = lblYear.Value;
            lblSName.InnerText = lblgvSiName.Value + "-" + lblSCode.Value;
            #endregion
    
            #region Get SWise Employee Detail
            siAttndncPL.SiteCode = lblSiteCode.Value;
            sAttndncPL.Month = lblMonthId.Value;
            siAttndncPL.Year = lblYear.Value;
            DataTable EmpDt = siteAttndncBL.GetEmployeeNameWithTotalDutiesBySit(siteAttndncPL);
            #endregion
    
            #region Making TempTable.
            DataTable dt = new DataTable();
            DataColumn dc = new DataColumn();
            dc.ColumnName = "EmpCode";
            dt.Columns.Add(dc);
            dc = new DataColumn();
            dc.ColumnName = "EmpName";
            dt.Columns.Add(dc);
            dc = new DataColumn();
            dc.ColumnName = "Designation";
            dt.Columns.Add(dc);
            /**Some Table**/
            DataTable dtdayDuties = new DataTable();
            DataTable dtEmpDayDuties = new DataTable();
            DataTable dtEmpDutiesAsP = new DataTable();
            DataTable dtSumDuty = new DataTable();
            /**Some Region**/
            #endregion
    
            #region Get No Of Days In Month..
            int DaysCount = DateTime.DaysInMonth(Convert.ToInt32(Request.QueryString["Year"]), Convert.ToInt32(Request.QueryString["Month"]));
            #endregion
    
            #region This will dispaly date value on grid header
            for (int i = 1; i <= 9; i++)
            {
                dc = new DataColumn();
                dc.ColumnName = "0" + i.ToString();
                dt.Columns.Add(dc);
            }
            for (int i = 10; i <= DaysCount; i++)
            {
                dc = new DataColumn();
                dc.ColumnName = i.ToString();
                dt.Columns.Add(dc);
            }
            dc = new DataColumn();
            dc.ColumnName = "Total";
            dt.Columns.Add(dc);
            #endregion
    
            #region   /*Adding Site Name Row in Grid View*/
            for (int j = 0; j < EmpDt.Rows.Count + 1; j++)
            {
                DataRow dtrow = dt.NewRow();
                if (j < EmpDt.Rows.Count)
                {
                    dtrow[0] = EmpDt.Rows[j][0];/**this Row Cells EmpCode**/
                    string EmpCode = EmpDt.Rows[j][0].ToString();
                    // lblEmpCode = EmpDt.Rows[j][0].ToString();
                    dtrow[1] = EmpDt.Rows[j][1];/**this Row Cells EmpName**/
                    dtrow[2] = EmpDt.Rows[j][2];/**this Row Cells DESsgName**/
                    dtrow[DaysCount + 3] = EmpDt.Rows[j][3];/**this Row Cells Duties **/
    
    
                    #region Get EmployeeWise Total Duties.
                    siteAttndncPL.SiteCode = lblSiteCode.Value;
                    siteAttndncPL.Month = lblMonthId.Value;
                    siteAttndncPL.Year = lblYear.Value;
                    DataSet ds = siteAttndncBL.GetEmployeeDayWiseAttendenceBySCode_WOPHD(siteAttndncPL);
                    dtEmpDutiesAsP = ds.Tables["tbl_GetEmpTotalAttendanceOfDayAsP"];/*getting Site Duties as P*/
                    dtEmpDayDuties = ds.Tables["tbl_GetEmpTotalAttendanceOfDay"];
                    dtdayDuties = ds.Tables["tbl_SumOfAllEmpDayWiseDuties"];
                    dtSumDuty = ds.Tables["tbl_TotalSumOfAllEmpAttendance"];
                    TotalSumDuties = Convert.ToDouble(dtSumDuty.Rows[0]["Total"].ToString());
                    #endregion
                }
                if (j == EmpDt.Rows.Count)
                {
                    #region Count Total Duties.
                    dtrow[2] = "Total Duties";
                    dtrow[DaysCount + 3] = TotalSumDuties;/**Sum Of All Main Attendance**/
                    #endregion
                }
                dt.Rows.Add(dtrow);
            }
            #endregion
    
            /**Fill Day Wise Attendance In Gridview**/
            #region Day Wise Attendance fill In Gridview..
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                if (i < dt.Rows.Count - 1)
                {
                    for (int j = 3; j < dt.Columns.Count; j++)
                    {
                        foreach (DataRow dtrows in dtEmpDayDuties.Rows)
                        {
                            /*Matching Emp Code*/
                            if (dt.Rows[i][0].ToString() == dtrows[0].ToString())
                            {
                                /*Matching Emp Category */
                                if (dt.Rows[i][2].ToString() == dtrows[3].ToString())
                                {
                                    TextBox txtDuty = new TextBox();
                                    txtDuty.Text = dt.Columns[j].ColumnName.ToString();
                                    txtDuty.Text = dtrows[2].ToString();
                                    /*Matching Date*/
                                    if (Convert.ToString(j - 2) == dtrows[2].ToString())
                                    {
                                        dt.Rows[i][j] = dtrows[1].ToString(); /*Filling  Days wise duty*/
                                    }
                                }
                                /*Matching Emp Category */
                            }
                        }
                    }
                }
                if (i == dt.Rows.Count - 1)
                {
                    for (int j = 3; j < dt.Columns.Count; j++)
                    {
                        foreach (DataRow dtrows in dtdayDuties.Rows)
                        {
                            TextBox txtDuty = new TextBox();
                            txtDuty.Text = dt.Columns[j].ColumnName.ToString();
                            txtDuty.Text = dtrows[1].ToString();
                            if (Convert.ToString(j - 2) == dtrows[1].ToString())
                            {
                                dt.Rows[i][j] = dtrows[0].ToString();
    
                            }
                        }
                    }
                }
            }
    
    
    
            #endregion
            /**Fill Day Wise Attendance In Gridview**/
    
            #region Binding Grid
            grdSWiseEmpAttendance.DataSource = dt;
            grdSWiseEmpAttendance.DataBind();
            #endregion Binding Grid
            ViewState["tbldata"] = dt;/*used For Saving Employee Monthly Attendance*/
            Session["reportdata"] = dt;/*used For Printing Employee Monthly Attendance*/
            lblNoOfEmp.InnerText = (grdSWiseEmpAttendance.Rows.Count - 1).ToString();
    
    
        }
    
        void Page_Init(object obj, EventArgs e)
        {
            int days = DateTime.DaysInMonth(Convert.ToInt32(Request.QueryString["Year"]), Convert.ToInt32(Request.QueryString["Month"]));
            int dtinc = 0;
            for (int rowcnt = 0; rowcnt < days + 4; rowcnt++)
            {
                if (rowcnt == 0)
                {
                    BoundField nameColumn = new BoundField();
                    nameColumn.DataField = "EmpCode";
                    nameColumn.HeaderText = "EmpCode";
                    grdSiteWiseEmpAttendance.Columns.Add(nameColumn);
    
                }
    
                else if (rowcnt == 1)
                {
                    BoundField nameColumn = new BoundField();
                    nameColumn.DataField = "EmpName";
                    nameColumn.HeaderText = "EmpName";
                    grdSiteWiseEmpAttendance.Columns.Add(nameColumn);
    
                }
                else if (rowcnt == 2)
                {
                    BoundField nameColumn = new BoundField();
                    nameColumn.DataField = "DESIGNATION";
                    nameColumn.HeaderText = "DESIGNATION";
                    grdSiteWiseEmpAttendance.Columns.Add(nameColumn);
    
                }
                else if (rowcnt == days + 3)
                {
                    BoundField nameColumn = new BoundField();
                    nameColumn.DataField = "Total";
                    nameColumn.HeaderText = "Total";
                    grdSiteWiseEmpAttendance.Columns.Add(nameColumn);
                    nameColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
                }
                else
                {
                    dtinc = dtinc + 1;
                    string formet = "00";
                    TemplateField bfield = new TemplateField();
                    /**Initalize the DataField value**/
                    bfield.HeaderTemplate = new GridViewTemplate2(ListItemType.Header, Convert.ToString(dtinc.ToString(formet)));
                    /**Initialize the HeaderText field value**/
                    bfield.ItemTemplate = new GridViewTemplate2(ListItemType.Item, Convert.ToString(dtinc.ToString(formet)));
                    /**Add the newly created bound field to the GridView**/
                    grdSEmpAttendance.Columns.Add(bfield);
                }
            }
        }
        
    
    
    <div class="row">
                                                        <div class="col-lg-12">
                                                            <div class="table-responsive">
                                                                <asp:GridView ID="grdSiEmpAttendance" CssClass="table table-small-font table-bordered table-striped" Font-Size="Smaller" EmptyDataRowStyle-ForeColor="#cc0000" HeaderStyle-Font-Size="10" HeaderStyle-Font-Names="Arial" HeaderStyle-Font-Italic="true" runat="server" AutoGenerateColumns="false"
                                                                    BackColor="#f0f5f5" HeaderStyle-ForeColor="#990000">
    
                                                                    <Columns>
                                                                    </Columns>
                                                                    <HeaderStyle HorizontalAlign="Justify" VerticalAlign="Top"
                                                                        Font-Bold="true" />
                                                                    <RowStyle Font-Size="Small" Height="1" ForeColor="#000000" Font-Italic="true" />
                                                                </asp:GridView>
                                                            </div>
                                                        </div>
    
                                                    </div>








using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI;

public class GridViewTemplate2 : ITemplate
{
    /**A variable to hold the type of ListItemType**/
         ListItemType _templateType;

    /**A variable to hold the column name**/
         string _columnName;

    /**Constructor where we define the template type and column Name**/
         public GridViewTemplate2(ListItemType type, string colname)
    {

        _templateType = type; /*Stores the template type*/
         _columnName = colname;/*Stores the column name*/
    }

    void ITemplate.InstantiateIn(System.Web.UI.Control container)
    {
        switch (_templateType)
        {
            #region For Use TemplateFields.

            case ListItemType.Header:
                /*Create a New Label control and add it to the container*/
                Label lbl = new Label();/*Allocates the new label object*/
                
                lbl.Text = _columnName;/*Assigns the name of the column in the lable*/
                lbl.Font.Name = "Calibri";
               
                //lbl.CssClass = "form-label";
                //lbl.Font.Bold = true;
                container.Controls.Add(lbl);/*Adds the New created label control to the container*/
               
                break;

            case ListItemType.Item:
                /**Creates a New Text box Control And Add It to the container**/
                TextBox tb1 = new TextBox();/*Allocates the new text box object*/
                tb1.DataBinding += new EventHandler(tb1_DataBinding);/*Attaches the data binding event*/
                tb1.CssClass = "vertical-text";
                string bxid = "txt" + _columnName;
                tb1.ID = bxid.Trim().ToString();
                tb1.Width = new Unit(35, UnitType.Pixel);
                tb1.Height = new Unit(15, UnitType.Pixel);
                //tb1.Style.Add("font-size", "8pt;");
                tb1.Font.Name = "Calibri";
               
                tb1.Columns = 3; /**Creates a column with size 4**/
                container.Controls.Add(tb1);/**Adds the New created textbox to the container**/
                break;

            case ListItemType.EditItem:
              

                break;

            case ListItemType.Footer:
                CheckBox chkColumn = new CheckBox();
                chkColumn.ID = "Chk" + _columnName;
                container.Controls.Add(chkColumn);
                break;

            #endregion
        }
    }

    /// <summary>
    /// This is the event, which will be raised when the binding happens.
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    /// 
    void tb1_DataBinding(object sender, EventArgs e)
    {
        #region For Use DataBinding Fields..
        TextBox txtdata = (TextBox)sender;
        GridViewRow container = (GridViewRow)txtdata.NamingContainer;
        object dataValue = DataBinder.Eval(container.DataItem, _columnName);
        if (dataValue != DBNull.Value)
        {
            if (dataValue.ToString().Trim() == "0".ToString() || dataValue.ToString().Trim()=="")
            {

                txtdata.Text = "";
                //txtdata.BackColor = System.Drawing.Color.BlanchedAlmond;
                //txtdata.ReadOnly = true;
                txtdata.Width = 35;
                txtdata.Height = 25;
                txtdata.CssClass = "form-control input-sm m-bot15";
                txtdata.Font.Size = 8;
            }

            if (dataValue.ToString().Trim() == "777" || dataValue.ToString().Trim() == "L")
            {

                txtdata.Text = "L";
                txtdata.BackColor = System.Drawing.Color.SandyBrown;
                //txtdata.ReadOnly = true;
                txtdata.Width = 35;
                txtdata.Height = 25;
                txtdata.CssClass = "form-control input-sm m-bot15";
                txtdata.Font.Size = 7;
            }
            

            if (dataValue.ToString().Trim() == "888" || dataValue.ToString().Trim() == "WO")
            {

                txtdata.Text = "WO";
                txtdata.BackColor = System.Drawing.Color.LightGreen;
                //txtdata.ReadOnly = true;
                txtdata.Width = 36;
                txtdata.Height = 25;
                txtdata.CssClass = "form-control input-sm m-bot15";
                txtdata.Font.Size = 7;
            }
   

            if (dataValue.ToString().Trim() == "999" || dataValue.ToString().Trim() == "PH")
            {

                txtdata.Text = "PH";
                txtdata.BackColor = System.Drawing.Color.Cornsilk;
                //txtdata.ReadOnly = true;
                txtdata.Width = 35;
                txtdata.Height = 25;
                txtdata.CssClass = "form-control input-sm m-bot15";
                txtdata.Font.Size = 7;
            }
   
            if (dataValue.ToString().Trim() == "1111" || dataValue.ToString().Trim() == "CL")
            {

                txtdata.Text = "CL";
                txtdata.BackColor = System.Drawing.Color.Bisque;
                //txtdata.ReadOnly = true;
                txtdata.Width = 35;
                txtdata.Height = 25;
                txtdata.CssClass = "form-control input-sm m-bot15";
                txtdata.Font.Size = 7;
            }
   
      

           
            if ((dataValue.ToString().Trim() != "1111") && (dataValue.ToString().Trim() != "CL") && (dataValue.ToString().Trim() != "2997") && (dataValue.ToString().Trim() != "HD") && (dataValue.ToString().Trim() != "777") && (dataValue.ToString().Trim() != "L") && (dataValue.ToString().Trim() != "888") && (dataValue.ToString().Trim() != "W/O")  (dataValue.ToString().Trim() != "") && (dataValue.ToString().Trim() != "1")&& 
            {

                txtdata.ReadOnly = false;
                txtdata.BackColor = System.Drawing.Color.LightGoldenrodYellow;
                txtdata.Text = dataValue.ToString();
                txtdata.Width = 35;
                txtdata.Height = 25;
                txtdata.CssClass = "form-control input-sm m-bot15";
                txtdata.Font.Size = 7;
                txtdata.Font.Bold = true;
            }
            if ((dataValue.ToString().Trim() != "1111") && (dataValue.ToString().Trim() != "CL") && (dataValue.ToString().Trim() != "2997") && (dataValue.ToString().Trim() != "HD") && (dataValue.ToString().Trim() != "777") && (dataValue.ToString().Trim() != "L") && (dataValue.ToString().Trim() != "888") && (dataValue.ToString().Trim() != "WO") && (dataValue.ToString().Trim() != "1776") && (dataValue.ToString().Trim() != "") && (dataValue.ToString().Trim() != "3000") && (dataValue.ToString().Trim() != "T") && (dataValue.ToString().Trim() != "1000") && 
            {

                txtdata.ReadOnly = false;
                txtdata.Text = dataValue.ToString();
                txtdata.Width = 35;
                txtdata.Height = 25;
                txtdata.CssClass = "form-control input-sm m-bot15";
                txtdata.Font.Size = 7;
                txtdata.Font.Bold = true;
            }
           
            //else
            //{
            //    txtdata.ReadOnly = false;
            //    txtdata.Text = dataValue.ToString();
            //    txtdata.Width = 35;
            //    txtdata.Height = 25;
            //    txtdata.CssClass = "form-control input-sm m-bot15";
            //    txtdata.Font.Size = 8;
            //    txtdata.Font.Bold = true;
            //}


        }
        else
        {
            txtdata.Text ="";
            txtdata.Width = 35;
            txtdata.Height = 25;
            txtdata.CssClass = "form-control input-sm m-bot15";
            txtdata.Font.Size = 8;
            txtdata.Font.Bold = true;
        }
        #endregion
    }

}
于 2021-03-19T06:01:15.890 に答える