рдпрд╣ рдкреЛрд╕реНрдЯ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдпрд╛ рдХрд┐рд╕реА рднреА рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЧрддрд┐рд╢реАрд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЗрд▓рд┐рдВрдЧ рдХреЗ рдХрд╛рд░реНрдп рд╕реЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреА рдХрдВрдкрдиреА рдХреА рд╢рд╛рдЦрд╛рдУрдВ рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╢рд╛рдЦрд╛ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ рд╡рд┐рддрд░рдг рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдХреА рд╢рд╛рдЦрд╛ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП - рдЯреЗрдмрд▓, рдЧреНрд░рд╛рдл, рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдЬрд╛рдирдХрд╛рд░реАред рддрджрдиреБрд╕рд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП, рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЕрджреНрд╡рд┐рддреАрдп рд╣реИред
рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд░рдирд╛ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ
рдХреНрд░рд┐рд╕реНрдЯрд▓ рд░рд┐рдкреЛрд░реНрдЯреНрд╕ 2008 рдФрд░
рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2010 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЖрдк рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рд╡рд┐рддрд░рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдЬрд╛рдирдХрд╛рд░реА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реЛред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд░рд┐рдкреЛрд░реНрдЯ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рдЦрд╛ рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдо:

рдХреНрд░рд┐рд╕реНрдЯрд▓ рд░рд┐рдкреЛрд░реНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдмрд┐рдХреНрд░реА, рдЦрд░реНрдЪреЛрдВ рдФрд░ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╕рдВрдХреЗрддрдХреЛрдВ рдкрд░ рдбреЗрдЯрд╛ рдпреБрдХреНрдд рд░рд┐рдкреЛрд░реНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ, рд╣рдо рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдХреНрд╡реЗрд░реА рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд░рд┐рдХреЙрд░реНрдб рдЪрдпрди рдлреЙрд░реНрдореВрд▓рд╛ рдореЗрдВ рд╣рдо рдПрдХ рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢рд╛рдЦрд╛ рд╕рдВрдЦреНрдпрд╛ 1 рд╣реИ:
{data.branch} = 1
рдЪреВрдБрдХрд┐ рдХреНрд░рд┐рд╕реНрдЯрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдПрдХ рдХрд╛рдлреА рд▓рдЪреАрд▓реА рдЙрдкрдХрд░рдг рд╣реЛрддреА рд╣реИ, рдЕрдкрдиреЗ рдФрдЬрд╛рд░реЛрдВ рдЬреИрд╕реЗ рдХрд┐ рд╕реВрддреНрд░ рдФрд░ рдЙрдк-рдЦрд╛рддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдХреЛрдИ рднреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рд╛рд░реВрдк рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ: рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдХ-рдкреГрд╖реНрда рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ рд▓реЗрдХрд░ рдЯреЗрдмрд▓ рдФрд░ рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрд╡реИрдЪреНрдЫрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдЕрдзреНрдпрдпрди рддрдХред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░рд┐рдХреЙрд░реНрдб рдЪрдпрди рдлреЙрд░реНрдореВрд▓рд╛ рдХреЛ рдмрджрд▓рддреЗ рд╣реБрдП, рд╣рдо рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╢рд╛рдЦрд╛ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдЧреЗ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рд╛рд░реВрдк (рдкреАрдбреАрдПрдл, xls, рдЖрд░рдЯреАрдПрдл) рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдФрд░ рдИ-рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдЦрд╛ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХрд╛ рдИрдореЗрд▓ рд╣реИред рд╣рдореЗрдВ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреА рддрд░реНрдЬ рдкрд░ рдПрдХ рд▓реВрдк рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдЧрд▓рд╛, рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╢рд╛рдЦрд╛ рд╕рдВрдЦреНрдпрд╛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдЪрдпрди рдлреЙрд░реНрдореВрд▓реЗ рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛, рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдПрдХ рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рдкрддреНрд░ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВред рд╣рдо рдкрддреНрд░ рдХреЛ рдЙрдЪрд┐рдд рдкрддреЗ рдкрд░ рднреЗрдЬрддреЗ рд╣реИрдВред
рдХреНрд░рд┐рд╕реНрдЯрд▓ рд░рд┐рдкреЛрд░реНрдЯреЗрдВ рди рдХреЗрд╡рд▓ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ, рдмрд▓реНрдХрд┐ NET рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдШрдЯрдХ рд╣реИрдВред
рдиреАрдЪреЗ Visual Basic рдореЗрдВ рдПрдХ рдирдореВрдирд╛ рдХреЛрдб рд╣реИ:
Imports System.Net.Mail Imports System.IO Imports System.Net.NetworkCredential Imports CrystalDecisions Module Module1 Sub Main() ' Dim Rows1 As DataRow Dim Table1 As New myData.MailListDataSet.Query1DataTable Dim myDA As New myData.MailListDataSetTableAdapters.Query1TableAdapter Dim strDate = Format(CDate(Today()), "ddMMyyyy") Dim myBranch As Integer Dim myBranchMail As String Dim myAppPath As String Dim myLogFilePath As String Dim myLogStr As String myAppPath = My.Application.Info.DirectoryPath ' , Dim myDirInf As New DirectoryInfo(myAppPath + "\" + strDate) If Not myDirInf.Exists() Then myDirInf.Create() End If ' myLogFilePath = myAppPath + "\" + strDate + "\log.txt" Dim fs As StreamWriter = File.CreateText(myLogFilePath) ' ( , ) myDA.Fill(Table1) ' ReportDocument Dim myReport As New CrystalDecisions.CrystalReports.Engine.ReportDocument myReport.FileName = myAppPath + "\report1.rpt" ' For Each Rows1 In Table1.Rows ' myBranch = Rows1.Item(0) myBranchMail = Rows1.Item(1) ' Record Selection Formula myReport.RecordSelectionFormula = "{data.branch} = " + CStr(myBranch) ' myReport.Refresh() Try ' pdf ( - ) myReport.ExportToDisk([Shared].ExportFormatType.PortableDocFormat, myAppPath + "\" + strDate + "\Report for Branch " + CStr(myBranch) + " " + strDate + ".pdf") ' myLogStr = CStr(Now()) + ": " + "generate file for Branch " + CStr(myBranch) + Chr(13) + Chr(10) Console.Write(myLogStr) fs.Write(myLogStr) Catch exp As Exception ' Console.WriteLine("Erorr:" & exp.Message) myLogStr = CStr(Now()) + ": Erorr" & exp.Message & " when generate file for Branch " + CStr(myBranch) + Chr(13) + Chr(10) Console.Write(myLogStr) fs.Write(myLogStr) End Try ' Smtp Client Dim mySmtp As New System.Net.Mail.SmtpClient("company.com") mySmtp.Credentials = New System.Net.NetworkCredential("user", "password") ' , Dim myMsg As New System.Net.Mail.MailMessage("mail@example.com", myBranchMail, " X", _ " " + CStr(myBranch) + ", .") ' pdf Dim myAtt As New System.Net.Mail.Attachment(myAppPath + "\" + strDate + "\Report for Branch " + CStr(myBranch) + " " + strDate + ".pdf") myMsg.Attachments.Add(myAtt) Try ' mySmtp.Send(myMsg) ' myLogStr = CStr(Now()) + ": " + "sending file for Branch " + CStr(myBranch) + ", on " + myBranchMail + Chr(13) + Chr(10) Console.Write(myLogStr) fs.Write(myLogStr) Catch exp As Exception ' Console.WriteLine("Erorr:" & exp.Message) myLogStr = CStr(Now()) + ": Erorr" & exp.Message & " when sending file for Branch " + CStr(myBranch) + Chr(13) + Chr(10) Console.Write(myLogStr) fs.Write(myLogStr) End Try Next Rows1 fs.Close() End Sub End Module
рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдПрдХ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╢реЗрдбреНрдпреВрд▓ рдкрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдЗрд╕реЗ ETIS рдкреИрдХреЗрдЬ SSIS (MS SQL Server рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рд╕рд░реНрд╡рд┐рд╕реЗрдЬ) рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред