Skip to Content
0
Former Member
Apr 18, 2008 at 10:43 AM

Numeric conversion error

44 Views

Hello everybody,

Good Day to all.

I have a very strange problem in my UDF. I have a Matrix whitch is bound to a Table data source like this:

        Table = oForm.DataSources.DataTables.Add("Lines")
        Table.Columns.Add("ID", SAPbouiCOM.BoFieldsType.ft_Integer)
        Table.Columns.Add("DocEntry", SAPbouiCOM.BoFieldsType.ft_Integer)
        Table.Columns.Add("DocNum", SAPbouiCOM.BoFieldsType.ft_AlphaNumeric, 255)
        Table.Columns.Add("codi_loca", SAPbouiCOM.BoFieldsType.ft_AlphaNumeric, 10)
        Table.Columns.Add("codi_arti", SAPbouiCOM.BoFieldsType.ft_AlphaNumeric, 25)
        Table.Columns.Add("quan_movi", SAPbouiCOM.BoFieldsType.ft_Float)
        Table.Columns.Add("data_tran", SAPbouiCOM.BoFieldsType.ft_Date)
        Table.Columns.Add("hora_tran", SAPbouiCOM.BoFieldsType.ft_Date)

        Matrix = oForm.Items.Item("6").Specific
        Column = Matrix.Columns.Item("V_-1")
        Column.DataBind.Bind("Lines", "ID")
        Column = Matrix.Columns.Item("V_0")
        Column.DataBind.Bind("Lines", "DocNum")
        Column = Matrix.Columns.Item("V_1")
        Column.DataBind.Bind("Lines", "codi_loca")
        Column = Matrix.Columns.Item("V_2")
        Column.DataBind.Bind("Lines", "codi_arti")
        Column = Matrix.Columns.Item("V_3")
        Column.DataBind.Bind("Lines", "quan_movi")

I then fill the table using this SQL

        Dim Matrix As SAPbouiCOM.Matrix
        Dim Table As SAPbouiCOM.DataTable
        Dim SQL As String = ""
        SQL += "DECLARE @Lines TABLE(" & vbNewLine
        SQL += "            ID INT IDENTITY(1,1) PRIMARY KEY NOT NULL," & vbNewLine
        SQL += "      DocEntry INT," & vbNewLine
        SQL += "        DocNum NVARCHAR(255)," & vbNewLine
        SQL += "     codi_loca NVARCHAR(10)," & vbNewLine
        SQL += "     codi_arti NVARCHAR(25)," & vbNewLine
        SQL += "     quan_movi DECIMAL(19,6)," & vbNewLine
        SQL += "     data_tran DATETIME," & vbNewLine
        SQL += "     hora_tran DATETIME)" & vbNewLine
        SQL += "INSERT INTO @Lines(DocEntry, DocNum, codi_loca, codi_arti, quan_movi, data_tran, hora_tran)" & vbNewLine
        SQL += "SELECT T0.DocEntry," & vbNewLine
        SQL += "       T1.SeriesName + '\' + convert(nvarchar, T0.DocNum) as DocNum," & vbNewLine
        SQL += "       T2.codi_loca," & vbNewLine
        SQL += "       T2.codi_arti," & vbNewLine
        SQL += "       T2.quan_movi," & vbNewLine
        SQL += "       T2.data_tran," & vbNewLine
        SQL += "       T2.hora_tran" & vbNewLine
        SQL += "  FROM ORDR T0 INNER JOIN" & vbNewLine
        SQL += "       NNM1 T1 ON (T0.Series = T1.Series) INNER JOIN" & vbNewLine
        SQL += "       EXTERNALDATABASE.dbo.zz_historico_movimento_artigo T2 ON (T1.SeriesName + '\' + convert(nvarchar, T0.DocNum) = T2.nume_docu)" & vbNewLine
        SQL += " WHERE T2.tipo_docu = 'OE'" & vbNewLine
        SQL += "   AND T2.codi_tran = 'SC'" & vbNewLine
        SQL += "   AND T0.DocStatus = 'O'" & vbNewLine
        SQL += "   AND T0.DocEntry = 449" & vbNewLine
        SQL += " ORDER BY T2.codi_loca" & vbNewLine
        SQL += "SELECT ID, DocEntry, DocNum, codi_loca, codi_arti, quan_movi, data_tran, hora_tran from @Lines order by codi_loca" & vbNewLine

        Table = oForm.DataSources.DataTables.Item("Lines")
        Table.ExecuteQuery(SQL)
        Matrix = oForm.Items.Item("6").Specific
        Matrix.LoadFromDataSource()

The Data is beeing loaded correcty and the numeric values are ok in the Table,

But on the SAP BO Application the quan_movi column insted of displaying numbres, it displays funny characters

Like you can see on this [PrintScreen|http://i283.photobucket.com/albums/kk291/hyperbyte2/SAPJap.jpg]

Can any one find anything wrong with my code that explains the numeric conversion failure.

Thanks in Advance

Pedro Gomes

SINFIC SA