Multi-value parameters and strings with leading zeros

I have invoice number as a multi-value parameter. Invoice is a string,10 (VBRP.VBELN) .
Invoice number is my group. If I enter invoices 100 and 200 as parms, then I only get data for invoice #100 (the lowest value entered). But if I enter 100, 0000000100, 200, 0000000200 as parms, then I get data for both invoices. Is there a way to get around having to enter the invoice number in both formats. BTW, if I only enter 0000000100 and 0000000200 then I get no data.
Selection criteria is (VBRP.VBELN) = ?invoiceno --- parms are defined as allow muliple values and allow discrete values.

Oops, that's not gonna work with multi-value parameters.  How about:
if IsNumeric((VBRP.VBELN)) then
  ToText(Val((VBRP.VBELN)), "0") in {?invoiceno}
else
  (VBRP.VBELN) in {?invoiceno}
end if
BTW, the reason why your original formula didn't work was because the "=" should have been "in".  The above is needed only if the (VBRP.VBELN) field might contain leading zeroes.
HTH,
Carl

Similar Messages

  • XLR and Items with leading zeros

    Forum,
    Does anyone know the best way, in XL Reporter, to deal with Item Codes that have leading zeros?
    Scenario:
    We have 2 items:  001, and 0001
    When I pull these into XLR and generate the report, Excel converts the numbers to "1"
    I have tried every cell format I can think of and have not come up with a solution.
    "Text" type returns the XLR syntax (=ixDimGet("ITM", "ItemCode")), "General" returns the "1" without leading zeros, etc.
    Anyone have a solution?
    Thanks in Advance,
    Brad Windecker

    Hi Brad,
    Seems like there's not direct solution for this one, function ixDimGet automatically removes leading zeros.
    Anyway, I would suggest that we utilize Macro Programming for this one.
    Here is a short macro code I developed, assuming the item Code is placed in Column B and the macro will automatically extract the parameter from the function call in Column B (=ixDimGet("00002") and place it Column C.
    Just place the ff code in SHEET1. The macro is utilizing the Worksheet Change event
    Const colItemCode = 2
    Const colShowCode = 3
    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Column = colItemCode Then
         strFormula = Target.Formula
         If Left(strFormula, 9) = "=ixDimGet" Then
            itemCode = Mid(strFormula, 12, Len(strFormula) - 13)
            With Range(Chr(64 + colShowCode) & Target.Row)
               .NumberFormat = "@"
               .Value = itemCode
            End With
         End If
       End If
    End Sub
    Constant colItemCode is referring to the column of the Item Code
    Constant colShowCode is referring to the column for the exracted Item Code
    Hope this help
    Laurence Resubal

  • Sequence with leading zeros

    Hi,
    I have a column SRL_NUM with datatype varchar2(4 char).I have 3000 records in this table and want to make SRL_NUM like 0001,0002,0003 etc.It should increment but entire 4 characters should be filled.How do i do this?
    Thanks.

    user10698496 wrote:
    I have a column SRL_NUM with datatype varchar2(4 char).I have 3000 records in this table and want to make SRL_NUM like 0001,0002,0003 etc.It should increment but entire 4 characters should be filled.How do i do this?Why is the sequence a varchar2 and not a number?
    IMO it makes more sense to use a native number data type as that is what a sequence generator outputs - and then render that as a text string with leading zero as "+how it looks like+" is a presentation layer issue.
    I would not use a numeric sequence generator to generate unique strings as surrogate key values. There are inherent problems with mixing data types like that.

  • Programmatically set Multi-value parameters

    Hi, I hope someone can help.
    I have a .net web application written in VS2008.  I display reports within a report viewer object.  I currently set report parameters within code using the SetParameterValue property within the report document object before passing the document to the viewer.
    This works fine for single value parameters, but I have a report which accepts multi value parameters and I am having problems trying to find any information about if this can be done within my code.  I understand the parameter is an array, therefore am I right in thinking I can pass an array into the SetParameterValue property?
    Any help would be much appreciated.
    Thanks

    Hello Julie
    You do not mention what version of CR you are using in .NET or what version of CR the reports were written in.
    There is a fair number of good threads on this issue in the forum, see if searching comes up with anything.
    Also, use the search box at the top right corner. That will search KBases, articles, Blogs, wikis, etc., etc.
    Oh and sample apps are here:
    https://wiki.sdn.sap.com/wiki/display/BOBJ/CrystalReportsfor.NETSDK+Samples
    and the [Crystal Reports for Visual Studio 2005 Walkthroughs|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/2081b4d9-6864-2b10-f49d-918baefc7a23] is a great article to go through.
    - Ludek
    Follow us on Twitter http://twitter.com/SAPCRNetSup
    Got Enhancement ideas? Try the [SAP Idea Place|https://ideas.sap.com/community/products_and_solutions/crystalreports]

  • Mateiral no. with leading zero

    Dear Experts,
    My case is that I created a material with ext no. assignment e.g. 1234 via BAPI without leading zero. In OMSL, the 2 checkboxes do not check anyaway.
    I check it does exist in MARA, MARC and store with leading zero.
    But I try to display MM03 for that material and enter 1234, the error says "The material 1234 does not exist or is not activated".
    I check that in debugger mode, there is leading zeros added for that material whcih leads to this result.
    Do you know how to solve it?
    Thanks.

    Hi dear,
    Note the following
    1.Lexicographical Indicator: - The appearance of the material no on the front end is governed by this indicator. This indicator is relevant only for numeric material numbers either internally or externally defined.
    2.If the Lexicographical Indicator is not set (indicator is not ticked) incase of external material number assignment, the material numbers are stored with leading zeros. i.e. pure numeric material no 5007453 may look like 0005007453 if the material no length maintained as 10.
    3.If the Lexicographical indicator is set (indicator is ticked) incase of the external material number assignment, the material numbers are not stored with leading zeros. i.e. pure numeric material no 5007453 will look like as 5007453.
    4.If the Lexicographical indicator is set (indicator is ticked) incase of internal material assignment, the material numbers would be padded with leading zeros
    5.This indicator can not be changed once there are numeric materials numbers in the system.
    6.Leading zero indicator: - Along with Lexicographical indicator there is leading zero indicator on the same screen. If the indicator is set (ticked) material number is shown with leading zero, but if the Lexicographical indicator is ticked leading zero indicator is ignored by the system.
    5007453     Material no length 10    External No range   Indicator Not ticked     Result   0005007453
    5007453     Material no length 10    External No range   Indicator Ticked     Result   5007453
    5007453     Material no length 10    Internal No range    Ticked Ticked     Result   0005007453

  • ABAP-based web service returns numeric values with leading zeros

    Hi SOA experts,
    I have created a web service out of an ABAP function module. Beside other values, this service returns a list of document numbers. All of these numeric values are returned by the web service with leading zeros, but we do want these values w/o leading zeros.
    Any ideas how I can tell the web service to not print any leading zeros?
    Thanks in advance for your help!
    Kind regards, Matthias
    PS: The according function module does not print any leading zeros for the numeric values

    hi,
    just a guess: I'd try to use I instead of NUMC for the document numbers.
    NUMC is no number but a character string with numeric characters only. only some display routines in SAP know that this string of numerals represents a number and omit leading zeroes.
    my 2 cents,
    anton

  • Padding a value with leading zeros

    Hi
    I am trying to create a filename (String) using a sequence int. I need this int to be 6 digits, with leading zeros
    i.e. if my seqence number is 23 my filename (String) should be:
    FILE000023
    Obviously I can do this by creating my own method that iterates through the number, but I was wondering if there was a simple method to change an int to a String and pad it out with leading zeros.
    Thanks
    Neil.

    import java.text.*;
    public class DecimalFormatTesting {
         public static void main( String[] args ) {
              DecimalFormat format = new DecimalFormat("###.###");
              format.setMinimumIntegerDigits( 6 );
              String integ = format.format( 123 );
              System.out.println("str: " + integ);
         } // end of main()
    }hope this helps
    partha

  • [Forum FAQ] How to configure a Data Driven Subscription which get multi-value parameters from one column of a database table?

    Introduction
    In SQL Server Reporting Services, we can define a mapping between the fields that are returned in the query to specific delivery options and to report parameters in a data-driven subscription.
    For a report with a parameter (such as YEAR) that allow multiple values, when creating a data-driven subscription, how can we pass a record like below to show correct data (data for year 2012, 2013 and 2014).
    EmailAddress                             Parameter                      
    Comment
    [email protected]              2012,2013,2014               NULL
    In this article, I will demonstrate how to configure a Data Driven Subscription which get multi-value parameters from one column of a database table
    Workaround
    Generally, if we pass the “Parameter” column to report directly in the step 5 when creating data-driven subscription.
    The value “2012,2013,2014” will be regarded as a single value, Reporting Services will use “2012,2013,2014” to filter data. However, there are no any records that YEAR filed equal to “2012,2013,2014”, and we will get an error when the subscription executed
    on the log. (C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\LogFiles)
    Microsoft.ReportingServices.Diagnostics.Utilities.InvalidReportParameterException: Default value or value provided for the report parameter 'Name' is not a valid value.
    This means that there is no such a value on parameter’s available value list, this is an invalid parameter value. If we change the parameter records like below.
    EmailAddress                        Parameter             Comment
    [email protected]         2012                     NULL
    [email protected]         2013                     NULL
    [email protected]         2014                     NULL
    In this case, Reporting Services will generate 3 reports for one data-driven subscription. Each report for only one year which cannot fit the requirement obviously.
    Currently, there is no a solution to solve this issue. The workaround for it is that create two report, one is used for view report for end users, another one is used for create data-driven subscription.
    On the report that used create data-driven subscription, uncheck “Allow multiple values” option for the parameter, do not specify and available values and default values for this parameter. Then change the Filter
    From
    Expression:[ParameterName]
    Operator   :In
    Value         :[@ParameterName]
    To
    Expression:[ParameterName]
    Operator   :In
    Value         :Split(Parameters!ParameterName.Value,",")
    In this case, we can specify a value like "2012,2013,2014" from database to the data-driven subscription.
    Applies to
    Microsoft SQL Server 2005
    Microsoft SQL Server 2008
    Microsoft SQL Server 2008 R2
    Microsoft SQL Server 2012
    Please click to vote if the post helps you. This can be beneficial to other community members reading the thread.

    For every Auftrag, there are multiple Position entries.
    Rest of the blocks don't seems to have any relation.
    So you can check this code to see how internal table lt_str is built whose first 3 fields have data contained in Auftrag, and next 3 fields have Position data. The structure is flat, assuming that every Position record is related to preceding Auftrag.
    Try out this snippet.
    DATA lt_data TYPE TABLE OF string.
    DATA lv_data TYPE string.
    CALL METHOD cl_gui_frontend_services=>gui_upload
      EXPORTING
        filename = 'C:\temp\test.txt'
      CHANGING
        data_tab = lt_data
      EXCEPTIONS
        OTHERS   = 19.
    CHECK sy-subrc EQ 0.
    TYPES:
    BEGIN OF ty_str,
      a1 TYPE string,
      a2 TYPE string,
      a3 TYPE string,
      p1 TYPE string,
      p2 TYPE string,
      p3 TYPE string,
    END OF ty_str.
    DATA: lt_str TYPE TABLE OF ty_str,
          ls_str TYPE ty_str,
          lv_block TYPE string,
          lv_flag TYPE boolean.
    LOOP AT lt_data INTO lv_data.
      CASE lv_data.
        WHEN '[Version]' OR '[StdSatz]' OR '[Arbeitstag]' OR '[Pecunia]'
             OR '[Mita]' OR '[Kunde]' OR '[Auftrag]' OR '[Position]'.
          lv_block = lv_data.
          lv_flag = abap_false.
        WHEN OTHERS.
          lv_flag = abap_true.
      ENDCASE.
      CHECK lv_flag EQ abap_true.
      CASE lv_block.
        WHEN '[Auftrag]'.
          SPLIT lv_data AT ';' INTO ls_str-a1 ls_str-a2 ls_str-a3.
        WHEN '[Position]'.
          SPLIT lv_data AT ';' INTO ls_str-p1 ls_str-p2 ls_str-p3.
          APPEND ls_str TO lt_str.
      ENDCASE.
    ENDLOOP.

  • How can I format a number with leading zeros?

    I need to convert an int to occupy exactly 3 positions in a StringBuffer... I need the space in the StringBuffer to be filled with leading zeros where appropriate. Can anyone show me how to do this correctly please ?
    At the moment I am using a pretty dumb workaround to fill the target with "000" first and then parse the int into either 1 2 or 3 positions depending on its value ... it works, but there must be a more correct way to do this ...
    Thanks in advance ...

    Have you had a look at the class java.text.DecimalFormat? It does exactly what you want... example:
    StringBuffer sb = new StringBuffer();
    DecimalFormat format = new DecimalFormat("000");
    format.format(2, sb, new FieldPosition(0));
    System.out.println(sb);
    prints out the string 002.

  • EBS check number with leading zeros

    When we upload EBS, we are getting the check number in the record 16 (reference field). But unlike the check number posted in SAP, the check number in the BAI file has 2 leading zeros. Now since check number is coming in record 16, instead of record 88 we are not able to solve this problem through String configuration.
    So, we thought of following solutions(Options):
    1.    Modify the check lot numbers to have two leading zeros plus associated changes like the form and so on.
    2.    Modify the check number in the incoming file u2013 strip the check number with two leading zeros with the use of customer enhancement. (After upload and before posting)
    Can we solve the problem of leading zeros (before the check number) through any configuration steps instead of changing the SAP script form for check(Check lot) or going for customer enhancement.
    Thanks
    Ron

    You are correct, since the check numbers are coming through only in the 16 records and not in the 88 records, you cannot use a search string to resolve the issue with leading zeros.  Also, I do not know of any other configuration that can be used to reformat the reference values in the 16 records.
    The 2 solutions you have listed are both valid options.  Although with the first option (changing the check lots), you would need to make sure the business users approved of changing the check lots before going forward with that option.  And you would still have to manually clear checks that had been issued prior to the check lot change.
    At my company, we went with the second option - using ABAP code to update the check numbers from the file to match those in SAP (we actually had to add leading zeros to the check numbers).  In our case, we had already created a pre-processor program for other re-formatting of the file that was needed prior to loading it into SAP - so we added the check number logic to that.
    However, if you do not have a pre-processor program, I know there is a user exit available for EBS - exit EXIT_RFEBBU10_001, include ZXF01U01.  I have heard of others using this exit to update the check numbers from 16 records.  The exit is called during the FF.5 processing.
    Regards,
    Shannon

  • Download records to EXCEL file with  Leading Zero's for numbers

    Hi All,
    I am able to download the data to EXCEL file on the presentation server.
    There are few fields (Plant,SalesOrder Number ..with Leading Zero's) in the record.
    These values are downloaded with out Leading Zero's to excel( EX: 0000004122 as 4122).
    Please help me to download the data to EXCEL file with leading zero's.
    Thanks and Regards,
    KC

    >
    Krishna Chaitanya  G wrote:
    > The excel file which is to be downloaded..will be used by some other program..to upload the values to the sap.
    > It matters there....
    > KC
    HI KC,
    then no need to download the zeros,
    after uploading, loop at that uploaded internal table and use CONVERSION_EXIT_APLHA_INPUT and pass the vbeln(without zeros) to this FM, it will return the value with added zeros.
    hope this solves your query
    a small example
    Loop at itab into is.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
    INPUT = is-vbeln "(  this is without zeros)
    IMPORTING
    OUTPUT = is-vbeln. "( this is with leading zeros)
    modify itab from is.
    endloop.
    Edited by: Soumyaprakash Mishra on Oct 6, 2009 2:16 AM

  • ** Please help urgently  ** Budget upload field with leading zeros

    We need to load a characteristic that has leading zeros.  For example 0000350.  When saving down to CSV, we lose the leading zeros (0000) so that only 350 is loaded into BW.  Saving the codes as 'text' in excel does not seem to help.
    We cannot therefore see the name for any of these codes when refreshing the workbook in BW.
    Could some please urgently tell us the correct method to save the file for loading into the BW infopackage, with all zeros intact ?
    Regards, Frederick

    Hi Frederick,
    Just some additional thoughts,
    assuming field A1 in Ecel contains 350 and you want to create a string with 8 digits, you could use formula '=text(A1;"00000000")' in an empty column and copy it back to column A. Then 00000350 should be provided in A1. This can be saved in a normal .csv file and be opened with a text editor (e.g. notepad) in order to check content.
    If you don't want to manipulate Excel data, transformation to a field with leading zeros can be easily be processed with a routine in transfer rules.
    Regards
    Joe

  • Display numbers formatted with leading zeros or spaces.

    There are some cases where you might need to display numbers with leading zeros or leading spaces, or trailing zeros.  I experimented with several methods and came up with some examples.  This is a Console application, but the results can just
    as well be output to a listbox in a Windows form.
    Sub Main()
    Dim snum As String, inum As Integer = 56
    snum = inum.ToString()
    Console.WriteLine(snum & vbTab & " ToString()")
    snum = inum.ToString("D4") 'adds leading zeros
    Console.WriteLine(snum & vbTab & " ToString(""D4"")")
    snum = inum.ToString("F4") '4 decimal places with trailing zeros
    Console.WriteLine(snum & vbTab & " ToString(""F4"")")
    Console.WriteLine()
    snum = String.Format("{0,4}", inum) 'leading spaces
    Console.WriteLine(snum & vbTab & " Format{0,4}")
    snum = String.Format("{0:D4}", inum) 'leading zeros
    Console.WriteLine(snum & vbTab & " Format{0:D4}")
    snum = String.Format("{0:F4}", inum) '4 decimal places with trailing zeros
    Console.WriteLine(snum & vbTab & " Format{0:F4}")
    Console.WriteLine()
    snum = inum.ToString().PadLeft(4, "0"c) 'leading zeros
    Console.WriteLine(snum & vbTab & " PadLeft(4, ""0""c)")
    snum = inum.ToString().PadLeft(4, " "c) 'leading spaces
    Console.WriteLine(snum & vbTab & " PadLeft(4, "" ""c)")
    Console.ReadLine() Console.Clear()
            For x As Integer = 1 To 20
                snum = x.ToString("D4")
                Console.WriteLine(snum)
            Next x
            Console.ReadLine()
    End Sub
    Solitaire

    I would add that many of these methods also work with numeric types that are not integers.
    Note that the "D4" format string doesn't work for non-integral types (such as Double and Decimal), and the "F4" format string doesn't pad with trailing zeros, it rounds to 4 decimal places (which can lose information). PadLeft works with
    the entire string, it isn't aware of the decimal point.

  • Exporting Numbers file with leading zeros as csv file

    When I export a list of mobile phone numbers with leading zeros (086* etc.) from Numbers as a csv file, the leading zeros are stripped out, although the cells are previously formatted as text. What can I do about this?

    "When I export a list of mobile phone numbers with leading zeros (086* etc.) from Numbers as a csv file, the leading zeros are stripped out, although the cells are previously formatted as text. What can I do about this?"
    Well, the first thing you could do would be to post your question in one of the forums for Numbers.
    Click Discussions to get to the Discussions index page, then the section for the version of iWork you're using, then the Numbers forum in that section.
    In AppleWorks (which doesn't offer an opportunity to Save as or Export as csv) I'd force the application to see the phone numbers as text by inserting some non-numeric characters into the string of digits.
    Examples: 000-123-4567, 000 123 4567
    It may also be a function of the application you are using to open the csv file.
    When I did a brief test of the suggestion above with Numbers '09, I got this result on opening the file in Text Edit:
    ,1234567890,num
    ,123-456-7890,tex
    ,0123456789,num
    ,012-345-6789,tex
    ,0001234567,num
    ,000-123-4567,tex
    Note that both the examples entered as a string of digits only (num) and those entered with inserted hyphens (tex) kept the leading zeroes. Cell format for the column containing the phone numbers was set to Text.
    Regards,
    Barry

  • Generic counter with leading zeros

    Good evening everybody,
    I was searching the code of a generic counter with leading zeros, but I did not found anything over the Internet. Therefore, I code it all by myself.
    I give you the code, it will maybe helps someone.
    Only needed leading zeros are generated, which means the following sequences :
    0 - 1 - 2 - ... - 7 for a max of 7,or
    00 - 01 - 02 - ... - 23 - 24 - ... - 89 for a max of 89, or
    000 - 001 - 002 - ... - 432 for a max of 432.
    public class LeadingZerosCounter {
      public String[] counters = null;
      public LeadingZerosCounter(int maximum) {
        this.counters = new String[maximum];
      public String[] init() {
        int maxLeadingZeros = 1;
        int index0 = this.counters.length;
        while ((index0 /= 10) >= 10) {
          maxLeadingZeros += 1;
        int counter = 0;
        for (int index1 = 0; index1 < maxLeadingZeros + 1; index1++) {
          while (counter < java.lang.Math.pow(10, index1 + 1)) {
            String stringCounter = new String("");
            for(int index2 = 0; index2 < (maxLeadingZeros - index1); index2++) {
              stringCounter = stringCounter.concat("0");
            stringCounter = stringCounter.concat(new Integer(counter).toString());
            this.counters[counter] = stringCounter;
            System.out.println(this.counters[counter]);
            if (++counter == this.counters.length) {
              return(this.counters);
            else {
              // no action
        return(this.counters);
      public static void main(String[] args) {
        new LeadingZerosCounter(100).init();
    NOTE : the two return are mandatory.
    Try maximum raised to a power of 10 and maximum raised to a power of 10 + constant in [1; 9] to understand.
    If you find any solution to make it faster, please let me know.
    Have a nice day,
    Christophe

    I like Jos' idea better than mine (go figure - he's a better Javanista)....
    public class Counter {   
        private String pattern;
        private int count;
        private int max;
        public Counter(int max) throws IllegalArgumentException {
            if (max < 0) {
              throw new IllegalArgumentException("Max (" + max + ") must be a positive number");
            this.max = max;
            int len = String.valueOf(max).length();
            this.pattern = "%1$0" + len + "d";
        public boolean hasNext() {
            return count <= max;
        public String next() {
            String result = String.format(pattern, count);
            count++;
            return result;
        public static void main(String[] args) {
            // for demo purposes only;
            // replace with command-line arg parsing, if desired...
            String prefix = "picture_";
            String suffix = ".jpg";
            Counter c = new Counter(99);
            while (c.hasNext()) {
                System.out.println(prefix + c.next() + suffix);
            try {
                new Counter(-1);
            } catch (IllegalArgumentException e) {
                System.out.println("test: " + e.getMessage());
    }

Maybe you are looking for