$attributes = array( 'crs_management_incoming_receive_regnum'=>array('link'=>'object', 'actions'=>array(), 'header'=>'. '), ); if (cuser()->inGroup('group_dp') == true) $attributes += array('crs_management_incoming_content'=>array('link'=>'value')); $attributes += array( 'crs_management_incoming_receive_date', 'crs_management_incoming_contragent_regnum'=>array('header'=>'. '), 'crs_management_incoming_contragent'=>array('link'=>'value'), 'crs_management_incoming_contact'=>array('link'=>'value'), 'crs_management_incoming_subj', 'crs_management_incoming_outgoing'=>array('link'=>'value'), 'crs_management_incoming_contract'=>array('link'=>'value','max'=>3), 'crs_management_incoming_document'=>array('link'=>'value'), 'crs_management_incoming_forwardto'=>array('link'=>'value'), 'status' ); cviewpub()->exec(array( 'object'=>objectdef('crs_management', 'crs_management_incoming'), 'attributes'=>$attributes, 'conditions'=>array( 'permission'=>'2', ), 'sort'=>array( 'crs_management_incoming_receive_date'=>array('default'=>'desc', 'enable'=>true), 'crs_management_incoming_contragent'=>array('enable'=>true) ), 'sorting'=>true, 'pagination'=>array('pagesize'=>10), 'showcreate'=>true ));
cviewpub()->categories = array('',' '); cviewpub()->category = is_null(cviewpub()->category) ? 0 : cviewpub()->category; $attributes = array( 'crs_management_outgoing_regnum'=>array( 'link'=>'object', 'actions'=>array(), 'export'=>array( 'id', 'crs_management_outgoing_regnum', 'crs_management_outgoing_sentdate' ) ), 'crs_management_outgoing_sentdate', 'crs_management_outgoing_performers'=>array('link'=>'value'), 'crs_management_outgoing_contragent'=>array('link'=>'value'), 'crs_management_outgoing_contact'=>array('link'=>'value'), 'crs_management_outgoing_subj', 'crs_management_outgoing_incomingdocs'=>array( 'link'=>'value', 'export'=>array( 'id', 'crs_management_incoming_contragent_regnum', 'crs_management_incoming_contragent_date' ) ), 'crs_management_outgoing_contract'=>array('link'=>'value','max'=>3), 'crs_management_outgoing_content'=>array('link'=>'value'), ); $conditions = array(); switch(cviewpub()->category) { case 0: $attributes[] = 'status'; break; case 1: $conditions += array('status'=>array('crs_management_outgoing_create','crs_management_outgoing_created')); break; } cviewpub()->exec(array( 'object'=>objectdef('crs_management', 'crs_management_outgoing'), 'attributes'=>$attributes, 'conditions'=>$conditions, 'sort'=>array( 'crs_management_outgoing_regdate'=>array('default'=>'desc', 'enable'=>true), 'crs_management_outgoing_contragent'=>array('enable'=>true) ), 'sorting'=>true, 'pagination'=>array('pagesize'=>10), 'showcreate'=>true ));
cviewpub()->categories = array('',' '); cviewpub()->category = is_null(cviewpub()->category) ? 0 : cviewpub()->category;
$objectTabs = array('crm_management_contact'); if (corganization()->hasViewpub('crs_management_all_incoming_by_contragent')) $objectTabs[] = 'crs_management_all_incoming_by_contragent'; if (corganization()->hasViewpub('crs_management_all_outgoing_by_contragent')) $objectTabs[] = 'crs_management_all_outgoing_by_contragent'; cobjectref()->objectTabs = $objectTabs;
$attributes = array( 'crs_management_outgoing_regnum'=>array('link'=>'object'), 'crs_management_outgoing_regdate', 'crs_management_outgoing_contact'=>array('link'=>'value'), 'crs_management_outgoing_subj', 'crs_management_outgoing_incomingdocs'=>array('link'=>'value'), 'crs_management_outgoing_contract'=>array('link'=>'value','max'=>3), 'crs_management_outgoing_document'=>array('link'=>'value'), 'status'=>array('actions'=>array()) ); cviewpub()->exec(array( 'object'=>objectdef('crs_management', 'crs_management_outgoing'), 'attributes'=>$attributes, 'sort'=>array( 'crs_management_outgoing_regdate'=>array('default'=>'desc', 'enable'=>true) ), 'pagination'=>array('pagesize'=>10), ));
cviewpub()->exec(array( 'object'=>objectdef('crs_management', 'crs_management_incoming'), 'attributes'=>array( 'crs_management_incoming_receive_regnum'=>array('link'=>'object'), 'crs_management_incoming_receive_date', 'crs_management_incoming_contragent_regnum', 'crs_management_incoming_contact'=>array('link'=>'value'), 'crs_management_incoming_subj', 'crs_management_incoming_content', 'crs_management_incoming_contract'=>array('link'=>'value','max'=>3), 'crs_management_incoming_document'=>array('link'=>'value'), 'status'=>array('actions'=>array()) ), 'conditions'=>array( 'permission'=>'2', ), 'sort'=>array( 'crs_management_incoming_receive_date'=>array('default'=>'desc', 'enable'=>true) ), 'sorting'=>true, 'pagination'=>array('pagesize'=>10), ));
cviewpub()->categories = array('',' ',' ',''); cviewpub()->category = is_null(cviewpub()->category) ? 0 : cviewpub()->category; $attributes = array( 'crs_management_incoming_receive_regnum'=>array('link'=>'object', 'actions'=>array()), 'crs_management_incoming_receive_date', 'crs_management_incoming_contragent'=>array('link'=>'value'), 'crs_management_incoming_contact'=>array('link'=>'value'), 'crs_management_incoming_subj', 'crs_management_incoming_contract'=>array('link'=>'value','max'=>3), 'crs_management_incoming_document'=>array('link'=>'value'), ); $conditions = array('crs_management_incoming_forwardto'=>cuser()->id, 'permission'=>'2'); switch(cviewpub()->category) { case 0: $attributes[] = 'status'; break; case 1: $conditions += array('status'=>array('crs_management_incoming_create','crs_management_incoming_created','crs_management_incoming_handed')); break; case 2: $conditions += array('status'=>array('crs_management_incoming_exec')); break; case 3: $conditions += array('status'=>array('crs_management_incoming_ok')); break; } cviewpub()->exec(array( 'object'=>objectdef('crs_management', 'crs_management_incoming'), 'attributes'=>$attributes, 'conditions'=>$conditions, 'sort'=>array( 'crs_management_incoming_receive_date'=>array('default'=>'desc', 'enable'=>true) ), 'sorting'=>true, 'pagination'=>array('pagesize'=>10), 'showcreate'=>true ));
$attributes = array( 'crs_management_outgoing_regnum'=>array('link'=>'object', 'actions'=>array()), 'crs_management_outgoing_regdate', 'crs_management_outgoing_performers'=>array('link'=>'value'), 'crs_management_outgoing_contragent'=>array('link'=>'value'), 'crs_management_outgoing_contact'=>array('link'=>'value'), 'crs_management_outgoing_subj', 'crs_management_outgoing_incomingdocs'=>array('link'=>'value'), 'crs_management_outgoing_contract'=>array('link'=>'value','max'=>3), 'crs_management_outgoing_document'=>array('link'=>'value'), 'status' ); $conditions = array('crs_management_outgoing_performers'=>cuser()->id); cviewpub()->exec(array( 'object'=>objectdef('crs_management', 'crs_management_outgoing'), 'attributes'=>$attributes, 'conditions'=>$conditions, 'sort'=>array( 'crs_management_outgoing_regdate'=>array('default'=>'desc', 'enable'=>true), 'crs_management_outgoing_contragent'=>array('enable'=>true) ), 'sorting'=>true, 'pagination'=>array('pagesize'=>10), 'showcreate'=>true ));
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Excel = Microsoft.Office.Interop.Excel; using Office = Microsoft.Office.Core; using TNGP_Office_Helper; using System.Windows.Forms; using System.IO; using EaslaHelper; namespace TNGP_ExcelAddIn_Specification { public class Letters { const string SHEET_NAME = "Export"; const int COLUMNS_COUN = 12; Excel.Workbook wb = null; public void RunForestRun() { ReadData(); } public void ReadData() { wb = Exl.ActiveWb; if (wb == null) return; var exportSheet = wb.GetSheet(SHEET_NAME); if (exportSheet == null) return; string path = string.Empty; var fbd = new FolderBrowserDialog(); fbd.Description = " ."; if (fbd.ShowDialog() == DialogResult.OK) path = fbd.SelectedPath; else return; int index = 1; if (wb.Path != path) wb.SaveAs(Path.Combine(path, wb.Name)); var rowsCount = ExcelHelper.CountDataRows(exportSheet, 1, 1, COLUMNS_COUN); for (int iRow = rowsCount; iRow >= 2; iRow--) { string idOut = exportSheet.Range["A" + iRow].Text; string numberOut = exportSheet.Range["B" + iRow].Text; string pathOut = Path.Combine(path, Helper.ReplaceChars(numberOut)); if (!Directory.Exists(pathOut)) Directory.CreateDirectory(pathOut); EaslaHelperClass.DLDocument("Out", "OutDocAttach", idOut, pathOut); index++; exportSheet.Hyperlinks.Add(Anchor: exportSheet.Range["B" + iRow], Address: Helper.ReplaceChars(numberOut), TextToDisplay: numberOut); string idIn = exportSheet.Range["H" + iRow].Text; if (!string.IsNullOrEmpty(idIn)) { string numberIn = exportSheet.Range["I" + iRow].Text; string dateIn = exportSheet.Range["J" + iRow].Text; string[] arrId = idIn.Split(';'); string[] arrNumber = numberIn.Split(';'); string[] arrDate = dateIn.Split(';'); if (arrId.Length > 1) { var RngToCopy = exportSheet.Rows[string.Format("{0}:{0}", iRow)]; for (int j = 0; j < arrId.Length - 1; j++) { var RngToInsert = exportSheet.Range["A" + iRow].EntireRow; RngToInsert.Insert(Excel.XlInsertShiftDirection.xlShiftDown, RngToCopy.Copy(Type.Missing)); } } for (int i = 0; i < arrId.Length; i++) { exportSheet.Range["H" + (iRow + i)].Value2 = arrId[i]; exportSheet.Range["J" + (iRow + i)].Value2 = arrDate[i]; var numberInNew = Helper.ReplaceChars(arrNumber[i]); exportSheet.Hyperlinks.Add(Anchor: exportSheet.Range["I" + (iRow + i)], Address: numberInNew, TextToDisplay: arrNumber[i]); string pathIn = Path.Combine(path, numberInNew); if (!Directory.Exists(pathIn)) Directory.CreateDirectory(pathIn); EaslaHelperClass.DLDocument("In", "InDocAttach", arrId[i], pathIn); index++; } } double percent = index * 100 / (rowsCount * 2); ExcelHelper.SetStatusBarPercent(Exl.ExlApp, Helper.PercentProgressBar(percent), " "); } exportSheet.Range["A:A"].EntireColumn.Hidden = true; exportSheet.Range["H:H"].EntireColumn.Hidden = true; wb.Save(); MessageBox.Show(" !"); } } }
public static DWReturnType DLDocument(string objdef, string attrs, string id, string path, string filename = "") { string objectdef = string.Empty; string[] attrrefs = null; switch (objdef) { case "Out": objectdef = "crs_management_outgoing"; break; case "In": objectdef = "crs_management_incoming"; break; } switch (attrs) { case "InDocAttach": attrrefs = new string[] { "crs_management_incoming_document", "crs_management_incoming_attachments" }; break; case "InDoc": attrrefs = new string[] { "crs_management_incoming_document" }; break; case "OutDocAttach": attrrefs = new string[] { "crs_management_outgoing_document", "crs_management_outgoing_attachments" }; break; case "OutDoc": attrrefs = new string[] { "crs_management_outgoing_document" }; break; } var process = EaslaApp.getProcess("crs_management"); var object_def = EaslaApp.getObjectdef(process, objectdef, 0); var objectrefs = GetObjectRefs(id, object_def, attrrefs); if (objectrefs == null) return DWReturnType.Error; if (objectrefs.Length == 0) return DWReturnType.LetterNotFound; if (objectrefs.Length > 1) return DWReturnType.FoundManyLetters; return DownloadFile(filename, path, objectrefs[0].attributerefs); } public static DWReturnType DownloadFile(string filename, string path, Easla.AttributerefSimpleSoap[] attrs) { DWReturnType result = DWReturnType.FileNotFound; foreach (var attr in attrs) { if (attr.values != null) { var files = attr.values.OfType<Easla.FileSimpleSoap>(); var selectfiles = files.Where(f => f.isdeleted == "0" & f.vid == "0"); foreach (var fss in selectfiles) { string filePath = Path.Combine(path, fss.nowname); if (!string.IsNullOrEmpty(filename)) { string ext = Path.GetExtension(fss.nowname); filePath = Path.Combine(path, filename + ext); } EaslaApp.DownloadFile(fss.id, filePath); result = DWReturnType.Ok; } } } return result; }
Source: https://habr.com/ru/post/282347/
All Articles