Hash in database field name

I have a field name that has a hash (#) symbol in the name. I
have no control over the naming structure of this particular
database. I need to output this field. How the heck do I do this? I
know how if the output has a # in it, but what about the actual
field name?
Thanks,

Your best bet is to alias the field name in SQL before you
start dealing with your recordset in CF. You should be able to
escape the hash using ## instead of #.
If for some reason you can't alias the field name in your SQL
statement, you can output query data in the following format:
QueryName["FieldName"][RowNumber]
I bet you can do something like this:
qMyQuery["Hash##Field"][1]

Similar Messages

  • Hash Marks in Field Names

    Forgive me but I have forgotten how to do this.
    I'm trying to pass the query field name: "Pat #" , which
    can't be changed.
    <cfset pat_no = '#Pat ##'>
    Problem is the hash mark in the field name.
    I've tried:
    <cfset pat_no = '#Pat #'#''>
    but it errors out.

    aliceinthemirror wrote:
    > I've tried:
    > <cfset pat_no = '#Pat #'#''>
    > but it errors out.
    >
    You escape ColdFusion control characters by doubling them. So
    your line
    should probably be <cfset pat_no = '#Pat ###'>
    HTH
    Ian

  • How can find  database field and table name

    how can find the underline database field name,table name from java page. Example. in oracle apps when we go purchaseing super user then supplier base then supplier and find supplier detail .

    Hi,
    depends on your model. If you work with ADF BC then you can use ViewLinks to access parent or detail infromation programmatically. See the developer guides for more information. Note that you wont access the tables directly but the collections that represent the records
    Frank

  • Chart legend shows database field instead of value

    Hi,
    I would like to understand the behavior of the charts legend, which sometimes display the field values as requested, but sometimes display the database field name starting with a @.
    We develop Crystal Reports and then generate them via an application. We have many releases of our application and therefore we get to work with Crystal versions 10, XI, XIr2 and 2008.
    In all cases, the legend display is correct when in the Crystal Reports Designer preview mode. However when generated through our application (using ADO.NET), depending on the Crystal runtime version (apparently) the result varies. Editing the legend label in preview mode doesn't resolve the issue.
    Is this behavior related to :
    - Crystal Reports runtime (it appears to happen only with Crystal Reports runtimes XIr2 and 2008 in our case) ?
    - Using formula fields in the chart instead of database fields directly ?
    - Evaluation time (our charts are in Report Header and/or Group Header) ?
    - any other idea ?
    Thank you very much
    Anthony

    We have been able to detect that the Language Regional Settings of Windows XP Pro has a direct effect on our charts legend display.
    We noticed that when the Regional Settings were set to English, the report would generate correctly and chart legends would display values, and not database fields names. However, when the regional settings are set to another language (tried French, Dutch, Spanish and German) the problem occurs.
    Using Process Monitor we have spotted that when in Regional Settings other than English it was still the English dll that were called (crdb_adoplus_res_en.dll)...
    The problem occurs with Crystal runtimes XIr2 and 2008 only. We use Crystal Reports in an application, using ADO.NET connector, and we use the Crystal runtime to generate reports.
    Is this a bug or is there a workaround to make sure the correct dll are called according to regional settings ?
    Thank you for your kind assistance.
    Best regards,
    Anthony

  • Query Field names in Crystal

    In Crytal I see parameters but the database field names are the long name ie (0CCA_C11_ZNN_0CCA_C11_Q004.M[Measures].[8WEVD1XARY9RST55SBE42RTJD3VA0MBXNGQL9Y0JC76EALK4XU]C
    Can someone explain how to the user friendly name ?

    Hi,
    I assume that this field is pointing back to a keyfigure in the SAP BW Query.
    The Query Designer is offering you an option in the context menu to create a technical name for the keyfigure.
    As soon as you did that and after a "verify database" in Crystal Reports you will see these defined technical names in Crystal Reports
    Ingo Hilgefort
    Business Objects

  • The contained field name "ADTAGR" does not exist in any of the database tab

    hı all
    how can l  solved thıs problem
    An exception occurred that is explained in detail below.
    The exception, which is assigned to class 'CX_SY_DYNAMIC_OSQL_SEMANTICS', was
    not caught in
    procedure "PUT_QMFECAT" "(FORM)", nor was it propagated by a RAISING clause.
    Since the caller of the procedure could not have anticipated that the
    exception would occur, the current program is terminated.
    The reason for the exception is:
    An Open SQL clause was specified dynamically. The contained field name
    "ADTAGR" does not exist in any of the database tables from the FROM clause.
    Information on where terminated
        Termination occurred in the ABAP program "SAPDBZQNQ" - in "PUT_QMFECAT".
        The main program was "ZQMR_BILDIRIM ".
        In the source code you have the termination point in line 732
        of the (Include) program "SAPDBZQNQ".
    Error occurred during batch input processing
        The termination is caused because exception "CX_SY_DYNAMIC_OSQL_SEMANTICS"
         occurred in
        procedure "PUT_QMFECAT" "(FORM)", but it was neither handled locally nor
         declared
        in the RAISING clause of its signature.
        The procedure is in program "SAPDBZQNQ "; its source code begins in line
        715 of the (Include program "SAPDBZQNQ ".
    FORM put_qmfecat.
      DATA: l_tab_fields  TYPE  rsfs_tab_fields.
      DATA: l_ds_clauses  TYPE  rsds_where.
    Dynamische Feldselektion
      MOVE 'QMFECAT_C' TO l_tab_fields-tablename.
      READ TABLE select_fields WITH KEY l_tab_fields-tablename
                                    INTO l_tab_fields.
      IF sy-subrc <> c_rc00.
        CLEAR l_tab_fields.
      ENDIF.
    Dynamische Selektionskriterien
      MOVE 'QMFECAT' TO l_ds_clauses-tablename.
      READ TABLE dyn_sel-clauses WITH KEY l_ds_clauses-tablename
                                 INTO l_ds_clauses.
    DB-Zugriff
      >>>>> SELECT (l_tab_fields-fields) FROM qmfe
      INTO CORRESPONDING FIELDS OF TABLE qmfecat_tab
       WHERE qmnum  =  rqmqmel-qmnum
       AND kzloesch =  space
       AND (l_ds_clauses-where_tab)
       ORDER BY PRIMARY KEY.
    regard sinan
    Edited by: eyup_sinan on Jan 6, 2012 3:21 PM
    Edited by: eyup_sinan on Jan 6, 2012 3:30 PM

    You seem to have made a copy of the standard program. You'll have to make sure that you are handling this field correctly in your code.
    Rob

  • XML Schema Collection (SQL Server 2012): How to create an XML Schema Collection that can be used to Validate a field name (column title) of an existing dbo Table of a Database in SSMS2012?

    Hi all,
    I used the following code to create a new Database (ScottChangDB) and a new Table (marvel) in my SQL Server 2012 Management Studio (SSMS2012) successfully:
    -- ScottChangDB.sql saved in C://Documents/SQL Server XQuery_MacLochlainns Weblog_code
    -- 14 April 2015 09:15 AM
    USE master
    IF EXISTS
    (SELECT 1
    FROM sys.databases
    WHERE name = 'ScottChangDB')
    DROP DATABASE ScottChangDB
    GO
    CREATE DATABASE ScottChangDB
    GO
    USE ScottChangDB
    CREATE TABLE [dbo].[marvel] (
    [avenger_name] [char] (30) NULL, [ID] INT NULL)
    INSERT INTO marvel
    (avenger_name,ID)
    VALUES
    ('Hulk', 1),
    ('Iron Man', 2),
    ('Black Widow', 3),
    ('Thor', 4),
    ('Captain America', 5),
    ('Hawkeye', 6),
    ('Winter Soldier', 7),
    ('Iron Patriot', 8);
    SELECT avenger_name FROM marvel ORDER BY ID For XML PATH('')
    DECLARE @x XML
    SELECT @x=(SELECT avenger_name FROM marvel ORDER BY ID FOR XML PATH('Marvel'))--,ROOT('root'))
    SELECT
    person.value('Marvel[4]', 'varchar(100)') AS NAME
    FROM @x.nodes('.') AS Tbl(person)
    ORDER BY NAME DESC
    --Or if you want the completed element
    SELECT @x.query('/Marvel[4]/avenger_name')
    DROP TABLE [marvel]
    Now I am trying to create my first XML Schema Collection to do the Validation on the Field Name (Column Title) of the "marvel" Table. I have studied Chapter 4 XML SCHEMA COLLECTIONS of the book "Pro SQL Server 2008 XML" written by
    Michael Coles (published by Apress) and some beginning pages of XQuery Language Reference, SQL Server 2012 Books ONline (published by Microsoft). I mimicked  Coles' Listing 04-05 and I wanted to execute the following first-drafted sql in
    my SSMS2012:
    -- Reference [Scott Chang modified Listing04-05.sql of Pro SQL Server 2008 XML by Michael Coles (Apress)]
    -- [shcColes04-05.sql saved in C:\\Documents\XML_SQL_Server2008_code_Coles_Apress]
    -- [executed: 2 April 2015 15:04 PM]
    -- shcXMLschemaTableValidate1.sql in ScottChangDB of SQL Server 2012 Management Studio (SSMS2012)
    -- saved in C:\Documents\XQuery-SQLServer2012
    tried to run: 15 April 2015 ??? AM
    USE ScottChangDB;
    GO
    CREATE XML SCHEMA COLLECTION dbo. ComplexTestSchemaCollection_all
    AS
    N'<?xml version="1.0"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="marvel">
    <xsd:complexType>
    <xsd:all>
    <xsd:element name="avenger_name" />
    <xsd:element name="ID" />
    </xsd:all>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>';
    GO
    DECLARE @x XML (dbo. ComplexTestSchemaCollection_all);
    SET @x = N'<?xml version="1.0"?>
    <marvel>
    <avenger_name>Thor</name>
    <ID>4</ID>
    </marvel>';
    SELECT @x;
    GO
    DROP XML SCHEMA COLLECTION dbo.ComplexTestSchemaCollection_all;
    GO
    I feel that drafted sql is very shaky and it needs the SQL Server XML experts to modify to make it work for me. Please kindly help, exam the coding of my shcXMLTableValidate1.sql and modify it to work.
    Thanks in advance,
    Scott Chang

    Hi Scott,
    2) Yes, FOR XML PATH clause converts relational data to XML format with a specific structure for the "marvel" Table. Regarding validate all the avenger_names, please see below
    sample.
    DECLARE @x XML
    SELECT @x=(SELECT ID ,avenger_name FROM marvel FOR XML PATH('Marvel'))
    SELECT @x
    SELECT
    n.value('avenger_name[1]','VARCHAR(99)') avenger_name,
    n.value('ID[1]','INT') ID
    FROM @x.nodes('//Marvel') Tab(n)
    WHERE n.value('ID[1]','INT') = 1 -- specify the ID here
    --FOR XML PATH('Marvel')  --uncommented this line if you want the result as element type
    3)i.check the xml schema content
    --find xml schema collection
    SELECT ss.name,xsc.name collection_name FROM sys.xml_schema_collections xsc JOIN sys.schemas ss ON xsc.schema_id= ss.schema_id
    select * from sys.schemas
    --check the schema content,use the name,collection_name from the above query
    SELECT xml_schema_namespace(N'name',N'collection_name')
    3)ii. View can be viewed as virtual table. Use a view to list the XML schema content.
    CREATE VIEW XSDContentView
    AS
    SELECT ss.name,xsc.name collection_name,cat.content
    FROM sys.xml_schema_collections xsc JOIN sys.schemas ss ON xsc.schema_id= ss.schema_id
    CROSS APPLY(
    SELECT xml_schema_namespace(ss.name,xsc.name) AS content
    ) AS cat
    WHERE xsc.name<>'sys'
    GO
    SELECT * FROM XSDContentView
    By the way, it would be appreciated if you can spread your questions into posts. For any question, feel free to let me know.
    Eric Zhang
    TechNet Community Support

  • Using field names stored in the database in a query

    Hi,
    I'm working on a database that has field names stored in tables. In order to construct a query using the field names stored in the table, normally I'd use dynamic SQL. 
    For example in table1 I have
    Field_Name Value
    Field1
    'Name'
    Field 2
           'Address'
    I want to build a select statement  "SELECT Name, Address, FROM tblCustTable" - if possible not using dynamic SQL.
    Is there a neat way to do this?
    Thanks very much.
    Sad old developer

    No, it is not possible to dynamically include ANY object names (Columns, Tables, Functions, Procedures, etc) in SQL without using Dynamic SQL.
    The closest you can get, if you are choosing from a known set of names, is to use CASE statements:
    SELECT CASE
    WHEN t1.Field1='Name' THEN ct.[Name]
    WHEN t1.Field1='Address' THEN ct.[Address]
    END AS Field1
    FROM tblCustTable ct
    CROSSJOIN table1 t1
    WHERE ...
    However there are several disadvantages to this approach, and the SQL will quickly get very convoluted and difficult to maintain.   Dynamic SQL is much cleaner.
    -Tab Alleman

  • Field name in database table

    Hi,
    Can we give the filed names start with '/' character, (like /name)? I saw like these field names in standard table MARA. How we create those fields in Z tables?
    Thanks.

    That are fields in Include structure.
    Yes u can create field with / in ur ztable.
    first create a structure by selection data type radio button in se11.
    in that structure create fields with /.
    NOTE: field must have 2 /.
    i.e ur field must be /str/struct1.
    activate it.
    now in ur database table goto edit menu select
    include->insert
    Give ur structure name .
    Message was edited by:
            Kalpanashri Rajendran

  • How to get the database table field names from program

    Hi,
    Can any one tell me,whether any function module is there which can get the table field name and its details ,when we pass database table name to it.
    Thanks in Advance
    <REMOVED BY MODERATOR>
    Regards
    Shibin
    Edited by: Alvaro Tejada Galindo on Feb 14, 2008 12:41 PM

    Hi,
    DD02L Table contains the SAP Tables.
    DD02T Table contains the SAP Table Texts.
    DD01L Table contains the Domains
    DD01T Table contains the Domain Texts.
    DD03L Table contains the Table Fields.
    DD03T Table contains the Table Field Texts. (Language Dependent)
    DD04L Table contains the Data Elements.
    DD04T Table contains the Data Element Texts.
    DD05s Table contains the Foreign Key Fields
    last words with L and T only. L->Database Fetch T-> Text
    For ur question use table DD03L or DD03T.
    Regards,
    Chandru

  • How to programmatically retrieve the real field name from a view object ?

    Dear all,
    when I map a business component (a database table) to a view, the fields are automatically converted by JDeveloper, for example, a field named 'user_id' in the oracle table definition, becomes 'userid' in the view.
    The question: how can I retrieve the right table column name from within a backing bean ? Please explain also what should I bind and how; should I use an iterator ?
    Another more: since we can change the label of a field on a view, how can then I get the mapping between the column name on the view and the column name on the table in the database ?
    Thanks in advance,
    Sergio.

    Hi Timo,
    many thanks for your answer.
    The rest of my question: you know we can drop a view from the DataControls onto a ADF page, with each field of the table having a label.
    That label is initially set like the internal table field name, so for instance, if user_id is the real table field name, userid will be the (by JDeveloper) internal renamed table field name, and the label would be userid too.
    If I then change the label text to, for example, "myUserid", the question is: how can I know which real table field does "myUserid" point to ?
    In other words, when my form is submitted, I want to know which field name has been changed and prepare an update sql in a bean.
    For this purpose I bind each view field to a validator function in the bean, and collect al the pairs "label_name + submitted value" in an hash table.
    Now inorder to build up that update query, I need the mapping between the label_name ("myUserid") and the real table field name ("user_id"). The question: how to map the label to the real table field name ?
    By the way, I'm using JDeveloper 11g rel. 2.
    Regards,
    Sergio.

  • Database fields empty after creating a new (Crystal) Report in MSY

    Hello,
    I have some issues to use Crystal Reports in Mobile Sales Maintenance (MSY). The situation is as follows
    My example is based on this standard report, which is working
    Report Name: BPartnerActivities
    Reporting Tool: Crystal Reports
    Category: Standard reports
    Subcategory: Lists
    Report Type: Report
    Data Source: Business Content provider
    Business Content Provider: BPActivities
    My requirement is to build a new report, which is based on the standard "BPartnerActivities" Report. If I use the "copy" functionality, I get an working Copy of the standard report. However, I need to modify the Business Content Provider, but I do not want to make the modifications on the standard content provider "BPActivities".
    I am now forced to used the "copy" functionality to create a copy from "BPActivities" for my own Content Provider "My BPActivities copy", which I want to use in a new report.
    Issue:
    I cannot modify the defined Business Content Provider after using the "copy" functionality and hence forced to create a new report from scratch to be able to set a different Content Provider.
    I create my own report "MyBPartnerActivities" based on the standard report "BPartnerActivities" using the same settings and assign my new business content provider.
    If I use the "Design Report" or "Modify Report" button, the Crystal Report designer pops up. Now the problem, the Crystal Report designer does not offer me any data below "Database fields".
    In the standard report, the "Database fields" has a child element "BOACTIVITY-ttx" with several field options. My own created report from sratch does now have anything?!
    Why my report does not offer my any data or is there anything additional to do?
    Another Test
    I tried to create another report using the standard content provider "BPActivities", but I have still the same issue.
    In addition I recongized that the "browse data" fuctionality does not work on the fields in the standard report. The path to the database file does not exist. It starts with "C:\WINNT\...", but my system has "C:\WINDOWS\...". But the executed report is able to retriev the data?!
    Unfortunately was not able to find any proper documentation, but I would really appreciate any help.
    Regards,
    Andreas

    Update
    It looks like that the *.ttx file is not uploaded/create to/on the MSY system. The system shows the file in the Crystal Report Designer, but there is no file on the file system. The confusing thing is, that any standard report is still working and does not really complain about a missing ttx file. I think the content of the ttx file is somehow embeded to the report.
    Does someone know how the system should behave? Should a ttx file be automatically created & assigned to any new report or do I have to create the file by my own every time?
    Cheers,
    Andreas

  • How to rename the column field names

    hello guys,
    i am retrieving my field names from the database and i view it thru HTML.
    When i view it,the column names are those which are given while creating tables.
    Ex..
    fname,lname,phno,
    i want it as First Name,Last Name,Phone Number etc ...<%
    try {
         stmt = con.createStatement();
         sql="SELECT fname, lname, gender, email,phnum,sartweblink, sartaddress1, sartaddress2,sartcounty, country,sartpostcode,dob FROM Artist where artistid='" + sartid + "'";
         rs=stmt.executeQuery(sql);
         rsmd=rs.getMetaData();
         int colcount=rsmd.getColumnCount();
         for(i=1;i<=colcount;i++)
    %>
              <tr><td width="200"><FONT face=verdana size=2><%= rsmd.getColumnName(i)%>
    <%
    %>               </FONT>
        <font face=verdana size=2>
          <% while(rs.next())
              fname=rs.getString("fname");
              lname=rs.getString("lname");
              gender=rs.getString("gender");
              email=rs.getString("email");
               phnum=rs.getInt("phnum");
              weblink=rs.getString("sartweblink");
              address1=rs.getString("sartaddress1");
              address2=rs.getString("sartaddress2");
              county=rs.getString("sartcounty");
              country=rs.getString("country");
              postcode=rs.getString("sartpostcode");
               dob=rs.getString("dob");
          %>i make use of metadata..
    can anyone tell me how to do this..
    thanks in advance

    why not use alias:
    your query is
    SELECT fname, lname, gender, email
    and will be:
    SELECT fname FIRSTNAME, lname LASTNAME, gender GENDER, email EMAILADDRESS

  • Table name and field name

    hi frds
    Give me table name and field name of OPEN PO QUANTITY ..
    thanks
    Pari Vendhan.R

    See the sample code for the open PO's based on Vendor
    and do accordingly
    *& Report ZMM_PO_REPORT
    REPORT ZMM_PO_REPORT message-Id yb
    NO STANDARD PAGE HEADING
    LINE-COUNT 60(1)
    LINE-SIZE 230.
    D A T A B A S E T A B L E S D E C L A R A T I O N
    TABLES: lfa1, " Vendor Master
    t161, " PO Doc Types
    t024, " Purchase Groups
    ekko. " PO Header
    T Y P E S D E C L A R A T I O N S
    Purchase Orders Main Structure
    TYPES: BEGIN OF s_po,
    ebeln TYPE ebeln, " PO No.
    ebelp TYPE ebelp, " PO Item
    bstyp TYPE bstyp, " PO Category
    bukrs TYPE bukrs, " Company Code
    bsart TYPE bbsrt, " PO Type
    lifnr TYPE lifnr, " Vendor No
    ekgrp TYPE bkgrp, " Purchase Group
    waers TYPE waers, " Currency
    bedat TYPE etbdt, " PO Date
    txz01 TYPE txz01, " Material Text
    werks TYPE ewerk, " Plant
    lgort TYPE lgort_d, " Storage Location
    matkl TYPE matkl, " Material Group
    menge TYPE bamng, " PR Quantity
    meins TYPE bamei, " UOM
    bprme TYPE bbprm, " Price Unit
    netpr TYPE netpr, " Net price
    peinh TYPE peinh, " Price Unit UOM
    pstyp TYPE pstyp, " Item Category
    knttp TYPE knttp, " Account Assignment Category
    END OF s_po.
    Purchase Orders History Structure
    TYPES: BEGIN OF s_account,
    ebeln TYPE ebeln, " PO No.
    ebelp TYPE ebelp, " PO Item
    gjahr TYPE mjahr, " Fiscal Year
    belnr TYPE mblnr, " PO Invoice No
    menge TYPE menge_d, " PR Quantity
    wrbtr TYPE wrbtr, " Price in Local Currency
    dmbtr TYPE dmbtr, " Price in Foreign Currency
    waers TYPE waers, " Currency
    shkzg TYPE shkzg, " Dr/Cr Indicator
    END OF s_account.
    Purchase Orders History Structure(Item Sum)
    TYPES: BEGIN OF s_inv_sum,
    ebeln TYPE ebeln, " PO No.
    ebelp TYPE ebelp, " PO Item
    menge TYPE menge_d, " PR Quantity
    wrbtr TYPE wrbtr, " Price in Foreign Currency
    waers TYPE waers, " Currency
    END OF s_inv_sum.
    Purchase Orders Main Structure
    TYPES: BEGIN OF s_rep,
    lifnr TYPE lifnr, " Vendor No
    ebeln TYPE ebeln, " PO No.
    ebelp TYPE ebelp, " PO Item
    bstyp TYPE bstyp, " PO Category
    bsart TYPE bbsrt, " PO Type
    ekgrp TYPE bkgrp, " Purchase Group
    waers TYPE waers, " Currency
    bedat TYPE etbdt, " PO Date
    txz01 TYPE txz01, " Material Text
    werks TYPE ewerk, " Plant
    lgort TYPE lgort_d, " Storage Location
    matkl TYPE matkl, " Material Group
    menge TYPE bamng, " PR Quantity
    meins TYPE bamei, " UOM
    bprme TYPE bbprm, " Price Unit
    netpr TYPE netpr, " Net price
    peinh TYPE peinh, " Price Unit UOM
    pstyp TYPE pstyp, " Item Category
    knttp TYPE knttp, " Account Assignment Category
    name1 TYPE name1, " Plant
    orewr TYPE netpr, " To be Invoiced Price
    curr TYPE waers, " Inv Doc Currency
    END OF s_rep.
    D A T A D E C L A R A T I O N S
    DATA: gv_title1 TYPE sylisel, " Report title
    gv_dial. " Color flag
    C O N S T A N T S D E C L A R A T I O N S
    CONSTANTS: c_x VALUE 'X', " Flag X
    c_h VALUE 'H', " Debit
    c_vgabe TYPE vgabe VALUE '2'. " Transaction Type
    I N T E R N A L T A B L E S D E C L A R A T I O N S
    DATA: i_po TYPE STANDARD TABLE OF s_po WITH HEADER LINE,
    " Purchase Order
    i_inv TYPE STANDARD TABLE OF s_inv_sum WITH HEADER LINE,
    " PO Invoice Values
    i_rep TYPE STANDARD TABLE OF s_rep WITH HEADER LINE,
    " PO Invoice Values
    i_ekbe TYPE STANDARD TABLE OF s_account WITH HEADER LINE.
    " PO Invoice Values
    S E L E C T I O N S C R E E N *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr MATCHCODE OBJECT kred,
    s_ebeln FOR ekko-ebeln MATCHCODE OBJECT mekk,
    s_bsart FOR t161-bsart,
    s_ekgrp FOR t024-ekgrp,
    s_bedat FOR ekko-bedat.
    SELECTION-SCREEN END OF BLOCK b1.
    I N I T I A L I Z A T I O N *
    INITIALIZATION.
    A T S E L E C T I O N - S C R E E N *
    AT SELECTION-SCREEN.
    Validate the screen fields
    PERFORM validate_screen.
    S T A R T - O F - S E L E C T I O N *
    START-OF-SELECTION.
    Fetch main data
    PERFORM fetch_data.
    T O P - O F - P A G E *
    TOP-OF-PAGE.
    Header of the List
    PERFORM header.
    E N D - O F - P A G E *
    Footer
    END-OF-PAGE.
    ULINE.
    E N D - O F - S E L E C T I O N *
    END-OF-SELECTION.
    Display the Report Output data
    PERFORM display_data.
    At Line-Selection
    AT LINE-SELECTION.
    When double clicked on EBELN display the details of Purchase Doc
    PERFORM line_sel.
    *& Form validate_screen
    Validation of Selection Screen fields
    FORM validate_screen .
    Validation of Vendor Number
    CLEAR lfa1-lifnr.
    IF NOT s_lifnr[] IS INITIAL.
    SELECT lifnr UP TO 1 ROWS
    INTO lfa1-lifnr
    FROM lfa1
    WHERE lifnr IN s_lifnr.
    ENDSELECT.
    IF sy-subrc 0.
    MESSAGE e000 WITH 'Invalid Vendor'(002).
    ENDIF.
    ENDIF.
    Validation of PO Number
    CLEAR ekko-ebeln.
    IF NOT s_ebeln[] IS INITIAL.
    SELECT ebeln UP TO 1 ROWS
    INTO ekko-ebeln
    FROM ekko
    WHERE ebeln IN s_ebeln.
    ENDSELECT.
    IF sy-subrc 0.
    MESSAGE e000 WITH 'Invalid Document Number'(003).
    ENDIF.
    ENDIF.
    Validation of PO Document Type
    CLEAR t161-bsart.
    IF NOT s_bsart[] IS INITIAL.
    SELECT bsart UP TO 1 ROWS
    INTO t161-bsart
    FROM t161
    WHERE bsart IN s_bsart.
    ENDSELECT.
    IF sy-subrc 0.
    MESSAGE e000 WITH 'Invalid Purchase Document Type'(004).
    ENDIF.
    ENDIF.
    Validation of Purchasing Group
    CLEAR t024-ekgrp.
    IF NOT s_ekgrp[] IS INITIAL.
    SELECT ekgrp UP TO 1 ROWS
    INTO t024-ekgrp
    FROM t024
    WHERE ekgrp IN s_ekgrp.
    ENDSELECT.
    IF sy-subrc 0.
    MESSAGE e000 WITH 'Invalid Purchasing Group'(005).
    ENDIF.
    ENDIF.
    ENDFORM. " validate_screen
    *& Form fetch_data
    Fetching the PO related data from Database Tables
    FORM fetch_data .
    CLEAR i_po.
    REFRESH i_po.
    SELECT a~ebeln " PO No.
    b~ebelp " PO Item
    a~bstyp " PO Category
    a~bukrs " Company Code
    a~bsart " PO Type
    a~lifnr " Vendor No
    a~ekgrp " Purchase Group
    a~waers " Currency
    a~bedat " PO Date
    b~txz01 " Material Text
    b~werks " Plant
    b~lgort " Storage Location
    b~matkl " Material Group
    b~menge " PR Quantity
    b~meins " UOM
    b~bprme " Price Unit
    b~netpr " Net price
    b~peinh " Price Unit UOM
    b~pstyp " Item Category
    b~knttp " Account Assignment Category
    INTO TABLE i_po
    FROM ekko AS a JOIN ekpo AS b
    ON a~ebeln = b~ebeln
    WHERE a~ebeln IN s_ebeln AND
    a~lifnr IN s_lifnr AND
    a~ekgrp IN s_ekgrp AND
    a~bsart IN s_bsart AND
    a~bedat IN s_bedat.
    SORT i_po BY ebeln ebelp.
    break-point.
    IF NOT i_po[] IS INITIAL.
    Fetch the PO History/Invoice Details from EKBE Table
    CLEAR i_ekbe.
    REFRESH i_ekbe.
    SELECT ebeln " PO No.
    ebelp " PO Item
    gjahr " Fiscal Year
    belnr " PO Invoice No
    menge " PR Quantity
    wrbtr " Price in Local Currency
    dmbtr " Price in Foreign Currency
    waers " Currency
    shkzg " Dr/Cr Indicator
    INTO TABLE i_ekbe
    FROM ekbe
    FOR ALL ENTRIES IN i_po
    WHERE ebeln = i_po-ebeln AND
    ebelp = i_po-ebelp AND
    vgabe = c_vgabe.
    IF sy-subrc = 0.
    SORT i_ekbe BY ebeln ebelp.
    LOOP AT i_ekbe.
    IF i_ekbe-shkzg = c_h.
    i_ekbe-wrbtr = i_ekbe-wrbtr * -1.
    ENDIF.
    MODIFY i_ekbe.
    ENDLOOP.
    break-point.
    Sum up the Item wise Invoice totals
    LOOP AT i_ekbe.
    AT END OF ebelp.
    READ TABLE i_ekbe INDEX sy-tabix.
    SUM.
    MOVE-CORRESPONDING i_ekbe TO i_inv.
    APPEND i_inv.
    ENDAT.
    CLEAR i_inv.
    ENDLOOP.
    SORT i_inv BY ebeln ebelp.
    break-point.
    ENDIF.
    ENDIF.
    Move the Vendor Name and Invoice Values to I_rep Internal Table
    LOOP AT i_po.
    MOVE-CORRESPONDING i_po TO i_rep.
    CLEAR i_inv.
    READ TABLE i_inv WITH KEY ebeln = i_po-ebeln
    ebelp = i_po-ebelp.
    IF sy-subrc = 0.
    i_rep-orewr = ( i_po-menge - i_inv-menge ) * i_po-netpr.
    i_rep-curr = i_inv-waers.
    ELSE.
    i_rep-orewr = i_po-menge * i_po-netpr.
    i_rep-curr = i_po-waers.
    ENDIF.
    break-point.
    Get the Vendor Name
    CLEAR lfa1-name1.
    SELECT SINGLE name1 FROM lfa1 INTO lfa1-name1
    WHERE lifnr = i_po-lifnr.
    IF sy-subrc = 0.
    i_rep-name1 = lfa1-name1.
    ENDIF.
    APPEND i_rep.
    CLEAR i_rep.
    break-point.
    ENDLOOP.
    SORT i_rep BY lifnr ebeln ebelp.
    DELETE i_rep WHERE orewr LE 0.
    break-point.
    ENDFORM. " fetch_data
    *& Form display_data
    Display the Report Output data
    FORM display_data .
    DATA: lv_flag, " New Flag
    lv_rec TYPE i. " No of Records
    CLEAR lv_rec.
    IF i_rep[] IS INITIAL.
    MESSAGE e000 WITH 'No Data found'(022).
    ELSE.
    LOOP AT i_rep.
    Toggle Color
    PERFORM toggle_color.
    IF lv_flag space.
    NEW-LINE.
    ENDIF.
    At New Purchase Document
    AT NEW ebeln.
    WRITE:/1 sy-vline, 2(10) i_rep-ebeln INTENSIFIED OFF.
    lv_flag = c_x.
    lv_rec = lv_rec + 1.
    ENDAT.
    WRITE: 1 sy-vline,
    12 sy-vline,13(4) i_rep-bsart,
    17 sy-vline,18(10) i_rep-lifnr,
    28 sy-vline,29(35) i_rep-name1,
    64 sy-vline,65(4) i_rep-ekgrp,
    69 sy-vline,70(10) i_rep-bedat,
    80 sy-vline,81(5) i_rep-ebelp,
    86 sy-vline,87(40) i_rep-txz01,
    127 sy-vline,128(9) i_rep-matkl,
    137 sy-vline,138(1) i_rep-pstyp,
    139 sy-vline,140(1) i_rep-knttp,
    141 sy-vline,142(4) i_rep-werks,
    146 sy-vline,147(4) i_rep-lgort,
    151 sy-vline,152(13) i_rep-menge UNIT i_rep-meins,
    165 sy-vline,166(3) i_rep-meins,
    169 sy-vline,170(15) i_rep-netpr CURRENCY i_rep-waers,
    185 sy-vline,186(4) i_rep-waers,
    190 sy-vline,191(5) i_rep-peinh,
    196 sy-vline,197(4) i_rep-bprme,
    201 sy-vline,202(15) i_rep-orewr CURRENCY i_rep-curr,
    217 sy-vline,218(4) i_rep-curr,
    222 sy-vline,223(7) i_rep-bstyp centered,
    230 sy-vline.
    NEW-LINE.
    hide: i_rep-ebeln.
    ENDLOOP.
    ULINE.
    FORMAT COLOR OFF.
    WRITE : /2 'Total Number of Purchasing Documents:'(025) COLOR 3,
    lv_rec COLOR 3.
    ENDIF.
    ENDFORM. " display_data
    *& Form header
    Write the Report Header
    FORM header .
    FORMAT RESET.
    header
    WRITE:/1(230) 'LIST OF PURCHASE DOCUMENTS PER VENDOR'(006) CENTERED.
    SKIP.
    FORMAT COLOR COL_HEADING.
    ULINE.
    WRITE:/1 sy-vline,2(10) 'Pur.Doc.No'(006) CENTERED,
    12 sy-vline,13(4) 'Type'(007),
    17 sy-vline,18(10) 'Vendor'(008) CENTERED,
    28 sy-vline,29(35) 'Name'(009) CENTERED,
    64 sy-vline,65(4) 'PGrp'(010) CENTERED,
    69 sy-vline,70(10) 'Doc.Date'(012) CENTERED,
    80 sy-vline,81(5) 'Item'(011),
    86 sy-vline,87(40) 'Material Short Text'(024) CENTERED,
    127 sy-vline,128(9) 'Mat.Group'(013),
    137 sy-vline,138(1) 'I',
    139 sy-vline,140(1) 'A',
    141 sy-vline,142(4) 'Plnt'(014),
    146 sy-vline,147(4) 'SLoc'(015),
    151 sy-vline,152(13) 'Quantity'(016) CENTERED,
    165 sy-vline,166(3) 'UoM'(017),
    169 sy-vline,170(15) 'Net Value'(018) CENTERED,
    185 sy-vline,186(4) 'Curr'(019),
    190 sy-vline,191(5) 'Per'(020),
    196 sy-vline,197(4) 'Unit'(021),
    201 sy-vline,202(15) 'To be Invoiced'(023) CENTERED,
    217 sy-vline,218(4) 'Curr'(019),
    222 sy-vline,223(7) 'Doc.Cat'(026),
    230 sy-vline.
    ULINE.
    ENDFORM. " header
    *& Form toggle_color
    This routine alters the color of the records in the list FORM toggle_color.
    IF gv_dial = space.
    FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
    gv_dial = c_x.
    ELSE.
    FORMAT COLOR 1 INTENSIFIED OFF.
    CLEAR gv_dial.
    ENDIF.
    ENDFORM. " toggle_color
    *& Form LINE_SEL
    *When double clicked on EBELN field display the details of Purchase Doc
    FORM line_sel.
    CASE sy-lsind.
    WHEN '1'.
    DATA: lv_field(20),
    lv_value(10),
    lv_bstyp like i_rep-bstyp.
    clear: lv_bstyp,lv_value, lv_field.
    GET CURSOR FIELD lv_field VALUE lv_value.
    IF lv_field = 'I_REP-EBELN'.
    IF NOT lv_value IS INITIAL.
    READ LINE sy-index FIELD VALUE i_rep-bstyp
    INTO lv_bstyp.
    READ CURRENT LINE FIELD VALUE i_rep-bstyp INTO lv_bstyp.
    if lv_bstyp = 'F'.
    SET PARAMETER ID 'BES' FIELD lv_value.
    CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
    elseif ( lv_bstyp = 'K' or lv_bstyp = 'L' ).
    SET PARAMETER ID 'VRT' FIELD lv_value.
    CALL TRANSACTION 'ME33' AND SKIP FIRST SCREEN.
    elseif lv_bstyp = 'A'.
    SET PARAMETER ID 'ANF' FIELD lv_value.
    CALL TRANSACTION 'ME43' AND SKIP FIRST SCREEN.
    endif.
    ENDIF.
    ENDIF.
    ENDCASE.
    ENDFORM. " line_sel{code]
    <REMOVED BY MODERATOR>
    kushagra
    Edited by: Alvaro Tejada Galindo on Feb 18, 2008 2:03 PM

  • RE: What's database field are used in crystal report file?

    Hi all
    Please help me a C# code that using Crystall Report API (Crystal Report XI- Develop license) to get the list of database fieldname that using in crystal Report file. (What's database field using in header section ,group section , detail section of report.....)
    We looking forward to hearing from you
    Thanks
    Son

    Hello Son,
    please use this code below to get a list of used database fields in a report :
    //File Name:          CS_Get_report_data_out_inproc.sln
    //Created:            April 11, 2008
    //Author ID:          FLI
    //Purpose:            This C# .NET sample Windows application demonstrates
    //                  how to retrieve report data and put the into a XML file
    //                  using unmanaged RAS.
    // Note this is available without a dedicated RAS with SP2 for XI R2
    using System;
    using System.IO;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using CrystalDecisions.CrystalReports.Engine;
    using CrystalDecisions.ReportAppServer.ClientDoc;
    using CrystalDecisions.ReportAppServer.Controllers;
    using CrystalDecisions.ReportAppServer.DataDefModel;
    namespace CS_Get_report_data_out_inproc
        public partial class Form1 : Form
            // CR Declarations
            ReportDocument boReportDocument;
            ISCDReportClientDocument boReportClientDocument;
            public Form1()
                InitializeComponent();
                //Create a new ReportDocument
                boReportDocument = new ReportDocument();
                // load the RPT file
                boReportDocument.Load("..
    ReportData.rpt");
                // show in reportviewer
                crystalReportViewer1.ReportSource = boReportDocument;
            private void button1_Click(object sender, EventArgs e)
                //Access the ReportClientDocument in the ReportDocument (EROM bridge)
                boReportClientDocument = boReportDocument.ReportClientDocument;
                // Retrieve the Rowset Controller
                RowsetController boRowsetController = boReportClientDocument.RowsetController;
                // Retrieve the metadata (column headers) - this allows you to only retrieve the data that is on the report.
                RowsetMetaData boRowsetMetaData = new RowsetMetaData();
                Fields boFields = boReportClientDocument.DataDefinition.ResultFields;
                boRowsetMetaData.DataFields = boFields;
                // Now print out the data in XML file
                //(Note: This will print out the results of formulas too)
                StreamWriter sw = new StreamWriter("C:
    ReportData.xml", false);
                sw.WriteLine("<?xml version='1.0' encoding='utf-8'?>");
                sw.WriteLine("<ReportData>");
                sw.WriteLine("<Reportheader>");
                // Print out the titles
                for (int i = 0; i < boFields.Count; i++)
                    String boFieldName = boFields<i>.Name;
                    sw.WriteLine("<ReportheaderDetail>" + boFieldName + "</ReportheaderDetail>");
                sw.WriteLine("</Reportheader>");
                //Create the cursor which lets us loop through the data
                RowsetCursor boRowsetCursor = boRowsetController.CreateCursor(null, boRowsetMetaData, 1);
                Record boRecord;
                while (boRowsetCursor.IsEOF == false)
                    sw.WriteLine("<Customer>");
                    boRecord = boRowsetCursor.CurrentRecord;
                    for (int j = 0; j < boFields.Count; j++)
                        try
                            sw.WriteLine("<Detail>" + (String)boRecord[j].ToString() + "</Detail>");
                        catch (Exception err)
                            sw.WriteLine("<Error>" + err.Message + "</Error>");
                    sw.WriteLine("</Customer>");
                    boRowsetCursor.MoveNext();
                sw.WriteLine("</ReportData>");
                // CLose the file
                sw.Close();
                MessageBox.Show("XML File 'ReportData.xml' successfully created on C:");

Maybe you are looking for

  • How do I get my 2nd Gen Nano to switch from Mac to pc?

    When I connect my Nano to my pc it says "itunes has detected a macintosh-formatted ipod.You must restore this ipod before you can use it on windows." Can someone tell me the steps for getting my pc to recognize the nano so that it can be restored to

  • How to transfer an iMail to a new iMail group

    I am getting set to create a new mailing list, rather extensive.  I want to create a new group, and transfer in all of the contacts that I have used in a similar group from next near.  Effectively, the only change I will be making to the group name w

  • GetUsageData is always returning Null

    Let me first start out by stating that I know there are many questions on this issue, and I have read them all. However, none of the suggestions that I have read have seemed to help my situation. Therefore, I figure I would supply my code with the ho

  • How do I turn off the auto window arranging?

    I have a dual monitor system, and whenever I drag a floating window (usually the Code Inspector) to the main display, it docks and fills up the whole screen, and then I have to drag it back off. I have to be very careful not to drag the window within

  • Product Category Favorite

    Hello, Is it possible to have more Product Category favorite? Actually there is 6 and we want 15. Thanks,