====== Skróty do punktów w menu w lewej górnej części ekranu ======

{{tag>przystosowanie_systemu skróty}}

Istnieje możliwość definiowania skrótów znajdujących się w lewej górnej części ekranu.
Ikonek jest piętnaście i do każdej z nich można przypisać dla każdego użytkownika oddzielnie określone działanie.
Działanie to może polegać na natychmiastowym przejściu do podanego punktu w menu oraz wykonaniu sekwencji kilku klawiszy funkcyjnych (jeśli jest taka potrzeba)


W pliku: ../var/lib/tomcat/help/WebFirmatic/shortcut/user.xml (default.xml) można zapisać plik z definicją działania skrótów:

<code>
<root>
	<item id="1" menuId="" title="Menu główne" keys="" enable="true" />
	<item id="2" menuId="1016" title="Dokumenty własne" keys="" enable="true" />
	<item id="3" menuId="1016" title="Faktury własne" keys="401" enable="true" />
	
	<item id="4" menuId="2373" title="Wyszuk. tech." keys="309, 401" enable="true" />
	<item id="5" menuId="2349" title="Składniki majątku" keys="" enable="true" />
	<item id="6" menuId="2687" title="Sprawy" keys="401" enable="true" />
	
	<item id="7" menuId="1047" title="Dok. mag. przyjęcia" keys="" enable="true" />
	<item id="8" menuId="1058" title="Wypłaty" keys="" enable="true" />
	<item id="9" menuId="1057" title="Wpłaty" keys="" enable="true" />
</root>
</code>

Wartości menuId="1057" ;keys="309, 401" wstawiamy na podstawie informacji uzyskanych za pomocą programu serwisowego WebFirmatic-debug.
Aby go uruchomić należy w oknie przeglądarki wpisać np. http://192.168.1.250:8080/WebFirmatic-debug/
uruchomienie tego programu spowoduje, że każde przesłanie informacji z przeglądarki (naciśnięcie klawisza lub kliknięcie myszką) wymaga potwierdzenia w specjalnym wyskakującym okienku, w którym można odczytać wartości jak wyżej.

title="Dok. mag. przyjęcia" jest dowolnym tytułem ikonki, który wyświetli się na ekranie.

Podczas logowania do systemu najpierw jest wyszukiwany plik user.xml (np. grzsla.xml) a jeżeli nie istnieje wtedy wczytywany jest default.xml

[[**Opis menu wraz z numerami**|**Opis menu wraz z numerami**]]

====== Skróty wykonujące sekwencję czynności ======

Istnieje możliwość zdefiniowania skrótów, które wykonują sekwencję "kliknięć", np. przechodzą z nagłówka do treści dokumentu, a następnie wybierają którąś z funkcji dodatkowych i ją wykonują. Można też zdefiniować skrót, który wyśle wskazany klawisz a następnie kliknie wskazaną odpowiedź w signalu. Np. można zdefiniować skrót "Zapisz i wyjdź", który wyśle klawisz Esc, a następnie da odpowiedź "tak" w okienku "Dane zostały zmodyfikowane - zapisać nowy stan?".

Skróty pojawiają się w pasku ikon u góry ekranu.

Skróty definiuje się w tagu "menu" w pliku układaczki, w którym skrót ma się znajdować, np. 07 lub 11 dla formatki. Tag "menu" dopisywany jest na samym końcu plików układaczki, np:

<code>
...
<textareas>
<textarea buttonsCount="2" height="56" labelText="Opis s<C5><82>owny" 
labelTextNew="#unchg" name="Description" visible="true" width="602" 
x="150" y="401"/>
</textareas>
<colors/>
<menu>

<item icon="END-ERROR" id="1" title="Wyjdź i zapisz"> 
   <action canSkip="false" field="#CURR_FIELD_FIRST" key="END-ERROR" value="#CURR_FIELD_FIRST"/>
   <action canSkip="true" command="yes" expect="09"/> 
</item> 

</menu> 
</firmatic>
</code>

Dwa przykładowe skróty:

<code>
<item icon="END-ERROR" id="1" title="Wyjdź i zapisz"> 
   <action canSkip="false" field="#CURR_FIELD_FIRST" key="END-ERROR" value="#CURR_FIELD_FIRST"/>
   <action canSkip="true" command="yes" expect="09"/> 
</item> 
</code>

<code>
<item id="1" title="Kopiowanie linii zamówienia obcego" icon="LIGHT">
  <action key="PAGE-DOWN" field="#CURR_FIELD_FIRST" value="#CURR_FIELD_FIRST" />
  <action key="INSERT-FIELD" codeproc="106" field="#CURR_FIELD_FIRST" value="#CURR_FIELD_FIRST" expect="05" />
  <action key="GO" field="#CURR_FIELD_FIRST" value="#CURR_FIELD_FIRST" expect="07" />
</item>
</code>

Tag <item> obejmuje jeden skrót, a tagi <action> to kolejne "kliknięcia" w ramach skrótu.

