Hallo Admin,
admin hat geschrieben:
Wir haben das bei uns aufgenommen. Versprechen aber nichts 

 
dafür verspreche ich, dass das Problem gelöst ist  
 
Hier das Ergebnis bzw. Vorgehensweise:
In die Tabelle BKUNDEMAND das Feld BVERT_ID mit foreign key auf BVERT einfügen.
Die View V_BKUNDEMAND mit Triggern entsprechend anpassen.
 
Eine entsprechende Procedure bauen (P_BKUNDEMAND_VERTRETER), die ein entsprechendes Ergebnis liefert.
Code: Alles auswählen
SET TERM ^ ;
CREATE OR ALTER PROCEDURE P_BKUNDEMAND_VERTRETER (
    MANDANT INTEGER,
    KUNDEID INTEGER)
RETURNS (
    VERTID INTEGER)
AS
begin
  /* LETZTER STAND: 14.07.2009 08:37:52 BY KDP */
  /* Mandantenabhängigen Vertreter zurückgeben */
  /* PROTOKOLLIEREN, DASS AKTION HIER DURCHGELAUFEN IST */
  IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
    INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ( 'P_BKUNDEMAND_VERTRETER' );
  select bvert_id from BKUNDEMAND
  where bkunde_id_linkkey = :kundeid and bmand_id = :mandant
  into
    :VERTID
  ;
   
  suspend;
end^
SET TERM ; ^
DELETE FROM RDB$USER_PRIVILEGES
WHERE (RDB$USER = 'P_BKUNDEMAND_VERTRETER') AND (RDB$USER_TYPE = 5);
GRANT INSERT ON A_WASMACHTIB TO PROCEDURE P_BKUNDEMAND_VERTRETER;
GRANT SELECT ON BKUNDEMAND TO PROCEDURE P_BKUNDEMAND_VERTRETER;
GRANT EXECUTE ON PROCEDURE P_BKUNDEMAND_VERTRETER TO "PUBLIC";
GRANT EXECUTE ON PROCEDURE P_BKUNDEMAND_VERTRETER TO SYSDBA;
PROC0015 der Maske frmv_bauf entsprechend anpassen, 
..schnipp
Code: Alles auswählen
    // Vertreter Mandantenabhängig
    
    MyProc.StoredProcName := 'P_BKUNDEMAND_VERTRETER';
    MyProc.ParamByName('MANDANT',AsInteger(q_1.FieldByName('BMAND_ID')));
    MyProc.ParamByName('KUNDEID',AsInteger(q_1.FieldByName('BKUNDE_ID_KUNR')));
    MyProc.Execute;
    iBVERT_ID := AsInteger(MyProc.FieldByName('VERTID')); 
    If (iBVERT_ID > 0) Then Begin
			M := q_1.FieldByName('BVERT_ID');
			M.AsInteger :=  iBVERT_ID;
			q_1.RelationIDFeld('BVERT_ID');
    End;
:und schnapp
sich zurücklehnen und freuen  
 
   
   
PS: Beim Schreiben dieses Beitrags ist mir aufgefallen das der Befehl 

 nicht mehr funktioniert. 
Deshalb konnte ich das Bild der Maske nicht einfügen.
Könnten Sie da mal schauen  
