wiki:OpendasBasicInterface

Basic interface

OpenDAS graphical user interface is divided in three parts :

  • "header" : menu buttons
  • "body" : body of the window
  • "footer" : buttons of cancellation, pagination and validation of choice.

Let us specify that every button of the header are connected to a sequence to be executed.

"Glossary" :

  • mask : Choice of the type of procedures to display in the header.
    Mask allows to parametrize procedures displayed in the station.
    It allows in addition to parametrize fonts, colors, aspects and buttons gradation of body,
    header and footer, as well as background colors, especially when the same station can be used for several masks. That can be useful when the same physical post is
    used by several teams in the day, the week or the month. example :
    • The morning check of receptions
    • Shippings in the afternoon
  • screen : data display mode

Graphical Overview

Selection of screen : List of generics

Selection screen with parent :

Configuration

The table das_graphical_config, allows to parametrize polices, colors, aspects and degraded of the central part buttons and the elements of the top and bottom parts, as well
as the background colors.
Buttons and printer of the header have to be described in the table das_functional_config by means of fields xml.
The field button_xml describes elements of graphical user interface whereas function_xml describes sequences to be executed in case of click on these elements

Header configuration

  • button_xml
    Every element defined here can be graphically personalized in the table das_graphical_configuration.
    The field button_xml has to appear under the following format :
      <?xml version="1.0" encoding="UTF-8"?>  
      <buttons>
        <Button>
          <erase>true</erase>
          <designation>Bouton1</designation> 
          <function>function_clic_btnX</function>
        </Button> 
        <Button>
          <designation>Afficheur1</designation> 
          <supercontext>data_name</supercontext>
        </Button>
      </buttons>
    

    Here is how to establish this text :

    • erase property is set to false by default. This property allows not to display the button if it is unavailable.
    • designation can be empty or contain the text to be shown by default in the element. It can possibly contain a suite of <br/> before or after the text in itself to move the text respectively downward or upward.
    • function can be empty (no action) or contains the identifier of a sequence of functions described in the field function_xml. This sequence will be started with a click on the element.
    • supercontext , variable of the supercontext. This variable can be associated with data got back in the treatments of the consumers or data associated with a peripheral for the data of type measure.

Footer configuration

  • button_bottom_xml
    The field button_bottom_xml has to appear under the following format:
    <?xml version="1.0" encoding="UTF-8"?>
    <buttons>
      <Button>
        <designation>VALID</designation>
        <function>VALID</function>
      </Button>
      <Button>
        <designation>CORRECT</designation>
        <function>CORRECT</function>
      </Button>
      <Button>
        <designation>CANCEL</designation>
        <function>CANCEL</function>
      </Button>
      <Button>
        <designation>SWITCH</designation>
        <function>SWITCH</function>
      </Button>
      <Button>
        <designation>BEFORE</designation>
        <function>BEFORE</function>
      </Button>
      <Button>
        <designation>AFTER</designation>
        <function>AFTER</function>
      </Button>
    <!-- Empty Space : -->
      <Button>
        <designation>NONE</designation>
        <function>NONE</function>
      </Button>
    </buttons>
    

Functional configuration

  • function_xml
    The field function_xml has to appear under the following format:
    <?xml version="1.0" encoding="UTF-8"?> 
    <functions>
      <sequence_au_clic_btnX> 
        <data1> 
          <instruction>Effectuez votre saisie</instruction> 
        </data1>
        <ack/> 
      </sequence_au_clic_btnX> 
      <sequence_au_clic_btnY functionloop="1" disable="(((groups,in,('test','userok',null)&(superdata1,=,null))|((superdata2,!=,null))^((superdata3,!=,null)"> 
        <data2> 
          <instruction>Sélectionnez les machines concernées</instruction>
          <loop name="Terminer" type="select" nb="0">0</loop> 
        </data2> 
        <data3> 
          <filter>data2</filter> 
          <instruction>Sélectionnez les ordres de production concernés</instruction>
          <loop name="Terminer" type="choice" nb="0">0</loop>
        </data3> 
        <clean supercontext="superdata2"/>
        <ack/> 
      </sequence_au_clic_btnY>
      <sequence_au_clic_btnYbis> 
        <data3> 
          <filter>data2</filter>
          <instruction>Sélectionnez les ordres de production concernés</instruction>
          <loop name="Terminer" type="choice" nb="0">0</loop>
        </data3> 
        <clean supercontext="superdata2"/>
        <ack/> 
      </sequence_au_clic_btnY>
      <sequence_au_clic_btnZ> 
        <data4> 
          <instruction>Entrez le poids</instruction>
        </data4> 
        <ack/>
        <data5> 
          <instruction>Sélectionnez les ordres de production concernés</instruction>
          <loop name="Terminer" type="choice" nb="0">0</loop>
        </data5>
        <store model="data5" supercontext="superdata5" type="erase"/> <data6 />
        <data7 />
        <store model="data8" supercontext="superdata8" type="count"/>
        <data8>
          <basicDisplay/>
        </data8> 
        <ack/> 
      </sequence_au_clic_btnZ> 
    </functions>
    

    Here is how to establish this text :

    • sequence_au_clic_btnX and sequence_au_clic_btnY: have to correspond to identifiers defined in button_xml.
      Several attributes can be added to procedure definition :
      • groups allows to define the access for function. Indeed, we can define the authorized group(s) for a function.
      • functionloop specifies if the function is in loop mode or not. 1 to activate the loop mode and 0 to deactivate the loop mode.
      • disable , the function can be deactivated by the user of an expression testing variables of the supercontext.
      • store, process can interact with variables of the supercontext by affecting them ("erase"), completing them ("add"), counting the data ("count").
    • fct1 , fct2 , fct3 , val1 , val2 have to be proposed functions. Certain functions can be parametrized with additional tags:
      • loop allows to define a multiple acquisition of data. If the value contained in this tag is 0, the data acquisition number will be unlimited. If it is superior, the number of acquisition will be equal to this value.
        • type "select" : fills a list with toggle (activation/deactivation of choice).
        • type "choice" : fills a accumulated list.
        • type "count" : idem "choice" an tests limited values of quantity.
      • The optional parameter "endName" allows to modify the default text of end loop button when an unlimited loop is defined.
      • filter allows to define data dependence acquired in the method with data of type indicated in this tag. So, if the data to be acquired in data3 depend on acquired data in data2, we shall indicate <filter>data2</filter>, what will allow to propose to the user only the data corresponding to the acquisition of data2.
      • display allows to define the printer where acquired data have to be printed. The value contained in this tag has to be a number of elements, that of the printer where data have to be placed. Example : <display>4</display> will display data in the 4 th element of the header of the graphical user interface, element which has to be a printer.
      • instruction allows to define a sentence to be shown to explain to the user what he has to make to acquire the wished data. The sentence defined will appear in the field under the header of the graphical user interface.