PUBLIC oManipulador as Manipulador *!* - Instancia o objeto manipulador oManipulador = CREATEOBJECT("Manipulador") loGrid = SFT.PAGEFRAME1.PAGE1.CONT1.GRID1 * Set the ControlSource for each column *loGrid.Column1.ControlSource = "FI.ALTURA" *loGrid.Column5.ControlSource = "FI.ESPESSURA" *loGrid.Column8.ControlSource = "FI.LARGURA" *loGrid.Column9.ControlSource = "FI.PARTES" * Bind the event to Column1 BINDEVENT(loGrid.Column1, "AfterRowColChange", oManipulador, "CalculateTotal") * Bind the event to Column5 BINDEVENT(loGrid.Column5, "AfterRowColChange", oManipulador, "CalculateTotal") * Bind the event to Column8 BINDEVENT(loGrid.Column8, "AfterRowColChange", oManipulador, "CalculateTotal") * Bind the event to Column9 BINDEVENT(loGrid.Column9, "AfterRowColChange", oManipulador, "CalculateTotal") DEFINE CLASS Manipulador AS Session LPARAMETERS nColIndex * Define the event handler method directly PROCEDURE CalculateTotal ? "CalculateTotal method called" && No message was return ?? loGrid.Column13.text1.value = VAL(loGrid.Column1.text1.value * loGrid.Column5.text1.value * loGrid.Column8.text1.value * loGrid.Column9.text1.value) ENDPROC enddefineThanks!
Release GE_SNNOCALFIS IF SFT.EDITING Public oHandler oHandler = Newobject( "myhandler" ) oGrid = sft.pageframe1.page1.cont1.Grid1 Bindevent(oGrid,"BeforeRowColChange",oHandler,"mymove") ENDIF DEFINE CLASS myhandler As Session PROCEDURE mymove Lparameters nColIndex SELECT FT IF SFT.editing OR SFT.Adding Select FI If !Empty(FI.REF) And (FI.qtt <> 0 And ( FI.partes <> 0 And FI.altura <> 0 And FI.largura <> 0 And FI.espessura <> 0)) SFT.pageframe1.page1.cont1.grid1.column13.text1.Value =( SFT.pageframe1.page1.cont1.grid1.column1.text1.Value * SFT.pageframe1.page1.cont1.grid1.column5.text1.Value * SFT.pageframe1.page1.cont1.grid1.column8.text1.Value * SFT.pageframe1.page1.cont1.grid1.column9.text1.Value) Replace FI.u_cantidad With Round(( partes * altura * largura * espessura ),4) Replace FI.etiliquido With Round( Round( FI.u_cantidad *((epv *(1-desconto/100)*(1-desc2/100)*(1-desc3/100)*(1-desc4/100)*(1-desc5/100)*(1-desc6/100))), 6 ) , 2) Else If !Empty(FI.REF) And ( FI.qtt <> 0 And ( FI.partes = 0 Or FI.altura = 0 Or FI.largura = 0 Or FI.espessura = 0) ) Replace FI.u_cantidad With FI.qtt Endif Endif do fttots do ftactval ENDIF ENDPROC ENDDEFINEBorislav,
select fi oGrid = SFT.Pageframe1.Page1.Cont1.Grid1 For i = 1 to oGrid.ColumnCount If oGRid.Columns(i).controlsource == "FI.ALTURA" &&By ControlSource ? oGRid.Columns(i).text1.value Endif EndForThat´s correct ?