Пример #1
0
        public void ApplyFilter()
        {
            //where is my target grid?
            string gridName = this["GridName"].GetValue <string>();

            //look into properties to find controls for each field
            BaseCriteriaCollection bcc = new BaseCriteriaCollection();

            string[] ctls   = this["FilterValueControls"].GetValue <string[]>();
            string[] fields = this["FilterFields"].GetValue <string[]>();
            string   table  = this["TableName"].GetValue <string>();

            IProvider provider = DBCore.getInstance();

            for (int i = 0; i < ctls.Length; i++)
            {
                string ctl   = ctls[i];
                string field = fields[i];

                string value = (string)blockWeb[ctl].ProcessRequest("GetValue");

                DBField fieldInfo = provider.GetField(table, field);
                bcc.AddCriteria(field, new DynamicCriteria(field, fieldInfo.dataType, value, "="));
            }

            blockWeb[gridName].ProcessRequest("RefreshGrid", bcc);

            WinUI.MessageBox.Show("Filter applied");
        }
Пример #2
0
        public void RefreshGrid(BaseCriteriaCollection bcc) //ControlSchema template, BaseCriteriaCollection criteria=null)
        {
            string tableName = this["TableName"].GetValue <string>("");

            string[] columns = this["Columns"].GetValue <string[]>(null);
            string[] titles  = this["ColumnHeaders"].GetValue <string[]>(null);

            int            i  = 0;
            DataTable      dt = new DataTable();
            SelectCriteria sc = new SelectCriteria();

            sc.fields = new System.Collections.ArrayList();

            ctl.Columns.Clear();

            foreach (string column in columns)
            {
                WinUI.DataGridViewTextBoxColumn col = new WinUI.DataGridViewTextBoxColumn();
                col.HeaderText       = titles[i++];
                col.DataPropertyName = column;
                col.Name             = column;

                ctl.Columns.Add(col);

                dt.Columns.Add(column);
                sc.fields.Add(column);
            }

            if (bcc != null)
            {
                sc.Criteria = bcc;
            }

            //sc.Criteria = criteria;

            DynamicRowCollection rows = DynamicRow.FindRows(tableName, sc);

            for (i = 0; i < rows.Count; i++)
            {
                DataRow dr = dt.NewRow();

                foreach (string column in columns)
                {
                    dr[column] = rows[i][column].fValue;
                }

                dt.Rows.Add(dr);
            }

            ctl.DataSource = dt;
        }