GenerateSheet.aspx.cs
资源名称:H3_OA.rar [点击查看]
上传用户:li2971742
上传日期:2021-11-18
资源大小:39096k
文件大小:15k
源码类别:
OA系统
开发平台:
C#
- using System;
- using System.Collections;
- using System.Configuration;
- using System.Data;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.HtmlControls;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- namespace OThinker.H3.Portal
- {
- public partial class GenerateSheet : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!this.IsPostBack)
- {
- string[] packages = OThinker.H3.Server.Engine.WorkflowManager.GetWorkflowPackages();
- if (packages != null)
- {
- foreach (string package in packages)
- {
- this.lstWorkflowPackage.Items.Add(package);
- }
- }
- if (this.lstWorkflowPackage.Items.Count > 0)
- {
- this.lstWorkflowPackage.SelectedIndex = 0;
- this.lstWorkflowPackage_SelectedIndexChanged(this, new EventArgs());
- }
- }
- }
- protected void lstWorkflowPackage_SelectedIndexChanged(object sender, EventArgs e)
- {
- string package = this.lstWorkflowPackage.SelectedValue;
- string[] names = OThinker.H3.Server.Engine.WorkflowManager.GetWorkflowNames(package, OThinker.H3.WorkflowTemplate.WorkflowState.Unspecified);
- this.lstWorkflowName.Items.Clear();
- foreach (string name in names)
- {
- this.lstWorkflowName.Items.Add(name);
- }
- if (this.lstWorkflowName.Items.Count > 0)
- {
- this.lstWorkflowName.SelectedIndex = 0;
- this.lstWorkflowName_SelectedIndexChanged(this, new EventArgs());
- }
- }
- protected void lstWorkflowName_SelectedIndexChanged(object sender, EventArgs e)
- {
- string package = this.lstWorkflowPackage.SelectedValue;
- string name = this.lstWorkflowName.SelectedValue;
- int[] versions = OThinker.H3.Server.Engine.WorkflowManager.GetWorkflowVersions(package, name);
- this.lstWorkflowVersion.Items.Clear();
- foreach (int version in versions)
- {
- this.lstWorkflowVersion.Items.Add(version.ToString());
- }
- if (this.lstWorkflowVersion.Items.Count > 0)
- {
- this.lstWorkflowVersion.SelectedIndex = this.lstWorkflowVersion.Items.Count - 1;
- }
- }
- private void WriteCode(string FileName, string Code)
- {
- byte[] content = new byte[Code.Length];
- for (int count = 0; count < content.Length; count++)
- {
- content[count] = (byte)Code[count];
- }
- // 显示该文件
- this.Response.ContentType = "text/plain";
- //设置响应头和下载保存的文件名
- this.Response.AddHeader("Content-Disposition", "online;filename=" + FileName);
- // 显示内容
- this.Response.BinaryWrite(content);
- this.Response.End();
- }
- protected void btnGenerateCs_Click(object sender, EventArgs e)
- {
- string code =
- @"
- using System;
- using System.Collections;
- using System.Configuration;
- using System.Data;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.HtmlControls;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- namespace " + this.txtNameSpace.Text + @"
- {
- public partial class " + this.txtClassName.Text + @": OThinker.H3.WorkSheet.SheetPage
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- }
- public override void LoadDataFields()
- {
- // 在加载数据的时候调用
- base.LoadDataFields();
- }
- public override void SaveDataFields(OThinker.H3.WorkSheet.SheetSubmitEventArgs Args)
- {
- // 在保存数据的时候调用
- base.SaveDataFields(Args);
- }
- }
- }";
- this.WriteCode(this.txtClassName.Text + ".aspx.cs", code);
- }
- protected void btnGenerateAspx_Click(object sender, EventArgs e)
- {
- H3.WorkflowTemplate.WorkflowTemplate workflow = OThinker.H3.Server.Engine.WorkflowManager.GetWorkflow(
- this.lstWorkflowPackage.SelectedValue,
- this.lstWorkflowName.SelectedValue,
- int.Parse(this.lstWorkflowVersion.SelectedValue));
- if (workflow == null)
- {
- return;
- }
- System.Text.StringBuilder code = new System.Text.StringBuilder();
- // 设置宽度为100%
- code.Append("<TABLE WIDTH='100%' cellpadding=0 cellspacing=0>" + System.Environment.NewLine);
- // 发起人
- code.Append("<TR>" + System.Environment.NewLine);
- code.Append("<TD>" + System.Environment.NewLine);
- code.Append("Originator" + System.Environment.NewLine);
- code.Append("</TD>" + System.Environment.NewLine);
- code.Append("<TD>" + System.Environment.NewLine);
- code.Append("<SheetControls:SheetLabel id="lblOriginator1" runat="server" DataField="" + OThinker.H3.Data.Keywords.OriginatorParser.Originators.FullName + "" />" + System.Environment.NewLine);
- code.Append("</TD>" + System.Environment.NewLine);
- code.Append("</TR>" + System.Environment.NewLine);
- // 发起时间
- code.Append("<TD>");
- code.Append("Originate Time" + System.Environment.NewLine);
- code.Append("</TD>" + System.Environment.NewLine);
- code.Append("<TD>" + System.Environment.NewLine);
- code.Append("<SheetControls:SheetLabel id="lblOriginateFullTime1" runat="server" DataField="" + OThinker.H3.Data.Keywords.InstanceParser.OriginateFullTime + "" />" + System.Environment.NewLine);
- code.Append("</TD>" + System.Environment.NewLine);
- code.Append("</TR>" + System.Environment.NewLine);
- // 流水号
- code.Append("<TD>" + System.Environment.NewLine);
- code.Append("Sequence Number" + System.Environment.NewLine);
- code.Append("</TD>");
- code.Append("<TD>" + System.Environment.NewLine);
- code.Append("<sheetcontrols:SheetSequenceID ID="SheetSequenceID1" runat="server" />" + System.Environment.NewLine);
- code.Append("</TD>" + System.Environment.NewLine);
- code.Append("</TR>" + System.Environment.NewLine);
- // 流程名
- code.Append("<TD>" + System.Environment.NewLine);
- code.Append("Instance Name" + System.Environment.NewLine);
- code.Append("</TD>" + System.Environment.NewLine);
- code.Append("<TD>" + System.Environment.NewLine);
- code.Append("<sheetcontrols:SheetInstanceNameEditor ID="SheetInstanceNameEditor1" runat="server" />" + System.Environment.NewLine);
- code.Append("</TD>" + System.Environment.NewLine);
- code.Append("</TR>" + System.Environment.NewLine);
- // 流程优先级
- code.Append("<TD>" + System.Environment.NewLine);
- code.Append("Instance Priority" + System.Environment.NewLine);
- code.Append("</TD>" + System.Environment.NewLine);
- code.Append("<TD>" + System.Environment.NewLine);
- code.Append("<sheetcontrols:SheetInstancePrioritySelector ID="SheetInstancePrioritySelector1" runat="server" />" + System.Environment.NewLine);
- code.Append("</TD>" + System.Environment.NewLine);
- code.Append("</TR>" + System.Environment.NewLine);
- int count = 0;
- foreach (OThinker.H3.Data.WorkflowDataItem processDataItem in workflow.DataItems)
- {
- count++;
- string labelId = "Label" + count;
- string controlId = "Control" + count;
- code.Append("<TR>" + System.Environment.NewLine);
- // 名称单元
- code.Append("<TD valign='top' width='20%'>" + System.Environment.NewLine);
- code.Append("<SheetControls:SheetLabel ID="" + labelId + "" runat="server" BindType="OnlyVisibility" DataField="" + processDataItem.ItemName + "" Text="" + processDataItem.ItemName + "" RenderType="Normal" />" + System.Environment.NewLine);
- code.Append("</TD>" + System.Environment.NewLine);
- // 数据单元
- code.Append("<TD valign='top' width='80%'>" + System.Environment.NewLine);
- // 单元控件
- WebControl cellControl = null;
- switch (processDataItem.LogicType)
- {
- case OThinker.H3.Data.DataLogicType.Bool:
- code.Append("<SheetControls:SheetCheckBox ID="" + controlId + "" runat="server" DataField="" + processDataItem.ItemName + ""/>");
- break;
- case OThinker.H3.Data.DataLogicType.Sign:
- code.Append("<SheetControls:SheetSign ID="" + controlId + "" runat="server" DataField="" + processDataItem.ItemName + ""/>");
- break;
- case OThinker.H3.Data.DataLogicType.DateTime:
- code.Append("<SheetControls:SheetTime ID="" + controlId + "" runat="server" Modal="SimplifiedTime" DefaultValue="CurrentTime" DataField="" + processDataItem.ItemName + ""/>");
- break;
- case OThinker.H3.Data.DataLogicType.TimeSpan:
- case OThinker.H3.Data.DataLogicType.Double:
- case OThinker.H3.Data.DataLogicType.Money:
- case OThinker.H3.Data.DataLogicType.Int:
- case OThinker.H3.Data.DataLogicType.Long:
- case OThinker.H3.Data.DataLogicType.ShortString:
- case OThinker.H3.Data.DataLogicType.Byte:
- case OThinker.H3.Data.DataLogicType.Char:
- code.Append("<SheetControls:SheetTextBox ID="" + controlId + "" runat="server" DataField="" + processDataItem.ItemName + ""/>");
- break;
- case OThinker.H3.Data.DataLogicType.HyperLink:
- code.Append("<SheetControls:SheetEditableHyperlink ID="" + controlId + "" runat="server" DataField="" + processDataItem.ItemName + ""/>");
- break;
- case OThinker.H3.Data.DataLogicType.Discussion:
- code.Append("<SheetControls:SheetComment ID="" + controlId + "" " +
- "runat="server" " +
- "DataField="" + processDataItem.ItemName + "" " +
- "ReadDataFields="" + processDataItem.ItemName + "" " +
- "Height=180px Width = 300px " +
- "/>");
- break;
- case OThinker.H3.Data.DataLogicType.Attachment:
- code.Append("<SheetControls:SheetAttachment ID="" + controlId + "" runat="server" DataField="" + processDataItem.ItemName + ""/>");
- break;
- case OThinker.H3.Data.DataLogicType.String:
- code.Append("<SheetControls:SheetTextBox ID="" + controlId + "" runat="server" DataField="" + processDataItem.ItemName + "" TextMode="MultiLine"/>");
- break;
- case OThinker.H3.Data.DataLogicType.DataTable:
- code.Append("<SheetControls:SheetGridView ID="" + controlId + "" runat="server" DataField="" + processDataItem.ItemName + ""/>");
- break;
- case OThinker.H3.Data.DataLogicType.SingleParticipant:
- code.Append("<SheetControls:SheetUserSelector ID="" + controlId + "" runat="server" DataField="" + processDataItem.ItemName + "" UserSelectable=true/>");
- break;
- case OThinker.H3.Data.DataLogicType.MultiParticipant:
- code.Append("<SheetControls:SheetUserSelector ID="" + controlId + "" runat="server" " +
- "DataField="" + processDataItem.ItemName + "" " +
- "Height="60px" " +
- "UserSelectable=true " +
- "CompanySelectable=true " +
- "OrgUnitSelectable=true " +
- "GroupSelectable=true " +
- "/>");
- break;
- case OThinker.H3.Data.DataLogicType.ByteArray:
- code.Append("未知控件");
- break;
- default:
- break;
- }
- code.Append(System.Environment.NewLine);
- code.Append("</TD>" + System.Environment.NewLine);
- code.Append("</TR>" + System.Environment.NewLine);
- }
- code.Append("</TABLE>" + System.Environment.NewLine);
- code.Insert(0,
- "<%@ Page Language="C#" AutoEventWireup="true" CodeFile="" + this.txtClassName.Text + ".aspx.cs" " + "Inherits="" + this.txtNameSpace.Text + "." + this.txtClassName.Text + "" EnableEventValidation="false"%>" + System.Environment.NewLine +
- "<%@ Register assembly="OThinker.H3.WorkSheet" namespace="OThinker.H3.WorkSheet" tagprefix="SheetControls" %>" + System.Environment.NewLine +
- "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">"+ System.Environment.NewLine +
- "<html xmlns="http://www.w3.org/1999/xhtml">"+ System.Environment.NewLine +
- "<head runat="server">"+ System.Environment.NewLine +
- "<title>Untitled Page</title>"+ System.Environment.NewLine +
- "</head>"+ System.Environment.NewLine +
- "<body>"+ System.Environment.NewLine +
- "<form id="form1" runat="server">"+ System.Environment.NewLine);
- code.Append(
- "</form>" + System.Environment.NewLine +
- "</body>" + System.Environment.NewLine +
- "</html>");
- this.WriteCode(this.txtClassName.Text + ".aspx", code.ToString());
- }
- }
- }