老曹是个老计算机手了。与他共同研究的报表系统雏形终于编制成功了
请看
报表定义

字段定义

字段添加
- public void AddField(string caption, int reportid, bool isCombo, ArrayList infoset, ArrayList column,
- ArrayList dispNull, ArrayList dispMulti, ArrayList dispAll, ArrayList dispWhich,
- ArrayList orderby, ArrayList asc, string cond, string conditionControlStatus)
- {
- DBAccess dbaccess = new DBAccess(DBAccess.DBType.SQL);
- dbaccess.Exe("insert into reportfield(reportid,iscombo) values(", reportid, isCombo, ")");
- long reportfieldid = dbaccess.getIdentity();
- reportDoc.AddFieldOnSelect(caption,(int)reportfieldid);
- for (int i = 0; i < infoset.Count; i++)
- {
- dbaccess.Exe(
- "insert into reportfieldcolumn(reportfieldid,infoset,column_,dispnull,dispmulti,dispAll,dispwhich,orderby,asc_desc,condition,clausecontrol) values(",
- reportfieldid, infoset[i], column[i], dispNull[0], dispMulti[0], dispAll[0], dispWhich[0],
- orderby[0], asc[0], cond,conditionControlStatus,")");
- }
- dbaccess.Close();
- }
reportDoc.AddFieldOnSelect使用了bridge模式,分离word/excel实现
excel的
- public void AddFieldOnSelect(string caption, int id)
- {
- setCell(2, eApp.ActiveCell.Column, caption);
- setCell(3, eApp.ActiveCell.Column, id.ToString());
- }
word的复杂点
- public void AddFieldOnSelect( string caption, int id)
- {
- Word.Selection sln = eApp.Selection;
- eApp.Options.Overtype = false;
- Word.Document WordDoc = null;
- Object N = Type.Missing;
- WordDoc = (Word.Document)webBrowser.Document;
- Object Type1 = WdFieldType.wdFieldMacroButton;
- object pos = sln.Start;
- object pos2 = sln.End;
- Word.Range rng = WordDoc.Range(ref pos, ref pos2);
- Word.Field Field1 = WordDoc.Fields.Add(rng, ref Type1, ref N, ref N);
- Field1.Code.Text = "MACROBUTTON " + "field_ganbureport_" + id + " " + caption;
- }
1651

被折叠的 条评论
为什么被折叠?



