Mixed case table/col names and JDeveloper?

I am thinking of trying to use mixed case table/column names in my Oracle 8i database.
My hope is to achieve table/column names consistent with Java conventions (which I am happy with).
Would this work with Jdeveloper 3.1? 3.2?
Will JDeveloper/BC4J then generate mixed case names?
Will I cause my self lots of pain and suffering? (I don't consider having to enter a correct mixed case name a pain; I do consider always having to quote it and/or use TOUPPER, etc. a bit of pain)
Thanks
R.Parr
Temporal Arts
null

I do consider always having to quote it and/or use TOUPPER, etc. a bit of pain)<<<JDEV isn't as much the issue. If you have simple applications and don't intend to change things over time, or create lots of interfaces, or support multiple development tools against the same database, mixed cases seem to work fine.
To give yourself an idea of how cumbersome things will be, go in and
create "myTable" ( "myField" varchar2(20) );
now DESC ribe the table,
select myField from it.
Putting doublequotes around things all the time gets very irritating. Remember it is also for having special characters and embedded spaces... and I don't know of any PL/SQL SET ( other than the opposite: SQLCASE that forces just about everything to uppercase ).
Oh, and then you get to encounter fun things like ODBC and JDBC drivers that may or may not like it. Or if you MOVE/EXPORT the data around, your target may or may not be happy.
Working at several diversified, large organization with MANY database products/targets, I've become very disenchanted with making mixed case attributes and table names!
All tools should support mixed case correctly. Reality has returned a mixed case of results. grin or not, as the case may be.
null

