📄 hform.cs
字号:
/// <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 + -