示例#1
0
        public void SetColumnsByReflection()
        {
            var props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);

            foreach (var prop in props)
            {
                var pi = prop;
                ColumnDefs.Add(pi.Name, t => pi.GetValue(t, null));
            }
        }
示例#2
0
        // 初始化
        void Initial()
        {
            string strError = "";
            ColumnDefs defs = null;
            int nRet = PrepareColumnDefs(out defs, out strError);
            if (nRet == -1)
            {
                this.ShowMessage(strError, "red", true);
                this.tabControl_main.Enabled = false;
                this._defs = null;
                return;
            }

            this._defs = defs;
        }
示例#3
0
 void AppendColumns(ColumnDefs defs, ListViewItem target, ListViewItem source)
 {
     int target_index = defs._base_colmun_defs.Count + 2;
     foreach (int source_index in defs.source_indices)
     {
         string strText = ListViewUtil.GetItemText(source, source_index + 2);
         ListViewUtil.ChangeItemText(target, target_index ++, strText);
     }
 }
示例#4
0
        // return:
        //      -1  出错
        //      其他  超出范围的事项的个数
        int AddOutOfRangeItemsToBaseList(
            ColumnDefs defs,
            List<ListViewItem> outofrange_source_items,
            // List<string> recpaths,
            out string strError)
        {
            strError = "";
            int nRet = 0;

            int nCount = 0;

            List<ListViewItem> items = new List<ListViewItem>();
            foreach (ListViewItem source_item in outofrange_source_items)
            {
                string strItemRecPath = ListViewUtil.GetItemText(source_item, defs.InventoryItemRecPathColumnIndex + 2);
                ListViewItem item = new ListViewItem();
                item.Text = strItemRecPath;

                this.listView_baseList_records.Items.Add(item);

                items.Add(item);
                // 事项超出基准集的范围了,设为黄色背景
                item.Tag = LineType.OutOfRange;
                SetLineColor(item, LineType.OutOfRange);

                AppendColumns(defs, item, source_item);

                // 复制书目摘要列
                ListViewUtil.ChangeItemText(item, 1, ListViewUtil.GetItemText(source_item, 1));
                nCount++;
            }


            string strBrowseStyle = "id,cols,format:@coldef:" + this._defs.BrowseColumnDef;

            // 刷新浏览行
            nRet = RefreshListViewLines(items,
                strBrowseStyle,
                false,
                false,  // 不清除右侧多出来的列内容
                out strError);
            if (nRet == -1)
                return -1;

#if NO
            // 刷新书目摘要
            bool bAccessBiblioSummaryDenied = false;
            if (bAccessBiblioSummaryDenied == false)
            {
                this.DbType = "item";
                try
                {
                    // return:
                    //      -2  获得书目摘要的权限不够
                    //      -1  出错
                    //      0   用户中断
                    //      1   完成
                    nRet = _fillBiblioSummaryColumn(items,
                        0,
                        false,
                        true,   // false,  // bAutoSearch
                        out strError);
                }
                finally
                {
                    this.DbType = "inventory";
                }
                if (nRet == -1)
                    return -1;
                if (nRet == -2)
                    bAccessBiblioSummaryDenied = true;

                if (nRet == 0)
                    this.ShowMessage("用户中断刷新书目摘要...", "yellow", true);
            }
#endif

            return nCount;
        }
示例#5
0
        int PrepareColumnDefs(out ColumnDefs defs, out string strError)
        {
            defs = null;
            strError = "";

            defs = new ColumnDefs();

            defs.InventoryDbName = this.MainForm.GetUtilDbName("inventory");
            if (string.IsNullOrEmpty(defs.InventoryDbName) == true)
            {
                strError = "尚未定义盘点库";
                return -1;
            }

            {
                // 获得 册记录路径 的列号
                ColumnPropertyCollection temp = this.MainForm.GetBrowseColumnProperties(defs.InventoryDbName);
                defs.InventoryItemRecPathColumnIndex = temp.FindColumnByType("item_recpath");
                if (defs.InventoryItemRecPathColumnIndex == -1)
                {
                    strError = "盘点库 '" + defs.InventoryDbName + "' 的 browse 配置文件中未定义 type 为 item_recpath 的列";
                    return -1;
                }

            }

            {
                defs._base_colmun_defs = this.MainForm.GetBrowseColumnProperties("[inventory_item]");
                if (defs._base_colmun_defs == null)
                {
                    strError = "[inventory_item] 库列定义没有找到";
                    return -1;
                }
            }

            {
                // 获得 册记录路径 的列号
                defs._inventory_column_defs = this.MainForm.GetBrowseColumnProperties(defs.InventoryDbName);
                if (defs._inventory_column_defs == null)
                {
                    strError = defs.InventoryDbName + " 库列定义没有找到";
                    return -1;
                }

                List<string> types = new List<string>();
                types.Add("batch_no");
                types.Add("operator");
                types.Add("oper_time");

                foreach (string type in types)
                {
                    int nCol = defs._inventory_column_defs.FindColumnByType(type);
                    if (nCol == -1)
                    {
                        strError = defs.InventoryDbName + " 库中 type 为 " + type + " 的列定义没有找到";
                        return -1;
                    }

                    defs.source_indices.Add(nCol);
                    defs.source_types.Add(type);
                }
            }

            {
                string strColumnDef = "";
                // return:
                //      -1  出错
                //      0   没有找到定义
                //      1   找到
                int nRet = GetColumnDefString(out strColumnDef,
            out strError);
                if (nRet == -1)
                    return -1;
                defs.BrowseColumnDef = strColumnDef;
            }

            return 0;
        }