addCutSheetData(Microsoft.Office.Interop.Word.Table objCutSheetTable, List <ObjectId> objPnts) { bool functionReturnValue = false; if (objPnts.Count == 0) { return(false); } int k = 0; for (int i = 0; i < objPnts.Count; i++) { ObjectId objPnt = objPnts[i]; ResultBuffer rb = objPnt.getXData("STAKE"); if (rb == null) { return(false); } TypedValue[] tvs = rb.AsArray(); string strStation = String.Format("##+##.00", tvs[2].Value.ToString()); string strPntDesc = objPnt.getCogoPntDesc(); int intPos = 0; string strOffset = ""; if (strPntDesc.Contains("O/S")) { int pos = strPntDesc.IndexOf("O/S"); strOffset = strPntDesc.Substring(0, intPos - 1); strPntDesc = strPntDesc.Substring(intPos + 4); } Microsoft.Office.Interop.Word.Rows objRows = objCutSheetTable.Rows; Microsoft.Office.Interop.Word.Row objRowNew; objRowNew = objCutSheetTable.Rows.Add(); objRowNew = objCutSheetTable.Rows[objRows.Count - 1]; objRowNew.Range.Font.Bold = 0; Microsoft.Office.Interop.Word.Cell objCell = objRowNew.Cells[8]; objCell.WordWrap = true; objCell = objRowNew.Cells[1]; objCell.Range.InsertBefore(strStation); objCell = objRowNew.Cells[2]; objCell.Range.InsertBefore(Convert.ToString(objPnt.getCogoPntNumber().ToString())); objCell = objRowNew.Cells[3]; objCell.Range.InsertBefore(String.Format("{0:F2}", objPnt.getCogoPntElevation())); objCell = objRowNew.Cells[7]; if (intPos == 0) { strOffset = "-"; } objCell.Range.InsertBefore(strOffset); objCell = objRowNew.Cells[8]; string strDesc = ""; Microsoft.Office.Interop.Word.Selection objSelection; if (strPntDesc.Contains("\\U+0394")) { int pos = strPntDesc.IndexOf("\\U+0394"); //Delta /\ objCell.Range.Select(); objSelection = objCutSheetTable.Application.Selection; objSelection.StartOf(Microsoft.Office.Interop.Word.WdUnits.wdCell); //****************!!!!!!!!!!!!!!!!!!!**************** objSelection.Delete(); objSelection.InsertSymbol(Font: "Arial", CharacterNumber: 916, Unicode: true); strDesc = strPntDesc.Substring(0, intPos - 1); //preceeding part of string objCell.Range.InsertBefore(Convert.ToString(strDesc)); strDesc = strPntDesc.Substring(intPos + 7); //following part of string objCell.Range.InsertAfter(Convert.ToString(strDesc)); } else if (strPntDesc.Contains("%%C")) { intPos = strPntDesc.IndexOf("%%C"); //Diameter objCell.Range.Select(); objSelection = objCutSheetTable.Application.Selection; objSelection.StartOf(Microsoft.Office.Interop.Word.WdUnits.wdCell); //****************!!!!!!!!!!!!!!!!!!!**************** objSelection.Delete(); objSelection.StartOf(Microsoft.Office.Interop.Word.WdUnits.wdCell); objSelection.InsertSymbol(Font: "Arial", CharacterNumber: 934, Unicode: true); strDesc = strPntDesc.Substring(0, intPos - 1); objCell.Range.InsertBefore(Convert.ToString(strDesc)); strDesc = strPntDesc.Substring(intPos + 3); objCell.Range.InsertAfter(Convert.ToString(strDesc)); } else { objCell.Range.InsertBefore(Convert.ToString(strPntDesc)); } Point3d pnt3d = objPnt.getCogoPntCoordinates(); objCell = objRowNew.Cells[9]; objCell.Range.InsertBefore(String.Format("{0:F2}", pnt3d.Y)); objCell = objRowNew.Cells[10]; objCell.Range.InsertBefore(String.Format("{0}", pnt3d.X)); k += 1; } Misc.logUsage("STAKE_EXPORT", k); functionReturnValue = true; return(functionReturnValue); }
addResultsToCutSheet(List <FieldData> fd, string strPath) { string strTxtTarget = FileManager.getFilesWithEditor("SELECT CUTSHEET", "UPDATE CUTSHEET", "Word Document (*.docx)|*.docx", strPath, "Select CutSheet to update: "); Microsoft.Office.Interop.Word.Application objWordApp = new Word(); Microsoft.Office.Interop.Word.Document objWordDoc = objWordApp.Documents.Open(strTxtTarget); objWordApp.Visible = true; Microsoft.Office.Interop.Word.Table objWordTable = objWordDoc.Tables[2]; for (int i = 0; i < fd.Count; i++) { for (int j = 2; j <= objWordTable.Rows.Count; j++) { Microsoft.Office.Interop.Word.Cell objWordCell = objWordTable.Cell(j, 2); string strCellText = objWordCell.Range.Text; string strPntNum = ""; int k = 1; do { byte[] asciiBytes = Encoding.ASCII.GetBytes(strCellText.Substring(k, 1)); if (asciiBytes[0] == 13) { break; } strPntNum = strPntNum + strCellText.Substring(k, 1); k = k + 1; } while (true); string strGrade = ""; if (fd[i].PntNum == strPntNum) { objWordCell = objWordTable.Cell(j, 3); strCellText = objWordCell.Range.Text; k = 1; do { byte[] asciiBytes = Encoding.ASCII.GetBytes(strCellText.Substring(k, 1)); if (asciiBytes[0] == 13) { break; } strGrade = strGrade + strCellText.Substring(k, 1); k = k + 1; } while (true); double dblGrade = double.Parse(strGrade); double dblStake = System.Math.Round(fd[i].ElevStake, 4); objWordCell = objWordTable.Cell(j, 4); objWordCell.Range.InsertBefore(Convert.ToString(dblStake)); double dblDiff = System.Math.Round(dblGrade - dblStake, 2); if (dblDiff < 0) { objWordCell = objWordTable.Cell(j, 5); objWordCell.Range.InsertBefore(Convert.ToString(dblDiff * -1)); } else { objWordCell = objWordTable.Cell(j, 6); objWordCell.Range.InsertBefore(Convert.ToString(dblDiff)); } break; } } } }
setupCutSheet(List <string> strLayers) { string strProjNum = BaseObjs.jobNumber(); string strDate = String.Format("{0}", DateTime.Today); string strFileName = string.Format("{0}_CutSheet{1}_{2}", strProjNum, strLayers, strDate); Microsoft.Office.Interop.Word.Document objCutSheet = makeCutSheet(strFileName); Microsoft.Office.Interop.Word.Table objWordTable1 = objCutSheet.Tables[1]; Microsoft.Office.Interop.Word.Cell objCell = objWordTable1.Cell(6, 4); objCell.Range.InsertBefore(Convert.ToString(DateTime.Today)); objCell = objWordTable1.Cell(7, 4); objCell.Range.InsertBefore(strProjNum); ProjectData varProjectData = Stake_GetProjectData.getProjectData(strProjNum); objCell = objWordTable1.Cell(8, 2); objCell.Range.InsertBefore(varProjectData.Name); objCell = objWordTable1.Cell(9, 2); objCell.Range.InsertBefore(varProjectData.Location); objCell = objWordTable1.Cell(10, 2); objCell.Range.InsertBefore(varProjectData.Coordinator); string strUserName = ""; string strUser = Environment.UserName; switch (strUser) { case "john": strUserName = "******"; break; case "luis": strUserName = "******"; break; case "brianp": strUserName = "******"; break; case "michael": strUserName = "******"; break; case "briant": strUserName = "******"; break; default: strUserName = strUser; break; } objCell = objWordTable1.Cell(9, 4); objCell.Range.InsertBefore(strUserName); return(objCutSheet); }