09-12-2015 11:37 AM
Hello
I would like to create an html index of object "table", but with only one occurrence of a table, if the short name is not unique.
Ex :
Table1 : Name::ShortName = DB1::Table1 & DB2::Table1 & DB3::Table1 ...
Will be listed like : Table1 ShortName | DB1 , DB2, DB3 | comment
The objective is to have only 1 line by shortname to describe the same table, and list all the DBs where this table ShortName is related.
So far, I have tried many possibilities but no success.
Is it possible to have something like this using buffers ?
----------------------------------------------------------------------------------------------------------------
   [Component="Select [Table]" Sorter="Nom court:A" WithPages=Yes]       
         [Buffer=nomcourt Set][ComponentProperty="Nom court"/][/Buffer]
[Component="Select [Table] where [Nom court] [Buffer="nomcourt" Get/]"]
<tr>
<td><img src="[ObjectPicture/]"/> [ComponentProperty="Nom court"/]</td>
…
----------------------------------------------------------------------------------------------------------------
Thank you
Mehdi
Solved! Go to Solution.
04-01-2016 01:35 PM
Hello Lionel
Excellent solution, it solves my problem.
Thank you very much !
Mehdi
09-12-2015 05:29 PM
Hello Mehdi,
it is not possible to use the content of a buffer this way.
But there is a solution ! 🙂
Since  you sort your tables by shortnames, you can use Buffers to compare each name with the precedent.
Your code should then look like this :
[Buffer="tmp, cpt, nomcourt"] 
[Buffer=tmp Set=""/] \c initialize buffer to empty value
[Buffer=cpt Set=0/]
[Component="Select [Table]" Sorter="Nom court:A" withpages=yes id=table]
  [If=First]<table border=1>[/If] \c Creation of the table
  [Buffer=nomcourt Set][ComponentProperty="Nom court"/][/Buffer]
  [If="Buffer(tmp)=Buffer(nomcourt)"]
    \c Shortname is the same as the previous one, we just add the database name to the last cell...
    <li>[C="Base-de-Données" parentid=table][CP="Nom court" Link=Out/][/C]
  [/If]
  [If="Buffer(tmp)!=Buffer(nomcourt)"] \c If shortname different from the previous one
    [Buffer=tmp Set][CP="Nom court"/][/Buffer] \c store the value in tmp for next compare
    [Buffer=Cpt Set][Value Expression="buffer(cpt) + 1"/][/Buffer] \c increase the cpt value to know when to close line (not for the first table...)
    [If="Buffer(cpt)>1"]</td></tr>[/If] \c If we are at least at the second table with a different short name, we need to close the first line of the table...
    \c Creation of the first line with a cell with the shorname of the table (no link...) and a cell with the first database (link)
    <tr>
      <td><img src="[ObjectPicture/]"/> [ComponentProperty="Nom court" parentid=table/]</td>
      <td><li>[C="Base-de-Données" parentid=table][CP="Nom court" Link=Out/][/C]
    [If=Last]</td></tr></table>[/If]
  [/If]
[/Component]
[/Buffer]Hope that helps !
Lionel