Cancel
Showing results for 
Search instead for 
Did you mean: 

Attribute BEs

Creator
Creator

Halli Hallo!

 

hab da mal ein Problem und hoffe ihr könnt mir da weiterhelfen. Wir möchten beim erzeugen der BEs diesen verschiedene Attribute mitgeben.

Pro Quelle haben wir ein BE zugeordnet welches erzeugt werden soll. Die Attribute stehen in einer Tabelle die wir aus Excel eingelesen haben.

Wir möchten Quelle für Quelle durchgehen und beim erzeugen des jeweiligen BEs die entsprechenden Attribute einlesen lassen.

In Zeile "28" haben wir definiert, dass das BE der derzeit angesprochenen Quelle in der Tabelle gefunden werden soll. Uns sucht er aber die Teile raus die keinen Pfad hinterlegt haben. Wie können wir das lösen, bzw. das "?" anders definieren?

Wären um jede Hilfe dankbar! Smiley Happy 

Hier ist unser Code:

 

-- .Modelle.Einstiegsmaske.Sammlung_Methoden.init
is
  --deklariere Variablen
 Stufennummer: string;
 Komponentennummer: string;
 Objektkurztext: string;
 MArt: string;
 Menge: string;
 ME: string;
 Takt: string;
 JIT_Teile: string;
 Halbzeuge: string;
 Quellen_Baugruppen: object;
 Quelle_Erzeugungsintervall: time;
 Baugruppe: string;
 Bearbeitungszeit_Montage: time;
 Ziel_Teileprüfung_Puffer: object;
 BE: object;
 
   
do  -- Suche alle Variablen raus und lasse diese auf den Quellen erzeugen
 .Modelle.Einstiegsmaske.Grundlagen_Daten.setzeZeiger("Quellen_Baugruppen",1); 
 --Setze den Zeiger in Tabelle "Grundlagen_Daten" auf Spalte "Quellen_Baugruppen" und Zeile 1
   
  
  for local i:=1 to .Modelle.Einstiegsmaske.Grundlagen_Daten.maxYDim loop  --durchlaufe die Tabelle von Anfang an bis zur letzten Zeile der Tabelle
   
     if .Modelle.Einstiegsmaske.Grundlagen_Daten.finden({"Quellen_Baugruppen",*}..{"Quellen_Baugruppen",*},?);
   then                              
    Stufennummer:=.Modelle.Einstiegsmaske.Grundlagen_Daten["Stufennummer",.Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY];
    Komponentennummer:=.Modelle.Einstiegsmaske.Grundlagen_Daten["Komponentennummer",.Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY];
             Objektkurztext:=.Modelle.Einstiegsmaske.Grundlagen_Daten["Objektkurztext",.Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY];            
    MArt:=.Modelle.Einstiegsmaske.Grundlagen_Daten["MArt",.Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY];
             Menge:=.Modelle.Einstiegsmaske.Grundlagen_Daten["Menge",.Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY];
             ME:=.Modelle.Einstiegsmaske.Grundlagen_Daten["ME",.Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY];
             Takt:=.Modelle.Einstiegsmaske.Grundlagen_Daten["Takt",.Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY];
              JIT_Teile:=.Modelle.Einstiegsmaske.Grundlagen_Daten["JIT_Teile",.Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY];
              Halbzeuge:=.Modelle.Einstiegsmaske.Grundlagen_Daten["Halbzeuge",.Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY];
             Quellen_Baugruppen:=.Modelle.Einstiegsmaske.Grundlagen_Daten["Quellen_Baugruppen",.Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY];
             Quelle_Erzeugungsintervall:=.Modelle.Einstiegsmaske.Grundlagen_Daten["Quelle_Erzeugungsintervall",.Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY];
             Baugruppe:=.Modelle.Einstiegsmaske.Grundlagen_Daten["Baugruppe",.Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY];
             Bearbeitungszeit_Montage:=.Modelle.Einstiegsmaske.Grundlagen_Daten["Bearbeitungszeit_Montage",.Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY];
             Ziel_Teileprüfung_Puffer:=.Modelle.Einstiegsmaske.Grundlagen_Daten["Ziel_Teileprüfung_Puffer",.Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY];
                BE:=.Modelle.Einstiegsmaske.Grundlagen_Daten["BE",.Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY];

    BE.Stufennummer:=Stufennummer;    
    BE.Komponentennummer:=Komponentennummer;
    BE.Objektkurztext:=Objektkurztext;
    BE.MArt:=MArt;
    BE.Menge:=Menge;
    BE.ME:=ME;
    BE.Takt:=Takt;
    BE.JIT_Teile:=JIT_Teile;
    BE.Halbzeuge:=Halbzeuge;
    BE.Quellen_Baugruppen:=Quellen_Baugruppen;
    BE.Quelle_Erzeugungsintervall:=Quelle_Erzeugungsintervall;
    BE.Baugruppe:=Baugruppe;
    BE.Bearbeitungszeit_Montage:=Bearbeitungszeit_Montage;
    BE.Ziel_Teileprüfung_Puffer:=Ziel_Teileprüfung_Puffer;
    
    .Modelle.Einstiegsmaske.Grundlagen_Daten.setzeZeiger("Quellen_Baugruppen",.Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY+1); --setze Zeiger wieder in Spalte"Quellen_Baugruppen" und nächste Zeile 
   else
    debug;  --wenn kein X mehr gefunden wird, beende die Schleife
   end
  next 
end;

2 REPLIES 2

Re: Attribute BEs

Siemens Phenom Siemens Phenom
Siemens Phenom

Hallo,

 

eine so umfangreiche Methode ist für ein Forum nicht gut geeignet.

Zum besseren Verständnis und für eine schnellere Ausführung der Methode empfehle ich, für immer wieder gebrauchte Daten lokale Variablen zu verwenden. Etwa so:

local DatenTab : object := .Modelle.Einstiegsmaske.Grundlagen_Daten;

Auch .Modelle.Einstiegsmaske.Grundlagen_Daten.ZeigerY sollte als lokale Variable vom Typ integer vereinbart werden.

 

Wir wollen Attribute von BEs setzen. Das macht man am besten gleich nach der Erzeugung.

Dazu eignet sich die Steuerung Konstruktor für die BEs, die man in der BE-Klasse anlegen kann (Menü Extras > Steuerungen auswählen). Das BE ist in der Steuerung der Bezeichner @.

 

Noch ein Hinweis: Das Semikolon in der ersten if-Anweisung muss raus.

 

Viele Grüße

Peter

Re: Attribute BEs

Creator
Creator
Vielen Dank für die Hilfe, das hat geklappt Smiley Happy Smiley Happy