⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hform.cs

📁 .net 开发的基础框架
💻 CS
📖 第 1 页 / 共 2 页
字号:


        /// <summary>
        /// 读取一个项目的关联费用
        /// </summary>
        /// <param name="iItemId">申请单项目</param>
        public void ReadItemF(int iItemId)
        {
            _ItemF.ResetSQL();
            _ItemF.SetDataById(iItemId);
            _ItemF.Retrieve();
        }

        /// <summary>
        /// 读取申请单费用
        /// </summary>
        public void ReadFormF()
        {
            _FormF.Retrieve(this.ID);
        }

        /// <summary>
        /// 根据申请单的数据产生费用
        /// </summary>
        /// <returns></returns>
        public int CreateFormF()
        {
            _FormF.Retrieve(this.ID);
            // 清空已有的费用
            for (int i = _FormF.RowCount; i > 0; i--)
            {
                _FormF.DeleteRow(i);
            }

            // 遍历每一个项目,并根据实际的数据产生费用
            FormItem_f_List itemf;
            bool bFound;
            int iRow;

            for (int i = 1; i <= _FormItems.RowCount; i++)
            {
                _FormItems.SetRow(i);
                if (_FormItems.STS_FEIYONG == "1") continue;

                // 当项目的类型是一个选择项时,先判断它是否是选中的状态
                if (_FormItems.TYPE == "1")
                {
                    //MessageBox.Show(_FormItems.VALUE);
                    if (_FormItems.VALUE == "1") continue;
                }

                // 取得该项目的关联费用
                itemf = new FormItem_f_List();
                itemf.SetDataById(_FormItems.ID);
                itemf.Retrieve();

                for (int j = 1; j <= itemf.RowCount; j++)
                {
                    itemf.SetRow(j);
                    // 在申请单的费用中查找该收费是否已经存在,若是,则加上数量,若不是,则插入新纪录
                    bFound = false;
                    for (int k = 1; k <= _FormF.RowCount; k++)
                    {
                        _FormF.SetRow(k);
                        string f_Code = _FormF.ITEM_TYPE + _FormF.ITEM_ID.ToString();
                        if (f_Code == itemf.F_CODE)
                        {
                            bFound = true;
                            break;
                        }
                    }
                    if (bFound)
                    {
                        _FormF.NUM = _FormF.NUM + itemf.NUM;
                    }
                    else
                    {
                        iRow = _FormF.InsertRow(0);
                        _FormF.SetRow(iRow);

                        _FormF.FORM_ID = this.ID;
                        _FormF.ITEM_ID = Convert.ToInt32(itemf.F_CODE.Substring(4,itemf.F_CODE.Length - 4));
                        _FormF.ITEM_TYPE = itemf.F_CODE.Substring(0,4);
                        _FormF.ITEM_PRICE = itemf.PRICE;
                        _FormF.NUM = itemf.NUM;
                        _FormF.STS_ZIFEI = "1";
                        _FormF.STS_BAOXIANJB = "0";
                        _FormF.STS_BAOXIANXZ = "1";
                    }
                }
            }

            /*

            // 保存
            try
            {
                ff.UpdateData();
                SPRF.SQLCA.Commit();
                return 0;
            }
            catch (DbErrorException e)
            {
                SPRF.ErrText = e.SqlErrorText;
                SPRF.SQLCA.Rollback();
                return -1;
            }
            */
            return 0;

        }

        /// <summary>
        /// 取得申请单的结算记录
        /// </summary>
        /// <returns></returns>
        public FormAccount GetAccRecord()
        {
            FormAccount ar = new FormAccount();
            ar.SetDataByFormId(this.ID);
            ar.Retrieve();
            return ar;
        }
        #region 创建建立DataWindow的语法
        public string create_syntax()
        {
            StringBuilder sb = new StringBuilder();
            sb = sb.Append( "release 10.5;");
            sb = sb.Append("datawindow(units=3 timer_interval=0 color=1073741824 processing=0 HTMLDW=no print.printername='' print.documentname='' print.orientation = 0 print.margin.left = 635 print.margin.right = 635 print.margin.top = 635 print.margin.bottom = 635 print.paper.source = 0 print.paper.size = 0 print.canusedefaultprinter=yes print.prompt=no print.buttons=no print.preview.buttons=no print.cliptext=no print.overrideprintjob=no print.collate=yes print.preview.outline=yes hidegrayline=no )");
            sb = sb.Append("header(height=0 color='536870912' )");
            sb = sb.Append("summary(height=0 color='536870912' )");
            sb = sb.Append("footer(height=0 color='536870912' )");
            sb = sb.Append("detail(height=13996 color='536870912' )");
            sb = sb.Append("table(column=(type=char(10) updatewhereclause=yes name=aa dbname='aa' )");

            for (int i = 1; i <= _FormItems.RowCount; i++)
            {
                _FormItems.SetRow(i);
                tableSyntax = _FormItems.SYNTAX_TABLE;
                if (tableSyntax == null) continue;
                if (tableSyntax.Length == 0) continue;
                sb = sb.Append(tableSyntax);
            }
            
            sb = sb.Append(" )");

            int colID = 1;
            int iPos;
            for (int i = 1; i <= _FormItems.RowCount; i++)
            {
                _FormItems.SetRow(i);
                viewSyntax = _FormItems.SYNTAX_VIEW;
                if (viewSyntax == null) continue;
                if (viewSyntax.Length == 0) continue;
                if (viewSyntax.IndexOf("column(") >= 0)
                {
                    colID++;
                    iPos = viewSyntax.IndexOf(" id= ");
                    viewSyntax = viewSyntax.Substring(0, iPos + 4) + colID.ToString() + viewSyntax.Substring(iPos+4,viewSyntax.Length - iPos - 4);
                    
                    iPos = viewSyntax.IndexOf(" name= ");
                    viewSyntax = viewSyntax.Substring(0, iPos + 6) + "xx_"+_FormItems.ID.ToString() + viewSyntax.Substring(iPos + 6, viewSyntax.Length - iPos - 6);
                   
                }
                sb = sb.Append(viewSyntax);
            }

            sb = sb.Append("htmltable(border='1' )");
            sb = sb.Append("htmlgen(clientevents='1' clientvalidation='1' clientcomputedfields='1' clientformatting='0' clientscriptable='0' generatejavascript='1' encodeselflinkargs='1' netscapelayers='0' pagingmethod=0 generatedddwframes='1' )");
            sb = sb.Append("xhtmlgen() cssgen(sessionspecific='0' )");
            sb = sb.Append("xmlgen(inline='0' )");
            sb = sb.Append("xsltgen()");
            sb = sb.Append("jsgen()");
            sb = sb.Append("export.xml(headgroups='1' includewhitespace='0' metadatatype=0 savemetadata=0 )");
            sb = sb.Append("import.xml()");
            sb = sb.Append("export.pdf(method=0 distill.custompostscript='0' xslfop.print='0' )");
            sb = sb.Append("export.xhtml()");

            //_FormView.ShareDataOff();
            _FormView.Create(sb.ToString());
            _FormView.InsertRow(0);
            _FormView.SetRow(1);

            return sb.ToString();
        }
        #endregion

        #region 设定项目的数据
        public bool SetItemValue(string sColName,string sValue)
        {
            bool bRet = false;
            int iItemId,iPos;
            iPos = sColName.IndexOf("_");
            iItemId = Convert.ToInt32(sColName.Substring(iPos + 1,sColName.Length - iPos -1));
            if (iItemId == 0)
            {
                return true;
            }
            // 在 _FormItems 中找到编号为 iItemId 的项目
            int iRow = 0;
            for (int i = 1; i <= _FormItems.RowCount; i++)
            {
                _FormItems.SetRow(i);
                if (_FormItems.ID == iItemId)
                {
                    iRow = i;
                    break;
                }
            }
            // 如果这个项目不是选择类型,则直接设定项目数据
            if (_FormItems.TYPE != "1")
            {
                _FormItems.VALUE = sValue;
                _FormView.SetItemString(1,sColName, sValue);
                bRet = true;
            }
            else
            {
                // 0 - 表示选中,1 - 表示不选中
                string oldValue = _FormItems.VALUE;
                
                // 判断项目应该设置的数据
                // 如果该项目有子项,那么只要一个子项被选中,该项目就是选中的
                string sTmpValue = "-1";// -1表示该项目没有子项目
                for(int i=1;i<=_FormItems.RowCount;i++)
                {
                    _FormItems.SetRow(i);
                    if(_FormItems.F_ID != iItemId) continue;
                    if(_FormItems.TYPE != "1") continue;
                    if (_FormItems.VALUE == "0")
                    {
                        sTmpValue = "0";
                        break;
                    }
                    else
                    {
                        sTmpValue = "1";
                    }
                }
                _FormItems.SetRow(iRow);
                if (sTmpValue != "-1") sValue = sTmpValue;
                //MessageBox.Show("sTmpValue:" + sTmpValue+"<|>sValue:"+sValue);
                _FormItems.VALUE = sValue;
                _FormView.SetItemString(1,sColName,sValue);
               
                // 设置该项目的父项的数据 
                
                SetItemValue("xx_" + _FormItems.F_ID.ToString(), sValue);

            }

            return bRet;
        }
        #endregion

        #region 只在维护模版式使用的方法
        // 将一个费用关联到项目上(只在维护模版式使用该方法)
        public int AddItemF(int iItemId, string sF_Code)
        {
            FormItemF_Edit itemf = new FormItemF_Edit();
            itemf.SetDataById(iItemId);
            itemf.Retrieve();

            int iRow = itemf.InsertRow(0);
            itemf.SetRow(iRow);

            itemf.FORM_ID = this.ID;
            itemf.ITEM_ID = iItemId;
            itemf.F_CODE = sF_Code;
            itemf.NUM = 1;

            for (int i = 1; i <= itemf.RowCount; i++)
            {
                itemf.SetRow(i);
                itemf.XH = i;
            }

            try
            {
                itemf.UpdateData();
                SPRF.SQLCA.Commit();
                return 0;
            }
            catch (DbErrorException e)
            {
                SPRF.ErrText = e.SqlErrorText;
                SPRF.SQLCA.Rollback();
                return -1;
            }
        }
        #endregion

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -