Sv translation | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
You can edit the code for action parameters that involve arrays of objects.
When you want to pass all the members of an event property array to an action parameter array, the code looks the same as a simple assignment:
ArrayLists are useful because they are untyped and unsized . They will expand as you add to them and you can put anything in them.
After you have prepared the
The
Flattening nested arrays Sometimes the data that you want to assign to an action parameter are spread over the members of an array in the event properties. For example, the results of a Refine action are available from an Input Files Refine OK event. When you look into that event, you see that it has the following properties:
Where are the pages? Each of the refined input files has its own list of pages that were created from it. In other words, each member of the
Another common requirement is the ability to filter parts of a list that you are not interested in. For example, you might want a simple way to create imposition proofs of only the front surfaces of every signature in your job. You want to pass to the Imposed Proof action a list of surfaces that has all the back surfaces filtered out.
Combining the two patterns for flattening and filtering gives us the most power of all. In this example, we want a list of all the refined pages that are larger than 8.5 x 11. Since we need to look at every page in order to determine its size, this requires us to introduce a second loop. The outer loop goes through all the input files, while the inner (nested) loop goes through all the refined pages for each input file.
|
Sv translation | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
Sie können den Code für Aktionsparameter bearbeiten, die Arrays von Objekten umfassen.
Wenn Sie alle Elemente eines Ereigniseigenschaften-Arrays an ein Aktionsparameter-Array übergeben möchten, gleicht der Code einer einfachen Zuordnung: 'This takes ALL the input files from the event and gives them to the action action.InputFiles = triggerEvent.InputFiles Verwenden von ArrayLists ArrayLists sind nützlich, da Typ und Größe nicht festgelegt sind. Wenn Sie Elemente hinzufügen, werden sie erweitert, und alle Arten von Elementen können hinzugefügt werden. 'Create an ArrayList and add items to it Dim oArray As System.Collections.ArrayList = New System.Collections.ArrayList oArray.AddRange(System.IO.Directory.GetFiles("c:\", "*.pdf")) oArray.Add(someOtherObject) Konvertieren von ArrayLists in andere Arrays Wenn Sie die ArrayList vorbereitet haben, müssen Sie diese wahrscheinlich in andere Arrays konvertieren, die in den Regeln verwendet werden, d. h. in Arrays, deren Typ und Größe festgelegt sind. ArrayList besitzt eine ToArray-Methode, mit der die Elemente der ArrayList in ein Array eines bestimmten Typs kopiert werden können. ' Converts the ArrayList into an Array of Automation Pages Dim oAlist As System.Collections.ArrayList ' . . . fill with contents action.Pages = oAList.ToArray(GetType(Creo.PWS.Automation.PrinergyDataModel.Page)) Die ToArray-Methode funktioniert nur, wenn der Inhalt der ArrayList in den von Ihnen angegebenen Typ umgewandelt werden kann. Andernfalls tritt ein Laufzeitfehler auf. Jedes Element in der ArrayList muss manuell in das Array konvertiert werden. Beispielsweise können Sie keinen String in ein FileSystemItem umwandeln. Sie können jedoch mithilfe der CreateFrom-Factory-Methode ein FileSystemItem aus einem String erstellen. ' Converts the ArrayList into an Array of Automation FileSystemItems. Dim oFSIArray() As Creo.PWS.Automation.PrinergyDataModel.FileSystemItem = _ New Creo.PWS.Automation.PrinergyDataModel.FileSystemItem(oAList.count - 1) {} For i As Integer = 0 To oAList.Count - 1 oFSIArray = _ Creo.PWS.Automation.PrinergyDataModel.FileSystemItem.CreateFrom(oAList.ToString) Next i Vereinfachen verschachtelter Arrays In manchen Fällen sind die Daten, die Sie einem Aktionsparameter zuordnen möchten, über die Elemente eines Arrays in den Ereigniseigenschaften verteilt. Beispielsweise sind die Ergebnisse einer Aktion Refinen in einem Ereignis Eingabedateien refinen OK verfügbar. Dieses Ereignis enthält die folgenden Eigenschaften:
Wo befinden sich die Seiten? Zu jeder Eingabedatei, die das Refining durchlaufen haben, gibt es eine Liste von Seiten, die daraus erstellt wurden. Das heißt, jedes Element des InputFiles-Arrays enthält ein Array von Seiten. |
Sv translation | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
可以编辑涉及对象数组的操作参数的代码。
要将事件属性数组的所有成员传递给操作参数数组时,代码看上去与简单赋值相同: 'This takes ALL the input files from the event and gives them to the action action.InputFiles = triggerEvent.InputFiles 使用 ArrayList ArrayList 非常有用,因为它们无类型且大小可变。向其中添加内容时,它们会增大,并且您可以向其中放入任何内容。 'Create an ArrayList and add items to it Dim oArray As System.Collections.ArrayList = New System.Collections.ArrayList oArray.AddRange(System.IO.Directory.GetFiles("c:\", "*.pdf")) oArray.Add(someOtherObject) 将 ArrayList 转换为其他数组 在准备 ArrayList 之后,可能需要将它转换为要在规则内使用的其他数组 - 有类型且大小不变的数组。 ArrayList 具有 ToArray 方法,该方法将 ArrayList 的元素复制到给定类型的数组中。 ' Converts the ArrayList into an Array of Automation Pages Dim oAlist As System.Collections.ArrayList ' . . . fill with contents action.Pages = oAList.ToArray(GetType(Creo.PWS.Automation.PrinergyDataModel.Page)) 仅当 ArrayList 的内容可以通过强制类型转换来转换为指定类型时,ToArray 方法才起作用。如果无法转换,则会发生运行时错误。您必须手动将 ArrayList 中的每一项转换为数组。例如,无法将 String 通过强制类型转换转换为 FileSystemItem,但可以使用 CreateFrom 工厂方法来基于 String 创建 FileSystemItem。 ' Converts the ArrayList into an Array of Automation FileSystemItems. Dim oFSIArray() As Creo.PWS.Automation.PrinergyDataModel.FileSystemItem = _ New Creo.PWS.Automation.PrinergyDataModel.FileSystemItem(oAList.count - 1) {} For i As Integer = 0 To oAList.Count - 1 oFSIArray = _ Creo.PWS.Automation.PrinergyDataModel.FileSystemItem.CreateFrom(oAList.ToString) Next i 合并嵌套数组 有些时候,要为操作参数指定的数据分散在事件属性中某数组的多个成员中。例如,精炼操作的结果可从输入文件精炼成功事件获取。查看该事件时,可以看到它具有以下属性:
页面位于何处?每个已精炼输入文件都具有自己的基于输入文件创建的页面列表。也就是说,InputFiles 数组的每个成员都包含一个页面数组。 |
Sv translation | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
Es posible editar el código de los parámetros de acciones que impliquen matrices de objetos.
Si desea pasar todos los miembros de una matriz de propiedades de eventos a una matriz de parámetros de acción, el código tiene el mismo aspecto que una asignación sencilla: 'This takes ALL the input files from the event and gives them to the action action.InputFiles = triggerEvent.InputFiles Uso de listas de matrices (ArrayLists) Las listas de matrices (ArrayLists) son útiles porque no tienen asignado ningún tipo ni ningún tamaño. Su tamaño aumenta a medida que se le agregan elementos y se puede colocar cualquier cosa en ellas. 'Create an ArrayList and add items to it Dim oArray As System.Collections.ArrayList = New System.Collections.ArrayList oArray.AddRange(System.IO.Directory.GetFiles("c:\", "*.pdf")) oArray.Add(someOtherObject) Conversión de listas de matrices (ArrayLists) en otras matrices Después de preparar la lista de matrices (ArrayList), es probable que necesite convertirla en otras matrices que se puedan usar en las reglas: matrices con un tipo y un tamaño especificados. Las listas de matrices (ArrayList) tienen un método "a matriz" (ToArray) que permite copiar los elementos de las listas en una matriz del tipo ArrayList. ' Converts the ArrayList into an Array of Automation Pages Dim oAlist As System.Collections.ArrayList ' . . . fill with contents action.Pages = oAList.ToArray(GetType(Creo.PWS.Automation.PrinergyDataModel.Page)) El método ToArray sólo funciona si el contenido de ArrayList se puede asignar al tipo especificado. En caso contrario, se mostrará un error de tiempo de ejecución. Es necesario convertir manualmente cada elemento incluido en ArrayList a la matriz. Por ejemplo, no se puede asignar un elemento String a un FileSystemItem, pero se puede usar el método de fábrica CreateFrom para crear un FileSystemItem a partir de un elemento String. ' Converts the ArrayList into an Array of Automation FileSystemItems. Dim oFSIArray() As Creo.PWS.Automation.PrinergyDataModel.FileSystemItem = _ New Creo.PWS.Automation.PrinergyDataModel.FileSystemItem(oAList.count - 1) {} For i As Integer = 0 To oAList.Count - 1 oFSIArray = _ Creo.PWS.Automation.PrinergyDataModel.FileSystemItem.CreateFrom(oAList.ToString) Next i Desanidamiento de matrices En ocasiones, los datos que se deben asignar a un parámetro de acción están dispersos por los miembros de una matriz en las propiedades de evento. Por ejemplo, los resultados de una acción Afinar están disponibles a partir de un evento Afinado de archivos de entrada correcto. Cuando se consulta el evento, se aprecia que incluye las siguientes propiedades:
¿Dónde están las páginas? Cada uno de los archivos de entrada afinados tiene su propia lista de páginas creadas a partir de ellos. Es decir, cada miembro de la matriz InputFiles incluye una matriz de páginas. |
Sv translation | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
Vous pouvez modifier le code des paramètres d'action qui impliquent des matrices d'objets.
Lorsque vous souhaitez transférer tous les membres d'une matrice de propriété d'événement vers une matrice de paramètre d'action, le code est semblable à celui d'une simple attribution : 'This takes ALL the input files from the event and gives them to the action action.InputFiles = triggerEvent.InputFiles Utilisation des ArrayLists Les ArrayLists sont utiles car elles ne sont pas saisies ni dimensionnées. Elles s'allongent au fur et à mesure que vous les complétez et vous pouvez y ajouter ce que vous voulez. 'Create an ArrayList and add items to it Dim oArray As System.Collections.ArrayList = New System.Collections.ArrayList oArray.AddRange(System.IO.Directory.GetFiles("c:\", "*.pdf")) oArray.Add(someOtherObject) Conversion des ArrayLists en d'autres matrices Après avoir préparé ArrayList, vous devrez probablement la convertir en d'autres matrices à utiliser dans les règles ; il s'agit de matrices saisies et dimensionnées. L'ArrayList dispose d'une méthode ToArray qui copiera les éléments de l'ArrayList sur une matrice d'un type donné. ' Converts the ArrayList into an Array of Automation Pages Dim oAlist As System.Collections.ArrayList ' . . . fill with contents action.Pages = oAList.ToArray(GetType(Creo.PWS.Automation.PrinergyDataModel.Page)) La méthode ToArray fonctionne seulement si le contenu de l'ArrayList peut être converti au type spécifié. Dans le cas contraire, une erreur d'exécution apparaît. Vous devez convertir manuellement chaque élément de l'ArrayList en matrice. Par exemple, vous ne pouvez pas convertir un String en FileSystemItem, mais vous pouvez utiliser la méthode d'usine CreateFrom pour créer un FileSystemItem à partir d'un String. ' Converts the ArrayList into an Array of Automation FileSystemItems. Dim oFSIArray() As Creo.PWS.Automation.PrinergyDataModel.FileSystemItem = _ New Creo.PWS.Automation.PrinergyDataModel.FileSystemItem(oAList.count - 1) {} For i As Integer = 0 To oAList.Count - 1 oFSIArray = _ Creo.PWS.Automation.PrinergyDataModel.FileSystemItem.CreateFrom(oAList.ToString) Next i Aplatissement des matrices imbriquées Les données à affecter à un paramètre d'action sont parfois réparties sur les membres d'une matrice dans les propriétés de l'événement. Par exemple, les résultats d'une action Raffiner sont disponibles à partir d'un événement Raffiner fichiers d'entrée OK. Quand vous examinez cet événement, vous voyez qu'il possède les propriétés suivantes :
Où sont les pages ? Chacun des fichiers d'entrée raffinés dispose de sa propre liste de pages créées à partir de celle-ci. En d'autres termes, chaque membre de la matrice InputFiles contient une matrice de pages. |
Sv translation | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
オブジェクトの配列を含むアクション パラメータのコードを編集できます。
イベント プロパティの配列のすべてのエレメントをアクション パラメータの配列に渡す場合、コードは次のように単純な割り当て処理と同様になります。 'This takes ALL the input files from the event and gives them to the action action.InputFiles = triggerEvent.InputFiles ArrayList の使用 ArrayList は、型とサイズを指定しないので便利です。エレメントを追加するたびに拡張され、任意のエレメントを格納できます。 'Create an ArrayList and add items to it Dim oArray As System.Collections.ArrayList = New System.Collections.ArrayList oArray.AddRange(System.IO.Directory.GetFiles("c:\", "*.pdf")) oArray.Add(someOtherObject) ArrayList を別の配列に変換 ArrayList の準備が完了したら、ルール内で使用できるように、型とサイズを指定する別の配列に変換する必要がある場合があります。 ArrayList には、ArrayList のエレメントを指定した型の配列にコピーする ToArray メソッドがあります。 ' Converts the ArrayList into an Array of Automation Pages Dim oAlist As System.Collections.ArrayList ' . . . fill with contents action.Pages = oAList.ToArray(GetType(Creo.PWS.Automation.PrinergyDataModel.Page)) ToArray メソッドは、ArrayList のエレメントが指定する型にキャストできる場合にのみ機能します。キャストできない場合は、実行時エラーが表示され、ArrayList 内の各エレメントを指定の配列に手動で変換する必要があります。たとえば、String 型を FileSystemItem にキャストできない場合は、CreateFrom ファクトリ メソッドを使用して String 型から FileSystemItem を作成することができます。 ' Converts the ArrayList into an Array of Automation FileSystemItems. Dim oFSIArray() As Creo.PWS.Automation.PrinergyDataModel.FileSystemItem = _ New Creo.PWS.Automation.PrinergyDataModel.FileSystemItem(oAList.count - 1) {} For i As Integer = 0 To oAList.Count - 1 oFSIArray = _ Creo.PWS.Automation.PrinergyDataModel.FileSystemItem.CreateFrom(oAList.ToString) Next i ネストした配列のフラット化 アクション パラメータに割り当てるデータが、イベント プロパティの配列内で分散している場合があります。たとえば、入力ファイルのリファイン - OKイベントからリファインアクションの結果を使用できるとします。このイベントには、以下のプロパティがあります。
ページの場所については、リファイン済みの各入力ファイルに固有のリストがあり、作成されたページはそこに含まれています。つまり、InputFiles の配列の各エレメントにはページの配列が含まれています。 |