Adding Rows and Columns to a table depending requirements
Hi all,
I have created a table with one row and 2 columns of a table. My client requested adding form one to 3 columns of the right table and rows as well, depending business requirements.
I can add coding add columns on the right, but I cannot add rows because the columns dynamic.
I tried to write the coding for adding rows but it is not successful. Please help.
event : click - add colum button
for (var i = 0; i < form1.page1.Table1._Row1.count; i++){
var newrow = form1.page1.Table1.resolveNode("Row1[" + i + "]");
var newrow2 = form1.page1.Table1.resolveNode("HeaderRow[" + i + "]");
newrow._Col3D.addInstance(0);
newrow2._Col3D.addInstance(0);
i also published my file for your reviewing.
https://workspaces.acrobat.com/?d=xcgcfby89J-IHenn-8xeaQ
Thank you very much,
Cindy
When you are adding instances it uses the default properties of the object...
If its hidden as a default value in the form and you add an instance, the new instance will be hidden..
So if you have 3 columns in your default row and trying to add an instance withthe 5 columns it will only add a row with 3 columns..
If you want to add the columns to the table, you must add the column to each new row instance.
E.g.:
var intCount = xfa.resolveNode("page1.table1.Row1").instanceManager.count;
form1.page1.table1._Row1.addInstance(1);
xfa.resolveNode("page1.table1.Row1[" + intCount.toString() + "].Col3D").addInstance(1);
Similar Messages
-
Dynamic Table - Add rows and columns in same table
Hi there,
I wonder if someone could help please? I'm trying to create and table where a user can add both rows and columns (preferably with separate buttons) but am having trouble trying to figure out how to do this. Is it possible? If so how? I'm not familar with script but have found examples of seprate tables where you can add a row and then another table where you can add columns and essentailly want to merge the two but cannot make it work.
Any help much appreciated!
Thanks,
KenIt is great example....you can learn the concepts there and apply....however you may have to think twice before you implement column adding dynamically....because the technique here is make copy of what we already have and reproduce it as a new item and this technique works great for rows as they all have every thing in common. But when it comes to columns it may have unique visible identity as column head and displaying repeatedly the same column head may not look good. Of-Course you can do few extra lines of code and change the column appearance based on users input each time. Situations where users need to add additional column is very unlikely (sure your requirement might be an exception).
Key in allowing adding/removing instances is managing design mode settings under Object>>Binding>>....and select the checkbox "Repeat <subform/row/...> for Each Data Item" and then set Min, Max and Initial count values.
Also you need to club your effots by using simple scipt with button clicks....
for the example refered in URL you posted following is what I did to make the first table allow Adding/Removing Rows....
1. Opened the form in LC designer.
2. Add two buttons AddRow & RemoveRow right next to RemoveColumn
3. For AddRow I used following JS code....
Table1._Row1.addInstance(1);//that means any time this button is clicked a new instance of Row1 is added use _Row2 or Row3 based on your needs
var fVersion = new Number(xfa.host.version); // this will be a floating point number like "7.05"
if (fVersion < 8.0) // do this for Acrobat versions earlier than 8.0
// make sure that the new instance is properly rendered
xfa.layout.relayout();
4. For RemoveRow I used following JS code....
Table1._Row1.removeInstance(1);//Syntax is...<objectReference>.removeInstance(<index of the repeating object that needs to be removed>); //in this case since we used 1 alwasys second object from top gets deleted.
var fVersion = new Number(xfa.host.version); // this will be a floating point number like "7.05"
if (fVersion < 8.0) // do this for Acrobat versions earlier than 8.0
// make sure that the new instance is properly rendered
xfa.layout.relayout();
5. Now time to update settings at Object>>Binding tab and set "Repeat......" and also set Min, Max and Initial count as explained above.
Those settings needs to be updated for Row1 (or your choice of row) of the table
6. Set the Height to Expand of the Subform, where the table is housed.... this is done under Layout pallet
7. Save the PDF as dynamic template and verify the results...
If you still run into issues I can send you copy that works on my machine, but you need send me an email at n_varma(AT)lycos.com
Good luck, -
Why can't i change row and column height in tables?
a mind-boggling problem to be sure. For some odd reason, I can't use the inspector to type in row/column heights for tables. I can use the up/down arrows, but those only work in increments of 1. I can manually adjust them one by one but as soon as I edit text in a different table cell, I have to start all over again. Does anyone else have this problem?
Hi Gerry & Ric
I had already tried both of your suggestions without any luck but I appreciate the help anyway. I should've been a bit more specific: I can actually type in the column/row height windows, but when I press return or tab, Pages ignores the numbers. I've tried using both the number pad and the regular keyboard numbers and every manner of clicking, enter, tab, control, alt......there must be some setting with my computer that is causing an incompatibility with Pages. Boh!
Susie -
Dynamic populate rows and columns in adf table
Hi everybody !
I have a query thats returns a unic value !
and I want to populate an af:table with this value !
i need to execute this query to get the values for each columns .... and jump to next row and continue to execute the query for new values of the columns of the new row !!!
in backing bean ... im try to do someting like this :
RichColumn coluna = new RichColumn();
coluna.setId("id");
HtmlOutputText out = new HtmlOutputText();
out.setId("receive");
out.setValue("Contas a Receber");
coluna.getChildren().add(out);
out = new HtmlOutputText();
out.setId("pay");
out.setValue("Contas a Pagar");
coluna.getChildren().add(out);
this.getTableFluxo().getChildren().add(coluna);
but i get the same values for all the rows !!!!Hi there,
If you use ADF BC you can make transient variable in the View Object and fill it in the get method,every time the
get method is executed you will execute the query and change the value of the new transient variable.
Even better solutions is to extend the query with this extra column and map the table with it.
Regards,
Alexander -
Get Row and Column Id of table..
Hi All,
I have a table with number of columns having Link UI element. Can anyone have idea that how will I get a row ID/ Column ID, if I select any Link2Action UI element on any Row column.
Thanks,
Sanket SethiHi,
I guess you want to read the column (ie text value) of Link to Action UI. Check this link for reference: [Link to Action in Table|http://www.zbalai.com/_abap/content/190_Web_Dynpro_Table_Link/web_dynpro_table_link.html]
Hope this helps u.,
Thanks & Regards,
Kiran. -
Setting number of rows and columns
How do I set the number of rows and columns of a table, say 2348 rows by 3 columns?
Then how do I quickly select the last row?
Also, if I enter a formula in row 1 column 2, how do I quickly copy that formula down to row 1435, or to the end of the column? Dragging seems slow and awkward.I wish to add a few words to Jerrold responce.
gjf12 wrote:
How do I set the number of rows and columns of a table, say 2348 rows by 3 columns?
Then how do I quickly select the last row?
Also, if I enter a formula in row 1 column 2, how do I quickly copy that formula down to row 1435, or to the end of the column? Dragging seems slow and awkward.
The process that you describe is inefficient.
The efficient one is :
create a table
enter the formulas in a single row
delete the rows below.
Now, each newly inserted row will contain the formulas.
From my point of view, it's when this is done that it will be interesting to apply a script adding rows.
Here is a script inserting rows.
--[SCRIPT insertRows]
Enregistrer le script en tant que Script : insertRows.scpt
déplacer le fichier ainsi créé dans le dossier
<VolumeDeDémarrage>:Users:<votreCompte>:Library:Scripts:Applications:Numbers:
Il vous faudra peut-être créer le dossier Numbers et peut-être même le dossier Applications.
Sélectionner une cellule au-dessous de laquelle vous voulez insérer des lignes.
menu Scripts > Numbers > insertRows
Le script vous demande le nombre de lignes désiré puit insère celles-ci.
--=====
L'aide du Finder explique:
L'Utilitaire AppleScript permet d'activer le Menu des scripts :
Ouvrez l'Utilitaire AppleScript situé dans le dossier Applications/AppleScript.
Cochez la case "Afficher le menu des scripts dans la barre de menus".
--=====
Save the script as a Script: insertRows.scpt
Move the newly created file into the folder:
<startup Volume>:Users:<yourAccount>:Library:Scripts:Applications:Numbers:
Maybe you would have to create the folder Numbers and even the folder Applications by yourself.
Select a cell below which you want to insert rows.
menu Scripts > Numbers > insertRows
The script ask you the number of rows to insert then it does the required insertion.
--=====
The Finder's Help explains:
To make the Script menu appear:
Open the AppleScript utility located in Applications/AppleScript.
Select the "Show Script Menu in menu bar" checkbox.
Save this script as a … Script in the "Folder Actions Scripts" folder
<startupVolume>:Library:Scripts:Folder Action Scripts:
--=====
Yvan KOENIG (VALLAURIS, France)
2010/01/13
--=====
on run
set defaultValue to 100
if my parleAnglais() then
set myInteger to my askAnumber("Insert how many rows ?", defaultValue, "i")
else
set myInteger to my askAnumber("Combien de lignes voulez-vous insérer ?", defaultValue, "i")
end if
set {dName, sName, tName, rname, rowNum1, colNum1, rowNum2, colNum2} to my getSelParams()
tell application "Numbers" to tell document dName to tell sheet sName to tell table tName
repeat myInteger times
add row below row rowNum2
end repeat
end tell
end run
--=====
on getSelParams()
local r_Name, t_Name, s_Name, d_Name, col_Num1, row_Num1, col_Num2, row_Num2
set {d_Name, s_Name, t_Name, r_Name} to my getSelection()
if r_Name is missing value then
if my parleAnglais() then
error "No selected cells"
else
error "Il n'y a pas de cellule sélectionnée !"
end if
end if
set two_Names to my decoupe(r_Name, ":")
set {row_Num1, col_Num1} to my decipher(item 1 of two_Names, d_Name, s_Name, t_Name)
if item 2 of two_Names = item 1 of two_Names then
set {row_Num2, col_Num2} to {row_Num1, col_Num1}
else
set {row_Num2, col_Num2} to my decipher(item 2 of two_Names, d_Name, s_Name, t_Name)
end if
return {d_Name, s_Name, t_Name, r_Name, row_Num1, col_Num1, row_Num2, col_Num2}
end getSelParams
--=====
set {rowNumber, columnNumber} to my decipher(cellRef,docName,sheetName,tableName)
apply to named row or named column !
on decipher(n, d, s, t)
tell application "Numbers" to tell document d to tell sheet s to tell table t to return {address of row of cell n, address of column of cell n}
end decipher
--=====
set { d_Name, s_Name, t_Name, r_Name} to my getSelection()
on getSelection()
local _, theRange, theTable, theSheet, theDoc, errMsg, errNum
tell application "Numbers" to tell document 1
repeat with i from 1 to the count of sheets
tell sheet i
set x to the count of tables
if x > 0 then
repeat with y from 1 to x
try
(selection range of table y) as text
on error errMsg number errNum
set {_, theRange, _, theTable, _, theSheet, _, theDoc} to my decoupe(errMsg, quote)
return {theDoc, theSheet, theTable, theRange}
end try
end repeat -- y
end if -- x>0
end tell -- sheet
end repeat -- i
end tell -- document
return {missing value, missing value, missing value, missing value}
end getSelection
--=====
on decoupe(t, d)
local l
set AppleScript's text item delimiters to d
set l to text items of t
set AppleScript's text item delimiters to ""
return l
end decoupe
--=====
Asks for an entry and checks that it is an floating number
set myInteger to my askAnumber(Prompt, DefaultValue, "i")
set myFloating to my askAnumber(Prompt, DefaultValue, "f")
on askAnumber(lPrompt, lDefault, ForI)
local lPrompt, lDefault, n
tell application (path to frontmost application as string)
if ForI is "f" then
set n to text returned of (display dialog lPrompt & " (" & (1.2 as text) & ")" default answer lDefault as text)
try
set n to n as number (* try to convert the value as an number *)
return n
on error
if my parleAnglais() then
display alert "The value needs to be a floating number." & return & "Please try again."
else
display alert "La valeur saisie doit être un nombre décimal." & return & "Veuillez recommencer."
end if
end try
else
set n to text returned of (display dialog lPrompt default answer lDefault as text)
try
set n to n as integer (* try to convert the value as an integer *)
return n
on error
if my parleAnglais() then
display alert "The value needs to be an integer." & return & "Please try again."
else
display alert "La valeur saisie doit être un nombre entier." & return & "Veuillez recommencer."
end if
end try -- 1st attempt
end if -- ForI…
end tell -- application
Here if the first entry was not of the wanted class
second attempt *)
tell application (path to frontmost application as string)
if ForI is "f" then
set n to text returned of (display dialog lPrompt & " (" & (1.2 as text) & ")" default answer lDefault as text)
try
set n to n as number (* try to convert the value as an number *)
return n
on error
end try
else
set n to text returned of (display dialog lPrompt default answer lDefault as text)
try
set n to n as integer (* try to convert the value as an integer *)
return n
on error
end try -- 1st attempt
end if -- ForI…
end tell -- application
if my parleAnglais() then
error "The value you entered was not numerical !" & return & "Goodbye !"
else
error "La valeur saisie n’est pas numérique !" & return & "Au revoir !"
end if
end askAnumber
--=====
on parleAnglais()
local z
try
tell application "Numbers" to set z to localized string "Cancel"
on error
set z to "Cancel"
end try
return (z is not "Annuler")
end parleAnglais
--=====
--[/SCRIPT]
Yvan KOENIG (VALLAURIS, France) mercredi 13 janvier 2010 12:43:34 -
Is it possible to switch the rows and columns?
Is it possible to switch the rows and columns of a table? The reason I ask is that it would be easier for me to input the data with the number at the top of a column and the fields going down. But it would be easier to read the data with the number on the left and the fields going to the right. Is it possible to switch a table in this way?
mahongue wrote:
Is it possible to switch the rows and columns of a table? The reason I ask is
that it would be easier for me to input the data with the number at the top
of a column and the fields going down. But it would be easier to read the
data with the number on the left and the fields going to the right. Is it
possible to switch a table in this way?
It sounds to me as though you wish to transpose a table so that the original is changed from rows to columns and from columns to rows, as in the following:
Table 1
A B C
========
1 o p q
2 r s t
3 u v w
Table 2
A B C
========
1 o r u
2 p s v
3 q t w
You are right - it would be nice to have a menu item to magically transpose a selected block of cells. But there isn't one. So...
One way to solve this is to use the index() and transpose() functions to accomplish row and column cell transposition. If you are going to use a 1:1 cell correspondence and change the header columns and rows also, you can use this:
=INDEX(TRANSPOSE(Table # :: <range>),ROW(),COLUMN())
where Table # and <range> is substituted as in the following fashion:
=INDEX(TRANSPOSE(Table 1 :: $A$1:$C$3),ROW(),COLUMN())
Create a second table. Copy the modified formula above with the appropriate substitutions, select the range you wish to have your transposition inserted into (must match the transposed cell dimensions of the original range), paste the forumula and voila! the cells will be transposed.
Cautions:
o The target table must match the swapped cell length and width dimension. For example, if the original data range is 6 columns wide by 4 rows deep, then the corresponding table or range to hold the transposition must be 4 columns wide by 6 rows deep.
o If your transposed data block is to be offset from the origin of the new table, then you will need to include a subtractive offset into your cell formula, since in the transpose() function the data in the master data range is referenced from its position with the master range, not its cell position in the table. Such an offset is necessary because this example formula uses the target row and column numbers to arrive at indexed positions.
For example, if the new data range is to be offset one column to the right and one row below from the target table's origin then you must subtract (-1) from the cell and from the column references in the formula:
Example:
=INDEX(TRANSPOSE(Table 3 :: $B$2:$D$4),ROW()-1,COLUMN()-1)
If someone has a better solution I'd be glad to hear of it. -
Referring to Cursor Row and Column in Dynamic SQL
I have a procedure that dynamically reads a schema name and table name from an input table. The code then needs to loop through all rows and columns of each table and output the data. I'm 95% done with what I want to accomplish, but there is one small bug. The line dbms_output.put(*col.column_name* || '',''); ' ||
should refer to something like rec.col.column_name so that it gets the column of the current record. Right now it just displays the column name for each record instead of the actual value. Can anyone help me tweak the code to get the actual value?
CREATE OR REPLACE PACKAGE BODY some_proc IS
-- Function and procedure implementations
PROCEDURE create_files IS
CURSOR c_tbls IS
SELECT * FROM tbl_list;
l_sql VARCHAR2(4000);
BEGIN
--Loop through all tables
FOR tbl IN c_tbls LOOP
l_sql := 'DECLARE ' || ' CURSOR c_tbl_recs IS ' || ' SELECT * ' ||
' FROM ' || tbl.schema_name || '.' || tbl.table_name || '; ' ||
' t_tbl_rowtype c_tbl_recs%ROWTYPE; ' || 'BEGIN ' ||
' FOR rec IN c_tbl_recs LOOP ' ||
' FOR col IN (SELECT column_name ' ||
' FROM dba_tab_cols ' ||
' WHERE owner = ''' || tbl.schema_name || '''' ||
' AND table_name = ''' || tbl.table_name || '''' ||
' ORDER BY column_id) LOOP ' ||
*' dbms_output.put(col.column_name || '',''); ' ||* ' END LOOP; dbms_output.put_line(''''); END LOOP; ' ||
'END; ';
--dbms_output.put_line(l_sql);
EXECUTE IMMEDIATE l_sql;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(SQLERRM);
END;
END;Is it this what you are looking for?
(it took some minutes)
create or replace
package some_proc is
procedure create_files;
end;
CREATE OR REPLACE
PACKAGE BODY some_proc
IS
-- Function and procedure implementations
PROCEDURE create_files
IS
CURSOR c_tbls
IS
SELECT * FROM tbl_list;
CURSOR c_cols (p_table_owner VARCHAR2, p_table_name VARCHAR2)
IS
SELECT column_name
FROM all_tab_columns
WHERE owner =p_table_owner
AND table_name=p_table_name
ORDER BY all_tab_columns.column_id;
l_sql VARCHAR2(32000);
separator VARCHAR2(1):=';';
BEGIN
--Loop through all tables
FOR tbl IN c_tbls
LOOP
dbms_output.put_line('TABLE: '||tbl.schema_name||'.'||tbl.table_name);
l_sql := 'DECLARE ' ;
l_sql := l_sql|| ' CURSOR c_tbl_recs IS ' ;
l_sql := l_sql||' SELECT * FROM ' || tbl.schema_name || '.' || tbl.table_name || '; ' ;
l_sql := l_sql||' linenr number:=1; ';
l_sql := l_sql||'BEGIN ' ;
l_sql := l_sql|| ' FOR rec IN c_tbl_recs LOOP ';
FOR c IN c_cols(tbl.schema_name,tbl.table_name)
LOOP
l_sql:=l_sql ||' if linenr=1 then dbms_output.put('''||c.column_name||''||separator||'''); end if; ' ;
END LOOP;
l_sql :=l_sql||' dbms_output.put_line(''''); linenr:=linenr+1; ';
FOR c IN c_cols(tbl.schema_name,tbl.table_name)
LOOP
l_sql:=l_sql ||' dbms_output.put(rec.'||c.column_name||'||'''||separator||'''); ' ;
END LOOP;
l_sql:=l_sql||' end loop; ';
l_sql:=l_sql||' dbms_output.put_line(''''); ';
l_sql:=l_sql||' dbms_output.put_line(''''); ';
l_sql:=l_sql||'end;';
EXECUTE IMMEDIATE l_sql;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(SQLERRM);
END;
END;
/ -
Adding or Deleting Rows and Columns from Tables
I have notices that you can't delete or add a row or columns from a table in iWeb without having problems.
You may get two added or deleted.
I should indicate that the table comes from Excel.
Does anyone know of a work-around?Problem 1 - The sub-form 'Stds' was not configured for repeating rows.
Problem 2 - The script was on the wrong event. The script should be on the 'change' event and not the 'initialize' event.
Problem 3 - Which header row in which sub-form are you referring too?
Steve -
Lock rows and columns header in a table view report. It is possible?
hi,
I have a Dashboard that displays a report in "Table View" with many rows and columns.
Is it possible to set a lock on the rows and columns like Excel?
This would have blocked such headers that contain attributes and measures and to browse the report (eg with a scroll bar) had always viewed the headers.
Can you help me?
Thankshi,
please go through this discussion
Re: SCROLL BAR to FREZZ HEADERS
thanks,
saichand.v -
Keeping row and column headers while scrolling inside a Web Dynpro table
Hi,
I have to display a 2x2 matrix with storage location names on the x-axis (i.e. as Column Headers) and material names on the y-axis (i.e. row headers). The table data represents the quantities of a particular material in a particular storage location.
I am using dynamic UI generation to create this table. It can contain as many as 150 columns and almost as many rows. I dont want a page level scrollbar, and hence, have placed my table inside a scroll container UI element with a fixed height and width.
I need a way to let the users use the scrollbars inside the scroll container, but still let them see the row and column headers. Is there a way that I can do this in Dynpro for Java?
Thanks,
Navneet Nair.Hi Kenn,
You are probably better off posting this request in this forum User Interface Development in ABAP as you are more likely to get a response.
Cheers,
Neil. -
Make Select rows and columns as read only in Table Control
Hi All,
I would like to know how to make certain cells in a Table Control as display only.
Table control should look like-(Those in bold are read only or in display mode)
<b>Name1 Idno1 </b> Address1
<b>Name2 Idno2</b> Address2
<b>Name3 Idno3 </b> Address3
<b>Name4 Idno4</b> Address4
(Blank row to enter name idno and address)
(Blank row to enter name idno and address)
(Blank row to enter name idno and address)
My table control should display all the above fields the way it is above of which first two colums and 4 rows should be read only,and the rest of the empty rows in the TC should be in change mode.i.e it must have provision to add new rows but not change the first two columns of existing rows.
In short I am looking at solution to hide particular no of rows and columns and <b>not the entire column.</b>In the PBO of the table control loop. just write these statements
NAME and IDNO considering the fields on the screen.
and WA_TAB is the table work area being passed to the table control to display the rows.
if not WA_TAB-NAME is initial and not WA_TAB-IDNO is initial.
loop at screen.
if screen-name = 'NAME' or
screen-name = 'IDNO'.
screen-input = <b>0</b>.
modify screen.
endif.
endloop.
endif.
which means that the fields are disabled only if NAME and IDNO are not initial.
Regards
- Gopi -
Table name input. and output i need all rows and columns using procedures
hi,
question: table name input. and output i need all rows and columns by using procedures.
thanks,
To AllAn example of using DBMS_SQL package to execute dynamic SQL (in this case to generate CSV data in a file)...
As sys user:
CREATE OR REPLACE DIRECTORY TEST_DIR AS '\tmp\myfiles'
GRANT READ, WRITE ON DIRECTORY TEST_DIR TO myuser
/As myuser:
CREATE OR REPLACE PROCEDURE run_query(p_sql IN VARCHAR2
,p_dir IN VARCHAR2
,p_header_file IN VARCHAR2
,p_data_file IN VARCHAR2 := NULL) IS
v_finaltxt VARCHAR2(4000);
v_v_val VARCHAR2(4000);
v_n_val NUMBER;
v_d_val DATE;
v_ret NUMBER;
c NUMBER;
d NUMBER;
col_cnt INTEGER;
f BOOLEAN;
rec_tab DBMS_SQL.DESC_TAB;
col_num NUMBER;
v_fh UTL_FILE.FILE_TYPE;
v_samefile BOOLEAN := (NVL(p_data_file,p_header_file) = p_header_file);
BEGIN
c := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(c, p_sql, DBMS_SQL.NATIVE);
d := DBMS_SQL.EXECUTE(c);
DBMS_SQL.DESCRIBE_COLUMNS(c, col_cnt, rec_tab);
FOR j in 1..col_cnt
LOOP
CASE rec_tab(j).col_type
WHEN 1 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_v_val,2000);
WHEN 2 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_n_val);
WHEN 12 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_d_val);
ELSE
DBMS_SQL.DEFINE_COLUMN(c,j,v_v_val,2000);
END CASE;
END LOOP;
-- This part outputs the HEADER
v_fh := UTL_FILE.FOPEN(upper(p_dir),p_header_file,'w',32767);
FOR j in 1..col_cnt
LOOP
v_finaltxt := ltrim(v_finaltxt||','||lower(rec_tab(j).col_name),',');
END LOOP;
-- DBMS_OUTPUT.PUT_LINE(v_finaltxt);
UTL_FILE.PUT_LINE(v_fh, v_finaltxt);
IF NOT v_samefile THEN
UTL_FILE.FCLOSE(v_fh);
END IF;
-- This part outputs the DATA
IF NOT v_samefile THEN
v_fh := UTL_FILE.FOPEN(upper(p_dir),p_data_file,'w',32767);
END IF;
LOOP
v_ret := DBMS_SQL.FETCH_ROWS(c);
EXIT WHEN v_ret = 0;
v_finaltxt := NULL;
FOR j in 1..col_cnt
LOOP
CASE rec_tab(j).col_type
WHEN 1 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_v_val);
v_finaltxt := ltrim(v_finaltxt||',"'||v_v_val||'"',',');
WHEN 2 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_n_val);
v_finaltxt := ltrim(v_finaltxt||','||v_n_val,',');
WHEN 12 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_d_val);
v_finaltxt := ltrim(v_finaltxt||','||to_char(v_d_val,'DD/MM/YYYY HH24:MI:SS'),',');
ELSE
v_finaltxt := ltrim(v_finaltxt||',"'||v_v_val||'"',',');
END CASE;
END LOOP;
-- DBMS_OUTPUT.PUT_LINE(v_finaltxt);
UTL_FILE.PUT_LINE(v_fh, v_finaltxt);
END LOOP;
UTL_FILE.FCLOSE(v_fh);
DBMS_SQL.CLOSE_CURSOR(c);
END;This allows for the header row and the data to be written to seperate files if required.
e.g.
SQL> exec run_query('select * from emp','TEST_DIR','output.txt');
PL/SQL procedure successfully completed.Output.txt file contains:
empno,ename,job,mgr,hiredate,sal,comm,deptno
7369,"SMITH","CLERK",7902,17/12/1980 00:00:00,800,,20
7499,"ALLEN","SALESMAN",7698,20/02/1981 00:00:00,1600,300,30
7521,"WARD","SALESMAN",7698,22/02/1981 00:00:00,1250,500,30
7566,"JONES","MANAGER",7839,02/04/1981 00:00:00,2975,,20
7654,"MARTIN","SALESMAN",7698,28/09/1981 00:00:00,1250,1400,30
7698,"BLAKE","MANAGER",7839,01/05/1981 00:00:00,2850,,30
7782,"CLARK","MANAGER",7839,09/06/1981 00:00:00,2450,,10
7788,"SCOTT","ANALYST",7566,19/04/1987 00:00:00,3000,,20
7839,"KING","PRESIDENT",,17/11/1981 00:00:00,5000,,10
7844,"TURNER","SALESMAN",7698,08/09/1981 00:00:00,1500,0,30
7876,"ADAMS","CLERK",7788,23/05/1987 00:00:00,1100,,20
7900,"JAMES","CLERK",7698,03/12/1981 00:00:00,950,,30
7902,"FORD","ANALYST",7566,03/12/1981 00:00:00,3000,,20
7934,"MILLER","CLERK",7782,23/01/1982 00:00:00,1300,,10The procedure allows for the header and data to go to seperate files if required. Just specifying the "header" filename will put the header and data in the one file.
Adapt to output different datatypes and styles are required. -
How to create table with rows and columns in the layout mode?
One of my friends advised me to develop my whole site on the
layout mode as its better than the standard as he says
but I couldnot make an ordinary table with rows and columns
in th layout mode
is there any one who can tell me how to?
thanx alotYour friend is obviously not a reliable source of HTML
information.
Murray --- ICQ 71997575
Adobe Community Expert
(If you *MUST* email me, don't LAUGH when you do so!)
==================
http://www.dreamweavermx-templates.com
- Template Triage!
http://www.projectseven.com/go
- DW FAQs, Tutorials & Resources
http://www.dwfaq.com - DW FAQs,
Tutorials & Resources
http://www.macromedia.com/support/search/
- Macromedia (MM) Technotes
==================
"Mr.Ghost" <[email protected]> wrote in
message
news:f060vi$npp$[email protected]..
> One of my friends advised me to develop my whole site on
the layout mode
> as its
> better than the standard as he says
> but I couldnot make an ordinary table with rows and
columns in th layout
> mode
> is there any one who can tell me how to?
> thanx alot
> -
InDesign Tables: Row and Column Strokes
Using InDesign Tables: How do you get row and column strokes in a table to appear perfectly joined? When I choose "Column Strokes in Front" (Under Table Setup) i still see a tiny row stroke, and vice versus.. it's really visible in the PDF almost can't see it in InDesign though you can a little...any advice?
http://lawrence.ecorp.net/inet/samples/dhtml-rollover-tble-cols-rows.shtml
Maybe you are looking for
-
Since upgrading to IOS 7 the photographs I take on my iPhone 4S do not transfer to the cloud. Sometimes one or two of them transfer but then none for weeks. I have deleted photos from the cloud in case it is full but to no affect. I use my iPhone in
-
Lightroom 5 Got Buggy all of a Sudden
Lightroom 5 Got Buggy on me. I have the latest version installed through creative cloud and I also did an uninstall/reinstall. Windows 7, 64bit, 32GB RAM, intel core i7 6820, plenty of space on the C drive, went through adobe's optimization list, se
-
HT4623 Iphone 3gs tech issues.
I have an Iphone 3gs and I am having messaging issues. I can't picture text at all. Cant send or recieve. Can't print from my phone. My daughter has a Ipad and she can print from her Ipad. Also I can't send multiple people when sending one message.
-
Itunes outlook addin for Office 2010 64 bit
Does Itunes 64 bit contain a 64 bit outlook addin? I can't see Outlook as an option for syncing my contacts between my Iphone and my computer.
-
Have recently bought Photoshop CS5 upgrade from Amazon, to upgrade from CS3. (also bought from Amazon) When I put CS3 serial number in I am told that this is not the number of a qualifying product. Running Windows 7. Any ideas on how to proceed?