Skip to main content
Participant
January 9, 2020
Answered

Comboboxen mit farbigem Hintergrund

  • January 9, 2020
  • 1 reply
  • 307 views

Hallo zusammen,

ich habe eine PDF, in der der Erfüllunsgrad einer Einarbeitung dokumentiert werden soll:

Erfüllungsgrad PDF 

 

Der Erfüllunsgrad soll jeweils über 5 Comboboxen dargestellt werden.

Im Moment habe ich es so gelöst, dass in jeder Comboboxreihen eine Aktion ausgeführt wird, welche beim Setzen eines Hakens die CB farbig machen soll. Dies geschieht aber nur beim Drucken. Die CB wird in der Ansich nie farbig.

 

Was ich also möchte - und ich hoffe da kann mir jemand helfen -ist, dass in einer Reihe von CB immer nur ein Haken gesetzt sein kann und sich die Farbe aller CB links davon einschließlich des der CB mit Haken in der Farbe der Spaltenüberschrift gemacht werden sollen.

Sprich wenn in Zeile 1 CB 2 aktiviert ist sollen CB 1 und  2 rot sein. 3, 4 und 5 sollen farblos sein.

Wenn jetzt in Zeile 1 CB 5 aktiviert wird, soll CB2 automatisch abgewählt werden und alle CBs in dieser Zeile sollen grün sein.

 

Aktualisert soll die Farbe der CB am Besten immer werden, wenn eine neuer Haken gesetzt wird und davor soll sie den letzten Status behalten. Notfalls kann ich auch damit leben, dass die Aktualisierung passiert,w enn gespeichert und/oder gedruckt wird.

 

Ist soetwas umsetzbar? So wie ich es bis jetzt habe funktioniert das fast alles. Das Einzige was nicht geht ist, dass die CB ihre Farbe beim Bearbeiten anzeigen und behalten. Diese werden IMMER Farblos und erst beim Drucken farbig.

 

Falls weitere Infos oder so benötigt werden einfach melden.

 

Grüße und vielen Dank

 

Peter

This topic has been closed for replies.
Correct answer Bernd Alheit

Guten morgen Bernd,

 

ich hab leider keine Ahnung wie ich das in meinen Code implementiere *confused* habe jetzt einiges Probiert aber er macht es NUR, wenn ich bei this.getField("CB11") explizit reinschreibe. Wenn ich hier versuche dies mit einer Schleife für alle linksdavon stehen CBs zu machen funktioniert es nicht und ich komme nicht drauf warum.

Das hier ist mein Code mit der Schleife für grün markieren.

Da ich ja nur möchte, dass es für alle links davon stehenden CBs die Haken entfernt werden sollen würde ich es wie gesagt nach z--; einfügen und dafür die Variable HFarbeCB nehmen. sprich ich würde folgendes nach z-- einfügen:

HFarbeCB.checkThisBox(0,false);

Aber das geht nicht. Muss ich dort wirklich jede CB einzeln abfragen?

var anfangCB = "CB";
var y = 1;

var x = 5;
while (x > 0)
{

var FarbeCB = anfangCB + y.toString() + x.toString();


  if (this.getField(FarbeCB).value != "Off" && x == 5)
  {
    var z = x;
    while (z > 0)
    {
    var HFarbeCB = anfangCB + y.toString() + z.toString();
    this.getField(HFarbeCB).fillColor = color.green;    
    z--;    
    }
  break;
  }

 

 


With event.target.name you will get the name of the checkbox. From this name you can extract the numbers of the row (y) and the column (x).

Use one document level function for your code. Then you must only execute the function at your checkboxes.

1 reply

Bernd Alheit
Community Expert
Community Expert
January 9, 2020

You can see the colors when you disable the form highlighting in the preferences:

 

Participant
January 9, 2020

Hallo Bernd,

 

danke für deine super schnelle Antwort. Hat alles einwandfrei funktioniert.

Jetzt stellt sich mir nur noch die Frage, wie ich die Checkboxen links von der zuletzt aktivierten alle deaktivieren kann?

Ich würde dazu die gleiche Schleife nehmen und den Befehl lediglich hinter das z-- stellen.

Nur weiß ich nicht wie der Befehl, mit den vorhandenen Variablen für die Checkboxen, funktioniert. Kannst du mir hier auch noch helfen?

 

Grüße und vielen Dank schonmal

 

Peter

Bernd Alheit
Community Expert
Community Expert
January 9, 2020

You can clear a checkbox with:

var f = this.getField("ChkBox");
f.checkThisBox(0,false);