📄 hisformmodelmanageform.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using SPRFrame;
using Sybase.DataWindow;
namespace HPIResource.HisForm
{
public partial class HisFormModelManageForm : Form
{
private HForm _form; // 当前的申请单
private int _ItemID; // 当前的项目编号
public HisFormModelManageForm()
{
InitializeComponent();
}
private void FormModelManageForm_Load(object sender, EventArgs e)
{
WindowState = FormWindowState.Maximized;
_form = new HForm();
//string ss = _form.create_syntax();
//this.dw_form_view.Create(ss);
//this.dw_form_view.InsertRow(0);
ListFormCatalog();
}
// 检索申请单类别
private void ListFormCatalog()
{
this.tv_form_list.Nodes.Clear();
// 加入根节点
TreeNode root_tn;
root_tn = new TreeNode();
root_tn.Text = "全部";
root_tn.Name = "ALLNode";
root_tn.Tag = "";
root_tn.ImageIndex = 1;
this.tv_form_list.Nodes.Add(root_tn);
// 读取申请单分类
Form_Catalog_List fc = new Form_Catalog_List();
Form_List fl ;
fc.Retrieve();
TreeNode c_tn,f_tn;
for (int i = 1; i <= fc.RowCount; i++)
{
fc.SetRow(i);
c_tn = new TreeNode();
c_tn.Text = fc.CAPTION;
c_tn.Name = "Catalog";
c_tn.Tag = fc.ID;
c_tn.ImageIndex = 2;
root_tn.Nodes.Add(c_tn);
// 检索该类型下的申请单模版
fl = new Form_List();
fl.SetDataAsModel(fc.ID);
fl.Retrieve();
for (int j = 1; j <= fl.RowCount; j++)
{
fl.SetRow(j);
f_tn = new TreeNode();
f_tn.Text = fl.CAPTION;
f_tn.Name = "FormModel";
f_tn.Tag = fl.ID;
f_tn.ImageIndex = 3;
c_tn.Nodes.Add(f_tn);
}
}
}
// 读取申请单的项目
public void ListFormItem(int iFormId)
{
this.tv_form_item.Nodes.Clear();
// 加入根节点
TreeNode root_tn;
root_tn = new TreeNode();
root_tn.Text = this.tv_form_list.SelectedNode.Text;
root_tn.Name = "Form";
root_tn.Tag = this.tv_form_list.SelectedNode.Tag;
root_tn.ImageIndex = 0;
this.tv_form_item.Nodes.Add(root_tn);
// 递归检索项目
int formID = Convert.ToInt32(this.tv_form_list.SelectedNode.Tag.ToString());
ListFormItem(root_tn, formID, 0);
}
public void ListFormItem(TreeNode tn,int iFormId,int iF_Id)
{
FormItem_List fi = new FormItem_List();
TreeNode c_tn;
fi.SetDataByChild(iFormId, iF_Id);
fi.Retrieve();
for (int i = 1; i <= fi.RowCount; i++)
{
fi.SetRow(i);
c_tn = new TreeNode();
c_tn.Text = fi.CAPTION;
c_tn.Name = "Item";
c_tn.Tag = iFormId.ToString()+"-"+fi.ID.ToString();
c_tn.ImageIndex = Convert.ToInt32(fi.TYPE);
tn.Nodes.Add(c_tn);
ListFormItem(c_tn, iFormId, fi.ID);
}
}
private void MenuItem_newForm_Click(object sender, EventArgs e)
{
// 创建新模版
TreeNode sn = this.tv_form_list.SelectedNode;
if (sn == null) return;
if (sn.Name != "Catalog") return;
SPRF.PARM = "N"+sn.Tag.ToString();
HisFormModel_InfoForm aa = new HisFormModel_InfoForm();
aa.ShowDialog();
if (SPRF.PARM == null) return;
ListFormCatalog();
}
private void tv_form_list_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
// 选择一个申请单模版
TreeNode sn = this.tv_form_list.SelectedNode;
if (sn == null) return;
if (sn.Name != "FormModel") return;
int id = Convert.ToInt32(sn.Tag.ToString());
_form.init(id,0);
ListFormItem(id);
string ss = _form.create_syntax();
this.dw_form_view.Create(ss);
_form._FormView.ShareData(this.dw_form_view);
}
private void tabControl1_Selected(object sender, TabControlEventArgs e)
{
if (e.TabPageIndex == 0)
{
string ss = _form.create_syntax();
this.dw_form_view.Create(ss);
this.dw_form_view.InsertRow(0);
}
}
private void tv_form_item_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
{
TreeNode sn = e.Node;
if (sn.Name != "Item") return;
SPRF.PARM = sn.Tag.ToString();
HisFormItemForm aa = new HisFormItemForm();
aa.ShowDialog();
}
private void btn_NewItem_Click(object sender, EventArgs e)
{
int id = _form.ID;
SPRF.PARM = id.ToString()+"-0";
HisFormItemForm aa = new HisFormItemForm();
aa.ShowDialog();
if (SPRF.PARM.ToString() == "OK")
{
_form.init(id, 0);
ListFormItem(id);
string ss = _form.create_syntax();
this.dw_form_view.Create(ss);
this.dw_form_view.InsertRow(0);
}
}
private void btn_Print_Click(object sender, EventArgs e)
{
Printer.AddCustomPaperSize("Star NX-100+","aa",(float)150,(float)60);
Printer.SetPrinterToDefault("Star NX-100+");
dw_form_view.Modify("DataWindow.print.preview.rulers='yes'");
dw_form_view.Modify("DataWindow.print.preview='yes'");
//dw_form_view.Print();
}
private void tv_form_item_ItemDrag(object sender, ItemDragEventArgs e)
{
DoDragDrop(e.Item, DragDropEffects.Move);
}
private void tv_form_item_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
private void tv_form_item_DragDrop(object sender, DragEventArgs e)
{
TreeNode NewNode;
if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false))
{
Point pt = ((TreeView)sender).PointToClient(new Point(e.X, e.Y));
TreeNode DestinationNode = ((TreeView)sender).GetNodeAt(pt);
NewNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");
if (DestinationNode.TreeView == NewNode.TreeView)
{
// 将 NewNode 放到 DestinationNode 下
// 取得 DestinationNode 的 ID
string sTmp = DestinationNode.Tag.ToString();
int iPos = sTmp.IndexOf("-");
int f_id;
if (iPos >= 0)
{
f_id = Convert.ToInt32(sTmp.Substring(iPos+1,sTmp.Length - iPos - 1));
}
else
{
f_id = 0;
}
// 将NewNode 的 F_ID 设定为新的项目编号
FormItem_List fi = new FormItem_List();
sTmp = NewNode.Tag.ToString();
iPos = sTmp.IndexOf("-");
int form_id,item_id;
if (iPos >= 0)
{
form_id = Convert.ToInt32(sTmp.Substring(0,iPos));
item_id = Convert.ToInt32(sTmp.Substring(iPos + 1, sTmp.Length - iPos - 1));
fi.SetDataById(form_id,item_id);
fi.Retrieve();
fi.F_ID = f_id;
try
{
fi.UpdateData();
SPRF.SQLCA.Commit();
ListFormItem(form_id);
}
catch (DbErrorException ex)
{
SPRF.ErrText = ex.SqlErrorText;
SPRF.SQLCA.Rollback();
}
}
}
}
}
private void dw_form_view_ItemChanged(object sender, Sybase.DataWindow.ItemChangedEventArgs e)
{
_form._FormView.ShareDataOff();
_form.SetItemValue(e.ColumnName,e.Data);
this.dw_form_view.Reset();
_form._FormView.ShareData(this.dw_form_view);
}
// 显示一个项目的关联费用
private void ViewItemF()
{
dw_item_f.LibraryList = _form._ItemF.LibraryList;
dw_item_f.DataWindowObject = _form._ItemF.DataWindowObject;
_form._ItemF.ShareData(dw_item_f);
}
private void btn_AddItemF_Click(object sender, EventArgs e)
{
HPIR.SelectItem();
if (SPRF.PARM == null) return;
// 将收费项目关联到这个项目上
string fCode = SPRF.PARM.ToString();
int rc = _form.AddItemF(_ItemID, fCode);
if (rc == 0)
{
_form.ReadItemF(_ItemID);
ViewItemF();
}
else
{
MessageBox.Show("添加费用失败:"+SPRF.ErrText);
}
}
// 项目节点改变了
private void tv_form_item_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
TreeNode sn = e.Node;
if (sn.Name != "Item")
{
this.btn_AddItemF.Enabled = false;
return;
}
string sTmp = sn.Tag.ToString();
int iPos = sTmp.IndexOf("-");
_ItemID = Convert.ToInt32(sTmp.Substring(iPos + 1, sTmp.Length - iPos - 1));
_form.ReadItemF(_ItemID);
ViewItemF();
this.btn_AddItemF.Enabled = true;
}
private void btn_FormF_Click(object sender, EventArgs e)
{
int rc = _form.CreateFormF();
if (rc == -1)
{
MessageBox.Show("申请单划价错误:"+SPRF.ErrText);
return;
}
_form.ReadFormF();
dw_form_f.LibraryList = _form._FormF.LibraryList;
dw_form_f.DataWindowObject = _form._FormF.DataWindowObject;
_form._FormF.ShareData(dw_form_f);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -