예제 #1
0
        public static void GetTableStructure(IConnectToDB _Connect, DynamicModels.ReportDefinitions thisDefinition, _DynamicOutputProcedures CoreOut, DynamicModels.RootReport CurrentReportSelected)
        {
            thisDefinition.theReport = CurrentReportSelected;

            if (thisDefinition.GetStructure)
            {
                if (string.IsNullOrEmpty(thisDefinition.theReport.Source))
                {
                    thisDefinition.theStructure = CoreOut.GetTableStruct(_Connect, CurrentReportSelected.ProcedureName, thisDefinition.DynamicColumns);
                }
                else
                {
                    if (!string.IsNullOrEmpty(thisDefinition.DynamicColumns))
                    {
                        //TODO: Convert to Procedure
                        ER_Query.Parameter_Run SQlin = new ER_Query.Parameter_Run
                        {
                            sqlIn         = "select  top 0 '-' as rownumb, " + thisDefinition.DynamicColumns + " from " + _Connect.Schema + "." + thisDefinition.theReport.Source + " where 1 = 2",
                            _dbParameters = new List <DBParameters>()
                        };

                        DataTable            thisTableColumns = ER_Query._RUN_PARAMETER_QUERY(_Connect, SQlin);
                        DataColumnCollection DCC = thisTableColumns.Columns;

                        thisDefinition.theStructure = thisTableColumns;
                    }
                    else
                    {
                        //TODO: Convert to Procedure
                        ER_Query.Parameter_Run SQlin = new ER_Query.Parameter_Run
                        {
                            sqlIn         = "select ORDINAL_POSITION, COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA = @TABLE_SCHEMA and upper(TABLE_NAME) = upper(@TABLE_NAME) order by ORDINAL_POSITION ASC",
                            _dbParameters = new List <DBParameters> {
                                new DBParameters {
                                    ParamName = "TABLE_SCHEMA", MSSqlParamDataType = SqlDbType.VarChar, ParamValue = _Connect.Schema
                                },
                                new DBParameters {
                                    ParamName = "TABLE_NAME", MSSqlParamDataType = SqlDbType.VarChar, ParamValue = thisDefinition.theReport.Source
                                }
                            }
                        };

                        DataTable            thisTableColumns = ER_Query._RUN_PARAMETER_QUERY(_Connect, SQlin);
                        DataColumnCollection DCC = thisTableColumns.Columns;

                        System.Data.DataTable table = new System.Data.DataTable();

                        DataColumn column;
                        column            = new DataColumn();
                        column.ColumnName = "rownumb";
                        column.Caption    = "rownumb";
                        table.Columns.Add(column);

                        for (int i = 0; i < thisTableColumns.Rows.Count; i++)
                        {
                            column            = new DataColumn();
                            column.ColumnName = thisTableColumns.Rows[i]["COLUMN_NAME"].ToString();
                            column.Caption    = thisTableColumns.Rows[i]["COLUMN_NAME"].ToString();
                            table.Columns.Add(column);
                        }

                        thisDefinition.theStructure = table;
                    }
                }
            }
        }