Druck Layout
Hallo zusammen,
Ist es möglich das linke fx Feld so zu konfigurieren das es nur einmal ein Fest zugeordneten Wert enthält? In dem Fall Buffet, die restlichen Datensätze jedoch nur als Platzhalter fungierten bis zur nächsten Kategorie des rechten fx Feldes?
Mann kann ja meines Wissens nach keine Formatierung des Textes im Skript vornehmen, so könnte man jedoch Die Linke spalte anders formatieren als die rechte .
Skript in der rechten ist:
let aa := join(for i in numbers('Buffet auswahl') do
" • " + " " + record(Buffet,i).Bezeichnung
end, "
");
let bb := join(for i in numbers('Getränke wählen (DMFAF)') do
" • " + " " + record('Getränke',i).Bezeichnung
end, "
");
aa + "
" + "
" + if 'Getränke wählen (DMFAF)' then
"Geränke " + "
" + "
" + bb
end
31 Antworten
-
Perfekt
Danke
-
Hallo Leo,
beim probebetrieb hab ich festgestellt das der "Punkt" in die Printtabelle sowie in der übersicht erscheint, (unterschiedliche skripte) wenn eine option im Dmulti gewählt wurde (nicht abgewählt ist) und dannach in der in bezug zu dem Dmulti bestehenden Tabelle gelöscht wurde.
Das Dmulti zeigt ja dann die fehlende Datensatz Nr. nicht mehr an.. da gelöscht. Warum bekommt man aber dem "punkt" davor noch angezeigt in der ausgabe? Dieser ist auch nicht mehr weg zu bekommen.
skript für die anzeige im fx :
join(for i in numbers('Buffet auswahl') do
" • " + " " + record(Buffet,i).Position
end, "
")skript printabelle:
delete (select Printtabelle);
do as server
let me := this;
let myNameSpace := ["Buffet", "Beilagen", "Salatbar", "Dessert", "Snacks", "Getränke"];
let myValueSpace := ['Buffet auswahl', 'Buffet beilagen wählen', 'Salatbar auswahl', 'Dessert auswahl', 'Snack auswahl', 'Getränke wählen'];
let myTableSpace := ["Buffet", "'Beilagen für Buffet'", "Salatbar", "Dessert", "Snacks ", "'Getränke'"];
let myPos := 1;
for i in range(cnt(myNameSpace)) do
let new := (create Printtabelle);
new.(Dashboard := me);
new.(Pos := myPos);
new.(Gruppe := item(myNameSpace, i));
new.(Hinweise := join(for j in numbers(item(myValueSpace, i)) do
text(eval(---
record({ item(myTableSpace, i) },{ j })."___________________________________"
---, me))
end, "
") + "
");
new.(Bezeichnung := join(for j in numbers(item(myValueSpace, i)) do
" • " + text(eval(---
record({ item(myTableSpace, i) },{ j }).Position
---, me))
end, "
") + "
");
myPos := myPos + 1
end;
if 'Buffet auswahl' = null then
delete (select Printtabelle where Gruppe = "Buffet")
end;
if 'Getränke wählen' = null then
delete (select Printtabelle where Gruppe = "Getränke")
end;
if 'Dessert auswahl' = null then
delete (select Printtabelle where Gruppe = "Dessert")
end;
if 'Snack auswahl' = null then
delete (select Printtabelle where Gruppe = "Snacks")
end;
if 'Buffet beilagen wählen' = null then
delete (select Printtabelle where Gruppe = "Beilagen")
end;
if 'Buffet beilagen wählen' = null then
delete (select Printtabelle where Gruppe = "Salatbar")
end;Der fehler trit nur auf wenn der gelöschte eintrag angewählt war! Wenn man ihn vorher abwählt im Dmulti läuft alles ganz normal.
-
Hallo Michi,
Das liegt daran, dass dmulti nicht mitbekommt, dass der Record in der Quelltabelle gelöscht ist. Eigentlich ist es ein Bug - die gelöschten Tabellenzeilen werden in Dmulti nicht mehr angezeigt, bleiben aber in der hexadezimaler Darstellung drinn.
ich würde am Anfang des Skripts folgendes einbauen:
---
let myDmulti := for i in numbers(Dmulti) do
if record(sourse_table,i).number(Nr) > 0 then
i
end
end;
Dmulti := myDmulti
---
Leo
-
Danke dir
-
zu früh gefreut,
für die fx ausgabe bekomme ich das hin mit deinem zusatz skript. (läuft auch so wie du sagst... fehler weg)
Bekomme es aber für dein tolles skript nicht hin.... da fehlt mir viel wissen. (leider bekomm ich da ja auch den fehler mit dem "punkt" für die printausgabe )
let me := this;
let myNameSpace := ["Buffet", "Beilagen", "Salatbar", "Dessert", "Snacks", "Getränke"];
let myValueSpace := ['Buffet auswahl', 'Buffet beilagen wählen', 'Salatbar auswahl', 'Dessert auswahl', 'Snack auswahl', 'Getränke wählen'];
let myTableSpace := ["Buffet", "'Beilagen für Buffet'", "Salatbar", "Dessert", "Snacks ", "'Getränke'"];
let myPos := 1;
for i in range(cnt(myNameSpace)) do
let new := (create Printtabelle);
new.(Dashboard := me);
new.(Pos := myPos);
new.(Gruppe := item(myNameSpace, i));
new.(Hinweise := join(for j in numbers(item(myValueSpace, i)) do
text(eval(---
record({ item(myTableSpace, i) },{ j })."___________________________________"
---, me))
end, "
") + "
");
new.(Bezeichnung := join(for j in numbers(item(myValueSpace, i)) do
" • " + text(eval(---
record({ item(myTableSpace, i) },{ j }).Position
---, me))
end, "
") + "
");
myPos := myPos + 1
end; -
Habs an der vermutlich falschen stelle probiert... sollte ja das Dmulti direkt ansprechen. Da klappt das auch.
Content aside
- vor 3 JahrenZuletzt aktiv
- 31Antworten
- 1622Ansichten