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 & byeThanks 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 PMYou 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
nullBy 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 PMHi,
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? ThanksI'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,
--JKOracle 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:
user574327I 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 PMI 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 PMThank 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 -
hi frds
Give me table name and field name of OPEN PO QUANTITY ..
thanks
Pari Vendhan.RSee 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, TineWell , 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
-
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
-
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
-
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