Creating Poplist and filling up values in it dynamically.

Hi,
I have created a poplist based on a viewObject.It works fine.
Is it possible to populate values into poplist at runtime.
ie ..I have a String array and I want to show it in the poplist.
String[] names = {"ABC","XYZ","PQR"};
Is it possible to create a poplist to show these values programmetically?
In a JSP I would do like this..
<SELECT>
<%
for(int i=0;i<names.length;i++)
{%>
<OPTION><%=names[i] %>
<%
}%>
</SELECT>
Any such similar solution for this problem?
Thanks,
Gowtam

Hi Tapashray,
Thanks for the reply.
I have few doubts on your answers.As I am new to OA, my questions might look silly.I have written my interpretation.Please validate and give me some hint to solve it.Thanks :)
1.Create a VO at designtime.
- VO must not be based on any EO but should be SQL based and as the data is not picked from Database, what "query" need to be written for the query section in the wizard?
2.populate the VO attributes with values from your array at runtime
- The values will be poplulated into VO and poplist simultaneously(dynamically) at runtime OR VO will be populated in prior and at runtime only poplist will be loaded?
- How to populate values into VO?
3.remember to use Picklist View Instance property
- Do i need to specify the View Object Name here? ex:"NamesVO"
thanks,
Gowtam

Similar Messages

  • WRITEQUERY to be excuted in program and filling Variable values

    Hi SDN Community,
    Is it possible to execute the WRITEQUERY FM, within ABAP,
    And at the same time have the variables in the query populated.  ie.  do not force the variable screen to popup and fill it in.
    Can you please provide a simple example if this is possible.
    Thank you.
    Simon

    Thank You Praveen.
    These look very useful, i will shortly be testing them.
    You may be able to answer the following questions:
    1) The output of those BLOGS is XML.  would it be possible to simply put the contents in a table directly.
    Do you think it would also be possible to do the following:
    1) Create a function module that calls ZWRITEQUERY
    (ZWRITEQUERY is a copy of the original code)
    If we could then pass the genuid to this code via the input paramater to be set up in our FM.
    to uncomment any code that displays the variable screen.
    To then allow the code to execute
    I would also like to try to find the code where there variables can be passed.
    But then i think the above is quite complicated.
    Thank you.
    Simon

  • Poplist and displaying corresponding values from the database table

    Hi
    I have a poplist in a control block, the values of which are populated using a procedure. This is called in when-new-form-instance.
    This part works fine and values are filled in the poplist when form is opened..
    The datablock is based on a view. 3 columns from the view are selected to be displayed.
    Also the databock is filled with all values (for selected columns)
    Now when the poplist value is changed, I need the values in the datablock to be changed as well, but this is not happening.
    In my when-list-changed trigger, I have:
    go_block('datablock');
    execute_query;Please tell , where and what should I add to display the datablock values as per the poplist value.
    i.e, something like,
    select col1,col2,col3 from <view> where col4 =:control.col4
    Note:I tried in the where clause property of the block, but then nothing is displayed in the datablock
    Thanks

    This does not work , either..
    Before, when I changed the values from the list, it was still displaying same data on datablock always(all records)
    Now when I give this code,data is displayed in datablock only once(first time when the form opens)
    I have defined the Query data source type property on data block as "Table" but infact this datablock is based on a view..is this correct?
    Anything else I could try?

  • How to create parameters and list of values in BI Publisher

    Hello friends,
    I'm Using BI Publisher 10.1.3. I tried creating a report based on a column's data for ex: dept_no
    in the data model i specified the table name to select all columns
    I created the list of values taken as type-sql query. in the query I've written select dept_no from dept
    In the parameters section i gave it as integer and default value as * parameter type as menu then i selected the list of value name that i previously specified..
    now the problem is when I run the report I get all the data inspite of selecting the parameter from which I need that particular deptno's data
    What could be the reason
    pls let me know
    Thanks and Regards

    In your main data model query, have you used this parameter to limit the data to the selected department?
    Eg. select dept_name from depts where dept_no = :p_dept
    where :p_dept is your parameter..
    Thanks!

  • How to create DFF and how the values will be stored in the database

    Dear All,
    I have created DFF in OA Framework.
    That is working fine.
    But i dont know how to save values of DFF.
    do i need to attach EO with the View object which is used in DFF.
    I would be thankful to you.
    Thanks,
    sheetal mittal

    Hi Gorav,
    Actually its seeded page so i cannot do anything with teh save functionality..
    I have followed the below steps:
    1) Fst i have added Flex Field in the Seeded Page . Defined all the properties , View object name etc.
    2) After that i have created new custom View Object and entity object then add that EO in the custom VO..
    3) After that i have extended AM to add new custom View Object.
    4) After that i have extended CO and written following code :
    public void processRequest(OAPageContext pageContext, OAWebBean webBean)
    super.processRequest(pageContext, webBean);
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    NegotiationCreationAM negotiationcreationam = (NegotiationCreationAM)pageContext.getApplicationModule(webBean);
    int StrAucId = negotiationcreationam.getAuctionHeaderId();
    String strAuctionId = String.valueOf(StrAucId);
    Serializable[] Params = {strAuctionId};
    am.invokeMethod("InitLoad",Params);
    public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
    super.processFormRequest(pageContext, webBean);
    NOTE: AuctionHeaderId is the primary key of the page.
    5) I ahve written the below code in AM.
    public void InitLoad(String strHeaderId)
    OAViewObject vo = (OAViewObject)getxxEarnestDffVO1();
    if (vo.getRowCount() == new Number(0).intValue())
    Row row = vo.createRow();
    vo.setWhereClause(" AUCTION_HEADER_ID = " + strHeaderId);
    vo.executeQuery();
    else
    vo.setWhereClause(" AUCTION_HEADER_ID = " + strHeaderId);
    vo.executeQuery();
    6) But when i am saving the details it gives me :
    Unable to perform transaction on the record.
    Cause: The record contains stale data. The record has been modified by another user.
    Action: Cancel the transaction and re-query the record to get the new data.
    Please help me out.
    regards,
    sheetal

  • Transaction Launcher : calling URL and fill return values in the UI

    Hi SDN,
    We have a requirement, I am putting an example of it below:-
    1. Call URL www.bank.com/branchlocator.htm?postcode=???????
    2. pass postcode of confirmed BP to the branchlocator field postcode
    3. the website will return nearest branch post code.
    4. Return this postcode from the bank website, back into the webui address field.
    Is it possible to achieve the above scenerio? if yes then any guidelines on how to achieve this?
    Hope I am clear in the requirement. Any inputs/suggestion will be helpful.
    Thanks,
    Pankaj

    Hi Shai,
    the webservice is working well, trying to test it with webservice navigator.
    He also returns the correct number of rows (because there appears slider beneath the table output and I also counted the rows), but there is no data displayed in visual composer.
    I have got no further ideas, what the problem is...
    THank you for your support.
    Kind regards, PAtrick.

  • Creating and filling JTables dynamically

    Hello,
    How can I create and display a JTable dynamically in a Java application? In my application, I retrieve rows from a database and therefore I don't know in advance how many rows I need for my JTable (using the tablemodel). I tried to solve the problem in the following way:
    1)start op applicatie with a JTable with 0 rows (screen is grey, only columns are visible)
    2)run query and count number of rows.
    3)create new JTable based on number retrieved in step 2 and tried to put it onto the screen.
    4)run query again and fill table with values retrieved from query
    The bottleneck so far is step 3. I can create a new table but I don't manage to put it onto the screen (i tried already the repaint() method)
    Thanx for you help
    Frits

    Sure, no problem. Assume you've retrieved the following result from the database:First Name     Last Name     Age
    John           Doe           25
    Jane           Doe           27
    Joe            Smith         40
    Mary           Smith         19You create your JTable as like this:Vector headings = new Vector();
    Vector rows = new Vector();
    Vector cells = null;
    JTable table = null;
    for(int x=0; x< resultSize; x++){//resultSize is the size of your result
      cells = new Vector(); //Cells together will represent a row
      cells.add(yourResult.getTheFirstColumnForRowX()); //Pseudo-code
      cells.add(yourResult.getTheSecondColumnForRowX()); //Pseudo-code
      cells.add(yourResult.getTheThirdColumnForRowX()); //Pseudo-code
      //Now place those cells into the rows vector
      rows.add(cells);
    //Create the JTable
    table = new JTable(rows, headings);This code is not tested and is meant to give you an idea of how the concept can be applied. Hope it helps.

  • Creating a time channel in the data portal and filling it with data - Is there a more efficient way than this?

    I currently have a requirement to create a time channel in the data portal and subsequently fill it with data. I've shown below how I am currently doing it:
    Time_Ch = ChnAlloc("Time channel", 271214           , 1      ,           , "Time"         ,1                  ,1)              'Allocate time channel
    For intLoop = 1 to 271214
      ChD(intLoop,Time_Ch(0)) = CurrDateTimeReal          'Create time value
    Next
    I understand that the function to create and allocate memory for the time channel is extremely quick. However the time to store data in the channel afterwards is going to be highly dependent on the length I have assigned to the Time_Ch. In my application the length of Time_Ch is variable but could easily be in the order of 271214 or higher. Under such circumstances the time taken to fill Time_Ch is quite considerable. I am wondering whether this is the most appropriate way of doing things or whether there is a more efficient way of creating a time channel and filling it.
    Thanks very much for any help.
    Regards
    Matthew

    Hi Matthew,
    You are correct that there is a more efficient way to do this.  I'm a little confused about your "CurrDateTimeReal" assignment-- is this a constant?  Most people want a Time channel that counts up linearly in seconds or fractions of a second over the duration of the measurement.  But that looks like you would assign the same time value to all the rows of the new Time channel.
    If you want to create a "normal" Time channel that increases at a constant rate, you can use the ChnGenTime() function:
    ReturnValue = ChnGenTime(TimeChannel, GenTimeUnit, GenTimeXBeg, GenTimeXEnd, GenTimeStep, GenTimeMode, GenTimeNo)
    If you really do want a Time channel filled with all the same values, you can use the ChnLinGen() function and simply set the GenXBegin and GenXEnd parameters to be the same value:
    ReturnValue = ChnLinGen(TimeChannel, GenXBegin, GenXEnd, XNo, [GenXUnitPreset])
     In both cases you can use the Time channel you've already created (which as you say executes quickly) and point the output of these functions to that Time channel by using the Group/Channel syntax of the Time channel you created for the first TimeChannel parameter in either of the above functions.
    Brad Turpin
    DIAdem Product Support Engineer
    National Instruments

  • Creating dynamic sized arrays and filling them automatically on speedy 33

    hi all,
    I am trying to create dynamic sized arrays on Speedy-33. Specifically, depending on the user input, I want to be able to create
    arrays with 128 or 256 elements and fill them automatically. However,
    array constant element is fixed for Speedy 33; thus I have to manually set the
    size of the array with the mouse and enter the values in to the array by
    myself. I want to make this tedious process automatic. Would this be possible? thanks so much for comments!
    ~casiopea

    Casiopea,
    There is a really great article on using arrays with LabVIEW DSC which can be found here:
    How Can I Be Successful With Arrays In the LabVIEW DSP Module?
    One of the biggest things that should be noted about DSP is that there is no dynamic memory allocation.  Your array size must be fixed, and thus, your array needs to be initialized by using a constant. 
    An easy way to initialize an array constant that has many elements that are all the same is to simply create a numeric constant that has the value that you want.  Then, create a new blank array constant and drag the numeric into it.  In the index input for the array constant, type in the index of the last element that you want to be initialized.  Then type in the value in the element that is displayed and all of the elements before it will be initialized to the default value of the numeric constant that you dropped into the array constant.  I hope this helps.  I would really recommend reading through that article, as it has a lot of great information about using arrays with DSC.
    Brian Coalson
    Software Engineer
    National Instruments

  • Using attachments in work-flow and creating custom text with key values

    Hi,
    I have 2 simple requirements.
    1. how to attach a tcode or trigger method of business object for work-flow item. The user should be able to navigate to transaction to see data before approval or rejection.
    2. I have created custom task for long text that will be displayed in the SAP inbox. How do I provide key values in this long text.  I was able to do in the subject line using Substitution parameters(&Name1& etc..)
    Regards
    Kasi

    I did the same thing. see details.
    Created Workitem and attached a task "TS92500097". in the task, I mentioned Business Object and method to be called. I have set the binding also for this business object. the method I am calling is nothing but just "display" which is using call transaction.  2 problems here.
    1. How do I show  this "BusinessObject.Display" as an attachment or link in the mail.
    2. how do I assign key values during exection of this attachment or link.
    Regards
    Kasi
    2.

  • How to create a matrix with constant values and multiply it with the output of adc

    How to create a matrix with constant values and multiply it with the output of adc 

    nitinkajay wrote:
    How to create a matrix with constant values and multiply it with the output of adc 
    Place array constant on diagram, drag a double to it, r-click "add dimension". There, a constant 2D double array, a matrix.
    /Y
    LabVIEW 8.2 - 2014
    "Only dead fish swim downstream" - "My life for Kudos!" - "Dumb people repeat old mistakes - smart ones create new ones."
    G# - Free award winning reference based OOP for LV

  • How do you create a user defined functions  UDF and passing a value like a ID to GEt a Value.

    How do you create a user defined functions UDF and passing a
    value like a ID to GEt a Value.
    using a query.
    are there example.
    Thanks

    tons of examples at cflib.org - good place to start, even
    though many
    udfs there are a bit outdated in their code...
    Azadi Saryev
    Sabai-dee.com
    http://www.sabai-dee.com

  • It's mandatory to Create Char and Values in COPA

    Hello Expert.
    Can any one  answer to the question to create Char and values in copa

    Hi,
    Based on your required, we may try the following workarounds:
    1. Create the sub-reports
    Build a report based on the one query/table. Try to keep it simple, just some nice looking rows of data. Ok, save this report.
    Build a report based on each additional query/table you have. So, you wind up with
    multiple reports.
    Create a new blank report, and drag + drop each of those reports into the detail section one after another. The result is all 7 reports will appear as one report.  
    2. Build a nice large form with multiple large text box or however many different sets of text/comments you want in the reports.
    For more detail information, please refer to the following link:
    http://answers.microsoft.com/en-us/office/forum/office_2010-access/access-combining-several-query-results-into-1/d2500c81-9bb0-4c6e-a33f-024bf1e2a5f2
    Regards,
    George Zhao
    TechNet Community Support

  • Error is in example  "How to Create Online and Offline Forms in Web Dynpro"

    Hi,
    I am developing " How to Create Online and Offline Forms in Web Dynpro " in nwds 7.0. This is standard example which is available at sdn. but when i run it gives me error like "
    Failed to process request. Please contact your system administrator.
    [Hide]
    Error Summary
    While processing the current request, an exception occured which could not be handled by the application or the framework.
    If the information contained on this page doesn't help you to find and correct the cause of the problem, please contact your system administrator. To facilitate analysis of the problem, keep a copy of this error page. Hint: Most browsers allow to select all content, copy it and then paste it into an empty document (e.g. email or simple text file).
    Root Cause
    The initial exception that caused the request to fail, was:
       java.lang.NullPointerException
        at com.travelrequestapp.TravelRequestComView.wdDoInit(TravelRequestComView.java:97)
        at com.travelrequestapp.wdp.InternalTravelRequestComView.wdDoInit(InternalTravelRequestComView.java:133)
        at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.doInit(DelegatingView.java:61)
        at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:215)
        at com.sap.tc.webdynpro.progmodel.view.View.initController(View.java:445)
        ... 34 more
    See full exception chain for details.
    System Environment
    Client
    Web Dynpro Client Type HTML Client
    User agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
    Version null
    DOM version null
    Client Type msie6
    Client Type Profile ie6
    ActiveX enabled
    Cookies enabled
    Frames enabled
    Java Applets enabled
    JavaScript enabled
    Tables enabled
    VB Script enabled
    Server
    Web Dynpro Runtime Vendor: SAP, build ID: 7.0009.20060804145649.0000 (release=645_VAL_REL, buildtime=2006-08-26:14:41:58[UTC], changelist=413534, host=pwdfm101), build date: Thu Feb 15 10:23:57 IST 2007
    J2EE Engine 7.00 patchlevel
    Java VM Java HotSpot(TM) Server VM, version:1.4.2_13-b06, vendor: Sun Microsystems Inc.
    Operating system Windows 2003, version: 5.2, architecture: x86
    Session & Other
    Session Locale en_US
    Time of Failure Mon Oct 29 12:13:24 IST 2007 (Java Time: 1193640204484)
    Web Dynpro Code Generation Infos
    local/TravelRequest
    SapDictionaryGenerationCore 7.0006.20051128142640.0000 (release=645_VAL_REL, buildtime=2006-01-14:14:59:42[UTC], changelist=378068, host=PWDFM101.wdf.sap.corp)
    SapDictionaryGenerationTemplates (unknown)
    SapGenerationFrameworkCore 7.0006.20050713144242.0000 (release=645_VAL_REL, buildtime=2006-01-14:14:48:59[UTC], changelist=357697, host=PWDFM101.wdf.sap.corp)
    SapIdeWebDynproCheckLayer 7.0006.20051128151834.0000 (release=645_VAL_REL, buildtime=2006-01-14:15:05:10[UTC], changelist=378108, host=PWDFM101.wdf.sap.corp)
    SapMetamodelCommon 7.0006.20050929162929.0000 (release=645_VAL_REL, buildtime=2006-01-14:14:49:45[UTC], changelist=369752, host=PWDFM101.wdf.sap.corp)
    SapMetamodelCore 7.0006.20050929162929.0000 (release=645_VAL_REL, buildtime=2006-01-14:14:49:38[UTC], changelist=369752, host=PWDFM101.wdf.sap.corp)
    SapMetamodelDictionary 7.0006.20051128142655.0000 (release=645_VAL_REL, buildtime=2006-01-14:14:57:39[UTC], changelist=378069, host=PWDFM101.wdf.sap.corp)
    SapMetamodelWebDynpro 7.0006.20051128151854.0000 (release=645_VAL_REL, buildtime=2006-01-14:15:02:09[UTC], changelist=378109, host=PWDFM101.wdf.sap.corp)
    SapWebDynproGenerationCTemplates 7.0006.20060111154644.0000 (release=645_VAL_REL, buildtime=2006-01-14:15:18:33[UTC], changelist=384368, host=pwdfm101)
    SapWebDynproGenerationCore 7.0006.20051128151834.0000 (release=645_VAL_REL, buildtime=2006-01-14:15:05:21[UTC], changelist=378108, host=PWDFM101.wdf.sap.corp)
    SapWebDynproGenerationTemplates 7.0006.20060111154644.0000 (release=645_VAL_REL, buildtime=2006-01-14:15:18:33[UTC], changelist=384368, host=pwdfm101)
    sap.com/tcwddispwda
    No information available null
    sap.com/tcwdcorecomp
    No information available null
    Detailed Error Information
    Detailed Exception Chain
    java.lang.NullPointerException
         at com.travelrequestapp.TravelRequestComView.wdDoInit(TravelRequestComView.java:97)
         at com.travelrequestapp.wdp.InternalTravelRequestComView.wdDoInit(InternalTravelRequestComView.java:133)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.doInit(DelegatingView.java:61)
         at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:215)
         at com.sap.tc.webdynpro.progmodel.view.View.initController(View.java:445)
         at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.getView(ViewManager.java:709)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.bindRoot(ViewManager.java:579)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.makeVisible(ViewManager.java:793)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.performNavigation(ViewManager.java:296)
         at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.navigate(ClientApplication.java:767)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.navigate(ClientComponent.java:873)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doNavigation(WindowPhaseModel.java:498)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:144)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:299)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:711)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:665)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:232)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:152)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    So please help me to correct this error .....
    Help will be rewarded.
    Regards,
    Gurprit Bhatia

    Hi Gurprit,
    A null value is being passed at runtime. Make sure that you enter values when filling in the form.
    Also check for the cardinality of the nodes being used. You can also initiliaze your value attributes as follows:
    In wdDoInit() method:
    wdContext.currentNodeAElement.setValueA("");
    Context is as follows:
    RootNode
      |____NodeA
            |_____ValueA
    Hope it helps.

  • Upload interactive form and access field values in WD component

    Hi Experts,
    I want to upload a prefilled  interactive adobe form in my webdynpro component and then I want to read the values filled in the form in my webdynpro component.
    I don't want to display the interactive form in the WD component. Just need to read the values.
    Please let me know how can I do it.
    Warm regards,
    Sushant Singh

    You can use the fileupload and filedownload uielements.
    Check these links:
    [File Upload|http://help.sap.com/saphelp_nw70ehp1/helpdata/en/b3/be7941601b1d09e10000000a155106/content.htm]
    [File Download|http://help.sap.com/saphelp_nw70ehp1/helpdata/en/09/a5884121a41c09e10000000a155106/content.htm]
    When you upload a file and save in SAP, are you saving it as xstring.
    If yes follow these steps for filedownload.
    Follow these steps for file download:
    1 Create FileDownload uielement in your View
    2.Create an Attribute of type xstring.
    3.Bind this attribute to the data property of your Filedownload uielement.
    4. during fileuplaod as you are saving the document in xstring format, fetch the same from your database table and pass the value to filedownload i.e set the attribute bound to data property of filedownload uielement with the xstring content.

Maybe you are looking for