Similar Messages

  • BUG: Export DDL and Data fails for mixed case table/column names

    Hi there,
    I have found a bug in SQL Developer. See details below.
    Description:
    When "Export DDL and Data) function is used on a table/columns not named in UPPERCASE, sql generated by SQL Developer is invalid.
    Steps to reproduce:
    - open SQL Developer, connect to DB
    - make a table named "lowerCase" (in double quotes, so it won't be automatically changed to capital letters)
    - you may also add some columns, for example "lowerCol1", "UpCol2", ALLUPCOL3
    - add some data rows to the table
    - choose Tools -> Export DDL and Data
    - check exporting of tables and data, on "filter" tabs choose your "lowerCase" table
    - press "Apply"
    Error:
    Generated SQL contains invalid INSERTs: mixed-case table and columns are referenced without obligatory double quotes, which yields an error when generated script is executed (see below, relevant line is underlined)
    -- DDL for Table lowerCase
    CREATE TABLE "DBO_HT"."lowerCase"
    (     "lowerCol1" VARCHAR2(100),
         "UpCol2" VARCHAR2(100),
         "ALLUPCOL3" VARCHAR2(100)
    -- DATA FOR TABLE lowerCase
    -- FILTER = none used
    -- INSERTING into lowerCase
    Insert into lowerCase (lowerCol1,UpCol2,ALLUPCOL3) values ('lc','uc','auc');
    -- END DATA FOR TABLE lowerCase
    Remarks
    SQL Developer: version 1.2.1, build MAIN-32.13
    Oracle DBs: 9.2 & Express
    OS: Windows 2000 Professional
    If you need any more details/testing, let me know. I'd really appreciate a quick patch for this issue...
    Alternatively, do you know of any other simple way of copying a single database (it's called a schema in Oracle, right?) from one computer to another? Possibly something so simple like detaching->copying->reattaching mdf (data) files in SQL Server... I thought that this "Export DDL&Data" function will do, but as you can see I couldn't use it.
    I just need a simple solution that works - one operation on source to stuff, get the resulting files to other computer and one operation to have it running there... I think that such scenario is very basic, yet I just can't achieve it and I am simply not allowed to spend more time on it (read: our test project fails, my company rejects my "lobbying" and stays with MSSQL :/ )
    Thanks a lot & bye

    Thanks for your reply.
    ad. 1)
    You're right. I just wanted to give some very short feedback on my experiences with SQL Developer, so I didn't think starting new threads would be necessary, but as I was writing it became much bigger than I initially planned - sorry about that. I will make proper threads as soon as possible. Having "Edit post" button on this forum would also be useful.
    ad. 2)
    Generally, you're right - in most cases it's true that "switching DBMS is a major commitment" and "you will produce terrible code" if you don't learn the new one.
    However, I think that you miss one part of market here - the market that I think Express is also targeted on. I'd call it a "fire&forget databases" market; MySQL comes to mind as possibly most common solution here. It's the rather small systems, possibly web-accessed, whose data-throughput requirements are rather modest; the point is to store data at all, and not necesarily in fastest way, because given the amount of data that is used, even on low-end hardware it will work well enough. What's important here is its general ease of use - how easy is to set up such system, connect and access data, develop a software using it, how much maintenance is needed, how easy this maintenance is, how easy are the most common development tasks as creating a DB, moving a DB from test to production server etc. There, "how easy" directly translates to "how much time we need to set it up", which translates to "how much will the development will cost".
    Considering the current technology, switching the DBMS in such systems is not necesarily a major commitment and believe me that you will not produce terrible code. In many cases it's as simple as changing a switch in your ORM toolkit: hibernate.dialect = Hibernate.Dialect.OracleDialect vs MySQLDialect vs MsSql2005Dialect
    Therefore, in some part of market it's easy to switch DBMS, even on project-by-project basis. The reason to switch will appear when other DBMS makes life easier => development faster. From that point of view, I can understand my colleagues giving me an embarassing look and saying "come on, I won't read all these docs just to have db copied to test server". And it doesn't mean "they are not willing to learn anything new", it's just that they feel such basic task should have self-explaining solution that doesn't require mastering any special knowledge. And if they get such simple solutions somewhere else, it costs them nothing to change the hibernate dialect.
    I think Oracle did the great job with introducing the Express to this "fire&forget" market. The installation is a snap, it just works out of the box, nothing serious to configure, opposite to what I remember from installing and working on Oracle 9 a few years ago. In some places it's still "you need to start SQL*Plus and enter this script", but it's definitely less than before. I also find the SQL Developer a great tool, it can do most of what we need to do with the DB, it's also much better and pleasant to use over Oracle 9 tools. Still, a few basic things still require too much hassle, and I'd say taking your schema to another machine is one of them. So I think that, if you do it well, the "schema copy wizard" you mentioned might be very helpful. If I was to give any general advice for Express line of DB/tools, I'd say "make things simple" - make it "a DB you can't see".
    That's, IMHO, the way to attract more Express users.

  • Converting mixed case table name to upper case

    I am migrating data from Access to Oracle and new tables and columns being created are in mixed case is there a way to convert all tablename or column name automatically.
    Also does the migration workbench handle the memo fields currently defined in my oracle database.

    If you want tables and columns to be created in Upper Case then make sure the Create ANSI-Compliance Names checkbox is unchecked in the options section.
    1.Open Workbench.
    2.Tools -> Options
    Memo fields are migrated to CLOB fields in Oracle.

  • Using expdp to export a mix of tables with data and tables without data

    Hi,
    I would like to create a .dmp file using expdp, exporting a set of tables with data and another set without data. Is there a way to do this in a single .dmp file? For example, I want all the tables in a schema with data, but for the fact tables in that schema, I only want the fact table objects, not the data. I thought it might be easier to create two separate .dmp files, one for each scenario, but would be nice to have one .dmp file that satisfies my requirement. Any help is appreciated.
    Thanks,
    -Rodolfo
    Edited by: user6902559 on May 11, 2010 12:05 PM

    You could do this with where clauses. Let's say you have 10 tables to export, 5 with data and 5 without data. I would do it like this
    tab1_w_data
    tab2_w_data
    tab3_w_data
    tab4_w_data
    tab5_w_data
    tab1_wo_data
    tab2_wo_data
    tab3_wo_data
    tab4_wo_data
    tab5_wo_data
    I would make one generic query
    query="where rownum = 0"
    and I would make 5 specific queries
    query=tab1_w_data:"where rownum > 0"
    query=tab2_w_data:"where rownum > 0"
    query=tab3_w_data:"where rownum > 0"
    query=tab4_w_data:"where rownum > 0"
    query=tab5_w_data:"where rownum > 0"
    The first query will be applied to all tables that don't have their own specific query and it will export no rows, the next 5 will apply to each of the corresponding table.
    Dean

  • Mixing between my contacts name and their names on whatsapp

    hi, i have an iphone 4. i have some problems with whatsapp.when receiving a new message from anyone of my contacts it appears on my home screen the way they saved their names  on whatspp not the way i saved them on my contactsd.exemple: i save my sister on my phone as Sis. when receinving a new message from her it appears only on the home screen as Sara her name as she saved on her whatsapp. can i fix the problem?

    This has everything to do with WhatsApp - WhatsApp controls and determines this.

  • Case sensitive Tab/Col Names

    Hi every one,
    I'm having a problem with my Mixed case Table names and column names,when my precompiled application try to query those tables.
    I have Table names like "ImmunTypeFollowUp" in Uper and Lower case letters. In my application I have Table names in Uper and Lower case letters "ImmuntypeFollowup". Now my querys are not working because
    "ImmunTypeFollowUp" != "ImmuntypeFollowup"
    But if I change the table name to "IMMUNTYPEFOLLOWUP" it works.
    "IMMUNTYPEFOLLOWUP" == "ImmuntypeFollowup"
    So is there any server side parameter to force even my table names are in diferent cases, consider them as UPPER case.
    Any help will save droping/recreating my entire DB.
    Thanks.
    Nandana
    null

    By default, Oracle will create the names/columns of objects in upper case (provided the name/components of the object are not in mixed case and quoted). For example: CREATE TABLE "MiXeD_Up_TbL"... will create the table MiXeD_Up_TbL, and the statement CREATE TABLE MiXeD_Up_Tbl... will create the table MIXED_UP_TBL.
    There is no setting I'm aware of to turn this off - generally it's not a problem. If you plan to migrate your product to another database, it would probably be better to follow the Oracle "standard" of all upper-cased object names.
    Instead of dropping the database, determine what the real name of the tables/columns are : SELECT TABLE_NAME FROM ALL TABLES... or SELECT TABLE_NAME, COLUMN_NAME FROM ALL_TAB_COLUMNS... I suspect all the tables and columns as created on the database (under the schema your queries run under) are all upper case. Change the code to look for upper case names by either coding them that way or using UPPER(TABLE_NAME) = UPPER(&table_var_name) in your queries. NOTE: This may bypass index usage depending on what your objects/indexes look like.
    Hope this helps.
    null

  • Remain case for table column name

    Hello, i am a java developer. I had helped my company to develop a java application all the while and before this we are using ms sql server database. Recently, we want to migrate the database to oracle database. The problem is, in our application, we use the resultsetmetadata to retrieve all the table column name and respective data and store in hashtable, but in ms sql server the table column name is not all in uppercase. When our application try to get the data using hashtable.get("aColumnName"), it will fail because in oracle the column name is all in uppercase. There are more than 1000 jsp page and java code that used the same method to get data, so if i want to change all the code to uppercase, it will consume a lot of unproductive time, is there any way to solve this?

    I assume that your code builds an SQL statement like "select * from ??? where table_name = '????';".
    If this is correct just wrap the table_name in UPPER(table_name).
    If my assumption is incorrect then please give more information.
    James.

  • 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

  • Generating mixed case for table and column names

    I trying to get table definition from Oracle 9i database into my toplink workbench
    (version 9.0.3), the column names and table names are capitilized by
    default, how do I change this to be mixed case? Thanks

    I'm not sure why you want them changed. The Oracle database by default is case insensitive, which in essence means it converts everything to upper case when a case is not specified (which can be done by wrapping it in quotes). Unfortunately, Java strings are case sensitive. This means that if you try searching resultsets for "TableName" when the database driver is returning "TABLENAME", you will run into problems. It is probably better to have your project match your database as closely as possible to avoid any issues later on.
    That said, I don't know of a way to automatically have the workbench use mixed case names - it uses the strings as they are returned from the database. I believe you will need to manually change the table names if you want them to be different than what you have imported.
    Best Regards,
    Chris

  • Mixed case in column & table name

    Hi,
    How can tell SQL to use mixed case for column & table name?
    For example:
    create table PerNode (netId number, nodeId number);
    select netId, nodeId from PerNode;
    The above statements automatically made to upper case. But I wanted to retain the case sensitiveness in the column & table names.
    I know a way by including the names in double quote in the case will make this to retain the case.
    But I don't want to give all the time the column & table names within double quote.
    What I wanted to know is that is there any ALTER kind of statement will make the SQL to use the case I use in the name of the column & table.
    I greatly appreciate your advice.
    Thanks,
    --JK                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

    Oracle column names and table names are case insensitive unless you enclose them in quotes.
    Unless you want to have two tables, one called PerNode and one called pernode or some such, I'm not sure what benefit case sensitivity would have. One can certainly use mixed case SQL statements in stored procedures and ad-hoc SQL for readability-- only in the Oracle internals is everything changed to upper case.
    Justin
    Distributed Database Consulting, Inc.
    www.ddbcinc.com/askDDBC

  • Mixed case operation names in generated Web Service

    I am generating a PL/SQL Web Service with Oracle JDeveloper 10.1.3.1. The PL/SQL package contains functions with mixed-case names, like “getAllNames”. When I generate my Web Service, JDeveloper transforms the names into all lower case, like “getallnames”.
    Does anyone know how I can modify this behavior? I need the mixed case for my service operation names. I’ve checked through JDeveloper preference and project properties but don't see anything obvious.
    Thanks,
    Bill
    Message was edited by:
    user574327

    I think you mean the names of the Java methods or even more the operation names in the WSDL.
    As I have observed, JDeveloper generates uppercase letters only after underscores and it deletes the underscores. This way names like "my_proc", "my_Proc", "My_proc", "My_Proc" and "MY_PROC" all become "myProc"; and names like "Myproc", "myProc", "MyProc", "MYPROC" all become "myproc".
    I don't know a way to modify this behaviour, but you can edit the WSDL manually after it is generated.
    Patrik

  • Importing table with mixed case on MySQL

    I am trying to import a table form MySQL 5.0.  Two tables exist with the same name, with first letter capital in one and all lower case in the other (ex. Jobdetails, jobdetails).  After hitting the Show ATL button on the data source, all case sensitive settings are Yes.  The table with the first letter capital is always imported no matter which table is selected.  I can't import the lower case table.  I am on Data Services 12.2.
    Edited by: Russell Atwood on Feb 8, 2012 2:28 PM

    I have found that patchSet 9.2.0.3 fixes some bugs in Oracle Text.
    One of them is Bug 2684307: "Mixed tokens not uppercased with BASE_LETTER in multibyte database". That's exactly the problem i am dealing with.
    I will proceed to install this patchSet and verify that this does not happend anymore.

  • Mixed case name search in Unload Wizard is not working (EA3 - 3rd beta)

    I believe the mixed case name search in Unload Wizard is not working (EA3 - 3rd beta)
    I have bunch of triggers (and other db objects as well) with mixed case names such as zMY_TRIGGERu and can not find those triggers in the "Lookup" during the Unload Wizard (Tools menu --> Database Unload option).
    I also found out that the search is limited to 500 objects and if you have more than 500 constraints for example only 500 of them are displayed by the "Lookup"
    - is there any configuration/setting parameter (which I already checked the Preferences for DDL/Unload option and didn't see anything) for eliminating the 500 limit ? is it hard coded ?
    - any trick to do the mixed case search in the Unload Wizard ? (I tried using "z"%"u" but that did not help - I used "z"% and also "z" and checked the % check box, ...)
    Edited by: zaferaktan on Jan 25, 2011 5:06 PM

    Thank you Joyce
    I have already tried to apply a filter at the object navigator. It works with Triggers, tables, etc but NOT with the packages.
    You can not unload both the package and the package body for "multiple" packages (you can use save package and package body option for a single package) from the Navigator.
    Unfortunately, currently the only way in SqlDeveloper (3-EA3) to unload the package and the package body of multiple packages is to use the "Database Unload" menu option.
    Therefore, for unloading more than one package/package body - the filter option you suggested won't work (and is not working).
    I hope this will be fixed soon before version 3 released officially.
    R/ Zaf

  • 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

  • How can I use a Dropdown list in a table col and only get the choosen key?

    hi!
    I have chosen Cell editor = Dropdown for two of the columns in my WD table  (ordinary Table not ALV) .
    When the table is displayed the first time this looks OK, but if a user selects a value from the dropdown list, both the key and the explanation text is copied into the cell, and the cell column is automatically widened. I want to copy the key value only, and not the connected text. How is this possible?
    I started setting the table as fixed and setting the width on the column, but this was a puzzle I gave up since there are quite a lot of columns.
    regards, Tine

    Well , the problem is that in the dropdown list I want to see both the key value and the text, like you do in SAP GUI. Fex. if I would like to create a dropdown for langauges, factory calendar or countries, I want to see both the country code (the key) and the name of the country in the dropdown list, and then when user choose a line I would only like to see the keyvalue in the input field.  Right now I concatenate the key and the text into the 'value' in the valueset table.
    In some cases the user knows the key value better than the explanational text, and then it is good to show both values. But sInce I would like to save space in the table displayed in the view I only want to show the key values selected in the table (ex. NO if user choose Norway) .
    But maybe it is better to create this kind of input help as an OVS with no input fields .?

Maybe you are looking for

  • How can we retrieve the Payload information from B2B

    Hello, We are trying to send the payload information back to the client for a failed BPEL Transaction from B2B's b2b_instancemessage view. We are enqueing messages to IP_OUT_QUEUE using BPEL. We see the payload coming correctly in the B2B Business Me

  • VC atm

    i have a connexion ADSL over ATM . I want to use free ATM VC on ADSL to make private network my question : if use one VC , it 'is every body can connected to my privat network. if yes , how can i secure my network keep in touch pmc

  • 13" and 1440x900 WXGA+

    Hello, The idea about what I am going to ask came from a friend of mine who succesfully replaced his XGA screen for SXGA without any difficulty on his Asus laptop. I want to ask about the compatibility between displays – is there any standardized kin

  • Can Oracle Migration Workbench 2.0.2.0.0 be used to migrate SQL 7.0 to Oracle 8i?

    Hi, Does anyone know that can Oracle Migration Workbench 2.0.2.0.0 be used to migrate SQL 7.0 to Oracle 8i? or the version 2.0.2.0.0 can be only used for Oracle 9i? I failed to install Oracle Migration Workbench 2.0.2.0.0 onto my workstation(running

  • Best way to remotely connect to 10.4 Server

    Hi, My boss wants to have someone from a different site be able to log onto our server shares in order to work remotely from a different state. The server is currently running 10.4.11 Server. I haven't set up FTP before, but I've found that if you us