...
This commit is contained in:
@@ -7,12 +7,14 @@ namespace JobReportMailService
|
||||
{
|
||||
public class CSetting : arUtil.Setting
|
||||
{
|
||||
public string connstr { get; set; }
|
||||
// public string connstr { get; set; }
|
||||
public Boolean autoRun { get; set; }
|
||||
public Boolean autoRunData { get; set; }
|
||||
public override void AfterLoad()
|
||||
{
|
||||
//throw new NotImplementedException();
|
||||
if (connstr == "")
|
||||
connstr = "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!";
|
||||
//if (connstr == "")
|
||||
// connstr = "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!";
|
||||
}
|
||||
public override void AfterSave()
|
||||
{
|
||||
|
||||
1872
JobReportMailService/DataSet1.Designer.cs
generated
1872
JobReportMailService/DataSet1.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
7
JobReportMailService/DataSet1.cs
Normal file
7
JobReportMailService/DataSet1.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace JobReportMailService
|
||||
{
|
||||
}
|
||||
|
||||
namespace JobReportMailService
|
||||
{
|
||||
}
|
||||
@@ -7,37 +7,6 @@
|
||||
<Connection AppSettingsObjectName="Settings" AppSettingsPropertyName="CS" ConnectionStringObject="" IsAppSettingsProperty="true" Modifier="Assembly" Name="CS (Settings)" ParameterPrefix="@" PropertyReference="ApplicationSettings.JobReportMailService.Properties.Settings.GlobalReference.Default.CS" Provider="System.Data.SqlClient" />
|
||||
</Connections>
|
||||
<Tables>
|
||||
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="vMailingProjectScheduleTableAdapter" GeneratorDataComponentClassName="vMailingProjectScheduleTableAdapter" Name="vMailingProjectSchedule" UserDataComponentName="vMailingProjectScheduleTableAdapter">
|
||||
<MainSource>
|
||||
<DbSource ConnectionRef="CS (Settings)" DbObjectName="EE.dbo.vMailingProjectSchedule" DbObjectType="View" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
|
||||
<SelectCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="false">
|
||||
<CommandText>SELECT idx, pdate, name, userManager, seq, title, sw, ew, swa, progress, ewa, ww, memo, sidx
|
||||
FROM vMailingProjectSchedule
|
||||
ORDER BY pdate, idx, seq</CommandText>
|
||||
<Parameters />
|
||||
</DbCommand>
|
||||
</SelectCommand>
|
||||
</DbSource>
|
||||
</MainSource>
|
||||
<Mappings>
|
||||
<Mapping SourceColumn="idx" DataSetColumn="idx" />
|
||||
<Mapping SourceColumn="pdate" DataSetColumn="pdate" />
|
||||
<Mapping SourceColumn="name" DataSetColumn="name" />
|
||||
<Mapping SourceColumn="userManager" DataSetColumn="userManager" />
|
||||
<Mapping SourceColumn="seq" DataSetColumn="seq" />
|
||||
<Mapping SourceColumn="title" DataSetColumn="title" />
|
||||
<Mapping SourceColumn="sw" DataSetColumn="sw" />
|
||||
<Mapping SourceColumn="ew" DataSetColumn="ew" />
|
||||
<Mapping SourceColumn="swa" DataSetColumn="swa" />
|
||||
<Mapping SourceColumn="progress" DataSetColumn="progress" />
|
||||
<Mapping SourceColumn="ewa" DataSetColumn="ewa" />
|
||||
<Mapping SourceColumn="ww" DataSetColumn="ww" />
|
||||
<Mapping SourceColumn="memo" DataSetColumn="memo" />
|
||||
<Mapping SourceColumn="sidx" DataSetColumn="sidx" />
|
||||
</Mappings>
|
||||
<Sources />
|
||||
</TableAdapter>
|
||||
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="MailAutoTableAdapter" GeneratorDataComponentClassName="MailAutoTableAdapter" Name="MailAuto" UserDataComponentName="MailAutoTableAdapter">
|
||||
<MainSource>
|
||||
<DbSource ConnectionRef="CS (Settings)" DbObjectName="EE.dbo.MailAuto" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
|
||||
@@ -290,43 +259,43 @@ SELECT idx, project, gcode, cate, pdate, subject, tolist, bcc, cc, body, SendOK,
|
||||
<Sources>
|
||||
<DbSource ConnectionRef="CS (Settings)" DbObjectType="Unknown" GenerateShortCommands="true" GeneratorSourceName="CheckAutoExist" Modifier="Public" Name="CheckAutoExist" QueryType="Scalar" ScalarCallRetval="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetDataBy" UserSourceName="CheckAutoExist">
|
||||
<SelectCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="false">
|
||||
<DbCommand CommandType="Text" ModifiedByUser="true">
|
||||
<CommandText>SELECT COUNT(*) AS Expr1
|
||||
FROM MailData
|
||||
WHERE (aidx = @aidx) AND (pdate = @pdate) AND (atime = @atime) AND (cate = @cate)</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="aidx" ColumnName="aidx" DataSourceName="" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@aidx" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="aidx" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="pdate" ColumnName="pdate" DataSourceName="" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@pdate" Precision="0" ProviderType="VarChar" Scale="0" Size="10" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="atime" ColumnName="atime" DataSourceName="" DataTypeServer="varchar(20)" DbType="AnsiString" Direction="Input" ParameterName="@atime" Precision="0" ProviderType="VarChar" Scale="0" Size="20" SourceColumn="atime" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="cate" ColumnName="cate" DataSourceName="" DataTypeServer="varchar(2)" DbType="AnsiString" Direction="Input" ParameterName="@cate" Precision="0" ProviderType="VarChar" Scale="0" Size="2" SourceColumn="cate" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="aidx" ColumnName="aidx" DataSourceName="EE.dbo.MailData" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@aidx" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="aidx" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="pdate" ColumnName="pdate" DataSourceName="EE.dbo.MailData" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@pdate" Precision="0" ProviderType="VarChar" Scale="0" Size="10" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="atime" ColumnName="atime" DataSourceName="EE.dbo.MailData" DataTypeServer="varchar(20)" DbType="AnsiString" Direction="Input" ParameterName="@atime" Precision="0" ProviderType="VarChar" Scale="0" Size="20" SourceColumn="atime" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="cate" ColumnName="cate" DataSourceName="EE.dbo.MailData" DataTypeServer="varchar(20)" DbType="AnsiString" Direction="Input" ParameterName="@cate" Precision="0" ProviderType="VarChar" Scale="0" Size="20" SourceColumn="cate" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
</SelectCommand>
|
||||
</DbSource>
|
||||
<DbSource ConnectionRef="CS (Settings)" DbObjectType="Unknown" GenerateShortCommands="true" GeneratorSourceName="FindAutoData" Modifier="Public" Name="FindAutoData" QueryType="Scalar" ScalarCallRetval="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetDataBy1" UserSourceName="FindAutoData">
|
||||
<SelectCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="false">
|
||||
<CommandText>SELECT COUNT(*) as cnt
|
||||
<DbCommand CommandType="Text" ModifiedByUser="true">
|
||||
<CommandText>SELECT COUNT(*) AS cnt
|
||||
FROM MailData
|
||||
WHERE aidx=@aidx and atime=@atime and pdate=@pdate and cate=@cate</CommandText>
|
||||
WHERE (aidx = @aidx) AND (atime = @atime) AND (pdate = @pdate) AND (cate = @cate)</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="aidx" ColumnName="aidx" DataSourceName="" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@aidx" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="aidx" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="atime" ColumnName="atime" DataSourceName="" DataTypeServer="varchar(20)" DbType="AnsiString" Direction="Input" ParameterName="@atime" Precision="0" ProviderType="VarChar" Scale="0" Size="20" SourceColumn="atime" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="pdate" ColumnName="pdate" DataSourceName="" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@pdate" Precision="0" ProviderType="VarChar" Scale="0" Size="10" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="cate" ColumnName="cate" DataSourceName="" DataTypeServer="varchar(20)" DbType="AnsiString" Direction="Input" ParameterName="@cate" Precision="0" ProviderType="VarChar" Scale="0" Size="20" SourceColumn="cate" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="aidx" ColumnName="aidx" DataSourceName="EE.dbo.MailData" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@aidx" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="aidx" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="atime" ColumnName="atime" DataSourceName="EE.dbo.MailData" DataTypeServer="varchar(20)" DbType="AnsiString" Direction="Input" ParameterName="@atime" Precision="0" ProviderType="VarChar" Scale="0" Size="20" SourceColumn="atime" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="pdate" ColumnName="pdate" DataSourceName="EE.dbo.MailData" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@pdate" Precision="0" ProviderType="VarChar" Scale="0" Size="10" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="cate" ColumnName="cate" DataSourceName="EE.dbo.MailData" DataTypeServer="varchar(20)" DbType="AnsiString" Direction="Input" ParameterName="@cate" Precision="0" ProviderType="VarChar" Scale="0" Size="20" SourceColumn="cate" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
</SelectCommand>
|
||||
</DbSource>
|
||||
<DbSource ConnectionRef="CS (Settings)" DbObjectName="EE.dbo.MailData" DbObjectType="Table" GenerateShortCommands="true" GeneratorSourceName="UpdateSendOK" Modifier="Public" Name="UpdateSendOK" QueryType="NoData" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetDataBy2" UserSourceName="UpdateSendOK">
|
||||
<SelectCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="false">
|
||||
<DbCommand CommandType="Text" ModifiedByUser="true">
|
||||
<CommandText>UPDATE MailData
|
||||
SET SendOK = 1, SendMsg = @msg
|
||||
WHERE (idx = @idx)</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="msg" ColumnName="SendMsg" DataSourceName="" DataTypeServer="varchar(255)" DbType="AnsiString" Direction="Input" ParameterName="@msg" Precision="0" ProviderType="VarChar" Scale="0" Size="255" SourceColumn="SendMsg" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="idx" ColumnName="idx" DataSourceName="" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@idx" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="idx" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="msg" ColumnName="SendMsg" DataSourceName="EE.dbo.MailData" DataTypeServer="varchar(255)" DbType="AnsiString" Direction="Input" ParameterName="@msg" Precision="0" ProviderType="VarChar" Scale="0" Size="255" SourceColumn="SendMsg" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="idx" ColumnName="idx" DataSourceName="EE.dbo.MailData" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@idx" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="idx" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
</SelectCommand>
|
||||
@@ -453,6 +422,42 @@ SELECT idx, gcode, cate, title, tolist, bcc, cc, subject, tail, body, selfTo, se
|
||||
</Mappings>
|
||||
<Sources />
|
||||
</TableAdapter>
|
||||
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="vMailingProjectScheduleTableAdapter" GeneratorDataComponentClassName="vMailingProjectScheduleTableAdapter" Name="vMailingProjectSchedule" UserDataComponentName="vMailingProjectScheduleTableAdapter">
|
||||
<MainSource>
|
||||
<DbSource ConnectionRef="CS (Settings)" DbObjectName="EE.dbo.vMailingProjectSchedule" DbObjectType="View" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
|
||||
<SelectCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="false">
|
||||
<CommandText>SELECT idx, pdate, name, userManager, seq, title, sw, ew, swa, progress, ewa, ww, memo, sidx, gcode, status
|
||||
FROM vMailingProjectSchedule
|
||||
WHERE (gcode = @gcode)
|
||||
ORDER BY pdate, idx, seq</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="gcode" ColumnName="gcode" DataSourceName="EE.dbo.vMailingProjectSchedule" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@gcode" Precision="0" ProviderType="VarChar" Scale="0" Size="10" SourceColumn="gcode" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
</SelectCommand>
|
||||
</DbSource>
|
||||
</MainSource>
|
||||
<Mappings>
|
||||
<Mapping SourceColumn="idx" DataSetColumn="idx" />
|
||||
<Mapping SourceColumn="pdate" DataSetColumn="pdate" />
|
||||
<Mapping SourceColumn="name" DataSetColumn="name" />
|
||||
<Mapping SourceColumn="userManager" DataSetColumn="userManager" />
|
||||
<Mapping SourceColumn="seq" DataSetColumn="seq" />
|
||||
<Mapping SourceColumn="title" DataSetColumn="title" />
|
||||
<Mapping SourceColumn="sw" DataSetColumn="sw" />
|
||||
<Mapping SourceColumn="ew" DataSetColumn="ew" />
|
||||
<Mapping SourceColumn="swa" DataSetColumn="swa" />
|
||||
<Mapping SourceColumn="progress" DataSetColumn="progress" />
|
||||
<Mapping SourceColumn="ewa" DataSetColumn="ewa" />
|
||||
<Mapping SourceColumn="ww" DataSetColumn="ww" />
|
||||
<Mapping SourceColumn="memo" DataSetColumn="memo" />
|
||||
<Mapping SourceColumn="sidx" DataSetColumn="sidx" />
|
||||
<Mapping SourceColumn="gcode" DataSetColumn="gcode" />
|
||||
<Mapping SourceColumn="status" DataSetColumn="status" />
|
||||
</Mappings>
|
||||
<Sources />
|
||||
</TableAdapter>
|
||||
</Tables>
|
||||
<Sources />
|
||||
</DataSource>
|
||||
@@ -461,6 +466,270 @@ SELECT idx, gcode, cate, title, tolist, bcc, cc, subject, tail, body, selfTo, se
|
||||
<xs:element name="DataSet1" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DataSet1" msprop:Generator_UserDSName="DataSet1">
|
||||
<xs:complexType>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element name="MailAuto" msprop:Generator_TableClassName="MailAutoDataTable" msprop:Generator_TableVarName="tableMailAuto" msprop:Generator_TablePropName="MailAuto" msprop:Generator_RowDeletingName="MailAutoRowDeleting" msprop:Generator_RowChangingName="MailAutoRowChanging" msprop:Generator_RowEvHandlerName="MailAutoRowChangeEventHandler" msprop:Generator_RowDeletedName="MailAutoRowDeleted" msprop:Generator_UserTableName="MailAuto" msprop:Generator_RowChangedName="MailAutoRowChanged" msprop:Generator_RowEvArgName="MailAutoRowChangeEvent" msprop:Generator_RowClassName="MailAutoRow">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="idx" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_UserColumnName="idx" type="xs:int" />
|
||||
<xs:element name="enable" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="enable" msprop:Generator_ColumnVarNameInTable="columnenable" msprop:Generator_ColumnPropNameInTable="enableColumn" msprop:Generator_UserColumnName="enable" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="fidx" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInRow="fidx" msprop:Generator_ColumnVarNameInTable="columnfidx" msprop:Generator_ColumnPropNameInTable="fidxColumn" msprop:Generator_UserColumnName="fidx" type="xs:int" />
|
||||
<xs:element name="gcode" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="gcode" msprop:Generator_ColumnVarNameInTable="columngcode" msprop:Generator_ColumnPropNameInTable="gcodeColumn" msprop:Generator_UserColumnName="gcode">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="tolist" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="tolist" msprop:Generator_ColumnVarNameInTable="columntolist" msprop:Generator_ColumnPropNameInTable="tolistColumn" msprop:Generator_UserColumnName="tolist" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="bcc" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="bcc" msprop:Generator_ColumnVarNameInTable="columnbcc" msprop:Generator_ColumnPropNameInTable="bccColumn" msprop:Generator_UserColumnName="bcc" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="cc" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="cc" msprop:Generator_ColumnVarNameInTable="columncc" msprop:Generator_ColumnPropNameInTable="ccColumn" msprop:Generator_UserColumnName="cc" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="sdate" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="sdate" msprop:Generator_ColumnVarNameInTable="columnsdate" msprop:Generator_ColumnPropNameInTable="sdateColumn" msprop:Generator_UserColumnName="sdate" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="edate" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="edate" msprop:Generator_ColumnVarNameInTable="columnedate" msprop:Generator_ColumnPropNameInTable="edateColumn" msprop:Generator_UserColumnName="edate" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="stime" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="stime" msprop:Generator_ColumnVarNameInTable="columnstime" msprop:Generator_ColumnPropNameInTable="stimeColumn" msprop:Generator_UserColumnName="stime" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="8" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="sday" msprop:Generator_ColumnVarNameInTable="columnsday" msprop:Generator_ColumnPropNameInRow="sday" msprop:Generator_ColumnPropNameInTable="sdayColumn" msprop:Generator_UserColumnName="sday" type="xs:base64Binary" minOccurs="0" />
|
||||
<xs:element name="wuid" msprop:Generator_ColumnVarNameInTable="columnwuid" msprop:Generator_ColumnPropNameInRow="wuid" msprop:Generator_ColumnPropNameInTable="wuidColumn" msprop:Generator_UserColumnName="wuid">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="20" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="wdate" msprop:Generator_ColumnVarNameInTable="columnwdate" msprop:Generator_ColumnPropNameInRow="wdate" msprop:Generator_ColumnPropNameInTable="wdateColumn" msprop:Generator_UserColumnName="wdate" type="xs:dateTime" />
|
||||
<xs:element name="fromlist" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="fromlist" msprop:Generator_ColumnVarNameInTable="columnfromlist" msprop:Generator_ColumnPropNameInTable="fromlistColumn" msprop:Generator_UserColumnName="fromlist" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="subject" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="subject" msprop:Generator_ColumnVarNameInTable="columnsubject" msprop:Generator_ColumnPropNameInTable="subjectColumn" msprop:Generator_UserColumnName="subject" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="body" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="body" msprop:Generator_ColumnVarNameInTable="columnbody" msprop:Generator_ColumnPropNameInTable="bodyColumn" msprop:Generator_UserColumnName="body" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="MailData" msprop:Generator_TableClassName="MailDataDataTable" msprop:Generator_TableVarName="tableMailData" msprop:Generator_TablePropName="MailData" msprop:Generator_RowDeletingName="MailDataRowDeleting" msprop:Generator_RowChangingName="MailDataRowChanging" msprop:Generator_RowEvHandlerName="MailDataRowChangeEventHandler" msprop:Generator_RowDeletedName="MailDataRowDeleted" msprop:Generator_UserTableName="MailData" msprop:Generator_RowChangedName="MailDataRowChanged" msprop:Generator_RowEvArgName="MailDataRowChangeEvent" msprop:Generator_RowClassName="MailDataRow">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="idx" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_UserColumnName="idx" type="xs:int" />
|
||||
<xs:element name="project" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInRow="project" msprop:Generator_ColumnVarNameInTable="columnproject" msprop:Generator_ColumnPropNameInTable="projectColumn" msprop:Generator_UserColumnName="project" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="gcode" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="gcode" msprop:Generator_ColumnVarNameInTable="columngcode" msprop:Generator_ColumnPropNameInTable="gcodeColumn" msprop:Generator_UserColumnName="gcode">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="cate" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="cate" msprop:Generator_ColumnVarNameInTable="columncate" msprop:Generator_ColumnPropNameInTable="cateColumn" msprop:Generator_UserColumnName="cate" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="20" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="pdate" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="pdate" msprop:Generator_ColumnVarNameInTable="columnpdate" msprop:Generator_ColumnPropNameInTable="pdateColumn" msprop:Generator_UserColumnName="pdate" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="subject" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="subject" msprop:Generator_ColumnVarNameInTable="columnsubject" msprop:Generator_ColumnPropNameInTable="subjectColumn" msprop:Generator_UserColumnName="subject" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="tolist" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="tolist" msprop:Generator_ColumnVarNameInTable="columntolist" msprop:Generator_ColumnPropNameInTable="tolistColumn" msprop:Generator_UserColumnName="tolist" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="bcc" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="bcc" msprop:Generator_ColumnVarNameInTable="columnbcc" msprop:Generator_ColumnPropNameInTable="bccColumn" msprop:Generator_UserColumnName="bcc" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="cc" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="cc" msprop:Generator_ColumnVarNameInTable="columncc" msprop:Generator_ColumnPropNameInTable="ccColumn" msprop:Generator_UserColumnName="cc" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="body" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="body" msprop:Generator_ColumnVarNameInTable="columnbody" msprop:Generator_ColumnPropNameInTable="bodyColumn" msprop:Generator_UserColumnName="body" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="SendOK" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="SendOK" msprop:Generator_ColumnVarNameInTable="columnSendOK" msprop:Generator_ColumnPropNameInTable="SendOKColumn" msprop:Generator_UserColumnName="SendOK" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="SendMsg" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="SendMsg" msprop:Generator_ColumnVarNameInTable="columnSendMsg" msprop:Generator_ColumnPropNameInTable="SendMsgColumn" msprop:Generator_UserColumnName="SendMsg" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="255" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="aidx" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInRow="aidx" msprop:Generator_ColumnVarNameInTable="columnaidx" msprop:Generator_ColumnPropNameInTable="aidxColumn" msprop:Generator_UserColumnName="aidx" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="atime" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="atime" msprop:Generator_ColumnVarNameInTable="columnatime" msprop:Generator_ColumnPropNameInTable="atimeColumn" msprop:Generator_UserColumnName="atime" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="20" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="wuid" msprop:Generator_ColumnVarNameInTable="columnwuid" msprop:Generator_ColumnPropNameInRow="wuid" msprop:Generator_ColumnPropNameInTable="wuidColumn" msprop:Generator_UserColumnName="wuid">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="20" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="wdate" msprop:Generator_ColumnVarNameInTable="columnwdate" msprop:Generator_ColumnPropNameInRow="wdate" msprop:Generator_ColumnPropNameInTable="wdateColumn" msprop:Generator_UserColumnName="wdate" type="xs:dateTime" />
|
||||
<xs:element name="fromlist" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="fromlist" msprop:Generator_ColumnVarNameInTable="columnfromlist" msprop:Generator_ColumnPropNameInTable="fromlistColumn" msprop:Generator_UserColumnName="fromlist" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="MailForm" msprop:Generator_TableClassName="MailFormDataTable" msprop:Generator_TableVarName="tableMailForm" msprop:Generator_TablePropName="MailForm" msprop:Generator_RowDeletingName="MailFormRowDeleting" msprop:Generator_RowChangingName="MailFormRowChanging" msprop:Generator_RowEvHandlerName="MailFormRowChangeEventHandler" msprop:Generator_RowDeletedName="MailFormRowDeleted" msprop:Generator_UserTableName="MailForm" msprop:Generator_RowChangedName="MailFormRowChanged" msprop:Generator_RowEvArgName="MailFormRowChangeEvent" msprop:Generator_RowClassName="MailFormRow">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="idx" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_UserColumnName="idx" type="xs:int" />
|
||||
<xs:element name="gcode" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="gcode" msprop:Generator_ColumnVarNameInTable="columngcode" msprop:Generator_ColumnPropNameInTable="gcodeColumn" msprop:Generator_UserColumnName="gcode">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="cate" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="cate" msprop:Generator_ColumnVarNameInTable="columncate" msprop:Generator_ColumnPropNameInTable="cateColumn" msprop:Generator_UserColumnName="cate" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="title" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="title" msprop:Generator_ColumnVarNameInTable="columntitle" msprop:Generator_ColumnPropNameInTable="titleColumn" msprop:Generator_UserColumnName="title" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="100" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="tolist" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="tolist" msprop:Generator_ColumnVarNameInTable="columntolist" msprop:Generator_ColumnPropNameInTable="tolistColumn" msprop:Generator_UserColumnName="tolist" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="bcc" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="bcc" msprop:Generator_ColumnVarNameInTable="columnbcc" msprop:Generator_ColumnPropNameInTable="bccColumn" msprop:Generator_UserColumnName="bcc" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="cc" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="cc" msprop:Generator_ColumnVarNameInTable="columncc" msprop:Generator_ColumnPropNameInTable="ccColumn" msprop:Generator_UserColumnName="cc" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="subject" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="subject" msprop:Generator_ColumnVarNameInTable="columnsubject" msprop:Generator_ColumnPropNameInTable="subjectColumn" msprop:Generator_UserColumnName="subject" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="tail" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="tail" msprop:Generator_ColumnVarNameInTable="columntail" msprop:Generator_ColumnPropNameInTable="tailColumn" msprop:Generator_UserColumnName="tail" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="body" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="body" msprop:Generator_ColumnVarNameInTable="columnbody" msprop:Generator_ColumnPropNameInTable="bodyColumn" msprop:Generator_UserColumnName="body" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="selfTo" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="selfTo" msprop:Generator_ColumnVarNameInTable="columnselfTo" msprop:Generator_ColumnPropNameInTable="selfToColumn" msprop:Generator_UserColumnName="selfTo" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="selfCC" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="selfCC" msprop:Generator_ColumnVarNameInTable="columnselfCC" msprop:Generator_ColumnPropNameInTable="selfCCColumn" msprop:Generator_UserColumnName="selfCC" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="selfBCC" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="selfBCC" msprop:Generator_ColumnVarNameInTable="columnselfBCC" msprop:Generator_ColumnPropNameInTable="selfBCCColumn" msprop:Generator_UserColumnName="selfBCC" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="wuid" msprop:Generator_ColumnVarNameInTable="columnwuid" msprop:Generator_ColumnPropNameInRow="wuid" msprop:Generator_ColumnPropNameInTable="wuidColumn" msprop:Generator_UserColumnName="wuid">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="20" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="wdate" msprop:Generator_ColumnVarNameInTable="columnwdate" msprop:Generator_ColumnPropNameInRow="wdate" msprop:Generator_ColumnPropNameInTable="wdateColumn" msprop:Generator_UserColumnName="wdate" type="xs:dateTime" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="vMailingProjectSchedule" msprop:Generator_TableClassName="vMailingProjectScheduleDataTable" msprop:Generator_TableVarName="tablevMailingProjectSchedule" msprop:Generator_RowChangedName="vMailingProjectScheduleRowChanged" msprop:Generator_TablePropName="vMailingProjectSchedule" msprop:Generator_RowDeletingName="vMailingProjectScheduleRowDeleting" msprop:Generator_RowChangingName="vMailingProjectScheduleRowChanging" msprop:Generator_RowEvHandlerName="vMailingProjectScheduleRowChangeEventHandler" msprop:Generator_RowDeletedName="vMailingProjectScheduleRowDeleted" msprop:Generator_RowClassName="vMailingProjectScheduleRow" msprop:Generator_UserTableName="vMailingProjectSchedule" msprop:Generator_RowEvArgName="vMailingProjectScheduleRowChangeEvent">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
@@ -494,11 +763,35 @@ SELECT idx, gcode, cate, title, tolist, bcc, cc, subject, tail, body, selfTo, se
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="sw" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="sw" msprop:Generator_ColumnVarNameInTable="columnsw" msprop:Generator_ColumnPropNameInTable="swColumn" msprop:Generator_UserColumnName="sw" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="ew" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ew" msprop:Generator_ColumnVarNameInTable="columnew" msprop:Generator_ColumnPropNameInTable="ewColumn" msprop:Generator_UserColumnName="ew" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="swa" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="swa" msprop:Generator_ColumnVarNameInTable="columnswa" msprop:Generator_ColumnPropNameInTable="swaColumn" msprop:Generator_UserColumnName="swa" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="sw" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="sw" msprop:Generator_ColumnVarNameInTable="columnsw" msprop:Generator_ColumnPropNameInTable="swColumn" msprop:Generator_UserColumnName="sw" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ew" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="ew" msprop:Generator_ColumnVarNameInTable="columnew" msprop:Generator_ColumnPropNameInTable="ewColumn" msprop:Generator_UserColumnName="ew" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="swa" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="swa" msprop:Generator_ColumnVarNameInTable="columnswa" msprop:Generator_ColumnPropNameInTable="swaColumn" msprop:Generator_UserColumnName="swa" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="progress" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="progress" msprop:Generator_ColumnVarNameInTable="columnprogress" msprop:Generator_ColumnPropNameInTable="progressColumn" msprop:Generator_UserColumnName="progress" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="ewa" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ewa" msprop:Generator_ColumnVarNameInTable="columnewa" msprop:Generator_ColumnPropNameInTable="ewaColumn" msprop:Generator_UserColumnName="ewa" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="ewa" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="ewa" msprop:Generator_ColumnVarNameInTable="columnewa" msprop:Generator_ColumnPropNameInTable="ewaColumn" msprop:Generator_UserColumnName="ewa" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ww" msdata:ReadOnly="true" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ww" msprop:Generator_ColumnVarNameInTable="columnww" msprop:Generator_ColumnPropNameInTable="wwColumn" msprop:Generator_UserColumnName="ww" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="memo" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="memo" msprop:Generator_ColumnVarNameInTable="columnmemo" msprop:Generator_ColumnPropNameInTable="memoColumn" msprop:Generator_UserColumnName="memo" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
@@ -508,281 +801,26 @@ SELECT idx, gcode, cate, title, tolist, bcc, cc, subject, tail, body, selfTo, se
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="sidx" msprop:Generator_ColumnVarNameInTable="columnsidx" msprop:Generator_ColumnPropNameInRow="sidx" msprop:Generator_ColumnPropNameInTable="sidxColumn" msprop:Generator_UserColumnName="sidx" type="xs:int" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="MailAuto" msprop:Generator_TableClassName="MailAutoDataTable" msprop:Generator_TableVarName="tableMailAuto" msprop:Generator_TablePropName="MailAuto" msprop:Generator_RowDeletingName="MailAutoRowDeleting" msprop:Generator_RowChangingName="MailAutoRowChanging" msprop:Generator_RowEvHandlerName="MailAutoRowChangeEventHandler" msprop:Generator_RowDeletedName="MailAutoRowDeleted" msprop:Generator_UserTableName="MailAuto" msprop:Generator_RowChangedName="MailAutoRowChanged" msprop:Generator_RowEvArgName="MailAutoRowChangeEvent" msprop:Generator_RowClassName="MailAutoRow">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="idx" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_UserColumnName="idx" type="xs:int" />
|
||||
<xs:element name="enable" msprop:Generator_ColumnVarNameInTable="columnenable" msprop:Generator_ColumnPropNameInRow="enable" msprop:nullValue="0" msprop:Generator_ColumnPropNameInTable="enableColumn" msprop:Generator_UserColumnName="enable" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="fidx" msprop:Generator_ColumnVarNameInTable="columnfidx" msprop:Generator_ColumnPropNameInRow="fidx" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInTable="fidxColumn" msprop:Generator_UserColumnName="fidx" type="xs:int" />
|
||||
<xs:element name="gcode" msprop:Generator_ColumnVarNameInTable="columngcode" msprop:Generator_ColumnPropNameInRow="gcode" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="gcodeColumn" msprop:Generator_UserColumnName="gcode">
|
||||
<xs:element name="gcode" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="gcode" msprop:Generator_ColumnVarNameInTable="columngcode" msprop:Generator_ColumnPropNameInTable="gcodeColumn" msprop:Generator_UserColumnName="gcode">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="tolist" msprop:Generator_ColumnVarNameInTable="columntolist" msprop:Generator_ColumnPropNameInRow="tolist" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="tolistColumn" msprop:Generator_UserColumnName="tolist" minOccurs="0">
|
||||
<xs:element name="status" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="status" msprop:Generator_ColumnVarNameInTable="columnstatus" msprop:Generator_ColumnPropNameInTable="statusColumn" msprop:Generator_UserColumnName="status" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="bcc" msprop:Generator_ColumnVarNameInTable="columnbcc" msprop:Generator_ColumnPropNameInRow="bcc" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="bccColumn" msprop:Generator_UserColumnName="bcc" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="cc" msprop:Generator_ColumnVarNameInTable="columncc" msprop:Generator_ColumnPropNameInRow="cc" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="ccColumn" msprop:Generator_UserColumnName="cc" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="sdate" msprop:Generator_ColumnVarNameInTable="columnsdate" msprop:Generator_ColumnPropNameInRow="sdate" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="sdateColumn" msprop:Generator_UserColumnName="sdate" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="edate" msprop:Generator_ColumnVarNameInTable="columnedate" msprop:Generator_ColumnPropNameInRow="edate" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="edateColumn" msprop:Generator_UserColumnName="edate" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="stime" msprop:Generator_ColumnVarNameInTable="columnstime" msprop:Generator_ColumnPropNameInRow="stime" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="stimeColumn" msprop:Generator_UserColumnName="stime" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="8" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="sday" msprop:Generator_ColumnVarNameInTable="columnsday" msprop:Generator_ColumnPropNameInRow="sday" msprop:Generator_ColumnPropNameInTable="sdayColumn" msprop:Generator_UserColumnName="sday" type="xs:base64Binary" minOccurs="0" />
|
||||
<xs:element name="wuid" msprop:Generator_ColumnVarNameInTable="columnwuid" msprop:Generator_ColumnPropNameInRow="wuid" msprop:Generator_ColumnPropNameInTable="wuidColumn" msprop:Generator_UserColumnName="wuid">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="20" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="wdate" msprop:Generator_ColumnVarNameInTable="columnwdate" msprop:Generator_ColumnPropNameInRow="wdate" msprop:Generator_ColumnPropNameInTable="wdateColumn" msprop:Generator_UserColumnName="wdate" type="xs:dateTime" />
|
||||
<xs:element name="fromlist" msprop:Generator_ColumnVarNameInTable="columnfromlist" msprop:Generator_ColumnPropNameInRow="fromlist" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="fromlistColumn" msprop:Generator_UserColumnName="fromlist" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="subject" msprop:Generator_ColumnVarNameInTable="columnsubject" msprop:Generator_ColumnPropNameInRow="subject" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="subjectColumn" msprop:Generator_UserColumnName="subject" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="body" msprop:Generator_ColumnVarNameInTable="columnbody" msprop:Generator_ColumnPropNameInRow="body" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="bodyColumn" msprop:Generator_UserColumnName="body" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="MailData" msprop:Generator_TableClassName="MailDataDataTable" msprop:Generator_TableVarName="tableMailData" msprop:Generator_TablePropName="MailData" msprop:Generator_RowDeletingName="MailDataRowDeleting" msprop:Generator_RowChangingName="MailDataRowChanging" msprop:Generator_RowEvHandlerName="MailDataRowChangeEventHandler" msprop:Generator_RowDeletedName="MailDataRowDeleted" msprop:Generator_UserTableName="MailData" msprop:Generator_RowChangedName="MailDataRowChanged" msprop:Generator_RowEvArgName="MailDataRowChangeEvent" msprop:Generator_RowClassName="MailDataRow">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="idx" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_UserColumnName="idx" type="xs:int" />
|
||||
<xs:element name="project" msprop:Generator_ColumnVarNameInTable="columnproject" msprop:Generator_ColumnPropNameInRow="project" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInTable="projectColumn" msprop:Generator_UserColumnName="project" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="gcode" msprop:Generator_ColumnVarNameInTable="columngcode" msprop:Generator_ColumnPropNameInRow="gcode" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="gcodeColumn" msprop:Generator_UserColumnName="gcode">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="cate" msprop:Generator_ColumnVarNameInTable="columncate" msprop:Generator_ColumnPropNameInRow="cate" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="cateColumn" msprop:Generator_UserColumnName="cate" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="20" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="pdate" msprop:Generator_ColumnVarNameInTable="columnpdate" msprop:Generator_ColumnPropNameInRow="pdate" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="pdateColumn" msprop:Generator_UserColumnName="pdate" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="subject" msprop:Generator_ColumnVarNameInTable="columnsubject" msprop:Generator_ColumnPropNameInRow="subject" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="subjectColumn" msprop:Generator_UserColumnName="subject" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="tolist" msprop:Generator_ColumnVarNameInTable="columntolist" msprop:Generator_ColumnPropNameInRow="tolist" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="tolistColumn" msprop:Generator_UserColumnName="tolist" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="bcc" msprop:Generator_ColumnVarNameInTable="columnbcc" msprop:Generator_ColumnPropNameInRow="bcc" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="bccColumn" msprop:Generator_UserColumnName="bcc" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="cc" msprop:Generator_ColumnVarNameInTable="columncc" msprop:Generator_ColumnPropNameInRow="cc" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="ccColumn" msprop:Generator_UserColumnName="cc" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="body" msprop:Generator_ColumnVarNameInTable="columnbody" msprop:Generator_ColumnPropNameInRow="body" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="bodyColumn" msprop:Generator_UserColumnName="body" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="SendOK" msprop:Generator_ColumnVarNameInTable="columnSendOK" msprop:Generator_ColumnPropNameInRow="SendOK" msprop:nullValue="0" msprop:Generator_ColumnPropNameInTable="SendOKColumn" msprop:Generator_UserColumnName="SendOK" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="SendMsg" msprop:Generator_ColumnVarNameInTable="columnSendMsg" msprop:Generator_ColumnPropNameInRow="SendMsg" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="SendMsgColumn" msprop:Generator_UserColumnName="SendMsg" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="255" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="aidx" msprop:Generator_ColumnVarNameInTable="columnaidx" msprop:Generator_ColumnPropNameInRow="aidx" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInTable="aidxColumn" msprop:Generator_UserColumnName="aidx" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="atime" msprop:Generator_ColumnVarNameInTable="columnatime" msprop:Generator_ColumnPropNameInRow="atime" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="atimeColumn" msprop:Generator_UserColumnName="atime" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="20" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="wuid" msprop:Generator_ColumnVarNameInTable="columnwuid" msprop:Generator_ColumnPropNameInRow="wuid" msprop:Generator_ColumnPropNameInTable="wuidColumn" msprop:Generator_UserColumnName="wuid">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="20" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="wdate" msprop:Generator_ColumnVarNameInTable="columnwdate" msprop:Generator_ColumnPropNameInRow="wdate" msprop:Generator_ColumnPropNameInTable="wdateColumn" msprop:Generator_UserColumnName="wdate" type="xs:dateTime" />
|
||||
<xs:element name="fromlist" msprop:Generator_ColumnVarNameInTable="columnfromlist" msprop:Generator_ColumnPropNameInRow="fromlist" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="fromlistColumn" msprop:Generator_UserColumnName="fromlist" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="MailForm" msprop:Generator_TableClassName="MailFormDataTable" msprop:Generator_TableVarName="tableMailForm" msprop:Generator_TablePropName="MailForm" msprop:Generator_RowDeletingName="MailFormRowDeleting" msprop:Generator_RowChangingName="MailFormRowChanging" msprop:Generator_RowEvHandlerName="MailFormRowChangeEventHandler" msprop:Generator_RowDeletedName="MailFormRowDeleted" msprop:Generator_UserTableName="MailForm" msprop:Generator_RowChangedName="MailFormRowChanged" msprop:Generator_RowEvArgName="MailFormRowChangeEvent" msprop:Generator_RowClassName="MailFormRow">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="idx" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_UserColumnName="idx" type="xs:int" />
|
||||
<xs:element name="gcode" msprop:Generator_ColumnVarNameInTable="columngcode" msprop:Generator_ColumnPropNameInRow="gcode" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="gcodeColumn" msprop:Generator_UserColumnName="gcode">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="cate" msprop:Generator_ColumnVarNameInTable="columncate" msprop:Generator_ColumnPropNameInRow="cate" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="cateColumn" msprop:Generator_UserColumnName="cate" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="title" msprop:Generator_ColumnVarNameInTable="columntitle" msprop:Generator_ColumnPropNameInRow="title" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="titleColumn" msprop:Generator_UserColumnName="title" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="100" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="tolist" msprop:Generator_ColumnVarNameInTable="columntolist" msprop:Generator_ColumnPropNameInRow="tolist" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="tolistColumn" msprop:Generator_UserColumnName="tolist" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="bcc" msprop:Generator_ColumnVarNameInTable="columnbcc" msprop:Generator_ColumnPropNameInRow="bcc" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="bccColumn" msprop:Generator_UserColumnName="bcc" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="cc" msprop:Generator_ColumnVarNameInTable="columncc" msprop:Generator_ColumnPropNameInRow="cc" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="ccColumn" msprop:Generator_UserColumnName="cc" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="subject" msprop:Generator_ColumnVarNameInTable="columnsubject" msprop:Generator_ColumnPropNameInRow="subject" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="subjectColumn" msprop:Generator_UserColumnName="subject" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="tail" msprop:Generator_ColumnVarNameInTable="columntail" msprop:Generator_ColumnPropNameInRow="tail" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="tailColumn" msprop:Generator_UserColumnName="tail" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="body" msprop:Generator_ColumnVarNameInTable="columnbody" msprop:Generator_ColumnPropNameInRow="body" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="bodyColumn" msprop:Generator_UserColumnName="body" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="selfTo" msprop:Generator_ColumnVarNameInTable="columnselfTo" msprop:Generator_ColumnPropNameInRow="selfTo" msprop:nullValue="0" msprop:Generator_ColumnPropNameInTable="selfToColumn" msprop:Generator_UserColumnName="selfTo" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="selfCC" msprop:Generator_ColumnVarNameInTable="columnselfCC" msprop:Generator_ColumnPropNameInRow="selfCC" msprop:nullValue="0" msprop:Generator_ColumnPropNameInTable="selfCCColumn" msprop:Generator_UserColumnName="selfCC" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="selfBCC" msprop:Generator_ColumnVarNameInTable="columnselfBCC" msprop:Generator_ColumnPropNameInRow="selfBCC" msprop:nullValue="0" msprop:Generator_ColumnPropNameInTable="selfBCCColumn" msprop:Generator_UserColumnName="selfBCC" type="xs:boolean" minOccurs="0" />
|
||||
<xs:element name="wuid" msprop:Generator_ColumnVarNameInTable="columnwuid" msprop:Generator_ColumnPropNameInRow="wuid" msprop:Generator_ColumnPropNameInTable="wuidColumn" msprop:Generator_UserColumnName="wuid">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="20" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="wdate" msprop:Generator_ColumnVarNameInTable="columnwdate" msprop:Generator_ColumnPropNameInRow="wdate" msprop:Generator_ColumnPropNameInTable="wdateColumn" msprop:Generator_UserColumnName="wdate" type="xs:dateTime" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
<xs:unique name="Constraint1" msdata:PrimaryKey="true">
|
||||
<xs:selector xpath=".//mstns:vMailingProjectSchedule" />
|
||||
<xs:field xpath="mstns:sidx" />
|
||||
<xs:field xpath="mstns:idx" />
|
||||
</xs:unique>
|
||||
<xs:unique name="MailAuto_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
|
||||
<xs:selector xpath=".//mstns:MailAuto" />
|
||||
<xs:field xpath="mstns:idx" />
|
||||
</xs:unique>
|
||||
@@ -794,5 +832,10 @@ SELECT idx, gcode, cate, title, tolist, bcc, cc, subject, tail, body, selfTo, se
|
||||
<xs:selector xpath=".//mstns:MailForm" />
|
||||
<xs:field xpath="mstns:idx" />
|
||||
</xs:unique>
|
||||
<xs:unique name="vMailingProjectSchedule_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
|
||||
<xs:selector xpath=".//mstns:vMailingProjectSchedule" />
|
||||
<xs:field xpath="mstns:idx" />
|
||||
<xs:field xpath="mstns:sidx" />
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
@@ -6,10 +6,10 @@
|
||||
</autogenerated>-->
|
||||
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="0" ViewPortY="0" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
|
||||
<Shapes>
|
||||
<Shape ID="DesignTable:vMailingProjectSchedule" ZOrder="4" X="303" Y="117" Height="400" Width="289" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="349" />
|
||||
<Shape ID="DesignTable:MailAuto" ZOrder="3" X="652" Y="137" Height="324" Width="208" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:MailData" ZOrder="2" X="820" Y="137" Height="362" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:MailForm" ZOrder="1" X="988" Y="137" Height="305" Width="200" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:MailData" ZOrder="2" X="917" Y="151" Height="362" Width="361" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:MailForm" ZOrder="4" X="1355" Y="161" Height="305" Width="200" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:vMailingProjectSchedule" ZOrder="1" X="275" Y="205" Height="305" Width="289" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
</Shapes>
|
||||
<Connectors />
|
||||
</DiagramLayout>
|
||||
@@ -62,6 +62,9 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="CSetting.cs" />
|
||||
<Compile Include="DataSet1.cs">
|
||||
<DependentUpon>DataSet1.xsd</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DataSet1.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
@@ -115,6 +118,12 @@
|
||||
<Compile Include="fJobReportDay.Designer.cs">
|
||||
<DependentUpon>fJobReportDay.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="fSetup.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="fSetup.Designer.cs">
|
||||
<DependentUpon>fSetup.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="HolidayLIst.cs">
|
||||
<DependentUpon>Model1.tt</DependentUpon>
|
||||
</Compile>
|
||||
@@ -232,6 +241,9 @@
|
||||
<EmbeddedResource Include="fJobReportDay.resx">
|
||||
<DependentUpon>fJobReportDay.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="fSetup.resx">
|
||||
<DependentUpon>fSetup.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="MDIParent1.resx">
|
||||
<DependentUpon>MDIParent1.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
||||
123
JobReportMailService/MDIParent1.Designer.cs
generated
123
JobReportMailService/MDIParent1.Designer.cs
generated
@@ -72,14 +72,14 @@ namespace JobReportMailService
|
||||
this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStrip = new System.Windows.Forms.ToolStrip();
|
||||
this.newToolStripButton = new System.Windows.Forms.ToolStripButton();
|
||||
this.openToolStripButton = new System.Windows.Forms.ToolStripButton();
|
||||
this.bt1 = new System.Windows.Forms.ToolStripButton();
|
||||
this.bt2 = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.saveToolStripButton = new System.Windows.Forms.ToolStripButton();
|
||||
this.printToolStripButton = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
|
||||
this.bt3 = new System.Windows.Forms.ToolStripButton();
|
||||
this.bt4 = new System.Windows.Forms.ToolStripButton();
|
||||
this.bt5 = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
|
||||
this.bt6 = new System.Windows.Forms.ToolStripButton();
|
||||
this.statusStrip = new System.Windows.Forms.StatusStrip();
|
||||
this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||
this.toolTip = new System.Windows.Forms.ToolTip(this.components);
|
||||
@@ -325,8 +325,9 @@ namespace JobReportMailService
|
||||
// optionsToolStripMenuItem
|
||||
//
|
||||
this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
|
||||
this.optionsToolStripMenuItem.Size = new System.Drawing.Size(115, 22);
|
||||
this.optionsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.optionsToolStripMenuItem.Text = "옵션(&O)";
|
||||
this.optionsToolStripMenuItem.Click += new System.EventHandler(this.optionsToolStripMenuItem_Click);
|
||||
//
|
||||
// windowsMenu
|
||||
//
|
||||
@@ -432,83 +433,83 @@ namespace JobReportMailService
|
||||
// toolStrip
|
||||
//
|
||||
this.toolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.newToolStripButton,
|
||||
this.openToolStripButton,
|
||||
this.bt1,
|
||||
this.bt2,
|
||||
this.toolStripSeparator1,
|
||||
this.saveToolStripButton,
|
||||
this.printToolStripButton,
|
||||
this.toolStripButton2,
|
||||
this.bt3,
|
||||
this.bt4,
|
||||
this.bt5,
|
||||
this.toolStripSeparator2,
|
||||
this.toolStripButton1});
|
||||
this.bt6});
|
||||
this.toolStrip.Location = new System.Drawing.Point(0, 24);
|
||||
this.toolStrip.Name = "toolStrip";
|
||||
this.toolStrip.Size = new System.Drawing.Size(709, 25);
|
||||
this.toolStrip.TabIndex = 1;
|
||||
this.toolStrip.Text = "ToolStrip";
|
||||
//
|
||||
// newToolStripButton
|
||||
// bt1
|
||||
//
|
||||
this.newToolStripButton.Image = ((System.Drawing.Image)(resources.GetObject("newToolStripButton.Image")));
|
||||
this.newToolStripButton.ImageTransparentColor = System.Drawing.Color.Black;
|
||||
this.newToolStripButton.Name = "newToolStripButton";
|
||||
this.newToolStripButton.Size = new System.Drawing.Size(95, 22);
|
||||
this.newToolStripButton.Text = "업무일지(일)";
|
||||
this.newToolStripButton.Click += new System.EventHandler(this.ShowNewForm);
|
||||
this.bt1.Image = ((System.Drawing.Image)(resources.GetObject("bt1.Image")));
|
||||
this.bt1.ImageTransparentColor = System.Drawing.Color.Black;
|
||||
this.bt1.Name = "bt1";
|
||||
this.bt1.Size = new System.Drawing.Size(95, 22);
|
||||
this.bt1.Text = "업무일지(일)";
|
||||
this.bt1.Click += new System.EventHandler(this.ShowNewForm);
|
||||
//
|
||||
// openToolStripButton
|
||||
// bt2
|
||||
//
|
||||
this.openToolStripButton.Image = ((System.Drawing.Image)(resources.GetObject("openToolStripButton.Image")));
|
||||
this.openToolStripButton.ImageTransparentColor = System.Drawing.Color.Black;
|
||||
this.openToolStripButton.Name = "openToolStripButton";
|
||||
this.openToolStripButton.Size = new System.Drawing.Size(95, 22);
|
||||
this.openToolStripButton.Text = "업무일지(주)";
|
||||
this.openToolStripButton.Click += new System.EventHandler(this.OpenFile);
|
||||
this.bt2.Image = ((System.Drawing.Image)(resources.GetObject("bt2.Image")));
|
||||
this.bt2.ImageTransparentColor = System.Drawing.Color.Black;
|
||||
this.bt2.Name = "bt2";
|
||||
this.bt2.Size = new System.Drawing.Size(95, 22);
|
||||
this.bt2.Text = "업무일지(주)";
|
||||
this.bt2.Click += new System.EventHandler(this.OpenFile);
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
|
||||
//
|
||||
// saveToolStripButton
|
||||
// bt3
|
||||
//
|
||||
this.saveToolStripButton.Image = ((System.Drawing.Image)(resources.GetObject("saveToolStripButton.Image")));
|
||||
this.saveToolStripButton.ImageTransparentColor = System.Drawing.Color.Black;
|
||||
this.saveToolStripButton.Name = "saveToolStripButton";
|
||||
this.saveToolStripButton.Size = new System.Drawing.Size(83, 22);
|
||||
this.saveToolStripButton.Text = "스케쥴(일)";
|
||||
this.saveToolStripButton.Click += new System.EventHandler(this.saveToolStripButton_Click);
|
||||
this.bt3.Image = ((System.Drawing.Image)(resources.GetObject("bt3.Image")));
|
||||
this.bt3.ImageTransparentColor = System.Drawing.Color.Black;
|
||||
this.bt3.Name = "bt3";
|
||||
this.bt3.Size = new System.Drawing.Size(83, 22);
|
||||
this.bt3.Text = "스케쥴(일)";
|
||||
this.bt3.Click += new System.EventHandler(this.saveToolStripButton_Click);
|
||||
//
|
||||
// printToolStripButton
|
||||
// bt4
|
||||
//
|
||||
this.printToolStripButton.Image = ((System.Drawing.Image)(resources.GetObject("printToolStripButton.Image")));
|
||||
this.printToolStripButton.ImageTransparentColor = System.Drawing.Color.Black;
|
||||
this.printToolStripButton.Name = "printToolStripButton";
|
||||
this.printToolStripButton.Size = new System.Drawing.Size(83, 22);
|
||||
this.printToolStripButton.Text = "스케쥴(주)";
|
||||
this.printToolStripButton.Click += new System.EventHandler(this.printToolStripButton_Click);
|
||||
this.bt4.Image = ((System.Drawing.Image)(resources.GetObject("bt4.Image")));
|
||||
this.bt4.ImageTransparentColor = System.Drawing.Color.Black;
|
||||
this.bt4.Name = "bt4";
|
||||
this.bt4.Size = new System.Drawing.Size(83, 22);
|
||||
this.bt4.Text = "스케쥴(주)";
|
||||
this.bt4.Click += new System.EventHandler(this.printToolStripButton_Click);
|
||||
//
|
||||
// toolStripButton2
|
||||
// bt5
|
||||
//
|
||||
this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image")));
|
||||
this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Black;
|
||||
this.toolStripButton2.Name = "toolStripButton2";
|
||||
this.toolStripButton2.Size = new System.Drawing.Size(107, 22);
|
||||
this.toolStripButton2.Text = "스케쥴없음(주)";
|
||||
this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click);
|
||||
this.bt5.Image = ((System.Drawing.Image)(resources.GetObject("bt5.Image")));
|
||||
this.bt5.ImageTransparentColor = System.Drawing.Color.Black;
|
||||
this.bt5.Name = "bt5";
|
||||
this.bt5.Size = new System.Drawing.Size(107, 22);
|
||||
this.bt5.Text = "스케쥴없음(주)";
|
||||
this.bt5.Click += new System.EventHandler(this.toolStripButton2_Click);
|
||||
//
|
||||
// toolStripSeparator2
|
||||
//
|
||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);
|
||||
//
|
||||
// toolStripButton1
|
||||
// bt6
|
||||
//
|
||||
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
|
||||
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Black;
|
||||
this.toolStripButton1.Name = "toolStripButton1";
|
||||
this.toolStripButton1.Size = new System.Drawing.Size(111, 22);
|
||||
this.toolStripButton1.Text = "메일생성및전송";
|
||||
this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
|
||||
this.bt6.Image = ((System.Drawing.Image)(resources.GetObject("bt6.Image")));
|
||||
this.bt6.ImageTransparentColor = System.Drawing.Color.Black;
|
||||
this.bt6.Name = "bt6";
|
||||
this.bt6.Size = new System.Drawing.Size(111, 22);
|
||||
this.bt6.Text = "메일생성및전송";
|
||||
this.bt6.Click += new System.EventHandler(this.toolStripButton1_Click);
|
||||
//
|
||||
// statusStrip
|
||||
//
|
||||
@@ -596,15 +597,15 @@ namespace JobReportMailService
|
||||
private System.Windows.Forms.ToolStripMenuItem contentsToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem indexToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem searchToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripButton newToolStripButton;
|
||||
private System.Windows.Forms.ToolStripButton openToolStripButton;
|
||||
private System.Windows.Forms.ToolStripButton saveToolStripButton;
|
||||
private System.Windows.Forms.ToolStripButton printToolStripButton;
|
||||
private System.Windows.Forms.ToolStripButton bt1;
|
||||
private System.Windows.Forms.ToolStripButton bt2;
|
||||
private System.Windows.Forms.ToolStripButton bt3;
|
||||
private System.Windows.Forms.ToolStripButton bt4;
|
||||
private System.Windows.Forms.ToolTip toolTip;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||
private System.Windows.Forms.ToolStripButton toolStripButton1;
|
||||
private System.Windows.Forms.ToolStripButton toolStripButton2;
|
||||
private System.Windows.Forms.ToolStripButton bt6;
|
||||
private System.Windows.Forms.ToolStripButton bt5;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ namespace JobReportMailService
|
||||
public MDIParent1()
|
||||
{
|
||||
InitializeComponent();
|
||||
Pub.init();
|
||||
}
|
||||
|
||||
private void ShowNewForm(object sender, EventArgs e)
|
||||
@@ -137,6 +138,22 @@ namespace JobReportMailService
|
||||
private void MDIParent1_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.Text = "mail service " + Application.ProductVersion.ToString();
|
||||
|
||||
if(Pub.setting.autoRun)
|
||||
{
|
||||
bt1.PerformClick();
|
||||
bt2.PerformClick();
|
||||
bt3.PerformClick();
|
||||
bt4.PerformClick();
|
||||
bt5.PerformClick();
|
||||
bt6.PerformClick();
|
||||
}
|
||||
}
|
||||
|
||||
private void optionsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
var f = new fSetup();
|
||||
f.ShowDialog();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -301,7 +301,7 @@
|
||||
<metadata name="toolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>126, 17</value>
|
||||
</metadata>
|
||||
<data name="newToolStripButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="bt1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAELSURBVDhPrZDJasJQGIXzUvoO9TX0jcQuSulCLUUECwot
|
||||
@@ -312,7 +312,7 @@
|
||||
NIsAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="openToolStripButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="bt2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJYSURBVDhPvZFbSBNQHIf30ENPFmlRCEWWhD0MA0Oqh5Ck
|
||||
@@ -328,7 +328,7 @@
|
||||
sW+3kJ1Cb3y8PNm4wYN1a9xY7z5f/d+MQPATMS7uX9kMtOAAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="saveToolStripButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="bt3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIvSURBVDhPrZLdS9NRGMd//0L33QRddFtTYzgXq8GvXENZ
|
||||
@@ -344,7 +344,7 @@
|
||||
TkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="printToolStripButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="bt4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIqSURBVDhPrZL7T1JxAMVZP/b/tLa2Wm21mail1YZlRjid
|
||||
@@ -360,7 +360,7 @@
|
||||
gg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="toolStripButton2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="bt5.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIqSURBVDhPrZL7T1JxAMVZP/b/tLa2Wm21mail1YZlRjid
|
||||
@@ -376,7 +376,7 @@
|
||||
gg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="bt6.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIqSURBVDhPrZL7T1JxAMVZP/b/tLa2Wm21mail1YZlRjid
|
||||
|
||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
|
||||
// 기본값으로 할 수 있습니다.
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("21.06.07.1050")]
|
||||
[assembly: AssemblyFileVersion("21.06.07.1050")]
|
||||
[assembly: AssemblyVersion("22.01.08.1250")]
|
||||
[assembly: AssemblyFileVersion("22.01.08.1250")]
|
||||
|
||||
@@ -8,7 +8,8 @@ namespace JobReportMailService
|
||||
{
|
||||
public static class Pub
|
||||
{
|
||||
public static string vGcode = "EET1P";
|
||||
// public static string vGcode = "EET1P";
|
||||
public static CSetting setting;
|
||||
public static string MailSort(string addr, string except)
|
||||
{
|
||||
if (string.IsNullOrEmpty(except)) return addr;
|
||||
@@ -19,5 +20,10 @@ namespace JobReportMailService
|
||||
if (alist.Count < 1) return string.Empty;
|
||||
return string.Join(";", alist);
|
||||
}
|
||||
public static void init()
|
||||
{
|
||||
setting = new CSetting();
|
||||
setting.Load();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
20
JobReportMailService/fJobReportDay.Designer.cs
generated
20
JobReportMailService/fJobReportDay.Designer.cs
generated
@@ -31,7 +31,7 @@ namespace JobReportMailService
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fJobReportDay));
|
||||
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
|
||||
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
|
||||
this.btRun = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
@@ -42,21 +42,21 @@ namespace JobReportMailService
|
||||
// toolStrip1
|
||||
//
|
||||
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripButton1});
|
||||
this.btRun});
|
||||
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.toolStrip1.Name = "toolStrip1";
|
||||
this.toolStrip1.Size = new System.Drawing.Size(473, 25);
|
||||
this.toolStrip1.TabIndex = 2;
|
||||
this.toolStrip1.Text = "toolStrip1";
|
||||
//
|
||||
// toolStripButton1
|
||||
// btRun
|
||||
//
|
||||
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
|
||||
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.toolStripButton1.Name = "toolStripButton1";
|
||||
this.toolStripButton1.Size = new System.Drawing.Size(48, 22);
|
||||
this.toolStripButton1.Text = "Run";
|
||||
this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
|
||||
this.btRun.Image = ((System.Drawing.Image)(resources.GetObject("btRun.Image")));
|
||||
this.btRun.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.btRun.Name = "btRun";
|
||||
this.btRun.Size = new System.Drawing.Size(48, 22);
|
||||
this.btRun.Text = "Run";
|
||||
this.btRun.Click += new System.EventHandler(this.toolStripButton1_Click);
|
||||
//
|
||||
// fJobReportDay
|
||||
//
|
||||
@@ -78,6 +78,6 @@ namespace JobReportMailService
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ToolStrip toolStrip1;
|
||||
private System.Windows.Forms.ToolStripButton toolStripButton1;
|
||||
private System.Windows.Forms.ToolStripButton btRun;
|
||||
}
|
||||
}
|
||||
@@ -76,6 +76,9 @@ namespace JobReportMailService
|
||||
|
||||
});
|
||||
timer1.Start();
|
||||
|
||||
if (Pub.setting.autoRunData)
|
||||
btRun.PerformClick();
|
||||
}
|
||||
|
||||
void RunData()
|
||||
@@ -85,17 +88,6 @@ namespace JobReportMailService
|
||||
|
||||
var db = new EEEntities();
|
||||
|
||||
//메일양식이 지정되어있는지 체크
|
||||
var MailJD = db.MailForm.Where(t => t.gcode == Pub.vGcode & t.cate == "JD").FirstOrDefault();
|
||||
//var MailJW = db.MailForm.Where(t => t.gcode == vGcode & t.cate == "JW").FirstOrDefault();
|
||||
|
||||
if (MailJD == null)
|
||||
{
|
||||
//토,일요일에는 동작하지 않는다
|
||||
addmsg("업무일지 미작성 메일 양식이 입력되지 않았습니다");
|
||||
return;
|
||||
}
|
||||
|
||||
//기준일자는 오늘부터 -15일이다
|
||||
var sd = DateTime.Now.AddDays(-15);
|
||||
var ed = DateTime.Now;
|
||||
@@ -103,163 +95,187 @@ namespace JobReportMailService
|
||||
var str_ed = ed.ToShortDateString();
|
||||
var str_dt = DateTime.Now.ToShortDateString();
|
||||
|
||||
//대상 사용자 목록을 추출한다
|
||||
db = new EEEntities();
|
||||
var users = db.vJobReportForUser.Where(t => t.gcode == Pub.vGcode).GroupBy(t => t.id);
|
||||
Dictionary<string, string> uids = new Dictionary<string, string>();
|
||||
foreach (var user in users)
|
||||
var gcodelist = db.MailForm.GroupBy(t => t.gcode).ToList();
|
||||
foreach(var gcodedata in gcodelist)
|
||||
{
|
||||
//해당 사용자의 오늘 날짜로 등록된 자동 데이터가 있다면 대상에 넣지 않는다
|
||||
var userinfo = user.FirstOrDefault();
|
||||
//메일양식이 지정되어있는지 체크
|
||||
var vGcode = gcodedata.Key;
|
||||
if (string.IsNullOrEmpty(vGcode)) continue;
|
||||
|
||||
//퇴사자 확인
|
||||
db = new EEEntities();
|
||||
var userdata = db.vGroupUser.Where(t => t.id == userinfo.id).FirstOrDefault();
|
||||
if (userdata != null && string.IsNullOrEmpty(userdata.outdate) == false) continue;
|
||||
var MailJD = db.MailForm.Where(t => t.gcode == vGcode & t.cate == "JD").FirstOrDefault();
|
||||
//var MailJW = db.MailForm.Where(t => t.gcode == vGcode & t.cate == "JW").FirstOrDefault();
|
||||
|
||||
//사용자 정보에 업무일지를 사용하지 않기로 했다면 처리하지 않는다. 퇴사자는 이값도 설정된다.
|
||||
if (userdata.useJobReport != null && userdata.useJobReport == false) continue;
|
||||
|
||||
db = new EEEntities();
|
||||
var Exists = db.MailData.Where(t => t.gcode == Pub.vGcode && t.wuid == userinfo.id && t.pdate == str_dt && t.cate == "JD").Any();
|
||||
if (Exists == false) uids.Add(userinfo.id, userinfo.name); //자동생성된 자료가 없는 경우에만 처리한다
|
||||
}
|
||||
|
||||
|
||||
addmsg($"{uids.Count} 명의 전체 사용자가 확인 되었습니다");
|
||||
|
||||
//먼저 날짜목록을 가져온다
|
||||
db = new EEEntities();
|
||||
var lstDate = db.JobReport
|
||||
.Where(t => t.gcode == Pub.vGcode && t.pdate.CompareTo(str_sd) >= 0 && t.pdate.CompareTo(str_ed) < 0)
|
||||
.OrderBy(t => t.pdate)
|
||||
.GroupBy(t => t.pdate).ToList();
|
||||
|
||||
//날짜대로 루프를 돈다
|
||||
List<DateTime> days = new List<DateTime>();
|
||||
foreach (var dateitem in lstDate)
|
||||
{
|
||||
var jobdata = dateitem.FirstOrDefault();
|
||||
var dt = DateTime.Parse(jobdata.pdate);
|
||||
if (dt.DayOfWeek == DayOfWeek.Sunday || dt.DayOfWeek == DayOfWeek.Saturday) continue;
|
||||
|
||||
//이 날짜가 휴일인지 체크한다.
|
||||
db = new EEEntities();
|
||||
var Holyinfo = db.HolidayLIst.Where(t => t.pdate == jobdata.pdate).FirstOrDefault();
|
||||
if (Holyinfo != null && Holyinfo.free != null && (bool)(Holyinfo.free)) continue;
|
||||
|
||||
//이날짜에는 8시간을 근무 해야 한다
|
||||
days.Add(DateTime.Parse(jobdata.pdate));
|
||||
}
|
||||
addmsg($"{days.Count} 건의 일자가 확인 되었습니다(기간:{str_sd}~{str_ed}");
|
||||
|
||||
//사용자 목록과 날짜 목록을 모두 수집했다
|
||||
List<ReportUserData> totWarnList = new List<ReportUserData>();
|
||||
foreach (var uid in uids)
|
||||
{
|
||||
if(uid.Key == "320854")
|
||||
Console.WriteLine("테스트");
|
||||
|
||||
//이사용자의 날짜별 근무시간을 확인한다.
|
||||
db = new EEEntities();
|
||||
var UserDatas = db.vJobReportForUser.Where(t => t.gcode == Pub.vGcode && t.id == uid.Key && t.pdate.CompareTo(str_sd) >= 0 && t.pdate.CompareTo(str_ed) < 0).ToList();
|
||||
|
||||
Dictionary<DateTime, double?> WarnList = new Dictionary<DateTime, double?>();
|
||||
foreach (var dt in days.OrderBy(t => t))
|
||||
if (MailJD == null)
|
||||
{
|
||||
var dtstr = dt.ToShortDateString();
|
||||
var userdata = UserDatas.Where(t => t.pdate == dtstr); //해당날짜의 데이터를 확인한다.
|
||||
var hrs = 0.0;
|
||||
if (userdata.Any()) hrs = (double)userdata.Sum(t => t.hrs);
|
||||
|
||||
//자료를 입력하지 않았거나, 입력시간이 8시간 미만이면 경고한다
|
||||
if (hrs < 8.0)
|
||||
{
|
||||
WarnList.Add(dt, hrs);
|
||||
totWarnList.Add(new ReportUserData { date = dt, hrs = hrs, uid = uid.Key, uname = uid.Value }); //전체알림시에 사용하는 목록
|
||||
}
|
||||
//토,일요일에는 동작하지 않는다
|
||||
addmsg($"[{vGcode}]업무일지 미작성 메일 양식이 입력되지 않았습니다");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (WarnList.Count > 0)
|
||||
|
||||
|
||||
//대상 사용자 목록을 추출한다
|
||||
db = new EEEntities();
|
||||
var users = db.vJobReportForUser.Where(t => t.gcode == vGcode).GroupBy(t => t.id);
|
||||
Dictionary<string, string> uids = new Dictionary<string, string>();
|
||||
foreach (var user in users)
|
||||
{
|
||||
addmsg($"{uid.Value}({uid.Key}) 의 경고 일수는 {WarnList.Count} 건 입니다");
|
||||
//해당 사용자의 오늘 날짜로 등록된 자동 데이터가 있다면 대상에 넣지 않는다
|
||||
var userinfo = user.FirstOrDefault();
|
||||
|
||||
//퇴사자 확인
|
||||
db = new EEEntities();
|
||||
var userdata = db.vGroupUser.Where(t => t.gcode == vGcode && t.id == userinfo.id).FirstOrDefault();
|
||||
if (userdata != null && string.IsNullOrEmpty(userdata.outdate) == false) continue;
|
||||
|
||||
//사용자 정보에 업무일지를 사용하지 않기로 했다면 처리하지 않는다. 퇴사자는 이값도 설정된다.
|
||||
if (userdata.useJobReport != null && userdata.useJobReport == false) continue;
|
||||
|
||||
db = new EEEntities();
|
||||
var userinfo = db.vGroupUser.Where(t => t.id == uid.Key).FirstOrDefault();
|
||||
if (userinfo == null)
|
||||
var Exists = db.MailData.Where(t => t.gcode == vGcode && t.wuid == userinfo.id && t.pdate == str_dt && t.cate == "JD").Any();
|
||||
if (Exists == false) uids.Add(userinfo.id, userinfo.name); //자동생성된 자료가 없는 경우에만 처리한다
|
||||
}
|
||||
|
||||
|
||||
addmsg($"[{vGcode}] {uids.Count} 명의 전체 사용자가 확인 되었습니다");
|
||||
|
||||
//먼저 날짜목록을 가져온다
|
||||
db = new EEEntities();
|
||||
var lstDate = db.JobReport
|
||||
.Where(t => t.gcode == vGcode && t.pdate.CompareTo(str_sd) >= 0 && t.pdate.CompareTo(str_ed) < 0)
|
||||
.OrderBy(t => t.pdate)
|
||||
.GroupBy(t => t.pdate).ToList();
|
||||
|
||||
//날짜대로 루프를 돈다
|
||||
List<DateTime> days = new List<DateTime>();
|
||||
foreach (var dateitem in lstDate)
|
||||
{
|
||||
var jobdata = dateitem.FirstOrDefault();
|
||||
var dt = DateTime.Parse(jobdata.pdate);
|
||||
if (dt.DayOfWeek == DayOfWeek.Sunday || dt.DayOfWeek == DayOfWeek.Saturday) continue;
|
||||
|
||||
//이 날짜가 휴일인지 체크한다.
|
||||
db = new EEEntities();
|
||||
var Holyinfo = db.HolidayLIst.Where(t => t.pdate == jobdata.pdate).FirstOrDefault();
|
||||
if (Holyinfo != null && Holyinfo.free != null && (bool)(Holyinfo.free)) continue;
|
||||
|
||||
//이날짜에는 8시간을 근무 해야 한다
|
||||
days.Add(DateTime.Parse(jobdata.pdate));
|
||||
}
|
||||
addmsg($"[{vGcode}] {days.Count} 건의 일자가 확인 되었습니다(기간:{str_sd}~{str_ed}");
|
||||
|
||||
//사용자 목록과 날짜 목록을 모두 수집했다
|
||||
List<ReportUserData> totWarnList = new List<ReportUserData>();
|
||||
foreach (var uid in uids)
|
||||
{
|
||||
//if (uid.Key == "320854")
|
||||
// Console.WriteLine("테스트");
|
||||
|
||||
//이사용자의 날짜별 근무시간을 확인한다.
|
||||
db = new EEEntities();
|
||||
var UserDatas = db.vJobReportForUser.Where(t => t.gcode == vGcode && t.id == uid.Key && t.pdate.CompareTo(str_sd) >= 0 && t.pdate.CompareTo(str_ed) < 0).ToList();
|
||||
|
||||
Dictionary<DateTime, double?> WarnList = new Dictionary<DateTime, double?>();
|
||||
foreach (var dt in days.OrderBy(t => t))
|
||||
{
|
||||
addmsg($"{uid.Value}({uid.Key}) 의 사용자 정보를 확인 할 수 없습니다");
|
||||
var dtstr = dt.ToShortDateString();
|
||||
var userdata = UserDatas.Where(t => t.pdate == dtstr); //해당날짜의 데이터를 확인한다.
|
||||
var hrs = 0.0;
|
||||
if (userdata.Any()) hrs = (double)userdata.Sum(t => t.hrs);
|
||||
|
||||
//자료를 입력하지 않았거나, 입력시간이 8시간 미만이면 경고한다
|
||||
if (hrs < 8.0)
|
||||
{
|
||||
WarnList.Add(dt, hrs);
|
||||
totWarnList.Add(new ReportUserData { date = dt, hrs = hrs, uid = uid.Key, uname = uid.Value }); //전체알림시에 사용하는 목록
|
||||
}
|
||||
}
|
||||
else if (string.IsNullOrEmpty(userinfo.email))
|
||||
|
||||
if (WarnList.Count > 0)
|
||||
{
|
||||
addmsg($"{uid.Value}({uid.Key}) 의 메일 정보가 존재하지 않습니다");
|
||||
addmsg($"[{vGcode}] {uid.Value}({uid.Key}) 의 경고 일수는 {WarnList.Count} 건 입니다");
|
||||
|
||||
db = new EEEntities();
|
||||
var userinfo = db.vGroupUser.Where(t => t.gcode == vGcode && t.id == uid.Key).FirstOrDefault();
|
||||
if (userinfo == null)
|
||||
{
|
||||
addmsg($"[{vGcode}] {uid.Value}({uid.Key}) 의 사용자 정보를 확인 할 수 없습니다");
|
||||
}
|
||||
else if (string.IsNullOrEmpty(userinfo.email))
|
||||
{
|
||||
addmsg($"[{vGcode}] {uid.Value}({uid.Key}) 의 메일 정보가 존재하지 않습니다");
|
||||
}
|
||||
else
|
||||
{
|
||||
//일별경고(월요일제외)
|
||||
|
||||
if (DateTime.Now.DayOfWeek != DayOfWeek.Monday && MailJD != null)
|
||||
{
|
||||
var mail_subject = MailJD.subject.Replace("{담당자}", userinfo.name).Replace("{사번}", userinfo.id);
|
||||
var mail_to = MailJD.tolist.Replace("{담당자}", userinfo.email);
|
||||
var mail_cc = string.Empty; //
|
||||
if (MailJD.cc != null) mail_cc = MailJD.cc.Replace("{담당자}", userinfo.email);
|
||||
var mail_bcc = string.Empty;
|
||||
if (MailJD.bcc != null) mail_bcc = MailJD.bcc.Replace("{담당자}", userinfo.email);
|
||||
var mail_body = MailJD.body.Replace("{담당자}", userinfo.name);
|
||||
mail_body = mail_body.Replace("{사번}", userinfo.id);
|
||||
|
||||
//메일본문을 생성해서 진행해야함
|
||||
var mail_content = "<p>일자별 정보</p>";
|
||||
mail_content += $"<br/>조회기간 : {str_sd}~{str_ed}";
|
||||
mail_content += "<br/><table border='1' cellspacing='1' cellpadding='1'><tr><td>날짜</td><td>요일</td><td>시간</td></tr>";
|
||||
foreach (var warnitem in WarnList)
|
||||
{
|
||||
mail_content += $"<tr><td>{warnitem.Key.ToShortDateString()}</td><td>{warnitem.Key.DayOfWeek.ToString()}</td><td>{warnitem.Value.ToString()}</td></tr>";
|
||||
}
|
||||
mail_content += "</table>";
|
||||
|
||||
//메일데이터를 생성한다.
|
||||
//mail_to = "chikyun.kim@amkor.co.kr";
|
||||
//mail_bcc = string.Empty;
|
||||
//mail_cc = string.Empty;
|
||||
|
||||
mail_to = Pub.MailSort(mail_to, MailJD.exceptmail);
|
||||
if (string.IsNullOrEmpty(mail_to) == false)
|
||||
{
|
||||
db = new EEEntities();
|
||||
db.MailData.Add(new MailData
|
||||
{
|
||||
gcode = vGcode,
|
||||
cate = "JD",
|
||||
subject = mail_subject,
|
||||
fromlist = userinfo.email,
|
||||
tolist = Pub.MailSort(mail_to, MailJD.exceptmail),
|
||||
bcc = mail_bcc,
|
||||
cc = Pub.MailSort(mail_cc, MailJD.exceptmailcc),
|
||||
pdate = DateTime.Now.ToShortDateString(),
|
||||
body = mail_body.Replace("{내용}", mail_content),
|
||||
wuid = "dev",
|
||||
wdate = DateTime.Now,
|
||||
});
|
||||
db.SaveChanges();
|
||||
addmsg($"[{vGcode}] {userinfo.name}({userinfo.email}) 메일 전송 완료(day)");
|
||||
System.Threading.Thread.Sleep(10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
addmsg($"[{vGcode}] 받는사람이 소거되어 메일을 생성하지 않습니다");
|
||||
}
|
||||
}
|
||||
}
|
||||
System.Threading.Thread.Sleep(3000);
|
||||
}
|
||||
else
|
||||
{
|
||||
//일별경고(월요일제외)
|
||||
|
||||
if (DateTime.Now.DayOfWeek != DayOfWeek.Monday && MailJD != null)
|
||||
{
|
||||
var mail_subject = MailJD.subject.Replace("{담당자}", userinfo.name).Replace("{사번}", userinfo.id);
|
||||
var mail_to = MailJD.tolist.Replace("{담당자}", userinfo.email);
|
||||
var mail_cc = string.Empty; //
|
||||
if (MailJD.cc != null) mail_cc = MailJD.cc.Replace("{담당자}", userinfo.email);
|
||||
var mail_bcc = string.Empty;
|
||||
if (MailJD.bcc != null) mail_bcc = MailJD.bcc.Replace("{담당자}", userinfo.email);
|
||||
var mail_body = MailJD.body.Replace("{담당자}", userinfo.name);
|
||||
mail_body = mail_body.Replace("{사번}", userinfo.id);
|
||||
|
||||
//메일본문을 생성해서 진행해야함
|
||||
var mail_content = "<p>일자별 정보</p>";
|
||||
mail_content += $"<br/>조회기간 : {str_sd}~{str_ed}";
|
||||
mail_content += "<br/><table border='1' cellspacing='1' cellpadding='1'><tr><td>날짜</td><td>요일</td><td>시간</td></tr>";
|
||||
foreach (var warnitem in WarnList)
|
||||
{
|
||||
mail_content += $"<tr><td>{warnitem.Key.ToShortDateString()}</td><td>{warnitem.Key.DayOfWeek.ToString()}</td><td>{warnitem.Value.ToString()}</td></tr>";
|
||||
}
|
||||
mail_content += "</table>";
|
||||
|
||||
//메일데이터를 생성한다.
|
||||
//mail_to = "chikyun.kim@amkor.co.kr";
|
||||
//mail_bcc = string.Empty;
|
||||
//mail_cc = string.Empty;
|
||||
|
||||
mail_to = Pub.MailSort(mail_to, MailJD.exceptmail);
|
||||
if (string.IsNullOrEmpty(mail_to) == false)
|
||||
{
|
||||
db = new EEEntities();
|
||||
db.MailData.Add(new MailData
|
||||
{
|
||||
gcode = Pub.vGcode,
|
||||
cate = "JD",
|
||||
subject = mail_subject,
|
||||
fromlist = userinfo.email,
|
||||
tolist = Pub.MailSort(mail_to, MailJD.exceptmail),
|
||||
bcc = mail_bcc,
|
||||
cc = Pub.MailSort(mail_cc, MailJD.exceptmailcc),
|
||||
pdate = DateTime.Now.ToShortDateString(),
|
||||
body = mail_body.Replace("{내용}", mail_content),
|
||||
wuid = userinfo.id,
|
||||
wdate = DateTime.Now,
|
||||
});
|
||||
db.SaveChanges();
|
||||
addmsg($"{userinfo.name}({userinfo.email}) 메일 전송 완료(day)");
|
||||
System.Threading.Thread.Sleep(10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
addmsg("받는사람이 소거되어 메일을 생성하지 않습니다");
|
||||
}
|
||||
}
|
||||
addmsg($"[{vGcode}] {uid.Value}({uid.Key}) 미 작성 일자가 없습니다");
|
||||
}
|
||||
System.Threading.Thread.Sleep(3000);
|
||||
}
|
||||
else
|
||||
{
|
||||
addmsg($"{uid.Value}({uid.Key}) 미 작성 일자가 없습니다");
|
||||
|
||||
}
|
||||
|
||||
System.Threading.Thread.Sleep(500);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void toolStripButton1_Click(object sender, EventArgs e)
|
||||
@@ -273,16 +289,16 @@ namespace JobReportMailService
|
||||
{
|
||||
if (task != null)
|
||||
{
|
||||
if (task.IsCompleted) this.toolStripButton1.Text = "완료";
|
||||
else if (task.IsCanceled) this.toolStripButton1.Text = "취소";
|
||||
else if (taskwait) this.toolStripButton1.Text = "대기상태";
|
||||
else this.toolStripButton1.Text = "가동중";
|
||||
this.toolStripButton1.Enabled = true;
|
||||
if (task.IsCompleted) this.btRun.Text = "완료";
|
||||
else if (task.IsCanceled) this.btRun.Text = "취소";
|
||||
else if (taskwait) this.btRun.Text = "대기상태";
|
||||
else this.btRun.Text = "가동중";
|
||||
this.btRun.Enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.toolStripButton1.Text = "사용불가";
|
||||
this.toolStripButton1.Enabled = false;
|
||||
this.btRun.Text = "사용불가";
|
||||
this.btRun.Enabled = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
<value>104, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="btRun.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
|
||||
|
||||
20
JobReportMailService/fJobReportWeek.Designer.cs
generated
20
JobReportMailService/fJobReportWeek.Designer.cs
generated
@@ -31,7 +31,7 @@ namespace JobReportMailService
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fJobReportWeek));
|
||||
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
|
||||
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
|
||||
this.btRun = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
@@ -42,21 +42,21 @@ namespace JobReportMailService
|
||||
// toolStrip1
|
||||
//
|
||||
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripButton1});
|
||||
this.btRun});
|
||||
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.toolStrip1.Name = "toolStrip1";
|
||||
this.toolStrip1.Size = new System.Drawing.Size(473, 25);
|
||||
this.toolStrip1.TabIndex = 3;
|
||||
this.toolStrip1.Text = "toolStrip1";
|
||||
//
|
||||
// toolStripButton1
|
||||
// btRun
|
||||
//
|
||||
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
|
||||
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.toolStripButton1.Name = "toolStripButton1";
|
||||
this.toolStripButton1.Size = new System.Drawing.Size(48, 22);
|
||||
this.toolStripButton1.Text = "Run";
|
||||
this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
|
||||
this.btRun.Image = ((System.Drawing.Image)(resources.GetObject("btRun.Image")));
|
||||
this.btRun.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.btRun.Name = "btRun";
|
||||
this.btRun.Size = new System.Drawing.Size(48, 22);
|
||||
this.btRun.Text = "Run";
|
||||
this.btRun.Click += new System.EventHandler(this.toolStripButton1_Click);
|
||||
//
|
||||
// fJobReportWeek
|
||||
//
|
||||
@@ -78,6 +78,6 @@ namespace JobReportMailService
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ToolStrip toolStrip1;
|
||||
private System.Windows.Forms.ToolStripButton toolStripButton1;
|
||||
private System.Windows.Forms.ToolStripButton btRun;
|
||||
}
|
||||
}
|
||||
@@ -71,9 +71,11 @@ namespace JobReportMailService
|
||||
}
|
||||
Task.Delay(Delaytime).Wait();
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
timer1.Start();
|
||||
if (Pub.setting.autoRunData)
|
||||
btRun.PerformClick();
|
||||
}
|
||||
|
||||
void RunData()
|
||||
@@ -83,16 +85,6 @@ namespace JobReportMailService
|
||||
|
||||
var db = new EEEntities();
|
||||
|
||||
//메일양식이 지정되어있는지 체크
|
||||
var MailJW = db.MailForm.Where(t => t.gcode == Pub.vGcode & t.cate == "JW").FirstOrDefault();
|
||||
|
||||
if (MailJW == null)
|
||||
{
|
||||
//토,일요일에는 동작하지 않는다
|
||||
addmsg("업무일지 미작성(주간) 메일 양식이 입력되지 않았습니다");
|
||||
return;
|
||||
}
|
||||
|
||||
//기준일자는 오늘부터 -15일이다
|
||||
var sd = DateTime.Now.AddDays(-15);
|
||||
var ed = DateTime.Now;
|
||||
@@ -100,180 +92,205 @@ namespace JobReportMailService
|
||||
var str_ed = ed.ToShortDateString();
|
||||
var str_dt = DateTime.Now.ToShortDateString();
|
||||
|
||||
//오늘날짜로 주간 데이터가 등록되어있느지 확인한다.
|
||||
db = new EEEntities();
|
||||
var Existweek = db.MailData.Where(t => t.gcode == Pub.vGcode && t.cate == "JW" && t.wuid == "395552" && t.pdate == str_dt).Any();
|
||||
if (Existweek)
|
||||
var gcodelist = db.MailForm.GroupBy(t => t.gcode).ToList();
|
||||
foreach (var gcodedata in gcodelist)
|
||||
{
|
||||
addmsg($"주간일자({str_dt}) 보고 메일이 이미 등록되어 있습니다");
|
||||
return;
|
||||
}
|
||||
//메일양식이 지정되어있는지 체크
|
||||
var vGcode = gcodedata.Key;
|
||||
if (string.IsNullOrEmpty(vGcode)) continue;
|
||||
|
||||
//대상 사용자 목록을 추출한다
|
||||
db = new EEEntities();
|
||||
var users = db.vJobReportForUser.Where(t => t.gcode == Pub.vGcode).GroupBy(t => t.id);
|
||||
Dictionary<string, string> uids = new Dictionary<string, string>();
|
||||
foreach (var user in users)
|
||||
{
|
||||
//해당 사용자의 오늘 날짜로 등록된 자동 데이터가 있다면 대상에 넣지 않는다
|
||||
var userinfo = user.FirstOrDefault();
|
||||
//메일양식이 지정되어있는지 체크
|
||||
var MailJW = db.MailForm.Where(t => t.gcode == vGcode & t.cate == "JW").FirstOrDefault();
|
||||
|
||||
//퇴사자 확인
|
||||
db = new EEEntities();
|
||||
var userdata = db.vGroupUser.Where(t => t.id == userinfo.id).FirstOrDefault();
|
||||
if (userdata != null && string.IsNullOrEmpty(userdata.outdate) == false) continue;
|
||||
|
||||
//사용자 정보에 업무일지를 사용하지 않기로 했다면 처리하지 않는다. 퇴사자는 이값도 설정된다.
|
||||
if (userdata.useJobReport != null && userdata.useJobReport == false) continue;
|
||||
|
||||
//이 대상의 이메일이 받는 사람에 제외되어있다면 처리하지 않는다.
|
||||
var exxptolist = MailJW.exceptmail.ToUpper().Split(';');
|
||||
if (exxptolist.Contains(userdata.email.ToUpper()) == false)
|
||||
if (MailJW == null)
|
||||
{
|
||||
//모두대상으로 처리한다
|
||||
if (userdata.email.ToUpper() != ("BongSeok.Jung@amkor.co.kr").ToUpper())
|
||||
uids.Add(userinfo.id, userinfo.name);
|
||||
}
|
||||
else addmsg("주간 제외대상자임 " + userdata.email);
|
||||
}
|
||||
|
||||
addmsg($"{uids.Count} 명의 전체 사용자가 확인 되었습니다");
|
||||
|
||||
//먼저 날짜목록을 가져온다
|
||||
db = new EEEntities();
|
||||
var lstDate = db.JobReport
|
||||
.Where(t => t.gcode == Pub.vGcode && t.pdate.CompareTo(str_sd) >= 0 && t.pdate.CompareTo(str_ed) < 0)
|
||||
.OrderBy(t => t.pdate)
|
||||
.GroupBy(t => t.pdate).ToList();
|
||||
|
||||
//날짜대로 루프를 돈다
|
||||
List<DateTime> days = new List<DateTime>();
|
||||
foreach (var dateitem in lstDate)
|
||||
{
|
||||
var jobdata = dateitem.FirstOrDefault();
|
||||
var dt = DateTime.Parse(jobdata.pdate);
|
||||
if (dt.DayOfWeek == DayOfWeek.Sunday || dt.DayOfWeek == DayOfWeek.Saturday) continue;
|
||||
|
||||
//이 날짜가 휴일인지 체크한다.
|
||||
db = new EEEntities();
|
||||
var Holyinfo = db.HolidayLIst.Where(t => t.pdate == jobdata.pdate).FirstOrDefault();
|
||||
if (Holyinfo != null && Holyinfo.free != null && (bool)(Holyinfo.free)) continue;
|
||||
|
||||
//이날짜에는 8시간을 근무 해야 한다
|
||||
days.Add(DateTime.Parse(jobdata.pdate));
|
||||
}
|
||||
addmsg($"{days.Count} 건의 일자가 확인 되었습니다(기간:{str_sd}~{str_ed}");
|
||||
|
||||
//사용자 목록과 날짜 목록을 모두 수집했다
|
||||
List<ReportUserData> totWarnList = new List<ReportUserData>();
|
||||
foreach (var uid in uids)
|
||||
{
|
||||
//이사용자의 날짜별 근무시간을 확인한다.
|
||||
db = new EEEntities();
|
||||
var UserDatas = db.vJobReportForUser.Where(t => t.gcode == Pub.vGcode && t.id == uid.Key && t.pdate.CompareTo(str_sd) >= 0 && t.pdate.CompareTo(str_ed) < 0).ToList();
|
||||
|
||||
Dictionary<DateTime, double?> WarnList = new Dictionary<DateTime, double?>();
|
||||
foreach (var dt in days.OrderBy(t => t))
|
||||
{
|
||||
var dtstr = dt.ToShortDateString();
|
||||
var userdata = UserDatas.Where(t => t.pdate == dtstr); //해당날짜의 데이터를 확인한다.
|
||||
var hrs = 0.0;
|
||||
if (userdata.Any()) hrs = (double)userdata.Sum(t => t.hrs);
|
||||
|
||||
//자료를 입력하지 않았거나, 입력시간이 8시간 미만이면 경고한다
|
||||
if (hrs < 8.0)
|
||||
{
|
||||
//WarnList.Add(dt, hrs);
|
||||
totWarnList.Add(new ReportUserData { date = dt, hrs = hrs, uid = uid.Key, uname = uid.Value }); //전체알림시에 사용하는 목록
|
||||
}
|
||||
//토,일요일에는 동작하지 않는다
|
||||
addmsg($"[{vGcode}] 업무일지 미작성(주간) 메일 양식이 입력되지 않았습니다");
|
||||
continue;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (totWarnList.Count > 0)
|
||||
{
|
||||
addmsg($"주간 경고 데이터는 {totWarnList.Count} 건 입니다");
|
||||
|
||||
//오늘잘짜로 등록된 자료가 있으면 처리하지 안흔다.
|
||||
//해당 사용자의 오늘 날짜로 등록된 자동 데이터가 있다면 대상에 넣지 않는다
|
||||
//오늘날짜로 주간 데이터가 등록되어있느지 확인한다.
|
||||
db = new EEEntities();
|
||||
|
||||
var mail_subject = MailJW.subject;
|
||||
var mail_to = MailJW.tolist;//.Replace("{담당자}", userinfo.email);
|
||||
var pmail_cc = new List<string>(); //
|
||||
if (MailJW.cc != null) pmail_cc = MailJW.cc.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList();//.Replace("{담당자}", userinfo.email);
|
||||
var mail_bcc = string.Empty;
|
||||
if (MailJW.bcc != null) mail_bcc = MailJW.bcc;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_body = MailJW.body;//.Replace("{담당자}", userinfo.name);
|
||||
|
||||
//메일본문을 생성해서 진행해야함
|
||||
var vmail_body = "<p>담당자별 정보</p>";
|
||||
vmail_body += "<br/>조회기간 : " + sd.ToShortDateString() + "~" + ed.ToShortDateString();
|
||||
|
||||
//참고데이터를 추가한다
|
||||
var usergrplist = totWarnList.OrderBy(t => t.uname).GroupBy(t => t.uid).ToList();
|
||||
foreach (var item in usergrplist)
|
||||
var Existweek = db.MailData.Where(t => t.gcode == vGcode && t.cate == "JW" && t.pdate == str_dt).Any();
|
||||
if (Existweek)
|
||||
{
|
||||
var fitem = item.FirstOrDefault();
|
||||
addmsg($"[{vGcode}] 주간일자({str_dt}) 보고 메일이 이미 등록되어 있습니다");
|
||||
continue;
|
||||
}
|
||||
|
||||
//대상 사용자 목록을 추출한다
|
||||
db = new EEEntities();
|
||||
var users = db.vJobReportForUser.Where(t => t.gcode == vGcode).GroupBy(t => t.id);
|
||||
Dictionary<string, string> uids = new Dictionary<string, string>();
|
||||
foreach (var user in users)
|
||||
{
|
||||
//해당 사용자의 오늘 날짜로 등록된 자동 데이터가 있다면 대상에 넣지 않는다
|
||||
var userinfo = user.FirstOrDefault();
|
||||
|
||||
//퇴사자 확인
|
||||
db = new EEEntities();
|
||||
var userinfo = db.vGroupUser.Where(t => t.id == fitem.uid).FirstOrDefault();
|
||||
var username = string.Empty;
|
||||
if (userinfo != null)
|
||||
var userdata = db.vGroupUser.Where(t => t.gcode == vGcode && t.id == userinfo.id).FirstOrDefault();
|
||||
if (userdata != null && string.IsNullOrEmpty(userdata.outdate) == false) continue;
|
||||
|
||||
//사용자 정보에 업무일지를 사용하지 않기로 했다면 처리하지 않는다. 퇴사자는 이값도 설정된다.
|
||||
if (userdata.useJobReport != null && userdata.useJobReport == false) continue;
|
||||
|
||||
//이 대상의 이메일이 받는 사람에 제외되어있다면 처리하지 않는다.
|
||||
var exxptolist = MailJW.exceptmail.ToUpper().Split(';');
|
||||
if (exxptolist.Contains(userdata.email.ToUpper()) == false)
|
||||
{
|
||||
if (string.IsNullOrEmpty(userinfo.email) == false)
|
||||
{
|
||||
//if (pmail_cc.Contains(userinfo.email) == false)
|
||||
// pmail_cc.Add(userinfo.email);
|
||||
}
|
||||
username = userinfo.name;
|
||||
//모두대상으로 처리한다
|
||||
//if (userdata.email.ToUpper() != ("BongSeok.Jung@amkor.co.kr").ToUpper())
|
||||
uids.Add(userinfo.id, userinfo.name);
|
||||
}
|
||||
else addmsg($"[{vGcode}] 주간 제외대상자임 " + userdata.email);
|
||||
}
|
||||
|
||||
vmail_body += "<br/><table border='1' cellspacing='1' cellpadding='1'><tr><td>담당자</td><td>일자별시간</td></tr>";
|
||||
var mail_cc = string.Join(";", pmail_cc); //모든 대상을 세미콜론으로 붙인다.
|
||||
foreach (var warnitem in usergrplist)
|
||||
{
|
||||
var item = warnitem.FirstOrDefault();
|
||||
vmail_body += $"<tr><td>{item.uname}({item.uid})</td><td>";
|
||||
foreach (var ii in warnitem.OrderBy(t => t.date))
|
||||
{
|
||||
vmail_body += $" {ii.date.ToString("MM/dd")}({ii.hrs}h)";
|
||||
}
|
||||
vmail_body += "</td></tr>";
|
||||
}
|
||||
vmail_body += "</table>";
|
||||
|
||||
//메일데이터를 생성한다.
|
||||
//mail_bcc = string.Empty;
|
||||
//mail_cc = string.Empty;
|
||||
//mail_to = "chikyun.kim@amkor.co.kr";
|
||||
addmsg($"[{vGcode}] {uids.Count} 명의 전체 사용자가 확인 되었습니다");
|
||||
|
||||
//먼저 날짜목록을 가져온다
|
||||
db = new EEEntities();
|
||||
mail_to = Pub.MailSort(mail_to, MailJW.exceptmail);
|
||||
if (string.IsNullOrEmpty(mail_to) == false)
|
||||
var lstDate = db.JobReport
|
||||
.Where(t => t.gcode == vGcode && t.pdate.CompareTo(str_sd) >= 0 && t.pdate.CompareTo(str_ed) < 0)
|
||||
.OrderBy(t => t.pdate)
|
||||
.GroupBy(t => t.pdate).ToList();
|
||||
|
||||
//날짜대로 루프를 돈다
|
||||
List<DateTime> days = new List<DateTime>();
|
||||
foreach (var dateitem in lstDate)
|
||||
{
|
||||
db.MailData.Add(new MailData
|
||||
var jobdata = dateitem.FirstOrDefault();
|
||||
var dt = DateTime.Parse(jobdata.pdate);
|
||||
if (dt.DayOfWeek == DayOfWeek.Sunday || dt.DayOfWeek == DayOfWeek.Saturday) continue;
|
||||
|
||||
//이 날짜가 휴일인지 체크한다.
|
||||
db = new EEEntities();
|
||||
var Holyinfo = db.HolidayLIst.Where(t => t.pdate == jobdata.pdate).FirstOrDefault();
|
||||
if (Holyinfo != null && Holyinfo.free != null && (bool)(Holyinfo.free)) continue;
|
||||
|
||||
//이날짜에는 8시간을 근무 해야 한다
|
||||
days.Add(DateTime.Parse(jobdata.pdate));
|
||||
}
|
||||
addmsg($"[{vGcode}] {days.Count} 건의 일자가 확인 되었습니다(기간:{str_sd}~{str_ed}");
|
||||
|
||||
//사용자 목록과 날짜 목록을 모두 수집했다
|
||||
List<ReportUserData> totWarnList = new List<ReportUserData>();
|
||||
foreach (var uid in uids)
|
||||
{
|
||||
//이사용자의 날짜별 근무시간을 확인한다.
|
||||
db = new EEEntities();
|
||||
var UserDatas = db.vJobReportForUser.Where(t => t.gcode == vGcode && t.id == uid.Key && t.pdate.CompareTo(str_sd) >= 0 && t.pdate.CompareTo(str_ed) < 0).ToList();
|
||||
|
||||
Dictionary<DateTime, double?> WarnList = new Dictionary<DateTime, double?>();
|
||||
foreach (var dt in days.OrderBy(t => t))
|
||||
{
|
||||
gcode = Pub.vGcode,
|
||||
cate = "JW",
|
||||
subject = mail_subject,
|
||||
fromlist = "EETGW@amkor.co.kr",
|
||||
tolist = Pub.MailSort(mail_to, MailJW.exceptmail),
|
||||
bcc = mail_bcc,
|
||||
cc = Pub.MailSort(mail_cc, MailJW.exceptmailcc),
|
||||
pdate = DateTime.Now.ToShortDateString(),
|
||||
body = mail_body.Replace("{내용}", vmail_body),
|
||||
wuid = "395552",
|
||||
wdate = DateTime.Now,
|
||||
});
|
||||
db.SaveChanges();
|
||||
addmsg("주간 알림데이터가 등록되었습니다");
|
||||
var dtstr = dt.ToShortDateString();
|
||||
var userdata = UserDatas.Where(t => t.pdate == dtstr); //해당날짜의 데이터를 확인한다.
|
||||
var hrs = 0.0;
|
||||
if (userdata.Any()) hrs = (double)userdata.Sum(t => t.hrs);
|
||||
|
||||
//자료를 입력하지 않았거나, 입력시간이 8시간 미만이면 경고한다
|
||||
if (hrs < 8.0)
|
||||
{
|
||||
//WarnList.Add(dt, hrs);
|
||||
totWarnList.Add(new ReportUserData { date = dt, hrs = hrs, uid = uid.Key, uname = uid.Value }); //전체알림시에 사용하는 목록
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
|
||||
if (totWarnList.Count > 0)
|
||||
{
|
||||
addmsg("받는사람이 소거되어 메일을 생성하지 않습니다");
|
||||
addmsg($"[{vGcode}] 주간 경고 데이터는 {totWarnList.Count} 건 입니다");
|
||||
|
||||
//오늘잘짜로 등록된 자료가 있으면 처리하지 안흔다.
|
||||
//해당 사용자의 오늘 날짜로 등록된 자동 데이터가 있다면 대상에 넣지 않는다
|
||||
db = new EEEntities();
|
||||
|
||||
var mail_subject = MailJW.subject;
|
||||
var mail_to = MailJW.tolist;//.Replace("{담당자}", userinfo.email);
|
||||
var pmail_cc = new List<string>(); //
|
||||
if (MailJW.cc != null) pmail_cc = MailJW.cc.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList();//.Replace("{담당자}", userinfo.email);
|
||||
var mail_bcc = string.Empty;
|
||||
if (MailJW.bcc != null) mail_bcc = MailJW.bcc;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_body = MailJW.body;//.Replace("{담당자}", userinfo.name);
|
||||
|
||||
//메일본문을 생성해서 진행해야함
|
||||
var vmail_body = "<p>담당자별 정보</p>";
|
||||
vmail_body += "<br/>조회기간 : " + sd.ToShortDateString() + "~" + ed.ToShortDateString();
|
||||
|
||||
//참고데이터를 추가한다
|
||||
var usergrplist = totWarnList.OrderBy(t => t.uname).GroupBy(t => t.uid).ToList();
|
||||
foreach (var item in usergrplist)
|
||||
{
|
||||
var fitem = item.FirstOrDefault();
|
||||
db = new EEEntities();
|
||||
var userinfo = db.vGroupUser.Where(t => t.gcode == vGcode && t.id == fitem.uid).FirstOrDefault();
|
||||
var username = string.Empty;
|
||||
if (userinfo != null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(userinfo.email) == false)
|
||||
{
|
||||
//if (pmail_cc.Contains(userinfo.email) == false)
|
||||
// pmail_cc.Add(userinfo.email);
|
||||
}
|
||||
username = userinfo.name;
|
||||
}
|
||||
}
|
||||
|
||||
vmail_body += "<br/><table border='1' cellspacing='1' cellpadding='1'><tr><td>담당자</td><td>일자별시간</td></tr>";
|
||||
var mail_cc = string.Join(";", pmail_cc); //모든 대상을 세미콜론으로 붙인다.
|
||||
foreach (var warnitem in usergrplist)
|
||||
{
|
||||
var item = warnitem.FirstOrDefault();
|
||||
vmail_body += $"<tr><td>{item.uname}({item.uid})</td><td>";
|
||||
foreach (var ii in warnitem.OrderBy(t => t.date))
|
||||
{
|
||||
vmail_body += $" {ii.date.ToString("MM/dd")}({ii.hrs}h)";
|
||||
}
|
||||
vmail_body += "</td></tr>";
|
||||
}
|
||||
vmail_body += "</table>";
|
||||
|
||||
//메일데이터를 생성한다.
|
||||
//mail_bcc = string.Empty;
|
||||
//mail_cc = string.Empty;
|
||||
//mail_to = "chikyun.kim@amkor.co.kr";
|
||||
|
||||
db = new EEEntities();
|
||||
mail_to = Pub.MailSort(mail_to, MailJW.exceptmail);
|
||||
if (string.IsNullOrEmpty(mail_to) == false)
|
||||
{
|
||||
db.MailData.Add(new MailData
|
||||
{
|
||||
gcode = vGcode,
|
||||
cate = "JW",
|
||||
subject = mail_subject,
|
||||
fromlist = "EETGW@amkor.co.kr",
|
||||
tolist = Pub.MailSort(mail_to, MailJW.exceptmail),
|
||||
bcc = mail_bcc,
|
||||
cc = Pub.MailSort(mail_cc, MailJW.exceptmailcc),
|
||||
pdate = DateTime.Now.ToShortDateString(),
|
||||
body = mail_body.Replace("{내용}", vmail_body),
|
||||
wuid = "dev",
|
||||
wdate = DateTime.Now,
|
||||
});
|
||||
db.SaveChanges();
|
||||
addmsg($"[{vGcode}] 주간 알림데이터가 등록되었습니다");
|
||||
}
|
||||
else
|
||||
{
|
||||
addmsg($"[{vGcode}] 받는사람이 소거되어 메일을 생성하지 않습니다");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
System.Threading.Thread.Sleep(500);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void toolStripButton1_Click(object sender, EventArgs e)
|
||||
@@ -285,16 +302,16 @@ namespace JobReportMailService
|
||||
{
|
||||
if (task != null)
|
||||
{
|
||||
if (task.IsCompleted) this.toolStripButton1.Text = "완료";
|
||||
else if (task.IsCanceled) this.toolStripButton1.Text = "취소";
|
||||
else if (taskwait) this.toolStripButton1.Text = "대기상태";
|
||||
else this.toolStripButton1.Text = "가동중";
|
||||
this.toolStripButton1.Enabled = true;
|
||||
if (task.IsCompleted) this.btRun.Text = "완료";
|
||||
else if (task.IsCanceled) this.btRun.Text = "취소";
|
||||
else if (taskwait) this.btRun.Text = "대기상태";
|
||||
else this.btRun.Text = "가동중";
|
||||
this.btRun.Enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.toolStripButton1.Text = "사용불가";
|
||||
this.toolStripButton1.Enabled = false;
|
||||
this.btRun.Text = "사용불가";
|
||||
this.btRun.Enabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
<value>104, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="btRun.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
|
||||
|
||||
20
JobReportMailService/fNoScheduleDayWeek.Designer.cs
generated
20
JobReportMailService/fNoScheduleDayWeek.Designer.cs
generated
@@ -31,7 +31,7 @@ namespace JobReportMailService
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fNoScheduleDayWeek));
|
||||
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
|
||||
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
|
||||
this.btRun = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
@@ -42,21 +42,21 @@ namespace JobReportMailService
|
||||
// toolStrip1
|
||||
//
|
||||
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripButton1});
|
||||
this.btRun});
|
||||
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.toolStrip1.Name = "toolStrip1";
|
||||
this.toolStrip1.Size = new System.Drawing.Size(473, 25);
|
||||
this.toolStrip1.TabIndex = 2;
|
||||
this.toolStrip1.Text = "toolStrip1";
|
||||
//
|
||||
// toolStripButton1
|
||||
// btRun
|
||||
//
|
||||
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
|
||||
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.toolStripButton1.Name = "toolStripButton1";
|
||||
this.toolStripButton1.Size = new System.Drawing.Size(48, 22);
|
||||
this.toolStripButton1.Text = "Run";
|
||||
this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
|
||||
this.btRun.Image = ((System.Drawing.Image)(resources.GetObject("btRun.Image")));
|
||||
this.btRun.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.btRun.Name = "btRun";
|
||||
this.btRun.Size = new System.Drawing.Size(48, 22);
|
||||
this.btRun.Text = "Run";
|
||||
this.btRun.Click += new System.EventHandler(this.toolStripButton1_Click);
|
||||
//
|
||||
// fNoScheduleDayWeek
|
||||
//
|
||||
@@ -78,6 +78,6 @@ namespace JobReportMailService
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ToolStrip toolStrip1;
|
||||
private System.Windows.Forms.ToolStripButton toolStripButton1;
|
||||
private System.Windows.Forms.ToolStripButton btRun;
|
||||
}
|
||||
}
|
||||
@@ -75,25 +75,16 @@ namespace JobReportMailService
|
||||
|
||||
});
|
||||
timer1.Start();
|
||||
if (Pub.setting.autoRunData)
|
||||
btRun.PerformClick();
|
||||
}
|
||||
|
||||
void RunData()
|
||||
{
|
||||
addmsg("스케쥴입력(주) 미 작성자 추출 작업을 시작 합니다");
|
||||
|
||||
|
||||
var db = new EEEntities();
|
||||
|
||||
//메일양식이 지정되어있는지 체크
|
||||
var MailJD = db.MailForm.AsNoTracking().Where(t => t.gcode == Pub.vGcode & t.cate == "SN").FirstOrDefault();
|
||||
|
||||
if (MailJD == null)
|
||||
{
|
||||
//토,일요일에는 동작하지 않는다
|
||||
addmsg("메일 양식(SN)이 입력되지 않았습니다");
|
||||
return;
|
||||
}
|
||||
|
||||
//기준일자는 오늘부터 -15일이다
|
||||
var sd = DateTime.Now.AddDays(-15);
|
||||
var ed = DateTime.Now;
|
||||
@@ -101,118 +92,142 @@ namespace JobReportMailService
|
||||
var str_ed = ed.ToShortDateString();
|
||||
var str_dt = DateTime.Now.ToShortDateString();
|
||||
|
||||
//오늘날짜로 데이터가 등록되어있느지 확인한다.
|
||||
db = new EEEntities();
|
||||
var Existweek = db.MailData.AsNoTracking().Where(t => t.gcode == Pub.vGcode && t.cate == "SN" && t.wuid == "395552" && t.pdate == str_dt).Any();
|
||||
if (Existweek)
|
||||
var gcodelist = db.MailForm.GroupBy(t => t.gcode).ToList();
|
||||
foreach (var gcodedata in gcodelist)
|
||||
{
|
||||
addmsg($"스케쥴(day)({str_dt}) 보고 메일이 이미 등록되어 있습니다");
|
||||
return;
|
||||
}
|
||||
//메일양식이 지정되어있는지 체크
|
||||
var vGcode = gcodedata.Key;
|
||||
if (string.IsNullOrEmpty(vGcode)) continue;
|
||||
|
||||
//대상 사용자 목록을 추출한다
|
||||
//var ta = new DataSet1TableAdapters.vMailingProjectScheduleTableAdapter();
|
||||
//var users = new DataSet1.vMailingProjectScheduleDataTable();
|
||||
//ta.Fill(users);
|
||||
db = new EEEntities();
|
||||
var projects = db.Projects.AsNoTracking().Where(t => t.gcode == Pub.vGcode && t.status == "진행" && (t.isdel == null || t.isdel == false)).OrderBy(t => t.sdate).ToList();
|
||||
// db.vMailingProjectSchedule.ToList();// .vJobReportForUser.Where(t => t.gcode == Pub.vGcode).GroupBy(t => t.id);
|
||||
//메일양식이 지정되어있는지 체크
|
||||
var MailJD = db.MailForm.AsNoTracking().Where(t => t.gcode == vGcode & t.cate == "SN").FirstOrDefault();
|
||||
|
||||
addmsg($"{projects.Count} 건의 데이터가 확인 되었습니다");
|
||||
|
||||
//메일데이터 생성
|
||||
var body = new System.Text.StringBuilder();
|
||||
body.AppendLine("<table border='1' cellspacing='1' cellpadding='1' style='text-align:center;'>");
|
||||
body.AppendLine("<tr>");
|
||||
body.AppendLine("<td>시작일</td>");
|
||||
body.AppendLine("<td>상태</td>");
|
||||
body.AppendLine("<td>번호</td>");
|
||||
body.AppendLine("<td>Project</td>");
|
||||
body.AppendLine("<td>요청</td>");
|
||||
body.AppendLine("<td>Champion</td>");
|
||||
body.AppendLine("<td>협업</td>");
|
||||
body.AppendLine("<td>만료일</td>");
|
||||
body.AppendLine("<td>수량</td>");
|
||||
body.AppendLine("<td>외주금액</td>");
|
||||
body.AppendLine("<td>자체금액</td>");
|
||||
body.AppendLine("<td>절감액</td>");
|
||||
body.AppendLine("<td>CR/CF</td>");
|
||||
body.AppendLine("</tr>");
|
||||
|
||||
//var gp = projects.GroupBy(t => t.idx);
|
||||
foreach (var row in projects)
|
||||
{
|
||||
|
||||
//스케쥴에서 데이터를 찾는다.
|
||||
var cnt = db.EETGW_ProjectsSchedule.AsNoTracking().Where(t => t.gcode == Pub.vGcode && t.project == row.idx).Any();
|
||||
if (cnt == true) continue; //등록되었다
|
||||
|
||||
body.AppendLine($"<tr>");
|
||||
body.AppendLine($"<td>{row.sdate}</td>");
|
||||
body.AppendLine($"<td>{row.status}</td>");
|
||||
body.AppendLine($"<td>{row.idx}</td>");
|
||||
body.AppendLine($"<td>{row.name}</td>");
|
||||
body.AppendLine($"<td>{row.reqstaff}</td>");
|
||||
body.AppendLine($"<td>{row.userManager}</td>");
|
||||
body.AppendLine($"<td>{row.usermain}/{row.usersub}/{row.userhw2}</td>");
|
||||
body.AppendLine($"<td>{row.edate}</td>");
|
||||
body.AppendLine($"<td>{row.cnt}</td>");
|
||||
body.AppendLine($"<td>{row.costo}</td>");
|
||||
body.AppendLine($"<td>{row.costn}</td>");
|
||||
body.AppendLine($"<td>{row.costo - row.costn}</td>");
|
||||
body.AppendLine($"<td>{row.orderno}</td>");
|
||||
body.AppendLine($"</tr>");
|
||||
}
|
||||
body.AppendLine("</table>");
|
||||
|
||||
//일별경고(월요일제외)
|
||||
|
||||
if (MailJD != null)
|
||||
{
|
||||
var mail_subject = MailJD.subject;//.Replace("{담당자}", userinfo.name).Replace("{사번}", userinfo.id);
|
||||
var mail_to = MailJD.tolist;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_cc = string.Empty; //
|
||||
if (MailJD.cc != null) mail_cc = MailJD.cc;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_bcc = string.Empty;
|
||||
if (MailJD.bcc != null) mail_bcc = MailJD.bcc;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_body = MailJD.body;//.Replace("{담당자}", userinfo.name);
|
||||
//mail_body = mail_body.Replace("{사번}", userinfo.id);
|
||||
|
||||
//메일본문을 생성해서 진행해야함
|
||||
var mail_content = mail_body.Replace("{data}", body.ToString());
|
||||
|
||||
//메일데이터를 생성한다.
|
||||
//mail_to = "chikyun.kim@amkor.co.kr";
|
||||
//mail_bcc = string.Empty;
|
||||
//mail_cc = string.Empty;
|
||||
|
||||
mail_to = Pub.MailSort(mail_to, MailJD.exceptmail);
|
||||
if (string.IsNullOrEmpty(mail_to) == false)
|
||||
if (MailJD == null)
|
||||
{
|
||||
db = new EEEntities();
|
||||
db.MailData.Add(new MailData
|
||||
//토,일요일에는 동작하지 않는다
|
||||
addmsg($"[{vGcode}] 메일 양식(SN)이 입력되지 않았습니다");
|
||||
continue;
|
||||
}
|
||||
|
||||
//오늘날짜로 데이터가 등록되어있느지 확인한다.
|
||||
db = new EEEntities();
|
||||
var Existweek = db.MailData.AsNoTracking().Where(t => t.gcode == vGcode && t.cate == "SN" && t.pdate == str_dt).Any();
|
||||
if (Existweek)
|
||||
{
|
||||
addmsg($"[{vGcode}] 스케쥴(day)({str_dt}) 보고 메일이 이미 등록되어 있습니다");
|
||||
continue;
|
||||
}
|
||||
|
||||
//대상 사용자 목록을 추출한다
|
||||
//var ta = new DataSet1TableAdapters.vMailingProjectScheduleTableAdapter();
|
||||
//var users = new DataSet1.vMailingProjectScheduleDataTable();
|
||||
//ta.Fill(users);
|
||||
db = new EEEntities();
|
||||
var projects = db.Projects.AsNoTracking().Where(t => t.gcode == vGcode && t.status == "진행" && (t.isdel == null || t.isdel == false)).OrderBy(t => t.sdate).ToList();
|
||||
// db.vMailingProjectSchedule.ToList();// .vJobReportForUser.Where(t => t.gcode == Pub.vGcode).GroupBy(t => t.id);
|
||||
|
||||
addmsg($"[{vGcode}] {projects.Count} 건의 데이터가 확인 되었습니다");
|
||||
|
||||
//메일데이터 생성
|
||||
var body = new System.Text.StringBuilder();
|
||||
body.AppendLine("<table border='1' cellspacing='1' cellpadding='1' style='text-align:center;'>");
|
||||
body.AppendLine("<tr>");
|
||||
body.AppendLine("<td>시작일</td>");
|
||||
body.AppendLine("<td>상태</td>");
|
||||
body.AppendLine("<td>번호</td>");
|
||||
body.AppendLine("<td>Project</td>");
|
||||
body.AppendLine("<td>요청</td>");
|
||||
body.AppendLine("<td>Champion</td>");
|
||||
body.AppendLine("<td>협업</td>");
|
||||
body.AppendLine("<td>만료일</td>");
|
||||
body.AppendLine("<td>수량</td>");
|
||||
body.AppendLine("<td>외주금액</td>");
|
||||
body.AppendLine("<td>자체금액</td>");
|
||||
body.AppendLine("<td>절감액</td>");
|
||||
body.AppendLine("<td>CR/CF</td>");
|
||||
body.AppendLine("</tr>");
|
||||
|
||||
//var gp = projects.GroupBy(t => t.idx);
|
||||
foreach (var row in projects)
|
||||
{
|
||||
|
||||
//스케쥴에서 데이터를 찾는다.
|
||||
var cnt = db.EETGW_ProjectsSchedule.AsNoTracking().Where(t => t.gcode == vGcode && t.project == row.idx).Any();
|
||||
if (cnt == true) continue; //등록되었다
|
||||
|
||||
body.AppendLine($"<tr>");
|
||||
body.AppendLine($"<td>{row.sdate}</td>");
|
||||
body.AppendLine($"<td>{row.status}</td>");
|
||||
body.AppendLine($"<td>{row.idx}</td>");
|
||||
body.AppendLine($"<td>{row.name}</td>");
|
||||
body.AppendLine($"<td>{row.reqstaff}</td>");
|
||||
body.AppendLine($"<td>{row.userManager}</td>");
|
||||
body.AppendLine($"<td>{row.usermain}/{row.usersub}/{row.userhw2}</td>");
|
||||
body.AppendLine($"<td>{row.edate}</td>");
|
||||
body.AppendLine($"<td>{row.cnt}</td>");
|
||||
body.AppendLine($"<td>{row.costo}</td>");
|
||||
body.AppendLine($"<td>{row.costn}</td>");
|
||||
body.AppendLine($"<td>{row.costo - row.costn}</td>");
|
||||
body.AppendLine($"<td>{row.orderno}</td>");
|
||||
body.AppendLine($"</tr>");
|
||||
}
|
||||
body.AppendLine("</table>");
|
||||
|
||||
//일별경고(월요일제외)
|
||||
|
||||
if (MailJD != null)
|
||||
{
|
||||
var mail_subject = MailJD.subject;//.Replace("{담당자}", userinfo.name).Replace("{사번}", userinfo.id);
|
||||
var mail_to = MailJD.tolist;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_cc = string.Empty; //
|
||||
if (MailJD.cc != null) mail_cc = MailJD.cc;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_bcc = string.Empty;
|
||||
if (MailJD.bcc != null) mail_bcc = MailJD.bcc;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_body = MailJD.body;//.Replace("{담당자}", userinfo.name);
|
||||
//mail_body = mail_body.Replace("{사번}", userinfo.id);
|
||||
|
||||
//메일본문을 생성해서 진행해야함
|
||||
var mail_content = mail_body.Replace("{data}", body.ToString());
|
||||
|
||||
//메일데이터를 생성한다.
|
||||
//mail_to = "chikyun.kim@amkor.co.kr";
|
||||
//mail_bcc = string.Empty;
|
||||
//mail_cc = string.Empty;
|
||||
|
||||
mail_to = Pub.MailSort(mail_to, MailJD.exceptmail);
|
||||
if (string.IsNullOrEmpty(mail_to) == false)
|
||||
{
|
||||
gcode = Pub.vGcode,
|
||||
cate = "SN",
|
||||
subject = mail_subject,
|
||||
fromlist = "eetgw@amkor.co.kr",
|
||||
tolist = Pub.MailSort(mail_to, MailJD.exceptmail),
|
||||
bcc = mail_bcc,
|
||||
cc = Pub.MailSort(mail_cc, MailJD.exceptmailcc),
|
||||
pdate = DateTime.Now.ToShortDateString(),
|
||||
body = mail_content,
|
||||
wuid = "395552",
|
||||
wdate = DateTime.Now,
|
||||
});
|
||||
db.SaveChanges();
|
||||
addmsg($"메일 전송 완료(no스케쥴week)");
|
||||
System.Threading.Thread.Sleep(10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
addmsg("받는사람이 소거되어 메일을 생성하지 않습니다");
|
||||
db = new EEEntities();
|
||||
db.MailData.Add(new MailData
|
||||
{
|
||||
gcode = vGcode,
|
||||
cate = "SN",
|
||||
subject = mail_subject,
|
||||
fromlist = "EETGW@amkor.co.kr",
|
||||
tolist = Pub.MailSort(mail_to, MailJD.exceptmail),
|
||||
bcc = mail_bcc,
|
||||
cc = Pub.MailSort(mail_cc, MailJD.exceptmailcc),
|
||||
pdate = DateTime.Now.ToShortDateString(),
|
||||
body = mail_content,
|
||||
wuid = "DEV",
|
||||
wdate = DateTime.Now,
|
||||
});
|
||||
db.SaveChanges();
|
||||
addmsg($"[{vGcode}] 메일 전송 완료(no스케쥴week)");
|
||||
System.Threading.Thread.Sleep(10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
addmsg($"[{vGcode}] 받는사람이 소거되어 메일을 생성하지 않습니다");
|
||||
}
|
||||
}
|
||||
|
||||
System.Threading.Thread.Sleep(500);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void toolStripButton1_Click(object sender, EventArgs e)
|
||||
@@ -224,16 +239,16 @@ namespace JobReportMailService
|
||||
{
|
||||
if (task != null)
|
||||
{
|
||||
if (task.IsCompleted) this.toolStripButton1.Text = "완료";
|
||||
else if (task.IsCanceled) this.toolStripButton1.Text = "취소";
|
||||
else if (taskwait) this.toolStripButton1.Text = "대기상태";
|
||||
else this.toolStripButton1.Text = "가동중";
|
||||
this.toolStripButton1.Enabled = true;
|
||||
if (task.IsCompleted) this.btRun.Text = "완료";
|
||||
else if (task.IsCanceled) this.btRun.Text = "취소";
|
||||
else if (taskwait) this.btRun.Text = "대기상태";
|
||||
else this.btRun.Text = "가동중";
|
||||
this.btRun.Enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.toolStripButton1.Text = "사용불가";
|
||||
this.toolStripButton1.Enabled = false;
|
||||
this.btRun.Text = "사용불가";
|
||||
this.btRun.Enabled = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
<value>104, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="btRun.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
|
||||
|
||||
20
JobReportMailService/fScheduleDay.Designer.cs
generated
20
JobReportMailService/fScheduleDay.Designer.cs
generated
@@ -31,7 +31,7 @@ namespace JobReportMailService
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fScheduleDay));
|
||||
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
|
||||
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
|
||||
this.btRun = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
@@ -42,21 +42,21 @@ namespace JobReportMailService
|
||||
// toolStrip1
|
||||
//
|
||||
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripButton1});
|
||||
this.btRun});
|
||||
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.toolStrip1.Name = "toolStrip1";
|
||||
this.toolStrip1.Size = new System.Drawing.Size(473, 25);
|
||||
this.toolStrip1.TabIndex = 2;
|
||||
this.toolStrip1.Text = "toolStrip1";
|
||||
//
|
||||
// toolStripButton1
|
||||
// btRun
|
||||
//
|
||||
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
|
||||
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.toolStripButton1.Name = "toolStripButton1";
|
||||
this.toolStripButton1.Size = new System.Drawing.Size(48, 22);
|
||||
this.toolStripButton1.Text = "Run";
|
||||
this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
|
||||
this.btRun.Image = ((System.Drawing.Image)(resources.GetObject("btRun.Image")));
|
||||
this.btRun.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.btRun.Name = "btRun";
|
||||
this.btRun.Size = new System.Drawing.Size(48, 22);
|
||||
this.btRun.Text = "Run";
|
||||
this.btRun.Click += new System.EventHandler(this.toolStripButton1_Click);
|
||||
//
|
||||
// fScheduleDay
|
||||
//
|
||||
@@ -78,6 +78,6 @@ namespace JobReportMailService
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ToolStrip toolStrip1;
|
||||
private System.Windows.Forms.ToolStripButton toolStripButton1;
|
||||
private System.Windows.Forms.ToolStripButton btRun;
|
||||
}
|
||||
}
|
||||
@@ -26,8 +26,8 @@ namespace JobReportMailService
|
||||
{
|
||||
if (taskwait)
|
||||
{
|
||||
if(task != null)
|
||||
task.Wait(1000);
|
||||
if (task != null)
|
||||
task.Wait(1000);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace JobReportMailService
|
||||
ConsoleTime = DateTime.Now;
|
||||
}
|
||||
}
|
||||
else if (DateTime.Now.Hour < 10 ) //10시부터 동작한다
|
||||
else if (DateTime.Now.Hour < 10) //10시부터 동작한다
|
||||
{
|
||||
if ((DateTime.Now - ConsoleTime).TotalHours >= 1.0)
|
||||
{
|
||||
@@ -76,6 +76,8 @@ namespace JobReportMailService
|
||||
|
||||
});
|
||||
timer1.Start();
|
||||
if (Pub.setting.autoRunData)
|
||||
btRun.PerformClick();
|
||||
}
|
||||
|
||||
void RunData()
|
||||
@@ -84,19 +86,6 @@ namespace JobReportMailService
|
||||
|
||||
|
||||
var db = new EEEntities();
|
||||
|
||||
//메일양식이 지정되어있는지 체크
|
||||
var MailJD = db.MailForm.Where(t => t.gcode == Pub.vGcode & t.cate == "SJ").FirstOrDefault();
|
||||
|
||||
if (MailJD == null)
|
||||
{
|
||||
//토,일요일에는 동작하지 않는다
|
||||
addmsg("메일 양식(SJ)이 입력되지 않았습니다");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//기준일자는 오늘부터 -15일이다
|
||||
var sd = DateTime.Now.AddDays(-15);
|
||||
var ed = DateTime.Now;
|
||||
@@ -104,121 +93,143 @@ namespace JobReportMailService
|
||||
var str_ed = ed.ToShortDateString();
|
||||
var str_dt = DateTime.Now.ToShortDateString();
|
||||
|
||||
//오늘날짜로 데이터가 등록되어있느지 확인한다.
|
||||
db = new EEEntities();
|
||||
var Existweek = db.MailData.Where(t => t.gcode == Pub.vGcode && t.cate == "SJ" && t.wuid == "395552" && t.pdate == str_dt).Any();
|
||||
if (Existweek)
|
||||
var gcodelist = db.MailForm.GroupBy(t => t.gcode).ToList();
|
||||
foreach (var gcodedata in gcodelist)
|
||||
{
|
||||
addmsg($"스케쥴(day)({str_dt}) 보고 메일이 이미 등록되어 있습니다");
|
||||
return;
|
||||
}
|
||||
//메일양식이 지정되어있는지 체크
|
||||
var vGcode = gcodedata.Key;
|
||||
if (string.IsNullOrEmpty(vGcode)) continue;
|
||||
|
||||
//대상 사용자 목록을 추출한다
|
||||
var ta = new DataSet1TableAdapters.vMailingProjectScheduleTableAdapter();
|
||||
var users = new DataSet1.vMailingProjectScheduleDataTable();
|
||||
ta.Fill(users);
|
||||
//var users = db.vMailingProjectSchedule.ToList();// .vJobReportForUser.Where(t => t.gcode == Pub.vGcode).GroupBy(t => t.id);
|
||||
//메일양식이 지정되어있는지 체크
|
||||
var MailJD = db.MailForm.Where(t => t.gcode == vGcode & t.cate == "SJ").FirstOrDefault();
|
||||
|
||||
addmsg($"{users.Count} 명의 데이터가 확인 되었습니다");
|
||||
|
||||
//메일데이터 생성
|
||||
var body = new System.Text.StringBuilder();
|
||||
body.AppendLine("<table border='1' cellspacing='1' cellpadding='1' style='text-align:center;'>");
|
||||
body.AppendLine("<tr>");
|
||||
body.AppendLine("<td>진행(%)</td>");
|
||||
body.AppendLine("<td>Project</td>");
|
||||
body.AppendLine("<td>Champion</td>");
|
||||
body.AppendLine("<td>등록일</td>");
|
||||
body.AppendLine("<td>스케쥴</td>");
|
||||
body.AppendLine("</tr>");
|
||||
|
||||
var gp = users.GroupBy(t => t.idx);
|
||||
foreach (var row in gp)
|
||||
{
|
||||
var prc = row.Sum(t => t.progress) / row.Count();
|
||||
var dr = row.FirstOrDefault();
|
||||
body.AppendLine($"<tr>");
|
||||
body.AppendLine($"<td>{prc}</td>");
|
||||
body.AppendLine($"<td>[{dr.idx}] {dr.name}</td>");
|
||||
body.AppendLine($"<td>{dr.userManager}</td>");
|
||||
body.AppendLine($"<td>{dr.pdate}</td>");
|
||||
body.AppendLine("<td>");
|
||||
body.AppendLine("<table border='1' cellspacing='1' cellpadding='1' style='text-align:center;'>");
|
||||
body.AppendLine("<tr>");
|
||||
body.AppendLine("<td rowspan='2'>No</td><td rowspan='2'>Title</td><td colspan='2'>Plan(ww)</td><td colspan='2'>Actual(ww)</td><td>진행</td><td>비고</td>");
|
||||
body.AppendLine("</tr>");
|
||||
body.AppendLine("<tr>");
|
||||
body.AppendLine("<td>시작</td><td>완료</td><td>시작</td><td>완료</td><td>%</td><td> </td>");
|
||||
body.AppendLine("</tr>");
|
||||
var ll = row.OrderBy(t => t.seq).ToList();
|
||||
foreach (var srow in ll)
|
||||
if (MailJD == null)
|
||||
{
|
||||
//토,일요일에는 동작하지 않는다
|
||||
addmsg($"[{vGcode}] 메일 양식(SJ)이 입력되지 않았습니다");
|
||||
continue;
|
||||
}
|
||||
|
||||
//오늘날짜로 데이터가 등록되어있느지 확인한다.
|
||||
db = new EEEntities();
|
||||
var Existweek = db.MailData.Where(t => t.gcode == vGcode && t.cate == "SJ" && t.pdate == str_dt).Any();
|
||||
if (Existweek)
|
||||
{
|
||||
addmsg($"[{vGcode}] 스케쥴(day)({str_dt}) 보고 메일이 이미 등록되어 있습니다");
|
||||
continue;
|
||||
}
|
||||
|
||||
//대상 사용자 목록을 추출한다
|
||||
var ta = new DataSet1TableAdapters.vMailingProjectScheduleTableAdapter();
|
||||
var users = new DataSet1.vMailingProjectScheduleDataTable();
|
||||
ta.Fill(users,vGcode);
|
||||
//var users = db.vMailingProjectSchedule.ToList();// .vJobReportForUser.Where(t => t.gcode == Pub.vGcode).GroupBy(t => t.id);
|
||||
|
||||
addmsg($"[{vGcode}] {users.Count} 명의 데이터가 확인 되었습니다");
|
||||
|
||||
//메일데이터 생성
|
||||
var body = new System.Text.StringBuilder();
|
||||
body.AppendLine("<table border='1' cellspacing='1' cellpadding='1' style='text-align:center;'>");
|
||||
body.AppendLine("<tr>");
|
||||
body.AppendLine("<td>진행(%)</td>");
|
||||
body.AppendLine("<td>Project</td>");
|
||||
body.AppendLine("<td>Champion</td>");
|
||||
body.AppendLine("<td>등록일</td>");
|
||||
body.AppendLine("<td>스케쥴</td>");
|
||||
body.AppendLine("</tr>");
|
||||
|
||||
var gp = users.GroupBy(t => t.idx);
|
||||
foreach (var row in gp)
|
||||
{
|
||||
var prc = row.Sum(t => t.progress) / row.Count();
|
||||
var dr = row.FirstOrDefault();
|
||||
body.AppendLine($"<tr>");
|
||||
body.AppendLine($"<td>{srow.seq}</td>");
|
||||
body.AppendLine($"<td>{srow.title}</td>");
|
||||
body.AppendLine($"<td>{srow.sw}</td>");
|
||||
body.AppendLine($"<td>{srow.ew}</td>");
|
||||
body.AppendLine($"<td>{srow.swa}</td>");
|
||||
body.AppendLine($"<td>{srow.ewa}</td>");
|
||||
body.AppendLine($"<td>{srow.progress}</td>");
|
||||
body.AppendLine($"<td>{srow.memo}</td>");
|
||||
body.AppendLine($"<td>{prc}</td>");
|
||||
body.AppendLine($"<td>[{dr.idx}] {dr.name}</td>");
|
||||
body.AppendLine($"<td>{dr.userManager}</td>");
|
||||
body.AppendLine($"<td>{dr.pdate}</td>");
|
||||
body.AppendLine("<td>");
|
||||
body.AppendLine("<table border='1' cellspacing='1' cellpadding='1' style='text-align:center;'>");
|
||||
body.AppendLine("<tr>");
|
||||
body.AppendLine("<td rowspan='2'>No</td><td rowspan='2'>Title</td><td colspan='2'>Plan(ww)</td><td colspan='2'>Actual(ww)</td><td>진행</td><td>비고</td>");
|
||||
body.AppendLine("</tr>");
|
||||
body.AppendLine("<tr>");
|
||||
body.AppendLine("<td>시작</td><td>완료</td><td>시작</td><td>완료</td><td>%</td><td> </td>");
|
||||
body.AppendLine("</tr>");
|
||||
var ll = row.OrderBy(t => t.seq).ToList();
|
||||
foreach (var srow in ll)
|
||||
{
|
||||
body.AppendLine($"<tr>");
|
||||
body.AppendLine($"<td>{srow.seq}</td>");
|
||||
body.AppendLine($"<td>{srow.title}</td>");
|
||||
body.AppendLine($"<td>{srow.sw}</td>");
|
||||
body.AppendLine($"<td>{srow.ew}</td>");
|
||||
body.AppendLine($"<td>{srow.swa}</td>");
|
||||
body.AppendLine($"<td>{srow.ewa}</td>");
|
||||
body.AppendLine($"<td>{srow.progress}</td>");
|
||||
body.AppendLine($"<td>{srow.memo}</td>");
|
||||
body.AppendLine($"</tr>");
|
||||
}
|
||||
body.AppendLine("</table>");
|
||||
body.AppendLine("</td>");
|
||||
//여기에 스케쥴이 들어가야한다
|
||||
body.AppendLine($"</tr>");
|
||||
}
|
||||
body.AppendLine("</table>");
|
||||
body.AppendLine("</td>");
|
||||
//여기에 스케쥴이 들어가야한다
|
||||
body.AppendLine($"</tr>");
|
||||
}
|
||||
body.AppendLine("</table>");
|
||||
|
||||
//일별경고(월요일제외)
|
||||
//일별경고(월요일제외)
|
||||
|
||||
if (MailJD != null)
|
||||
{
|
||||
var mail_subject = MailJD.subject;//.Replace("{담당자}", userinfo.name).Replace("{사번}", userinfo.id);
|
||||
var mail_to = MailJD.tolist;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_cc = string.Empty; //
|
||||
if (MailJD.cc != null) mail_cc = MailJD.cc;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_bcc = string.Empty;
|
||||
if (MailJD.bcc != null) mail_bcc = MailJD.bcc;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_body = MailJD.body;//.Replace("{담당자}", userinfo.name);
|
||||
//mail_body = mail_body.Replace("{사번}", userinfo.id);
|
||||
|
||||
//메일본문을 생성해서 진행해야함
|
||||
var mail_content = mail_body.Replace("{data}", body.ToString());
|
||||
|
||||
//메일데이터를 생성한다.
|
||||
//mail_to = "chikyun.kim@amkor.co.kr";
|
||||
//mail_bcc = string.Empty;
|
||||
//mail_cc = string.Empty;
|
||||
|
||||
mail_to = Pub.MailSort(mail_to, MailJD.exceptmail);
|
||||
if (string.IsNullOrEmpty(mail_to) == false)
|
||||
if (MailJD != null)
|
||||
{
|
||||
db = new EEEntities();
|
||||
db.MailData.Add(new MailData
|
||||
var mail_subject = MailJD.subject;//.Replace("{담당자}", userinfo.name).Replace("{사번}", userinfo.id);
|
||||
var mail_to = MailJD.tolist;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_cc = string.Empty; //
|
||||
if (MailJD.cc != null) mail_cc = MailJD.cc;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_bcc = string.Empty;
|
||||
if (MailJD.bcc != null) mail_bcc = MailJD.bcc;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_body = MailJD.body;//.Replace("{담당자}", userinfo.name);
|
||||
//mail_body = mail_body.Replace("{사번}", userinfo.id);
|
||||
|
||||
//메일본문을 생성해서 진행해야함
|
||||
var mail_content = mail_body.Replace("{data}", body.ToString());
|
||||
|
||||
//메일데이터를 생성한다.
|
||||
//mail_to = "chikyun.kim@amkor.co.kr";
|
||||
//mail_bcc = string.Empty;
|
||||
//mail_cc = string.Empty;
|
||||
|
||||
mail_to = Pub.MailSort(mail_to, MailJD.exceptmail);
|
||||
if (string.IsNullOrEmpty(mail_to) == false)
|
||||
{
|
||||
gcode = Pub.vGcode,
|
||||
cate = "SJ",
|
||||
subject = mail_subject,
|
||||
fromlist = "eetgw@amkor.co.kr",
|
||||
tolist = Pub.MailSort(mail_to, MailJD.exceptmail),
|
||||
bcc = mail_bcc,
|
||||
cc = Pub.MailSort(mail_cc, MailJD.exceptmailcc),
|
||||
pdate = DateTime.Now.ToShortDateString(),
|
||||
body = mail_content,
|
||||
wuid = "395552",
|
||||
wdate = DateTime.Now,
|
||||
});
|
||||
db.SaveChanges();
|
||||
addmsg($"메일 전송 완료(스케쥴day)");
|
||||
System.Threading.Thread.Sleep(10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
addmsg("받는사람이 소거되어 메일을 생성하지 않습니다");
|
||||
db = new EEEntities();
|
||||
db.MailData.Add(new MailData
|
||||
{
|
||||
gcode = vGcode,
|
||||
cate = "SJ",
|
||||
subject = mail_subject,
|
||||
fromlist = "eetgw@amkor.co.kr",
|
||||
tolist = Pub.MailSort(mail_to, MailJD.exceptmail),
|
||||
bcc = mail_bcc,
|
||||
cc = Pub.MailSort(mail_cc, MailJD.exceptmailcc),
|
||||
pdate = DateTime.Now.ToShortDateString(),
|
||||
body = mail_content,
|
||||
wuid = "DEV",
|
||||
wdate = DateTime.Now,
|
||||
});
|
||||
db.SaveChanges();
|
||||
addmsg($"[{vGcode}] 메일 전송 완료(스케쥴day)");
|
||||
System.Threading.Thread.Sleep(10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
addmsg($"[{vGcode}] 받는사람이 소거되어 메일을 생성하지 않습니다");
|
||||
}
|
||||
}
|
||||
System.Threading.Thread.Sleep(500);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void toolStripButton1_Click(object sender, EventArgs e)
|
||||
@@ -230,16 +241,16 @@ namespace JobReportMailService
|
||||
{
|
||||
if (task != null)
|
||||
{
|
||||
if (task.IsCompleted) this.toolStripButton1.Text = "완료";
|
||||
else if (task.IsCanceled) this.toolStripButton1.Text = "취소";
|
||||
else if (taskwait) this.toolStripButton1.Text = "대기상태";
|
||||
else this.toolStripButton1.Text = "가동중";
|
||||
this.toolStripButton1.Enabled = true;
|
||||
if (task.IsCompleted) this.btRun.Text = "완료";
|
||||
else if (task.IsCanceled) this.btRun.Text = "취소";
|
||||
else if (taskwait) this.btRun.Text = "대기상태";
|
||||
else this.btRun.Text = "가동중";
|
||||
this.btRun.Enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.toolStripButton1.Text = "사용불가";
|
||||
this.toolStripButton1.Enabled = false;
|
||||
this.btRun.Text = "사용불가";
|
||||
this.btRun.Enabled = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
<value>104, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="btRun.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
|
||||
|
||||
20
JobReportMailService/fScheduleDayWeek.Designer.cs
generated
20
JobReportMailService/fScheduleDayWeek.Designer.cs
generated
@@ -31,7 +31,7 @@ namespace JobReportMailService
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fScheduleDayWeek));
|
||||
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
|
||||
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
|
||||
this.btRun = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
@@ -42,21 +42,21 @@ namespace JobReportMailService
|
||||
// toolStrip1
|
||||
//
|
||||
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripButton1});
|
||||
this.btRun});
|
||||
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.toolStrip1.Name = "toolStrip1";
|
||||
this.toolStrip1.Size = new System.Drawing.Size(473, 25);
|
||||
this.toolStrip1.TabIndex = 2;
|
||||
this.toolStrip1.Text = "toolStrip1";
|
||||
//
|
||||
// toolStripButton1
|
||||
// btRun
|
||||
//
|
||||
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
|
||||
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.toolStripButton1.Name = "toolStripButton1";
|
||||
this.toolStripButton1.Size = new System.Drawing.Size(48, 22);
|
||||
this.toolStripButton1.Text = "Run";
|
||||
this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
|
||||
this.btRun.Image = ((System.Drawing.Image)(resources.GetObject("btRun.Image")));
|
||||
this.btRun.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.btRun.Name = "btRun";
|
||||
this.btRun.Size = new System.Drawing.Size(48, 22);
|
||||
this.btRun.Text = "Run";
|
||||
this.btRun.Click += new System.EventHandler(this.toolStripButton1_Click);
|
||||
//
|
||||
// fScheduleDayWeek
|
||||
//
|
||||
@@ -78,6 +78,6 @@ namespace JobReportMailService
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ToolStrip toolStrip1;
|
||||
private System.Windows.Forms.ToolStripButton toolStripButton1;
|
||||
private System.Windows.Forms.ToolStripButton btRun;
|
||||
}
|
||||
}
|
||||
@@ -26,8 +26,8 @@ namespace JobReportMailService
|
||||
{
|
||||
if (taskwait)
|
||||
{
|
||||
if(task != null)
|
||||
task.Wait(1000);
|
||||
if (task != null)
|
||||
task.Wait(1000);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -75,6 +75,8 @@ namespace JobReportMailService
|
||||
|
||||
});
|
||||
timer1.Start();
|
||||
if (Pub.setting.autoRunData)
|
||||
btRun.PerformClick();
|
||||
}
|
||||
|
||||
void RunData()
|
||||
@@ -84,16 +86,6 @@ namespace JobReportMailService
|
||||
|
||||
var db = new EEEntities();
|
||||
|
||||
//메일양식이 지정되어있는지 체크
|
||||
var MailJD = db.MailForm.Where(t => t.gcode == Pub.vGcode & t.cate == "SP").FirstOrDefault();
|
||||
|
||||
if (MailJD == null)
|
||||
{
|
||||
//토,일요일에는 동작하지 않는다
|
||||
addmsg("메일 양식(SP)이 입력되지 않았습니다");
|
||||
return;
|
||||
}
|
||||
|
||||
//기준일자는 오늘부터 -15일이다
|
||||
var sd = DateTime.Now.AddDays(-15);
|
||||
var ed = DateTime.Now;
|
||||
@@ -101,121 +93,147 @@ namespace JobReportMailService
|
||||
var str_ed = ed.ToShortDateString();
|
||||
var str_dt = DateTime.Now.ToShortDateString();
|
||||
|
||||
//오늘날짜로 데이터가 등록되어있느지 확인한다.
|
||||
db = new EEEntities();
|
||||
var Existweek = db.MailData.Where(t => t.gcode == Pub.vGcode && t.cate == "SP" && t.wuid == "395552" && t.pdate == str_dt).Any();
|
||||
if (Existweek)
|
||||
|
||||
var gcodelist = db.MailForm.GroupBy(t => t.gcode).ToList();
|
||||
foreach (var gcodedata in gcodelist)
|
||||
{
|
||||
addmsg($"스케쥴(day)({str_dt}) 보고 메일이 이미 등록되어 있습니다");
|
||||
return;
|
||||
}
|
||||
//메일양식이 지정되어있는지 체크
|
||||
var vGcode = gcodedata.Key;
|
||||
if (string.IsNullOrEmpty(vGcode)) continue;
|
||||
|
||||
//대상 사용자 목록을 추출한다
|
||||
var ta = new DataSet1TableAdapters.vMailingProjectScheduleTableAdapter();
|
||||
var users = new DataSet1.vMailingProjectScheduleDataTable();
|
||||
ta.Fill(users);
|
||||
//var users = db.vMailingProjectSchedule.ToList();// .vJobReportForUser.Where(t => t.gcode == Pub.vGcode).GroupBy(t => t.id);
|
||||
//메일양식이 지정되어있는지 체크
|
||||
var MailJD = db.MailForm.Where(t => t.gcode == vGcode & t.cate == "SP").FirstOrDefault();
|
||||
|
||||
addmsg($"{users.Count} 명의 데이터가 확인 되었습니다");
|
||||
|
||||
//메일데이터 생성
|
||||
var body = new System.Text.StringBuilder();
|
||||
body.AppendLine("<table border='1' cellspacing='1' cellpadding='1' style='text-align:center;'>");
|
||||
body.AppendLine("<tr>");
|
||||
body.AppendLine("<td>진행(%)</td>");
|
||||
body.AppendLine("<td>Project</td>");
|
||||
body.AppendLine("<td>Champion</td>");
|
||||
body.AppendLine("<td>등록일</td>");
|
||||
body.AppendLine("<td>스케쥴</td>");
|
||||
body.AppendLine("</tr>");
|
||||
|
||||
var gp = users.GroupBy(t => t.idx);
|
||||
foreach (var row in gp)
|
||||
{
|
||||
var prc = row.Sum(t => t.progress) / row.Count();
|
||||
var dr = row.FirstOrDefault();
|
||||
body.AppendLine($"<tr>");
|
||||
body.AppendLine($"<td>{prc}</td>");
|
||||
body.AppendLine($"<td>[{dr.idx}] {dr.name}</td>");
|
||||
body.AppendLine($"<td>{dr.userManager}</td>");
|
||||
body.AppendLine($"<td>{dr.pdate}</td>");
|
||||
body.AppendLine("<td>");
|
||||
body.AppendLine("<table border='1' cellspacing='1' cellpadding='1' style='text-align:center;'>");
|
||||
body.AppendLine("<tr>");
|
||||
body.AppendLine("<td rowspan='2'>No</td><td rowspan='2'>Title</td><td colspan='2'>Plan(ww)</td><td colspan='2'>Actual(ww)</td><td>진행</td><td>비고</td>");
|
||||
body.AppendLine("</tr>");
|
||||
body.AppendLine("<tr>");
|
||||
body.AppendLine("<td>시작</td><td>완료</td><td>시작</td><td>완료</td><td>%</td><td> </td>");
|
||||
body.AppendLine("</tr>");
|
||||
var ll = row.OrderBy(t => t.seq).ToList();
|
||||
foreach (var srow in ll)
|
||||
if (MailJD == null)
|
||||
{
|
||||
//토,일요일에는 동작하지 않는다
|
||||
addmsg($"[{vGcode}] 메일 양식(SP)이 입력되지 않았습니다");
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//오늘날짜로 데이터가 등록되어있느지 확인한다.
|
||||
db = new EEEntities();
|
||||
var Existweek = db.MailData.Where(t => t.gcode == vGcode && t.cate == "SP" && t.pdate == str_dt).Any();
|
||||
if (Existweek)
|
||||
{
|
||||
addmsg($"[{vGcode}] 스케쥴(day)({str_dt}) 보고 메일이 이미 등록되어 있습니다");
|
||||
continue;
|
||||
}
|
||||
|
||||
//대상 사용자 목록을 추출한다
|
||||
var ta = new DataSet1TableAdapters.vMailingProjectScheduleTableAdapter();
|
||||
var users = new DataSet1.vMailingProjectScheduleDataTable();
|
||||
ta.Fill(users,vGcode);
|
||||
//var users = db.vMailingProjectSchedule.ToList();// .vJobReportForUser.Where(t => t.gcode == Pub.vGcode).GroupBy(t => t.id);
|
||||
|
||||
addmsg($"[{vGcode}] {users.Count} 명의 데이터가 확인 되었습니다");
|
||||
|
||||
//메일데이터 생성
|
||||
var body = new System.Text.StringBuilder();
|
||||
body.AppendLine("<table border='1' cellspacing='1' cellpadding='1' style='text-align:center;'>");
|
||||
body.AppendLine("<tr>");
|
||||
body.AppendLine("<td>진행(%)</td>");
|
||||
body.AppendLine("<td>Project</td>");
|
||||
body.AppendLine("<td>Champion</td>");
|
||||
body.AppendLine("<td>등록일</td>");
|
||||
body.AppendLine("<td>스케쥴</td>");
|
||||
body.AppendLine("</tr>");
|
||||
|
||||
var gp = users.GroupBy(t => t.idx);
|
||||
foreach (var row in gp)
|
||||
{
|
||||
var prc = row.Sum(t => t.progress) / row.Count();
|
||||
var dr = row.FirstOrDefault();
|
||||
body.AppendLine($"<tr>");
|
||||
body.AppendLine($"<td>{srow.seq}</td>");
|
||||
body.AppendLine($"<td>{srow.title}</td>");
|
||||
body.AppendLine($"<td>{srow.sw}</td>");
|
||||
body.AppendLine($"<td>{srow.ew}</td>");
|
||||
body.AppendLine($"<td>{srow.swa}</td>");
|
||||
body.AppendLine($"<td>{srow.ewa}</td>");
|
||||
body.AppendLine($"<td>{srow.progress}</td>");
|
||||
body.AppendLine($"<td>{srow.memo}</td>");
|
||||
body.AppendLine($"<td>{prc}</td>");
|
||||
body.AppendLine($"<td>[{dr.idx}] {dr.name}</td>");
|
||||
body.AppendLine($"<td>{dr.userManager}</td>");
|
||||
body.AppendLine($"<td>{dr.pdate}</td>");
|
||||
body.AppendLine("<td>");
|
||||
body.AppendLine("<table border='1' cellspacing='1' cellpadding='1' style='text-align:center;'>");
|
||||
body.AppendLine("<tr>");
|
||||
body.AppendLine("<td rowspan='2'>No</td><td rowspan='2'>Title</td><td colspan='2'>Plan(ww)</td><td colspan='2'>Actual(ww)</td><td>진행</td><td>비고</td>");
|
||||
body.AppendLine("</tr>");
|
||||
body.AppendLine("<tr>");
|
||||
body.AppendLine("<td>시작</td><td>완료</td><td>시작</td><td>완료</td><td>%</td><td> </td>");
|
||||
body.AppendLine("</tr>");
|
||||
var ll = row.OrderBy(t => t.seq).ToList();
|
||||
foreach (var srow in ll)
|
||||
{
|
||||
body.AppendLine($"<tr>");
|
||||
body.AppendLine($"<td>{srow.seq}</td>");
|
||||
body.AppendLine($"<td>{srow.title}</td>");
|
||||
body.AppendLine($"<td>{srow.sw}</td>");
|
||||
body.AppendLine($"<td>{srow.ew}</td>");
|
||||
body.AppendLine($"<td>{srow.swa}</td>");
|
||||
body.AppendLine($"<td>{srow.ewa}</td>");
|
||||
body.AppendLine($"<td>{srow.progress}</td>");
|
||||
body.AppendLine($"<td>{srow.memo}</td>");
|
||||
body.AppendLine($"</tr>");
|
||||
}
|
||||
body.AppendLine("</table>");
|
||||
body.AppendLine("</td>");
|
||||
//여기에 스케쥴이 들어가야한다
|
||||
body.AppendLine($"</tr>");
|
||||
}
|
||||
body.AppendLine("</table>");
|
||||
body.AppendLine("</td>");
|
||||
//여기에 스케쥴이 들어가야한다
|
||||
body.AppendLine($"</tr>");
|
||||
}
|
||||
body.AppendLine("</table>");
|
||||
|
||||
//일별경고(월요일제외)
|
||||
//일별경고(월요일제외)
|
||||
|
||||
if (MailJD != null)
|
||||
{
|
||||
var mail_subject = MailJD.subject;//.Replace("{담당자}", userinfo.name).Replace("{사번}", userinfo.id);
|
||||
var mail_to = MailJD.tolist;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_cc = string.Empty; //
|
||||
if (MailJD.cc != null) mail_cc = MailJD.cc;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_bcc = string.Empty;
|
||||
if (MailJD.bcc != null) mail_bcc = MailJD.bcc;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_body = MailJD.body;//.Replace("{담당자}", userinfo.name);
|
||||
//mail_body = mail_body.Replace("{사번}", userinfo.id);
|
||||
|
||||
//메일본문을 생성해서 진행해야함
|
||||
var mail_content = mail_body.Replace("{data}", body.ToString());
|
||||
|
||||
//메일데이터를 생성한다.
|
||||
//mail_to = "chikyun.kim@amkor.co.kr";
|
||||
//mail_bcc = string.Empty;
|
||||
//mail_cc = string.Empty;
|
||||
|
||||
mail_to = Pub.MailSort(mail_to, MailJD.exceptmail);
|
||||
if (string.IsNullOrEmpty(mail_to) == false)
|
||||
if (MailJD != null)
|
||||
{
|
||||
db = new EEEntities();
|
||||
db.MailData.Add(new MailData
|
||||
var mail_subject = MailJD.subject;//.Replace("{담당자}", userinfo.name).Replace("{사번}", userinfo.id);
|
||||
var mail_to = MailJD.tolist;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_cc = string.Empty; //
|
||||
if (MailJD.cc != null) mail_cc = MailJD.cc;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_bcc = string.Empty;
|
||||
if (MailJD.bcc != null) mail_bcc = MailJD.bcc;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_body = MailJD.body;//.Replace("{담당자}", userinfo.name);
|
||||
//mail_body = mail_body.Replace("{사번}", userinfo.id);
|
||||
|
||||
//메일본문을 생성해서 진행해야함
|
||||
var mail_content = mail_body.Replace("{data}", body.ToString());
|
||||
|
||||
//메일데이터를 생성한다.
|
||||
//mail_to = "chikyun.kim@amkor.co.kr";
|
||||
//mail_bcc = string.Empty;
|
||||
//mail_cc = string.Empty;
|
||||
|
||||
mail_to = Pub.MailSort(mail_to, MailJD.exceptmail);
|
||||
if (string.IsNullOrEmpty(mail_to) == false)
|
||||
{
|
||||
gcode = Pub.vGcode,
|
||||
cate = "SP",
|
||||
subject = mail_subject,
|
||||
fromlist = "eetgw@amkor.co.kr",
|
||||
tolist = Pub.MailSort(mail_to, MailJD.exceptmail),
|
||||
bcc = mail_bcc,
|
||||
cc = Pub.MailSort(mail_cc, MailJD.exceptmailcc),
|
||||
pdate = DateTime.Now.ToShortDateString(),
|
||||
body = mail_content,
|
||||
wuid = "395552",
|
||||
wdate = DateTime.Now,
|
||||
});
|
||||
db.SaveChanges();
|
||||
addmsg($"메일 전송 완료(스케쥴day)");
|
||||
System.Threading.Thread.Sleep(10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
addmsg("받는사람이 소거되어 메일을 생성하지 않습니다");
|
||||
db = new EEEntities();
|
||||
db.MailData.Add(new MailData
|
||||
{
|
||||
gcode = vGcode,
|
||||
cate = "SP",
|
||||
subject = mail_subject,
|
||||
fromlist = "eetgw@amkor.co.kr",
|
||||
tolist = Pub.MailSort(mail_to, MailJD.exceptmail),
|
||||
bcc = mail_bcc,
|
||||
cc = Pub.MailSort(mail_cc, MailJD.exceptmailcc),
|
||||
pdate = DateTime.Now.ToShortDateString(),
|
||||
body = mail_content,
|
||||
wuid = "DEV",
|
||||
wdate = DateTime.Now,
|
||||
});
|
||||
db.SaveChanges();
|
||||
addmsg($"[{vGcode}] 메일 전송 완료(스케쥴day)");
|
||||
System.Threading.Thread.Sleep(10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
addmsg($"[{vGcode}] 받는사람이 소거되어 메일을 생성하지 않습니다");
|
||||
}
|
||||
}
|
||||
|
||||
System.Threading.Thread.Sleep(500);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void toolStripButton1_Click(object sender, EventArgs e)
|
||||
@@ -227,16 +245,16 @@ namespace JobReportMailService
|
||||
{
|
||||
if (task != null)
|
||||
{
|
||||
if (task.IsCompleted) this.toolStripButton1.Text = "완료";
|
||||
else if (task.IsCanceled) this.toolStripButton1.Text = "취소";
|
||||
else if (taskwait) this.toolStripButton1.Text = "대기상태";
|
||||
else this.toolStripButton1.Text = "가동중";
|
||||
this.toolStripButton1.Enabled = true;
|
||||
if (task.IsCompleted) this.btRun.Text = "완료";
|
||||
else if (task.IsCanceled) this.btRun.Text = "취소";
|
||||
else if (taskwait) this.btRun.Text = "대기상태";
|
||||
else this.btRun.Text = "가동중";
|
||||
this.btRun.Enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.toolStripButton1.Text = "사용불가";
|
||||
this.toolStripButton1.Enabled = false;
|
||||
this.btRun.Text = "사용불가";
|
||||
this.btRun.Enabled = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
<value>104, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="btRun.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
|
||||
|
||||
20
JobReportMailService/fSendMail.Designer.cs
generated
20
JobReportMailService/fSendMail.Designer.cs
generated
@@ -31,7 +31,7 @@ namespace JobReportMailService
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fSendMail));
|
||||
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
|
||||
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
|
||||
this.btRun = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
@@ -42,21 +42,21 @@ namespace JobReportMailService
|
||||
// toolStrip1
|
||||
//
|
||||
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripButton1});
|
||||
this.btRun});
|
||||
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.toolStrip1.Name = "toolStrip1";
|
||||
this.toolStrip1.Size = new System.Drawing.Size(473, 25);
|
||||
this.toolStrip1.TabIndex = 2;
|
||||
this.toolStrip1.Text = "toolStrip1";
|
||||
//
|
||||
// toolStripButton1
|
||||
// btRun
|
||||
//
|
||||
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
|
||||
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.toolStripButton1.Name = "toolStripButton1";
|
||||
this.toolStripButton1.Size = new System.Drawing.Size(48, 22);
|
||||
this.toolStripButton1.Text = "Run";
|
||||
this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
|
||||
this.btRun.Image = ((System.Drawing.Image)(resources.GetObject("btRun.Image")));
|
||||
this.btRun.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.btRun.Name = "btRun";
|
||||
this.btRun.Size = new System.Drawing.Size(48, 22);
|
||||
this.btRun.Text = "Run";
|
||||
this.btRun.Click += new System.EventHandler(this.toolStripButton1_Click);
|
||||
//
|
||||
// fSendMail
|
||||
//
|
||||
@@ -78,6 +78,6 @@ namespace JobReportMailService
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ToolStrip toolStrip1;
|
||||
private System.Windows.Forms.ToolStripButton toolStripButton1;
|
||||
private System.Windows.Forms.ToolStripButton btRun;
|
||||
}
|
||||
}
|
||||
@@ -54,6 +54,8 @@ namespace JobReportMailService
|
||||
|
||||
});
|
||||
timer1.Start();
|
||||
if (Pub.setting.autoRunData)
|
||||
btRun.PerformClick();
|
||||
}
|
||||
|
||||
void RunData()
|
||||
@@ -65,7 +67,7 @@ namespace JobReportMailService
|
||||
|
||||
void SendMail()
|
||||
{
|
||||
|
||||
//그룹무관하게 모든 자료를 전송처리한다
|
||||
var ta = new DataSet1TableAdapters.MailDataTableAdapter();
|
||||
var sendList = ta.GetData(); //발송되지않은 메일목록
|
||||
|
||||
@@ -79,6 +81,7 @@ namespace JobReportMailService
|
||||
var list_to = getMaillist(dr.tolist);
|
||||
var list_bcc = getMaillist(dr.bcc);
|
||||
var list_cc = getMaillist(dr.cc);
|
||||
|
||||
|
||||
string sendMsg = "";
|
||||
if (list_from == "")
|
||||
@@ -205,7 +208,7 @@ namespace JobReportMailService
|
||||
newdr.body = dr.body;
|
||||
newdr.aidx = dr.idx;
|
||||
newdr.atime = dr.stime;
|
||||
newdr.wuid = "MANAGER";
|
||||
newdr.wuid = "DEV";
|
||||
newdr.wdate = DateTime.Now;
|
||||
dtInsert.AddMailDataRow(newdr);
|
||||
try
|
||||
@@ -256,16 +259,16 @@ namespace JobReportMailService
|
||||
{
|
||||
if (task != null)
|
||||
{
|
||||
if (task.IsCompleted) this.toolStripButton1.Text = "완료";
|
||||
else if (task.IsCanceled) this.toolStripButton1.Text = "취소";
|
||||
else if (taskwait) this.toolStripButton1.Text = "대기상태";
|
||||
else this.toolStripButton1.Text = "가동중";
|
||||
this.toolStripButton1.Enabled = true;
|
||||
if (task.IsCompleted) this.btRun.Text = "완료";
|
||||
else if (task.IsCanceled) this.btRun.Text = "취소";
|
||||
else if (taskwait) this.btRun.Text = "대기상태";
|
||||
else this.btRun.Text = "가동중";
|
||||
this.btRun.Enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.toolStripButton1.Text = "사용불가";
|
||||
this.toolStripButton1.Enabled = false;
|
||||
this.btRun.Text = "사용불가";
|
||||
this.btRun.Enabled = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
<value>104, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="btRun.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
|
||||
|
||||
75
JobReportMailService/fSetup.Designer.cs
generated
Normal file
75
JobReportMailService/fSetup.Designer.cs
generated
Normal file
@@ -0,0 +1,75 @@
|
||||
|
||||
namespace JobReportMailService
|
||||
{
|
||||
partial class fSetup
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.propertyGrid1 = new System.Windows.Forms.PropertyGrid();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// propertyGrid1
|
||||
//
|
||||
this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.propertyGrid1.Location = new System.Drawing.Point(0, 0);
|
||||
this.propertyGrid1.Name = "propertyGrid1";
|
||||
this.propertyGrid1.Size = new System.Drawing.Size(457, 486);
|
||||
this.propertyGrid1.TabIndex = 0;
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.button1.Location = new System.Drawing.Point(0, 486);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(457, 68);
|
||||
this.button1.TabIndex = 1;
|
||||
this.button1.Text = "button1";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||
//
|
||||
// fSetup
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(457, 554);
|
||||
this.Controls.Add(this.propertyGrid1);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Name = "fSetup";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "fSetup";
|
||||
this.Load += new System.EventHandler(this.fSetup_Load);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.PropertyGrid propertyGrid1;
|
||||
private System.Windows.Forms.Button button1;
|
||||
}
|
||||
}
|
||||
33
JobReportMailService/fSetup.cs
Normal file
33
JobReportMailService/fSetup.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace JobReportMailService
|
||||
{
|
||||
public partial class fSetup : Form
|
||||
{
|
||||
public fSetup()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.propertyGrid1.SelectedObject = Pub.setting;
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Validate();
|
||||
Pub.setting.Save();
|
||||
DialogResult = DialogResult.OK;
|
||||
}
|
||||
|
||||
private void fSetup_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
120
JobReportMailService/fSetup.resx
Normal file
120
JobReportMailService/fSetup.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
Reference in New Issue
Block a user