Parametry <item>:
  * icon - nazwa ikonki. Ikony można zobaczyć w katalogu:/var/lib/tomcat/webapps/WebFirmatic/resources/deploy/icons.
  * id - kolejność, jeśli jest więcej skrótów
  * title - nazwa skrótu, którą zobaczy użytkownik

Parametry <action>:
  * canSkip - "true", jeśli krok może być pominięty, "false", jeśli krok jest obligatoryjny
  * field - można wskazać konkretne pole, żeby wysłać jego wartość. Jeśli nie chcemy nic zmieniać, wpisujemy "#CURR_FIELD_FIRST".
  * key - nazwa klawisza, który wysyłamy. W przeciwieństwie do skrótów do punktów w menu nie posługujemy się kodami klawiszy, które uzyskujemy w debug, ale nazwami klawiszy. Wszystkie klawisze są opisane niżej.
  * value - wysyłana wartość pola, które wskazaliśmy wcześniej. Jeśli nie chcemy nic wysyłać, wpisujemy "#CURR_FIELD_FIRST".
  * command - odpowiedź na pytanie w wyskakującym okienku. Przyjmuje wartości "yes" i "no".
  * expect - miejsce programu, w którym musimy się znajdować, żeby akcja została wykonana. Np. "09" oznacza ask, 05 twx edytowalny, 11 formatkę itd. Lista miejsc znajduje się poniżej.
  * codeproc
  * menuId
  * line - z twxów wysyła się numer linii. Jeśli jest pusty, skrót nie zadziała. Jeśli nie mamy numeru linii, wpisujemy: line="#CURR_LINE_FIRST"

Wartości parametrów command, codeproc oraz menuId odczytujemu za pomocą programu debug. W przypadku parametru key, musimy odczytać kod klawisza programem debug a potem znaleźć jego nazwę na poniższej liście.

Lista klawiszy:
<code>
Kod	Nazwa zmiennej	   Nazwa z help.xml						
1	F_ClipLine         "APPEND-LINE"       /* CTRL-A           
509	F_FieldLeft        "BACK-TAB"          /* SHIFT-TAB        
22	F_Copy             "BLOCK"             /* ALT-V            
1526    F_ChgFrames        "BOTTOM-COLUMN"     /* ALT-B            
502	F_Down             "CURSOR-DOWN"       /* CURSOR-DOWN      
504	F_Left             "CURSOR-LEFT"       /* CURSOR-LEFT      
503	F_Right            "CURSOR-RIGHT"      /* CURSOR-RIGHT     
501	F_Up               "CURSOR-UP"         /* CURSOR-UP        
310	F_Delete           "DELETE-LINE"       /* F10              
310	F_DelLine          "DELETE-LINE"       /* F10              
2	F_Notes            "EDITOR-BACKTAB"    /* CTRL-B           
1050    F_Bottom           "END"               /* END              
?	F_Exit             "END-ERROR"         /* ESC              
403	F_Enter_Menubar    "ENTER-MENUBAR"     /* F3               
6	F_List             "FIND"              /* CTRL-F           
305	F_Get              "GET"               /* F5               
401	F_Start            "GO"                /* F1               
1095    F_GoTo             "GOTO"              /* ALT-G            
402	F_Help             "HELP"              /* F2               
?	F_Top              "HOME"              /* HOME             
1097    F_Insert           "INSERT-FIELD"      /* ALT-I            
1094    F_Search           "INSERT-FIELD-DATA" /* ALT-F            
510	F_InsertMode       "INSERT-MODE"       /* INS              
1528    F_LeftEnd          "LEFT-END"          /* ALT-CURSOR-LEFT  
1101    F_Menu             "MAIN-MENU"         /* ALT-M            
1110    F_ClipField        "MOVE"              /* ALT-S            
309	F_InsLine          "NEW-LINE"          /* CTRL-N           
1093    F_NextError        "NEXT-ERROR"        /* ALT-E            
15	F_FirstFree        "OPTIONS"           /* ALT-O            
508	F_PageDown         "PAGE-DOWN"         /* PAGE-DOWN        
507	F_PageUp           "PAGE-UP"           /* PAGE-UP          
1040    F_Pick             "PICK"              /* ALT-P            
1105    F_Keys             "PICK-BOTH"         /* ALT-Q            
306	F_Put              "PUT"               /* F6               
1106    F_Replace          "REPLACE"           /* ALT-R            
13	F_Enter            "RETURN"            /* ENTER            
1527    F_RightEnd         "RIGHT-END"         /* ALT-CURSOR-RIGHT 
1108    F_Scroll_Mode      "SCROLL-MODE"       /* ALT-T            
9	F_FieldRight       "TAB"               /* TAB              
1525    F_Clip             "TOP-COLUMN"        /* ALT-C            
</code>

Nazwy, które mogą pojawiać się w expect:

  * 04 - twx nieedytowalny
  * 05 - twx edytowalny
  * 09 - ask
  * 08 i 13 - signal

oraz inne - takie jak początek nazwy pliku XML układaczki.

