Table of Contents

Drag&Drop von Entities in Referenzfelder

Informationen

  • Kategorien: GUI | DragDrop
  • Version: 14.0.0.2335
  • Veröffentlichungsdatum: Mittwoch, 2. Februar 2011
  • Entwickler: Schulze
  • Benötigt Datenbankänderung: Nein
  • Betreff: Drag&Drop von Entities in Referenzfelder

Beschreibung

Drag&Drop von einem Entity ist jetzt möglich:

  • innerhalb einer Programminstanz
  • zwischen 2 beliebigen Programminstanzen

Quelle kann sein:

  • Baum (Kontextbaumebene)
  • Tabelle
  • Karteikarte
  • Favoriteneintrag

Ziel kann sein:

  • Referenz-/Katalog-Steuerelement

Wenn das Entity über das Steuerelement gezogen wird, wird ein Ereignis (Event) aufgerufen, in diesem kann man das Infofenster (Text, Titel, Bild) beeinfussen bzw. Drag&Drop abschalten. Wenn das Entity fallen gelassen ("gedroppt") wird, wird das selbe Ereignis noch einmal aufgerufen, hier kann man das Zuweisen des Entity im Referenz-Attribut verhindern.

Bilder

Drag&Drop von Entities in Referenzfelder

Beispielcode

int onEvent_EntityDragDrop( int $nDragDropMode,
		int $nIndex,
		int $nCount,
		entity $eDroppedEntity,
		string $sTargetComplexAttributeName,
		byref string $sDragOverMessage,
		byref string $sDragOverTitle,
		byref string $sDragOverImagePath,
		string $sErrorMessage)
{
	var ::Company $eCompany;

	if( $nDragDropMode == 1 ) // DragOver
	{
		// the entity is dragging over the reference/catalog control
		//
		// $sDragOverMessage = "...";	
		// $sDragOverTitle = "...";	
		return 1;
	}
	else if( $nDragDropMode == 2 ) // Dropped
	{
		// the entity was dropped of the reference/catalog control
		//
		if( IsKindOf( $eDroppedEntity, "Company" ) && MakeLower( $sTargetComplexAttributeName ) == "ref_contact_person_of" )
		{
			$eCompany = $eDroppedEntity;
			if( MessageBox( "Soll folgendes Unternehmen hier zugeordnet werden?:\n\n" + $eCompany.Name_number, 32 + 4 ) != 1 )
			{
				return 0;
			}
		}
		return 1;
	}

	return 0;
}