Guest User

Untitled

a guest
Jan 18th, 2017
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.42 KB | None | 0 0
  1. <HTML>
  2. <HEAD>
  3. <TITLE>
  4. Edit Aenderungsspiegel
  5. </TITLE>
  6. </HEAD>
  7. <BODY>
  8. <H1>Edit Aenderungsspiegel</H1>
  9. <INPUT name="button1" type=button value="Edit Table" onclick="ShowTable()">
  10. <INPUT name="button2" type=button value="Save Table" onclick="WriteTable()">
  11.  
  12. <DIV id="AE_Table" class="display" cellspacing="0" width="100%" contenteditable='true'></DIV>
  13. <DIV ID="mesg"></DIV>
  14. <DIV ID="errmesg"></DIV>
  15. <HR>
  16. <SCRIPT>
  17. var mGlob = new ActiveXObject ("pfc.MpfcCOMGlobal");
  18. var session = mGlob.GetProESession();
  19.  
  20. function ShowTable ( ) {
  21.  
  22. var Table_head = ["Nr.", "Feld", "Datum", "Geaendert", "Genehmigt", "Beschreibung"];
  23. var array = ArrayFromProETable();
  24. if (array == null) {
  25. mesg.innerHTML = "null array";
  26. return;
  27. }
  28.  
  29. if (array != null) {
  30. //Create a HTML Table element.
  31. var table = document.createElement("TABLE");
  32. table.border = "1";
  33. //Get the count of columns.
  34. var columnCount = Table_head.length;
  35. //Add the header row.
  36. var row = table.insertRow(-1);
  37. for (var i = 0; i < columnCount; i++) {
  38. var headerCell = document.createElement("TH");
  39. headerCell.innerHTML = Table_head[i];
  40. row.appendChild(headerCell);
  41. }
  42. //Add the data rows.
  43. for (var i = 0; i < array.length; i++) {
  44. row = table.insertRow(-1);
  45. for (var j = 0; j < columnCount; j++) {
  46. var cell = row.insertCell(-1);
  47. cell.innerHTML = array[i][j];
  48. }
  49. }
  50. }
  51. var AE_Table = document.getElementById("AE_Table");
  52. AE_Table.innerHTML = "";
  53. AE_Table.appendChild(table);
  54. }
  55.  
  56.  
  57. function ArrayFromProETable ( ) {
  58.  
  59. var mesg = document.getElementById("mesg");
  60. var errmesg = document.getElementById("errmesg");
  61. var drawing = null;
  62.  
  63. // Get model object and ensure it's a drawing
  64. //
  65. try {
  66. drawing = session.CurrentModel;
  67.  
  68. if (drawing == null || drawing.Type != pfcCreate("pfcModelType").MDL_DRAWING) {
  69. errmesg.innerHTML = "A drawing must be active!";
  70. return null;
  71. }
  72. }
  73. catch (e) {
  74. errmesg.innerHTML = "A drawing must be active.";
  75. return null;
  76. }
  77.  
  78.  
  79. // Prompt user to select an existing table
  80. //
  81. var selections = null;
  82. var table = null;
  83. var SelOptions = pfcCreate("pfcSelectionOptions").Create ("dwg_table");
  84. SelOptions.MaxNumSels = 1;
  85. try {
  86. selections = session.Select(SelOptions, null);
  87. var tabnum = selections.Item(0).SelItem;
  88. table = drawing.GetTable(tabnum.Id);
  89. }
  90. catch (e) { // nothing selected
  91. errmesg.innerHTML = "A drawing table was not selected.";
  92. return null;
  93. }
  94.  
  95. selections.Item(0).UnHighlight();
  96.  
  97.  
  98. mesg.innerHTML = "Selected Table: "
  99. + table.GetRowCount() + " rows, "
  100. + table.GetColumnCount() + " columns";
  101.  
  102.  
  103. // Gather data from table and populate into array
  104. //
  105.  
  106. var array = new Array();
  107.  
  108. for (var i=0; i<table.GetRowCount(); i++) {
  109.  
  110. array[i] = new Array();
  111.  
  112. for (var j=0; j<table.GetColumnCount(); j++) {
  113.  
  114. // Table cell indexes start with one, arrays with zero
  115. var cell = pfcCreate("pfcTableCell").Create(i+1,j+1);
  116. var mode = pfcCreate("pfcParamMode").DWGTABLE_NORMAL;
  117. array[i][j] = "";
  118.  
  119. try {
  120. var textseq = table.GetText(cell, mode);
  121.  
  122. for (var k=0; k<textseq.Count; k++) {
  123. var textitem = textseq.Item(k);
  124. if (k > 0) { array[i][j] += "\n"; }
  125. array[i][j] += textitem;
  126. }
  127. }
  128. catch (e) { // cell has no value
  129. // ignore
  130. }
  131.  
  132. }
  133.  
  134. }
  135.  
  136. return array;
  137. }
  138.  
  139. function WriteTable (){
  140.  
  141. var array = new Array();
  142. var table = document.getElementById('AE_Table').innerHTML;
  143. // var current, cell;
  144. //this loop goes through each row
  145. // for (var i = 0; (current = table.rows[i]); i++){
  146. // //this loop goes through each cell in current row
  147. // array[i] = new Array();
  148. // for (var j = 0; (cell = current.cells[j]); j++){
  149. // array [i][j] = cell;
  150. // }
  151.  
  152. // }
  153.  
  154. var current = table.rows.length;
  155. errmesg.innerHTML = current;
  156. }
  157.  
  158. function pfcCreate (className)
  159. {
  160. if (!pfcIsWindows())
  161. netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  162.  
  163. if (pfcIsWindows())
  164. return new ActiveXObject ("pfc."+className);
  165. else
  166. {
  167. ret = Components.classes ["@ptc.com/pfc/" + className + ";1"].createInstance();
  168. return ret;
  169. }
  170. }
  171.  
  172.  
  173. //Checks what OS is being operated
  174. //IE11 requires more indepth browser testing...
  175. function get_browser_info(){
  176. var ua=navigator.userAgent,tem,M=ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
  177. if(/trident/i.test(M[1])){
  178. tem=/\brv[ :]+(\d+)/g.exec(ua) || [];
  179. return {name:'IE',version:(tem[1]||'')};
  180. }
  181. if(M[1]==='Chrome'){
  182. tem=ua.match(/\bOPR\/(\d+)/)
  183. if(tem!=null) {return {name:'Opera', version:tem[1]};}
  184. }
  185. M=M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
  186. if((tem=ua.match(/version\/(\d+)/i))!=null) {M.splice(1,1,tem[1]);}
  187. return {
  188. name: M[0],
  189. version: M[1]
  190. };
  191. }
  192. function pfcIsWindows ()
  193. {
  194. var browser = get_browser_info();
  195.  
  196. if (browser.name.indexOf ("IE") != -1)
  197. return true;
  198. else
  199. return false;
  200. }
  201. </SCRIPT>
  202. </BODY>
  203. </HTML>
Advertisement
Add Comment
Please, Sign In to add comment