• I saw you've been making the same request for a long time. I had shown you in another thread on the same issue an english number-to-words example that you could edit, but you never followed up on that.

    here's a TVF that returns the formatted value via TSQL; dunno about reporting services; i guess you could make a similar vb function:

    CREATE FUNCTION ITVFFormatIndianCurrency

    (

    @val Decimal(24,2)

    )

    RETURNS TABLE

    WITH SCHEMABINDING

    AS

    RETURN

    WITH MyCTE AS (SELECT CONVERT(VARCHAR(50),@val) AS strVal )

    SELECT

    CASE

    WHEN len(strVal) <= 6 THEN strVal

    WHEN len(strVal) <= 8 THEN REVERSE( STUFF(REVERSE((strVal)),7,0,','))

    WHEN len(strVal) <= 10 THEN REVERSE( STUFF(STUFF(REVERSE((strVal)),7,0,','),10,0,','))

    WHEN len(strVal) <= 12 THEN REVERSE( STUFF(STUFF(STUFF(REVERSE((strVal)),7,0,','),10,0,','),13,0,','))

    WHEN len(strVal) <= 14 THEN REVERSE( STUFF(STUFF(STUFF(STUFF(REVERSE((strVal)),7,0,','),10,0,','),13,0,','),16,0,','))

    WHEN len(strVal) <= 16 THEN REVERSE( STUFF(STUFF(STUFF(STUFF(STUFF(REVERSE((strVal)),7,0,','),10,0,','),13,0,','),16,0,','),19,0,','))

    WHEN len(strVal) <= 18 THEN REVERSE( STUFF(STUFF(STUFF(STUFF(STUFF(STUFF(REVERSE((strVal)),7,0,','),10,0,','),13,0,','),16,0,','),19,0,','),22,0,','))

    WHEN len(strVal) > 18 THEN REVERSE(STUFF(STUFF(STUFF(STUFF(STUFF(STUFF(STUFF(REVERSE((strVal)),7,0,','),10,0,','),13,0,','),16,0,','),19,0,','),22,0,','),25,0,','))

    END As Val,len(strVal) As TheLen

    From myCTE

    GO

    WITH MyCTE AS

    (SELECT 12345678910111233.89 As TheVal UNION ALL

    SELECT 2345678910111233.89 UNION ALL

    SELECT 345678910111233.89 UNION ALL

    SELECT 45678910111233.89 UNION ALL

    SELECT 5678910111233.89 UNION ALL

    SELECT 678910111233.89 UNION ALL

    SELECT 78910111233.89 UNION ALL

    SELECT 8910111233.89 UNION ALL

    SELECT 910111233.89 UNION ALL

    SELECT 10111233.89 UNION ALL

    SELECT 7111233.89 UNION ALL

    SELECT 111233.89 UNION ALL

    SELECT 11233.89 UNION ALL

    SELECT 1233.89 UNION ALL

    SELECT 233.89 UNION ALL

    SELECT 33.89 UNION ALL

    SELECT 3.89

    )

    SELECT *

    FROM myCTE

    CROSS APPLY dbo.ITVFFormatIndianCurrency(TheVal) MyAlias

    Lowell


    --help us help you! If you post a question, make sure you include a CREATE TABLE... statement and INSERT INTO... statement into that table to give the volunteers here representative data. with your description of the problem, we can provide a tested, verifiable solution to your question! asking the question the right way gets you a tested answer the fastest way possible!