2016-12-12 1 views
0

ich diesen Code verwenden, um den neuen Wert für das Produkt zu erhalten, aber ich möchte diesen auf dem Bildschirm sehen, die ich verwenden:nicht den Wert auf dem Bildschirm aktualisieren

„row.UnitPrice“, aber Die Daten sind da, aber nicht auf dem Bildschirm. Also muss ich eine andere Funktion für die Aktualisierung aufrufen?

+0

Sie versucht haben, das Hinzufügen 'yourGrid.View.RequestRefresh()', nachdem Sie die Daten aktualisieren? – Dispersia

Antwort

1

Stimmen Sie mit Hybridzz überein: Sie sollten CuryUnitPrice Feld statt UnitPrice aktualisieren. es ist auch notwendig, PXCache.SetValueExt Methode zu erhöhen, alle Feldebene Handler für das CuryUnitPrice Feld zu verwenden, wenn neue Wert zuweisen:

sender.SetValueExt<SOLine.curyUnitPrice>(e.Row, price); 

Auf einer seitlichen Anmerkung:

  1. sollten Sie nie Update Methode aufrufen für aktuell bearbeiteten Datensatz in FieldUpdated Handler - Base.Transactions.Update(row); muss weg InventoryItem ausgewählt abrufen müssen für Soline Datensatz gehen

  2. statische PXSelectorAttribute.Select Methode verwendet:

    • die PXSelectorAttribute speichert Datensätze in Speichereinzel GlobalCache unter allen Benutzersitzungen geteilt: es ist eine effizientere Option im Vergleich zu Querycache der PxView Klasse nur zugänglich Benutzer für 1
    • reduzieren Wartungskosten, da Sie nicht brauchen, BQL Anfragen an mehreren Stellen zu aktualisieren, wenn jemand BQL Abfrage für das Feld SOLine.InventoryItem ändern
1

Die Spalte 'Stückpreis' im Raster Details ist dem Feld CuryUnitPrice und nicht dem Einheitspreis zugeordnet.

Sie müssen also möglicherweise das richtige DAC-Feld aktualisieren.

Verwandte Themen