Revision dda4cde1
Von Moritz Bunkus vor fast 13 Jahren hinzugefügt
doc/dokumentation.xml | ||
---|---|---|
25 | 25 |
url="http://www.lx-office.org/forum/">http://www.lx-office.org/forum/</ulink></para> |
26 | 26 |
</listitem> |
27 | 27 |
</itemizedlist> |
28 |
|
|
29 |
<!-- --> |
|
30 | 28 |
</chapter> |
31 | 29 |
|
32 | 30 |
<chapter id="config"> |
... | ... | |
462 | 460 |
|
463 | 461 |
<programlisting>local all lxoffice password |
464 | 462 |
host all lxoffice 127.0.0.1 255.255.255.255 password</programlisting> |
465 |
|
|
466 |
<!-- --> |
|
467 | 463 |
</sect2> |
468 | 464 |
|
469 | 465 |
<sect2 id="Erweiterung-für-servergespeicherte-Prozeduren"> |
... | ... | |
475 | 471 |
führen Sie die folgenden Kommandos aus:</para> |
476 | 472 |
|
477 | 473 |
<programlisting>create language 'plpgsql';</programlisting> |
478 |
<!-- --> |
|
479 | 474 |
</sect2> |
480 | 475 |
|
481 | 476 |
<sect2 id="Datenbankbenutzer-anlegen"> |
... | ... | |
491 | 486 |
<para>Wenn Sie später einen Datenbankzugriff konfigurieren, verändern |
492 | 487 |
Sie den evtl. voreingestellten Benutzer “postgres” auf “lxoffice” bzw. |
493 | 488 |
den hier gewählten Benutzernamen.</para> |
494 |
|
|
495 |
<!-- --> |
|
496 | 489 |
</sect2> |
497 | 490 |
</sect1> |
498 | 491 |
|
... | ... | |
850 | 843 |
|
851 | 844 |
<para>Dieselben Optionen können auch für die SystemV-basierenden |
852 | 845 |
Runlevel-Scripte benutzt werden (siehe oben).</para> |
853 |
|
|
854 |
<!-- --> |
|
855 | 846 |
</sect2> |
856 | 847 |
</sect1> |
857 | 848 |
|
... | ... | |
861 | 852 |
<para>Informationen über die Einrichtung der Benutzerauthentifizierung, |
862 | 853 |
über die Verwaltung von Gruppen und weitere Einstellungen</para> |
863 | 854 |
|
864 |
<!-- --> |
|
865 |
|
|
866 | 855 |
<sect2 id="Grundlagen-zur-Benutzerauthentifizierung"> |
867 | 856 |
<title>Grundlagen zur Benutzerauthentifizierung</title> |
868 | 857 |
|
... | ... | |
1043 | 1032 |
|
1044 | 1033 |
<para><ulink |
1045 | 1034 |
url="http://localhost/lx-erp/admin.pl">http://localhost/lx-erp/admin.pl</ulink></para> |
1046 |
|
|
1047 |
<!-- --> |
|
1048 | 1035 |
</sect2> |
1049 | 1036 |
</sect1> |
1050 | 1037 |
|
... | ... | |
1213 | 1200 |
Mitglied in dieser Gruppe. Damit wird das Verhalten von Lx-Office bis |
1214 | 1201 |
Version 2.4.3 inklusive wiederhergestellt, und die Benutzer können |
1215 | 1202 |
sich sofort wieder anmelden und mit dem System arbeiten.</para> |
1216 |
|
|
1217 |
<!-- --> |
|
1218 | 1203 |
</sect2> |
1219 | 1204 |
</sect1> |
1220 | 1205 |
|
... | ... | |
1264 | 1249 |
<literal>pdflatex</literal>), und stellen Sie sicher, dass pdflatex |
1265 | 1250 |
(oder das von Ihnen verwendete System) vom Webserver ausgeführt werden |
1266 | 1251 |
darf.</para> |
1267 |
|
|
1268 |
<!-- --> |
|
1269 | 1252 |
</sect1> |
1270 | 1253 |
|
1271 | 1254 |
<sect1 id="OpenDocument-Vorlagen"> |
... | ... | |
1340 | 1323 |
sein. Dieses wurde bereits erledigt (siehe <xref |
1341 | 1324 |
linkend="Manuelle-Installation-des-Programmpaketes"/>), kann aber erneut |
1342 | 1325 |
überprüft werden, wenn die Konvertierung nach PDF fehlschlägt.</para> |
1343 |
|
|
1344 |
<!-- --> |
|
1345 | 1326 |
</sect1> |
1346 | 1327 |
|
1347 | 1328 |
<sect1 id="config.eur"> |
... | ... | |
1456 | 1437 |
<para> |
1457 | 1438 |
Bei bestimmten Berichten kann man derzeit noch inviduell einstellen, ob man nach Ist- oder Sollversteuerung auswertet, und es werden |
1458 | 1439 |
im Code Variablen wie $accrual oder $cash gesetzt. Diese Codestellen wurden noch nicht angepasst, sondern nur die, wo bisher |
1459 |
die Konfigurationsvariable <varname>$::lx_office_conf{system}->{eur}</varname> ausgewertet wurde.
|
|
1440 |
die Konfigurationsvariable <varname>$::lx_office_conf{system}->{eur}</varname> ausgewertet wurde.
|
|
1460 | 1441 |
</para> |
1461 | 1442 |
|
1462 | 1443 |
<para> |
... | ... | |
4317 | 4298 |
gewachsen sind), sollte man vor einem Aufruf (!) von zum |
4318 | 4299 |
Beispiel <function>IS->retrieve_customer()</function> in |
4319 | 4300 |
Sicherheit bringen. </para> |
4320 |
Z.B. das vom Benutzer eingestellte Zahlenformat, bevor man Berechnung in einem |
|
4321 |
bestimmten Format durchführt (SL/Form.pm Zeile 3552, Stand version 2.7beta), um |
|
4322 |
dies hinterher wieder auf den richtigen Wert zu setzen: |
|
4323 |
<programlisting> |
|
4324 |
my $saved_numberformat = $::myconfig{numberformat}; |
|
4325 |
$::myconfig{numberformat} = $numberformat; |
|
4326 |
# (...) div Berechnungen |
|
4327 |
$::myconfig{numberformat} = $saved_numberformat; |
|
4328 |
</programlisting> |
|
4329 |
<para>Das Objekt der Klasse Form hat leider im Moment noch viele |
|
4330 |
zentrale Funktionen die vom internen Zustand abhängen, deshalb |
|
4331 |
bitte nie einfach zerstören oder überschreiben (zumindestens nicht kurz |
|
4332 |
vor einem Release oder in Absprache über bspw. die devel-Liste ;-). |
|
4333 |
Es geht ziemlich sicher etwas kaputt.</para> |
|
4334 |
|
|
4335 |
<para><varname>$::form</varname> ist gleichzeitig der Standard Scope |
|
4336 |
in den <productname>Template::Toolkit</productname> Templates |
|
4337 |
außerhalb der Controller: der Ausdruck <function>[% var |
|
4338 |
%]</function> greift auf <varname>$::form->{var}</varname> zu. |
|
4339 |
Unter Controllern ist der Standard Scope anders, da lautet der |
|
4340 |
Zugriff <function>[% FORM.var %]</function>. In Druckvorlagen sind |
|
4341 |
normale Variablen ebenfall im <varname>$::form</varname> Scope, d.h. |
|
4342 |
<function><%var%></function> zeigt auf |
|
4343 |
<varname>$::form->{var}</varname>. |
|
4344 |
Nochmal von der anderen Seite erläutert, innerhalb von (Web-)Templates sieht |
|
4345 |
man häufiger solche Konstrukte: |
|
4346 |
<programlisting> |
|
4347 |
[%- IF business %] |
|
4348 |
# (... Zeig die Auswahlliste Kunden-/Lieferantentyp an |
|
4349 |
[%- END %] |
|
4350 |
</programlisting> |
|
4351 |
Entweder wird hier dann $::form->{business} ausgewertet oder aber der Funktion |
|
4352 |
<function>$form->parse_html_template</function> wird explizit noch ein zusätzlicher Hash |
|
4353 |
übergeben, der dann auch in den (Web-)Templates zu Verfügung steht, bspw. so: |
|
4354 |
<function>$form->parse_html_template("is/form_header", \%TMPL_VAR);</function> |
|
4355 |
|
|
4356 |
Innerhalb von Schleifen wird |
|
4357 |
<varname>$::form->{TEMPLATE_ARRAYS}{var}[$index]</varname> |
|
4358 |
bevorzugt, wenn vorhanden.</para> |
|
4359 |
Zum Beispiel in SL/DO.pm welche über alle Positionen eines Lieferscheins |
|
4360 |
in Schleife läuft: |
|
4361 |
<programlisting> |
|
4362 |
for $i (1 .. $form->{rowcount}) { |
|
4363 |
(...) |
|
4364 |
push @{ $form->{TEMPLATE_ARRAYS}{runningnumber} }, $position; |
|
4365 |
push @{ $form->{TEMPLATE_ARRAYS}{number} }, $form->{"partnumber_$i"}; |
|
4366 |
push @{ $form->{TEMPLATE_ARRAYS}{description} }, $form->{"description_$i"}; |
|
4367 |
</programlisting> |
|
4368 |
</sect3> |
|
4301 |
|
|
4302 |
<para> |
|
4303 |
Z.B. das vom Benutzer eingestellte Zahlenformat, bevor man Berechnung in einem |
|
4304 |
bestimmten Format durchführt (SL/Form.pm Zeile 3552, Stand version 2.7beta), um |
|
4305 |
dies hinterher wieder auf den richtigen Wert zu setzen: |
|
4306 |
</para> |
|
4307 |
|
|
4308 |
<programlisting> my $saved_numberformat = $::myconfig{numberformat}; |
|
4309 |
$::myconfig{numberformat} = $numberformat; |
|
4310 |
# (...) div Berechnungen |
|
4311 |
$::myconfig{numberformat} = $saved_numberformat;</programlisting> |
|
4312 |
|
|
4313 |
<para> |
|
4314 |
Das Objekt der Klasse Form hat leider im Moment noch viele zentrale Funktionen die vom internen Zustand abhängen, deshalb bitte |
|
4315 |
nie einfach zerstören oder überschreiben (zumindestens nicht kurz vor einem Release oder in Absprache über bspw. die devel-Liste |
|
4316 |
;-). Es geht ziemlich sicher etwas kaputt. |
|
4317 |
</para> |
|
4318 |
|
|
4319 |
<para> |
|
4320 |
<varname>$::form</varname> ist gleichzeitig der Standard Scope in den <productname>Template::Toolkit</productname> Templates |
|
4321 |
außerhalb der Controller: der Ausdruck <function>[% var %]</function> greift auf <varname>$::form->{var}</varname> zu. Unter |
|
4322 |
Controllern ist der Standard Scope anders, da lautet der Zugriff <function>[% FORM.var %]</function>. In Druckvorlagen sind |
|
4323 |
normale Variablen ebenfall im <varname>$::form</varname> Scope, d.h. <function><%var%></function> zeigt auf |
|
4324 |
<varname>$::form->{var}</varname>. Nochmal von der anderen Seite erläutert, innerhalb von (Web-)Templates sieht man häufiger |
|
4325 |
solche Konstrukte: |
|
4326 |
</para> |
|
4327 |
|
|
4328 |
<programlisting>[%- IF business %] |
|
4329 |
# (... Zeig die Auswahlliste Kunden-/Lieferantentyp an) |
|
4330 |
[%- END %]</programlisting> |
|
4331 |
|
|
4332 |
<para> |
|
4333 |
Entweder wird hier dann $::form->{business} ausgewertet oder aber der Funktion <function>$form->parse_html_template</function> |
|
4334 |
wird explizit noch ein zusätzlicher Hash übergeben, der dann auch in den (Web-)Templates zu Verfügung steht, bspw. so: |
|
4335 |
</para> |
|
4336 |
|
|
4337 |
<programlisting>$form->parse_html_template("is/form_header", \%TMPL_VAR);</programlisting> |
|
4338 |
|
|
4339 |
<para> |
|
4340 |
Innerhalb von Schleifen wird <varname>$::form->{TEMPLATE_ARRAYS}{var}[$index]</varname> bevorzugt, wenn vorhanden. Ein |
|
4341 |
Beispiel findet sich in SL/DO.pm, welches über alle Positionen eines Lieferscheins in Schleife läuft: |
|
4342 |
</para> |
|
4343 |
|
|
4344 |
<programlisting>for $i (1 .. $form->{rowcount}) { |
|
4345 |
# ... |
|
4346 |
push @{ $form->{TEMPLATE_ARRAYS}{runningnumber} }, $position; |
|
4347 |
push @{ $form->{TEMPLATE_ARRAYS}{number} }, $form->{"partnumber_$i"}; |
|
4348 |
push @{ $form->{TEMPLATE_ARRAYS}{description} }, $form->{"description_$i"}; |
|
4349 |
# ... |
|
4350 |
}</programlisting> |
|
4351 |
</sect3> |
|
4369 | 4352 |
|
4370 | 4353 |
<sect3> |
4371 | 4354 |
<title>%::myconfig</title> |
... | ... | |
4404 | 4387 |
</listitem> |
4405 | 4388 |
</itemizedlist> |
4406 | 4389 |
|
4407 |
<para><varname>%::myconfig</varname> ist im Moment der Ersatz für |
|
4408 |
ein Userobjekt. Die meisten Funktionen, die etwas anhand des |
|
4409 |
aktuellen Users entscheiden müssen, befragen |
|
4410 |
<varname>%::myconfig</varname>. |
|
4411 |
Innerhalb der Anwendungen sind dies überwiegend die Daten, die sich |
|
4412 |
unter Programm->Einstellungen befinden, bzw. die Informationen über den |
|
4413 |
Benutzer die über die Administrator-Schnittstelle (admin.pl) eingegeben wurden. |
|
4414 |
</para> |
|
4390 |
<para> |
|
4391 |
<varname>%::myconfig</varname> ist im Moment der Ersatz für ein Userobjekt. Die meisten Funktionen, die etwas anhand des |
|
4392 |
aktuellen Users entscheiden müssen, befragen <varname>%::myconfig</varname>. Innerhalb der Anwendungen sind dies überwiegend die |
|
4393 |
Daten, die sich unter <guimenu>Programm</guimenu> -> <guimenuitem>Einstellungen</guimenuitem> befinden, bzw. die Informationen |
|
4394 |
über den Benutzer die über die Administrator-Schnittstelle (admin.pl) eingegeben wurden. |
|
4395 |
</para> |
|
4415 | 4396 |
</sect3> |
4416 | 4397 |
|
4417 | 4398 |
<sect3> |
... | ... | |
4459 | 4440 |
</listitem> |
4460 | 4441 |
</itemizedlist> |
4461 | 4442 |
|
4462 |
<para><varname>$::lxdebug</varname> stellt Debuggingfunktionen |
|
4463 |
bereit, wie "<function>enter_sub</function>" und |
|
4464 |
"<function>leave_sub</function>", mit denen in den alten Modulen ein |
|
4465 |
brauchbares Tracing gebaut ist, "<function>log_time</function>", mit |
|
4466 |
der man die Wallclockzeit seit Requeststart loggen kann, sowie |
|
4467 |
"<function>message</function>" und "<function>dump</function>" mit |
|
4468 |
denen man flott Informationen ins Log (tmp/lx-office-debug.log) packen kann.</para> |
|
4469 |
Beispielsweise so: |
|
4470 |
<programlisting> |
|
4471 |
$main::lxdebug->message(0, 'Meine Konfig:' . Dumper (%::myconfig)); |
|
4472 |
$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc}); |
|
4473 |
|
|
4474 |
</programlisting> |
|
4443 |
<para> |
|
4444 |
<varname>$::lxdebug</varname> stellt Debuggingfunktionen bereit, wie "<function>enter_sub</function>" und |
|
4445 |
"<function>leave_sub</function>", mit denen in den alten Modulen ein brauchbares Tracing gebaut ist, |
|
4446 |
"<function>log_time</function>", mit der man die Wallclockzeit seit Requeststart loggen kann, sowie |
|
4447 |
"<function>message</function>" und "<function>dump</function>" mit denen man flott Informationen ins Log |
|
4448 |
(tmp/lx-office-debug.log) packen kann. |
|
4449 |
</para> |
|
4450 |
|
|
4451 |
<para> |
|
4452 |
Beispielsweise so: |
|
4453 |
</para> |
|
4454 |
|
|
4455 |
<programlisting>$main::lxdebug->message(0, 'Meine Konfig:' . Dumper (%::myconfig)); |
|
4456 |
$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc});</programlisting> |
|
4475 | 4457 |
</sect3> |
4476 | 4458 |
|
4477 | 4459 |
<sect3> |
... | ... | |
4559 | 4541 |
speichert aber Daten die von der Instanz abhängig sind. Eine Instanz |
4560 | 4542 |
ist hier eine Mandantendatenbank. |
4561 | 4543 |
Beispielsweise überprüft |
4562 |
<programlisting>$::instance_conf->get_inventory_system eq 'perpetual'</programlisting>
|
|
4544 |
<programlisting>$::instance_conf->get_inventory_system eq 'perpetual'</programlisting>
|
|
4563 | 4545 |
ob die berüchtigte Bestandsmethode zur Anwendung kommt.</para> |
4564 | 4546 |
</sect3> |
4565 | 4547 |
|
Auch abrufbar als: Unified diff
Diverse XML-Bugs in der Doku gefixt