Replacing Sales UnitPrice field with MsgBox with Sales, Cost & Margi

Hi - this is both a sharing of what I've done, and also a request for info with some ideas I have for improving it.

The problem arises from time to time that someone will sell an item with much more discount than appropriate.

To help prevent this, we've introduced a button in Part Tracker (masking out the original Sales UnitPrice field), activating a customized MessageBox that displays the Sale price, the Cost price, and calculates the Margin and displays it as a percentage. There is also a warning if the margin is negative (could just as easily have a warning if the margin is below a certain threshhold). It might be a bit tacky - but my internal customers are happier now...

Here's the code:

Private Sub btnEpiCustom3_Click(ByVal Sender As Object, ByVal Args As System.EventArgs) Handles btnEpiCustom3.Click
'// ** Place Event Handling Code Here **
Try
Dim edvPart As EpiDataView = CType(oTrans.EpiDataViews("Part"),EpiDataView)
Dim UNITPRICE As Single = edvPart.dataView(edvPart.Row)("UnitPrice")
Dim edvPartCost As EpiDataView = CType(oTrans.EpiDataViews("PartCost"),EpiDataView)
Dim TYPE As String = edvPart.dataView(edvPart.Row)("CostMethod")
Dim COST As Single
If TYPE = "S" Then
COST = edvPartCost.dataView(edvPartCost.Row)("StdTotalCost")
Else
COST = edvPartCost.dataView(edvPartCost.Row)("AvgTotalCost")
End If
Dim PROFIT As Single = UNITPRICE - COST
Dim MARGIN As Integer
If UNITPRICE * PROFIT = 0 Then
MARGIN = 0
Else
MARGIN = PROFIT / UNITPRICE * 100
End If
Dim MESSAGE As new System.Text.StringBuilder("Sales Price")
MESSAGE.Append(vbtab)
MESSAGE.Append("$")
MESSAGE.Append(UNITPRICE)
MESSAGE.Append(vbcrlf)
MESSAGE.Append(vbcrlf)
MESSAGE.append("Cost [")
MESSAGE.append(TYPE)
MESSAGE.append("] ")
MESSAGE.Append(vbtab)
MESSAGE.Append(vbtab)
MESSAGE.Append("$")
MESSAGE.Append(COST)
MESSAGE.Append(vbcrlf)
MESSAGE.Append(vbcrlf)
MESSAGE.Append(vbcrlf)
MESSAGE.Append(vbtab)
MESSAGE.append(vbtab)
MESSAGE.append("Margin: ")
MESSAGE.append(MARGIN)
MESSAGE.append("%")
MESSAGE.Append(vbcrlf)
If MARGIN < 0 Then
MESSAGE.Append(vbcrlf)
MESSAGE.Append("WARNING, MARGIN IS NEGATIVE!")
MESSAGE.Append(vbcrlf)
MessageBox.Show(MESSAGE.ToString, _
"WARNING, MARGIN IS NEGATIVE!")
Else
MessageBox.Show(MESSAGE.ToString, _
"Sell Price vs Cost")
End If
Catch
MsgBox("Error: Is a Part Number entered?")
End Try
End Sub

I hope that's helpful to some. The message string is a little tacky - but it'll be a breeze to tweak if/when necessary :-)

What I'd like to do if possible:
1) is get this to work with Part Entry/Maintenance as well - but I can't quite get the Foreign Key View thing working for me, and I'm not overly familiar with Process Calling, which I believe may be another way in.

2) perhaps display the margin in a field somewhere on screen... Is it possible to display a variable in a field without using custom user fields?

3) slightly OT, but by default, only the On Hand tab of Part Tracker is able to have a part number entered on it. Is it possible to do the same thing on the General->Part Tab? It's a pain to swap between On Hand and General to do a new search.

4) very OT, I'd love to be able to examine (as variables/strings) the temporary list that is held in the UltraComboPlus field when multiple parts have been selected in a search.

cheers
Kerry