Record number display
Hi,
I have a Master detail form. In the detail form I want to display the record numbers of the recs displayed as 1,2...
I have a Srl No field in the detail block which is not a db field. I made a formula field with a formula: :SYSTEM.CURSOR_RECORD.
After a execute_query on the detail block (first time or any time), the srl-no field shows the number 1 for all records. Why is this happening.
Any suggestions as to how to get the srl no to display correctly at all times?
Thanks,
Aruna
If your intention is to provide your user with a record count after each query execute then you can follow the procedure below:
* Create a text item in your detail block that I referred to as :your_detail_block
* Set the text item database item to NO on the property pallette.
* Create a post-query trigger and include the code
:your_detail_block.Srl_No := :SYSTEM.CURSOR_RECORD;
* Run your form, issue a query and execute it, it should work.
I hope this works.
null
Similar Messages
-
Modify Record Number in a Random Access File
Hi Does anyone know if I can modify the record number in the random access file hardware.dat for each hardware record each time and update it in hardware.dat to display it? Also why does it say "Record does not exist" if I modify the record number for a hardware and try to update it but could not find that record?
Here is the code below:
// Exercise 14.11: HardwareRecord.java
package org.egan; // packaged for reuse
public class HardwareRecord
private int recordNumber;
private String toolName;
private int quantity;
private double cost;
// no-argument constructor calls other constructor with default values
public HardwareRecord()
this(0,"",0,0.0); // call four-argument constructor
} // end no-argument HardwareRecord constructor
// initialize a record
public HardwareRecord(int number, String tool, int amount, double price)
setRecordNumber(number);
setToolName(tool);
setQuantity(amount);
setCost(price);
} // end four-argument HardwareRecord constructor
// set record number
public void setRecordNumber(int number)
recordNumber = number;
} // end method setRecordNumber
// get record number
public int getRecordNumber()
return recordNumber;
} // end method getRecordNumber
// set tool name
public void setToolName(String tool)
toolName = tool;
} // end method setToolName
// get tool name
public String getToolName()
return toolName;
} // end method getToolName
// set quantity
public void setQuantity(int amount)
quantity = amount;
} // end method setQuantity
// get quantity
public int getQuantity()
return quantity;
} // end method getQuantity
// set cost
public void setCost(double price)
cost = price;
} // end method setCost
// get cost
public double getCost()
return cost;
} // end method getCost
} // end class HardwareRecord-------------------------------------------------------------------------------------------------
// Exercise 14.11: RandomAccessHardwareRecord.java
// Subclass of HardwareRecord for random-access file programs.
package org.egan; // package for reuse
import java.io.RandomAccessFile;
import java.io.IOException;
public class RandomAccessHardwareRecord extends HardwareRecord
public static final int SIZE = 46;
// no-argument constructor calls other constructor with default values
public RandomAccessHardwareRecord()
this(0,"",0,0.0);
} // end no-argument RandomAccessHardwareRecord constructor
// initialize a RandomAccessHardwareRecord
public RandomAccessHardwareRecord(int number, String tool, int amount, double price)
super(number,tool,amount,price);
} // end four-argument RandomAccessHardwareRecord constructor
// read a record from a specified RandomAccessFile
public void read(RandomAccessFile file) throws IOException
setRecordNumber(file.readInt());
setToolName(readName(file));
setQuantity(file.readInt());
setCost(file.readDouble());
} // end method read
// ensure that name is proper length
private String readName(RandomAccessFile file) throws IOException
char name[] = new char[15], temp;
for(int count = 0; count < name.length; count++)
temp = file.readChar();
name[count] = temp;
} // end for
return new String(name).replace('\0',' ');
} // end method readName
// write a record to specified RandomAccessFile
public void write(RandomAccessFile file) throws IOException
file.writeInt(getRecordNumber());
writeName(file, getToolName());
file.writeInt(getQuantity());
file.writeDouble(getCost());
} // end method write
// write a name to file; maximum of 15 characters
private void writeName(RandomAccessFile file, String name) throws IOException
StringBuffer buffer = null;
if (name != null)
buffer = new StringBuffer(name);
else
buffer = new StringBuffer(15);
buffer.setLength(15);
file.writeChars(buffer.toString());
} // end method writeName
} // end RandomAccessHardwareRecord-------------------------------------------------------------------------------------------------
// Exercise 14.11: CreateRandomFile.java
// creates random-access file by writing 100 empty records to disk.
import java.io.IOException;
import java.io.RandomAccessFile;
import org.egan.RandomAccessHardwareRecord;
public class CreateRandomFile
private static final int NUMBER_RECORDS = 100;
// enable user to select file to open
public void createFile()
RandomAccessFile file = null;
try // open file for reading and writing
file = new RandomAccessFile("hardware.dat","rw");
RandomAccessHardwareRecord blankRecord = new RandomAccessHardwareRecord();
// write 100 blank records
for (int count = 0; count < NUMBER_RECORDS; count++)
blankRecord.write(file);
// display message that file was created
System.out.println("Created file hardware.dat.");
System.exit(0); // terminate program
} // end try
catch (IOException ioException)
System.err.println("Error processing file.");
System.exit(1);
} // end catch
finally
try
if (file != null)
file.close(); // close file
} // end try
catch (IOException ioException)
System.err.println("Error closing file.");
System.exit(1);
} // end catch
} // end finally
} // end method createFile
} // end class CreateRandomFile-------------------------------------------------------------------------------------------------
// Exercise 14.11: CreateRandomFileTest.java
// Testing class CreateRandomFile
public class CreateRandomFileTest
// main method begins program execution
public static void main( String args[] )
CreateRandomFile application = new CreateRandomFile();
application.createFile();
} // end main
} // end class CreateRandomFileTest-------------------------------------------------------------------------------------------------
// Exercise 14.11: MenuOption.java
// Defines an enum type for the hardware credit inquiry program's options.
public enum MenuOption
// declare contents of enum type
PRINT(1),
UPDATE(2),
NEW(3),
DELETE(4),
END(5);
private final int value; // current menu option
MenuOption(int valueOption)
value = valueOption;
} // end MenuOptions enum constructor
public int getValue()
return value;
} // end method getValue
} // end enum MenuOption-------------------------------------------------------------------------------------------------
// Exercise 14.11: FileEditor.java
// This class declares methods that manipulate hardware account records
// in a random access file.
import java.io.EOFException;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Scanner;
import org.egan.RandomAccessHardwareRecord;
public class FileEditor
RandomAccessFile file; // reference to the file
Scanner input = new Scanner(System.in);
// open the file
public FileEditor(String fileName) throws IOException
file = new RandomAccessFile(fileName, "rw");
} // end FileEditor constructor
// close the file
public void closeFile() throws IOException
if (file != null)
file.close();
} // end method closeFile
// get a record from the file
public RandomAccessHardwareRecord getRecord(int recordNumber)
throws IllegalArgumentException, NumberFormatException, IOException
RandomAccessHardwareRecord record = new RandomAccessHardwareRecord();
if (recordNumber < 1 || recordNumber > 100)
throw new IllegalArgumentException("Out of range");
// seek appropriate record in a file
file.seek((recordNumber - 1) * RandomAccessHardwareRecord.SIZE);
record.read(file);
return record;
} // end method getRecord
// update record tool name in file
public void updateRecordToolName(int recordNumber, String newToolName)
throws IllegalArgumentException, IOException
RandomAccessHardwareRecord record = getRecord(recordNumber);
if (record.getRecordNumber() == 0)
throw new IllegalArgumentException("Record does not exist");
// seek appropriate record in file
file.seek((recordNumber - 1) * RandomAccessHardwareRecord.SIZE);
record.setToolName(newToolName);
record = new RandomAccessHardwareRecord(
record.getRecordNumber(), record.getToolName(), record.getQuantity(), record.getCost());
record.write(file); // write updated record to file
} // end method updateRecordToolName
// update record in file
public void updateRecordQuantity(int recordNumber, int newQuantity)
throws IllegalArgumentException, IOException
RandomAccessHardwareRecord record = getRecord(recordNumber);
if (record.getRecordNumber() == 0)
throw new IllegalArgumentException("Record does not exist");
// seek appropriate record in file
file.seek((recordNumber - 1) * RandomAccessHardwareRecord.SIZE);
record.setQuantity(newQuantity);
record = new RandomAccessHardwareRecord(
record.getRecordNumber(), record.getToolName(), record.getQuantity(), record.getCost());
record.write(file); // write updated record to file
} // end method updateRecordQuantity
// update record in file
public void updateRecordCost(int recordNumber, double newCost)
throws IllegalArgumentException, IOException
RandomAccessHardwareRecord record = getRecord(recordNumber);
if (record.getRecordNumber() == 0)
throw new IllegalArgumentException("Record does not exist");
// seek appropriate record in file
file.seek((recordNumber - 1) * RandomAccessHardwareRecord.SIZE);
record.setCost(newCost);
record = new RandomAccessHardwareRecord(
record.getRecordNumber(), record.getToolName(), record.getQuantity(), record.getCost());
record.write(file); // write updated record to file
} // end method updateRecordCost
// add record to file
public void newRecord(int recordNumber, String toolName, int quantity, double cost)
throws IllegalArgumentException, IOException
RandomAccessHardwareRecord record = getRecord(recordNumber);
if (record.getRecordNumber() != 0)
throw new IllegalArgumentException("Record already exists");
// seek appropriate record in file
file.seek((recordNumber - 1) * RandomAccessHardwareRecord.SIZE);
record = new RandomAccessHardwareRecord(recordNumber, toolName, quantity, cost);
record.write(file); // write record to file
} // end method newRecord
// delete record from file
public void deleteRecord(int recordNumber) throws IllegalArgumentException, IOException
RandomAccessHardwareRecord record = getRecord(recordNumber);
if (record.getRecordNumber() == 0)
throw new IllegalArgumentException("Account does not exist");
// seek appropriate record in file
file.seek((recordNumber - 1) * RandomAccessHardwareRecord.SIZE);
// create a blank record to write to the file
record = new RandomAccessHardwareRecord();
record.write(file);
} // end method deleteRecord
// read and display records
public void readRecords()
RandomAccessHardwareRecord record = new RandomAccessHardwareRecord();
System.out.printf("%-10s%-15s%-15s%10s\n","Record","Tool Name","Quantity","Cost");
try // read a record and display
file.seek(0);
while (true)
do
record.read(file);
while (record.getRecordNumber() == 0);
// display record contents
System.out.printf("%-10d%-15s%-15d%10.2f\n",record.getRecordNumber(),
record.getToolName(), record.getQuantity(), record.getCost());
} // end while
} // end try
catch (EOFException eofException) // close file
return; // end of file was reached
} // end catch
catch (IOException ioException)
System.err.println("Error reading file.");
System.exit(1);
} // end catch
} // end method readRecords
} // end class FileEditor-------------------------------------------------------------------------------------------------
// Exercise 14.11: TransactionProcessor.java
// A transaction processing program using random-access files.
import java.io.IOException;
import java.util.NoSuchElementException;
import java.util.Scanner;
import org.egan.RandomAccessHardwareRecord;
public class TransactionProcessor
private FileEditor dataFile;
private RandomAccessHardwareRecord record;
private MenuOption choices[] = {MenuOption.PRINT, MenuOption.UPDATE, MenuOption.NEW,
MenuOption.DELETE, MenuOption.END};
private Scanner input = new Scanner(System.in);
// get the file name and open the file
private boolean openFile()
try // attempt to open file
// call the helper method to open the file
dataFile = new FileEditor("hardware.dat");
} // end try
catch (IOException ioException)
System.err.println("Error opening file.");
return false;
} // end catch
return true;
} // end method openFile
// close file and terminate application
private void closeFile()
try // close file
dataFile.closeFile();
} // end try
catch (IOException ioException)
System.err.println("Error closing file.");
System.exit(1);
} // end catch
} // end method closeFile
// create, update or delete the record
private void performAction(MenuOption action)
int recordNumber = 0; // record number of record
String toolName; // tool name of the hardware instrument
int quantity; // total amount of items
double cost; // hareware tool price
int choice; // choose an update option
int newRecordNumber; // the updated record number
String newToolName; // the updated tool name
int newQuantity; // the updated quantity
double newCost; // the updated cost
try // attempt to manipulate files based on option selected
switch(action) // switch based on option selected
case PRINT:
System.out.println();
dataFile.readRecords();
break;
case NEW:
System.out.printf("\n%s%s\n%s\n%s","Enter record number,",
"tool name, quantity, and cost.","(Record number must be 1 - 100)","? ");
recordNumber = input.nextInt(); // read record number
toolName = input.next(); // read tool name
quantity = input.nextInt(); // read quantity
cost = input.nextDouble(); // read cost
dataFile.newRecord(recordNumber, toolName, quantity, cost); // create new record
break;
case UPDATE:
System.out.print("\nEnter record number to update (1 - 100): ");
recordNumber = input.nextInt();
record = dataFile.getRecord(recordNumber);
if (record.getRecordNumber() == 0)
System.out.println("Record does not exist.");
else
// display record contents
System.out.printf("%-10d%-12s%-12d%10.2f\n\n", record.getRecordNumber(),
record.getToolName(), record.getQuantity(), record.getCost());
System.out.printf("%s%s","\nEnter 1 to update tool name, ",
"2 to update quantity, or 3 to update cost : ");
choice = input.nextInt();
if (choice == 1)
System.out.print("Enter new record tool name : ");
newToolName = input.next();
dataFile.updateRecordToolName(recordNumber,newToolName); // update record
// tool name
// retrieve updated record
record = dataFile.getRecord(recordNumber);
// display updated record
System.out.printf("%-10d%-12s%-12d%10.2f\n", record.getRecordNumber(),
record.getToolName(), record.getQuantity(), record.getCost());
else if (choice == 2)
System.out.print("Enter new record quantity : ");
newQuantity = input.nextInt();
dataFile.updateRecordQuantity(recordNumber,newQuantity); // update record
// quantity
// retrieve updated record
record = dataFile.getRecord(recordNumber);
// display updated record
System.out.printf("%-10d%-12s%-12d%10.2f\n", record.getRecordNumber(),
record.getToolName(), record.getQuantity(), record.getCost());
else if (choice == 3)
System.out.print("Enter new record cost : ");
newCost = input.nextDouble();
dataFile.updateRecordCost(recordNumber,newCost); // update record cost
// retrieve updated record
record = dataFile.getRecord(recordNumber);
// display updated record
System.out.printf("%-10d%-12s%-12d%10.2f\n", record.getRecordNumber(),
record.getToolName(), record.getQuantity(), record.getCost());
} // end else
break;
case DELETE:
System.out.print("\nEnter an account to delete ( 1 - 100): ");
recordNumber = input.nextInt();
dataFile.deleteRecord(recordNumber); // delete record
break;
default:
System.out.println("Invalid action.");
break;
} // end switch
} // end try
catch (NumberFormatException format)
System.err.println("Bad input.");
} // end catch
catch (IllegalArgumentException badRecord)
System.err.println(badRecord.getMessage());
} // end catch
catch (IOException ioException)
System.err.println("Error writing to the file.");
} // end catch
catch (NoSuchElementException elementException)
System.err.println("Invalid input. Please try again.");
input.nextLine();
} // end catch
} // end method performAction
// enable user to input menu choice
private MenuOption enterChoice()
int menuChoice = 1;
// display available options
System.out.printf("\n%s\n%s\n%s\n%s\n%s\n%s","Enter your choice",
"1 - List hardware records", "2 - Update a hardware record",
"3 - Add a new hardware record", "4 - Delete a hardware record", "5 - End program\n?");
try
menuChoice = input.nextInt();
catch (NoSuchElementException elementException)
System.err.println("Invalid input.");
System.exit(1);
} // end catch
return choices[menuChoice - 1]; // return choice from user
} // end enterChoice
public void processRequests()
openFile();
// get user's request
MenuOption choice = enterChoice();
while (choice != MenuOption.END)
performAction(choice);
choice = enterChoice();
} // end while
closeFile();
} // end method processRequests
} // end class TransactionProcessor-------------------------------------------------------------------------------------------------
// Exercise 14.11: TransactionProcessorTest.java
// Testing the transaction processor.
public class TransactionProcessorTest
public static void main(String args[])
TransactionProcessor application = new TransactionProcessor();
application.processRequests();
} // end main
} // end class TransactionProcessorTest-------------------------------------------------------------------------------------------------
Below is the sample data to be entered into the random input file hardware.dat :
Record Tool Quantity Cost
Number Name
3 Sander 18 35.99
19 Hammer 128 10.00
26 Jigsaw 16 14.25
39 Mower 10 79.50
56 Saw 8 89.99
76 Screwdriver 236 4.99
81 Sledgehammer 32 19.75
88 Wrench 65 6.48Message was edited by:
egan128
Message was edited by:
egan128
Message was edited by:
egan128Hi Does anyone know if I can modify the record number
in the random access file hardware.dat for each
hardware record each time and update it in
hardware.dat to display it?If the "record number" is data that is stored in the file, then you can modify it. More precisely: it is possible to modify it.
The rest of the question had too many incompatible verbs for me to understand it.
Also why does it say
"Record does not exist" if I modify the record number
for a hardware and try to update it but could not
find that record?"Record does not exist" is a fairly reasonable error message for the situation where a program looks for a record but cannot find it. Are you asking why that particular lump of code actually does that?
(One thousand lines of code removed) -
Special Field- Record Number count incorrect
Hi,
Looks like the record number special field is displaying the record count incorrectly. There are no records returned by the query nor there are any records in the detail section of the report. But the record number in the report footer shows 1. Is there any way to fix this?
Thanks in advance,
SirishaOne way to "fix" it would be to do a count on a field in the details section and then compare that count to NULL or zero and if so then display zero otherwise display the recordnumber.
1. Create a running total on a field in the details section that doesnt reset.
2. Create a formula with:
if isnull({#RTotal0}) or {#RTotal0} = 0 then 0 else recordnumber
3. Display the formula instead of the recordnumber in the report footer. -
Reading the record and displaying when u select it using checkbox
hi,
how to read the particilar record and display it in a popup screen when u select it using checkbox and then press 'DISP' button in alv(normal alv not with oops concepts).
like i select a row which is checked (checkbox) it and i have to read that particular record and display (value of keyfield say vbeln) details in a popup screen.hi,
go through the faloowing code.
this for normal popup.
*& Report ZGS_ALV_POPUP_2_SELECT
REPORT ZGS_ALV_POPUP_2_SELECT.
TYPE-POOLS: slis.
PARAMETERS: p_title TYPE sy-title default 'Sales Document:item data'.
DATA: itab TYPE vbap OCCURS 0 WITH HEADER LINE,
selfield TYPE slis_selfield.
START-OF-SELECTION.
SELECT *
FROM vbap
INTO TABLE itab
UP TO 20 ROWS.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
i_title = p_title
* I_SELECTION = 'X'
I_ZEBRA = 'X '
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_CHECKBOX_FIELDNAME =
* I_LINEMARK_FIELDNAME =
* I_SCROLL_TO_SEL_LINE = 'X'
i_tabname = 'ITAB'
i_structure_name = 'VBAP'
* IT_FIELDCAT =
* IT_EXCLUDING =
* I_CALLBACK_PROGRAM =
* I_CALLBACK_USER_COMMAND =
* is_private =
IMPORTING
es_selfield = selfield
* e_exit =
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE i000(8I) WITH sy-subrc.
ENDIF.
WRITE:
/ 'Table Index : ', 20 selfield-tabindex,
/ 'Table Name : ', 15 selfield-tabname,
/ 'Field Name : ', 15 selfield-fieldname,
/ 'Table-Field : ', 15 selfield-sel_tab_field,
/ 'Field Value : ', 15 selfield-value.
the falowing code is for how to put checkbox and how to display the selected recods.you combine both codes.
*& Report ZRP_SALES
REPORT ZRP_SALES NO STANDARD PAGE HEADING.
DATA: TEMP_DATE_STR TYPE STRING.
*DATA: TEMP_NETP LIKE VBAK-NETWR.
DATA: TEMP_NETWR(10).
*DATA: TEMP_VBELN LIKE VBAK-VBELN.
DATA: CHECK TYPE C VALUE ' '.
*DATA: WA_VBELN LIKE VBAK-VBELN.
DATA: TEMP_DATE LIKE VBAK-ERDAT.
*DATA: TEMP_NETP_STR TYPE STRING.
DATA:FNAM(20), FVAL(20).
TYPES: BEGIN OF MY_VBAK,
VTWEG TYPE VTWEG,
VKORG TYPE VKORG,
SPART TYPE SPART,
NETWR TYPE NETWR_AK,
VBELN TYPE VBELN_VA,
ERDAT TYPE ERDAT,
END OF MY_VBAK.
DATA: IT_VBAK TYPE MY_VBAK OCCURS 0 WITH HEADER LINE.
DATA: WA_VBAK TYPE MY_VBAK.
DATA: V_VBELN TYPE VBELN,
V_ERDAT TYPE ERDAT.
SELECT-OPTIONS:S_VBELN FOR V_VBELN,
S_ERDAT FOR V_ERDAT.
AT SELECTION-SCREEN.
*Check for Sales Order number to be non-initial.
IF S_VBELN IS INITIAL.
*Checking for Date to be non-nitial.
IF S_ERDAT IS INITIAL.
MESSAGE E003(ZRP_MSG). " Please enter either SO number or Date.
ELSE.
*Validating the right low values for Date select option
SELECT SINGLE ERDAT
FROM VBAK INTO TEMP_DATE
WHERE VBELN EQ S_VBELN-LOW OR ERDAT EQ S_ERDAT-LOW.
IF SY-SUBRC NE 0.
MESSAGE E004(ZRP_MSG).
ENDIF.
*Validating the right high values for Date select option
SELECT SINGLE ERDAT
FROM VBAK INTO TEMP_DATE
WHERE ERDAT EQ S_ERDAT-HIGH OR VBELN EQ S_VBELN-HIGH.
IF SY-SUBRC NE 0.
MESSAGE E005(ZRP_MSG).
ENDIF.
ENDIF.
ELSE.
*Checking for Date to be non-nitial.
IF S_ERDAT IS NOT INITIAL.
MESSAGE E003(ZRP_MSG). " Please enter either SO number or Date.
ENDIF.
*Validating the right low values
SELECT SINGLE VBELN
FROM VBAK INTO S_VBELN
WHERE VBELN EQ S_VBELN-LOW.
IF SY-SUBRC NE 0.
MESSAGE E001(ZRP_MSG).
ENDIF.
*Validating the right high values
IF S_VBELN-HIGH IS NOT INITIAL.
SELECT SINGLE VBELN
FROM VBAK INTO S_VBELN
WHERE VBELN EQ S_VBELN-HIGH.
IF SY-SUBRC NE 0.
MESSAGE E002(ZRP_MSG).
ENDIF.
ENDIF.
ENDIF.
START-OF-SELECTION.
*First Screen.
SET PF-STATUS 'DISP'.
IF S_VBELN IS NOT INITIAL.
SELECT VTWEG VKORG SPART NETWR VBELN ERDAT
FROM VBAK
INTO TABLE IT_VBAK
WHERE VBELN IN S_VBELN.
ENDIF.
IF S_ERDAT IS NOT INITIAL.
SELECT VTWEG VKORG SPART NETWR VBELN ERDAT
FROM VBAK
INTO TABLE IT_VBAK
WHERE ERDAT IN S_ERDAT.
ENDIF.
SORT IT_VBAK BY VKORG VTWEG SPART.
END-OF-SELECTION.
LOOP AT IT_VBAK.
MOVE IT_VBAK-NETWR TO TEMP_NETWR.
MOVE IT_VBAK-ERDAT TO TEMP_DATE.
WRITE:/6 CHECK AS CHECKBOX.
FORMAT COLOR 1.
WRITE: IT_VBAK-VBELN UNDER 'SALES ORDER NO.' .
WRITE: IT_VBAK-ERDAT UNDER 'DATE'.
FORMAT COLOR OFF.
FORMAT COLOR 2.
WRITE: TEMP_NETWR UNDER 'NET PRICE'.
FORMAT COLOR OFF."TEMP_NETWR,
FORMAT COLOR 3.
WRITE:IT_VBAK-VKORG UNDER 'SALES ORG',
IT_VBAK-VTWEG UNDER 'DIST CHANNEL',
IT_VBAK-SPART UNDER 'DIVISION'.
FORMAT COLOR OFF.
SKIP 1.
*FOR SUBTOTALS
AT END OF SPART.
SUM.
FORMAT COLOR 5.
WRITE:/6 'SUB TOTOAL OF NET PRICE IS : '.
WRITE: 32 IT_VBAK-NETWR CURRENCY 'INR'.
FORMAT COLOR OFF.
SKIP 2.
ENDAT.
*FOR GRAND TOTALS
AT LAST.
SUM.
FORMAT COLOR 6.
WRITE:/6 'GRAND TOTOAL OF NET PRICE IS : ',
32 IT_VBAK-NETWR CURRENCY 'INR'.
FORMAT COLOR 6.
ENDAT.
ENDLOOP.
TOP-OF-PAGE.
FORMAT COLOR 6.
WRITE:/8 'SALES ORDER NO.',
27 'DATE',
42 'NET PRICE',
57 'SALES ORG',
70 'DIST CHANNEL',
87 'DIVISION'.
FORMAT COLOR OFF.
SKIP 1.
*WHEN SALES ORDER IS SELECTED
AT LINE-SELECTION.
CASE :SY-LSIND.
WHEN '2'.
GET CURSOR FIELD FNAM VALUE FVAL.
IF FNAM <> 'WA_VBAK-VBELN'.
MESSAGE E006(ZRP_MSG).
ELSE.
SET PARAMETER ID 'MAT' FIELD FVAL.
CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
*WHEN CLICKED ON PUSH BUTTON IN THE APPLICATION BAR
AT USER-COMMAND.
CASE:SY-UCOMM.
WHEN 'DISP'.
DO.
CLEAR CHECK.
CLEAR: WA_VBAK,TEMP_DATE_STR.
READ LINE SY-INDEX FIELD VALUE CHECK
IT_VBAK-VTWEG INTO WA_VBAK-VTWEG
* IT_VBAK-NETWR INTO TEMP_NETP_STR
IT_VBAK-VBELN INTO WA_VBAK-VBELN
IT_VBAK-ERDAT INTO TEMP_DATE_STR
IT_VBAK-VKORG INTO WA_VBAK-VKORG
IT_VBAK-SPART INTO WA_VBAK-SPART.
IF SY-SUBRC <> 0.
EXIT.
ELSEIF CHECK = 'X'.
FORMAT COLOR 1.
WRITE: 8 WA_VBAK-VBELN HOTSPOT. "UNDER 'SALES ORDER NO'
WRITE: 25 TEMP_DATE_STR." UNDER 'DATE'.
FORMAT COLOR OFF.
* FORMAT COLOR 2.
* WRITE: 44 TEMP_NETP_STR." UNDER 'NET PRICE'.
* FORMAT COLOR OFF.
FORMAT COLOR 3.
WRITE:44 WA_VBAK-VKORG," UNDER 'SALES ORG',
59 WA_VBAK-VTWEG," UNDER 'DIST CHANNEL',
72 WA_VBAK-SPART." UNDER 'DIVISION'.
FORMAT COLOR OFF.
SKIP 1.
ENDIF.
ENDDO.
ENDCASE.
TOP-OF-PAGE DURING LINE-SELECTION.
CASE:SY-LSIND.
WHEN 1.
FORMAT COLOR 6.
WRITE:/8 'SALES ORDER NO.',
25 'DATE',
* 44 'NET PRICE',
44 'SALES ORG',
58 'DIST CHANNEL',
72 'DIVISION'.
SKIP 1.
FORMAT COLOR OFF.
<b>if helpful reward some points.</b>
Message was edited by:
suredarreddy pulimamidi -
Get Record Number of a Datasource
How can I get the record number of a view object
<jbo:DataSourceRef id="dsBrowse" reference='<%=request.getParameter("datasource")%>' />
<jbo:RowsetIterate datasource="dsBrowse" changecurrentrow="true">
<jbo:RenderValue datasource="dsBrowse" dataitem="Item" />
</jbo:RowsetIterate>
I want to display the records when the recordcount is >0. In other case I want to display a message about "No Records Found"
So I Wnat somehow the record number of datasource.Kostas -
Use the getRowCount() method as such:
<% int rowcount = dsBrowse.getRowSet().getRowCount();
if rowcount > 0 { %>
<jbo:RowsetIterate datasource="dsBrowse" changecurrentrow="true">
<jbo:RenderValue datasource="dsBrowse" dataitem="Item" />
</jbo:RowsetIterate>
<% }else{ %>
No records found
<% } %>
Hope this helps,
Lynn
Java Tools Team
How can I get the record number of a view object
<jbo:DataSourceRef id="dsBrowse" reference='<%=request.getParameter("datasource")%>' />
<jbo:RowsetIterate datasource="dsBrowse" changecurrentrow="true">
<jbo:RenderValue datasource="dsBrowse" dataitem="Item" />
</jbo:RowsetIterate>
I want to display the records when the recordcount is >0. In other case I want to display a message about "No Records Found"
So I Wnat somehow the record number of datasource. -
How to get the original record Number in Multi-Record Block
Hello Everyone,
I know how to find the duplicate item in the multi-Record block,
For Ex:
Line_Num Item_Name Quantity
1 AA 10
2 BB 20
3 AA Here 3rd record Item_name is duplicated, I can able to check and display the message that 'Item is duplicated' ,I found from [sheikyerbouti.developpez.com/duplicates/duplicates.htm] .
but I want to show along with original line number i.e 1 when the item_name is entered .
Here I want to check the original Line_Num and want to display the message
'Item is duplicated,Update quantity in Original Line 1'
Can anyone help me to get this?
Thank You.
Regards,
Guru.Hi Francois,
Actually I want to check and show the message when the item_name is entered i.e WHEN-VALIDATE-ITEM TRIGGER.
I put the following code in WHEN-VALIDATE-ITEM TRIGGER
Declare
curnum number;
dupnum number;
cur_item varchar2(100);
v_alert_no number;
p_linerec varchar2(100);
Begin
curnum := TO_NUMBER(:System.Trigger_Record);
cur_item := :Lines.Item_number;
First_Record;
p_linerec := :Lines.Item_number;
LOOP
If p_linerec = cur_item then
dupnum := :Lines.Line_num;
set_alert_property('ALERT_STOP',ALERT_MESSAGE_TEXT,
'Duplicate Item Found,Update QTY in Original line number '||dupnum);
V_ALERT_NO := show_alert('ALERT_STOP');
:LINES.ITEM_NUMBER := NULL;
:LINES.ITEM_DESCRIPTION:= NULL;
:LINES.ITEM_REVISION:= NULL;
:LINES.ITEM_CATEGORY:= NULL;
elsIF (:System.Last_Record = 'TRUE') THEN
Go_Record(curnum);
EXIT;
ELSE
Next_Record;
END IF;
END LOOP;
End; But I am getting the following error,
FRM-40737:Illegal Restricted Procedure
FIRST_RECORD in WHEN-VALIDATE-TRIGGERand then
its showing for first line itself.
Duplicate Item found.Update QTY in Original line number 1so I put the condition
If :Lines.Line_num > 1 then --Only to check when the block having more than one record.but now it checking from second record and displaying,
Duplicate Item found.Update QTY in Original line number 2 --(instead of Update QTY in Original line number 1)Can you tell me how can I change the above code for my requirement?
Thank you.
Edited by: Gurujothi on 27 Mar, 2013 5:20 PM -
Iphone 5s incoming call number displays incorrectly.
Whenever I call my wife's Iphone from work, the number displays incorrectly on her caller ID. It is always dropping the third number of the area code, so if my work number was 123-456-7890, then when I call her it shows up on her phone as 124-567-890, it doesn't even show a ten digit number. So far I have noticed that it only happens when I call her from the landlines at my work. I also have the exact same iphone 5s on the same carrier and the numbers display perfectly fine on my phone so I feel like it's some setting in the phone. Before switching to an iphone we had her contacts imported from an old Verizon flip phone, not sure if that has anything to do with it. Has anyone seen or heard of a similar issue?
Thanks,
DanBy the way I have completely reset all content and settings several times, tried turning off international assist, tried several suggestions I found online dealing with the sim pin, switched to a different phone to have the same thing happen on that phone also. I have the same exact iphone 5s and carrier and service plan and the numbers appear perfectly on my phone. I'm so confused why this is happening.
-
How can i get the tax code from Condition record number
Hi all,
i have the Condition record number from which i have to get the tax code as i looked inthe KNOP that Condition record number there but no tax code is maintained there.
so is there any other way to find the tax code for particular Condition record number
Regards
sureshhi suresh,
can u tell me the field name for condition record number and in which table it is stored.
because i knew one condition number which is stored in table EKKO and the field name is
KNUMV- Number of the document condition.
from ekko take relevant details and look for ekpo where u find the tax code
filed name of the tax code id MWSKZ- Tax on sales/purchases code -
How to get the Data Record Number in BI 7.0?
Hi All,
In our requirement we need to load the Data Record Number in the DSO. I got the Request ID and Data Packet Number but not the Data Record Number.
Does anyone has any idea?Hi......
When the data is activated in DSO, it is written to the table of active data, where it is then available for reporting. Requests are sorted by the key of the DataStore object, request ID, data package ID, or data record number.
You just load the data to the DSO.....and activate it.......it will autometically get generated.......You cannot load it from one DSO to other beacuse in this case Change log table is used........and this filed is in active table..........I think you need this fir reporting purpose.....so load it and activate the DSO......then it will be available in your active table for reporting.........because reporting is done on active table.......
Check this link :
http://help.sap.com/saphelp_nw04s/helpdata/en/a9/49453cabf4ef6fe10000000a114084/frameset.htm
Hope this helps you....
Regards,
Debjani....
Edited by: Debjani Mukherjee on Sep 16, 2008 5:22 PM
Edited by: Debjani Mukherjee on Sep 16, 2008 5:25 PM -
Identify record number being processed in Custom Integrator?
Hi gurus,
We have developed a custom integrator using a PL/SQL packaged procedure as the interface. Inside this package we insert into a custom table.
We are on Oracle Financials 11.5.10.2.
The custom table is located in a custom schema called CGL.
Our requirement is to perform some validation in the database package when the Web ADI infrastructure is processing the first row in the excel spreadsheet that the user is using to upload data.
We have a header row with the following columns.
Source System
Feeder System
Version Number
When the user chooses Oracle => Upload option from the Excel menu, we have to validate that the Version Number is valid i.e. we have to validate that the previous version of the file for the Source System and Feeder System combination has been successfully processed by the subsequent programs before the user is allowed to upload the next version of the file for this combination.
Our requirement is to perform the validation when row number 1 is being processed. However, I have not been able to find any documentation that allows us to identify the record number in PL/SQL.
Alternately, is there an environment variable or some other way to populate row numbers in excel spreadsheets being downloaded using the template so it can be passed to the package and used to identify the row being processed.
Any help in this regard will be greatly appreciated.
VenkatHi Venkat,
Would you give a try with the following option:
Define a column in your layout, and set the default type to formula and enter an excel formula like
=IF(ISBLANK(C7);"";ROW()-ROW($B$6))
This function should put a number into the column and it should start with one, followed by 2,3 etc. The 7,C,B,6 needs to be set according your layout. I hope you can manage this.
Assuming your sheet has 100 lines, you shall have then a 1-100 in this column. I would secure this column, read only flag in the layout.
Any further explanation needed? Just replay here.
br, Volker -
PO item Condition Record number and delivery address of PO - Need a table n
Hello Experts,
I need some help as I have searched enough but did not find any solution.
I need a table name where I can find Condition Record number for PO line item.
As I have to create a new PO Layout in which I have to mention each & every condition type with value for line item.
I need to know one more thing that from which table I will get delivery address number so on the basis of that I can read entries from table ADRC.
Thanks in advance.
BhagatHI,
The First Question is regarding the PO Conditions.
For Extracting the same. we have to Go to The Table EKKI and in this table pass the PO Number and after entering the PO NUmber ,at each item level we will have a condition record number KNUMV created,
collect the condition record number and pass the value in KONV table ,in that table we will get all the conditions and its values maintained.
The second question is the delivery Address
the Delivey address comes from four ways
Plant
EKPO -Pass PO NUmber - collect the plant and pass in table T001W to get the address number
and pass the address number to ADRC table
Customer (third party)
IN table EKPO -collect the customer Number-KUNNR and pass that value to KNA1 table and then get the address number and then get the address from ADRC table.
Direct address number ( created by t code MEAN- Type ME01)
This adress number-ADRNR can be taken from EKPO table and pass this value to adrc table to get the address.
Vendor ( subcontracting)
In this IN EKPO we will have the vendor field -LIFNR and this field collect the vendor number and pass in LFA1 and get the address number and then pass the address number to ADRC table
If in EKPO,the address number and customer vendor field are blank then it picked from the plant and we have to default the Plant Address
Hope so it helps
Regards
Anjanna. -
No Caller Number Display since August 2014
Caller number display ceased to function on 9th August last year.
Since the we have been through the fault reporting process 3 times. Had an aborted (by Openreach) engineer visit and received a statement letter from BT saying they are looking in to the problem, it will take time etc etc.
My equipment works at my neighbours house. The neighbours phone has been tried in my house and does not work. I have removed filters, unplugged everything, tried the Master Socket. None of these things works.
It is very tough to run my business without Caller Number Display.
Can it be fixed???
If I switch to another provider will Caller Number Display then work??
Help!Hi Unclenorm,
Welcome to the community forum. I am sorry to hear that you are having problems with the Caller Display. I'll be able to take a look at this for you. Please can you send me in your details using the "Contact The Mods" link found in my profile.
Thanks
PaddyB
BTCare Community Mod
If we have asked you to email us with your details, please make sure you are logged in to the forum, otherwise you will not be able to see our ‘Contact Us’ link within our profiles.
We are sorry but we are unable to deal with service/account queries via the private message(PM) function so please don't PM your account info, we need to deal with this via our email account :-) -
I've transferred my old number by PAT code to my new iphone and most of the time it works fine however there are problems when replying to tests and using Facetime when the original sim muber is displayed. My frined can text me on my correct number but if I reply she receives it from the different number. Also when using Facetime the number displayed is the one the came with the iphone. Anyone know what to do to get the number id correct?
Tell her to contact her carrier and get a new phone number.
-
Vendor Master Record number ranges
Hi,
We have one requirement . At present my client is maintaining the vendor master record number ranges with 4 digits. Ex. 0001 to 9999
His present requirement is that to maintain the number ranges with 4 digits .ex. 00001 to 99999. They want this should apply even to existing records. Ex: Old number 2345 , they want the present number should be 02345.
Request you to please help in resolving the issue. Thanks in advance for the help. Matter is urgent
Thanks
D.K.Lakshmi narayanaHello Lakshmi,
It seems to me these are your alternatives.
1) For each old vendor in the 4-digit scheme, create a new vendor master record in the 5-digit scheme with the leading zero. Then, transfer all open documents/master records (invoices, purchase orders, info records, etc.) from the old vendor to the new vendor. Then, block the old vendor.
2) Same as previous except instead of changing all open documents, only change the master data (e.g., info records or long term contracts or agreements) to the new vendor master record and continue to use the old vendor master record until the open documents are closed. Then, block the old vendor master record.
I think option 2 will be the "safer" choice. Plus, for reporting, you will probably need to continue using both vendor numbers for a while.
Maybe someone else has an easier way...
Cheers,
Larry -
Why is records number different?
Hi expert,
I have loaded R/3 GL data into a cube(0FIGL_C01) successful. But one thing confused me very much which is: the transfered and added records' number is different. In my case, transfered records are 117991, but the added are 87929. I have checked the detail message in Monitor, where the data deduction of update to cube took place after update rule, before the update rule all the data number are same( the system generated 2 data packages for this single request, in each packge the different records number added to cube with transfered happened just after the update rule), this means something happened in update rule, right? but I checked the update rule, there's no any routine exist. So could you please tell me what does any operations cause this result?Hi Paolo,
Thank you very much for your reply. In my understanding of your explanation, if Chars in a cube for example: company code, business area, G/L account, currency type, fiscal year, fiscal year/period, and KFs like Total Debit Postings,Total credit postings, Cumulative Balance. If two records from R/3 which all the chars are same, then only one record will be keeped in the cube but the value of KFs will be added. Am I correct? But if somehow, someone load the data(Full load) one more time, what will be the result?
thank you in advance
Message was edited by:
Ryan Zhang
Maybe you are looking for
-
I had to remove the hard drive from my 2010 Macbook Pro due to damages motherboard (son spilled apple juice). I bought a new macbook pro and need to pull some data offf the old on. I had the hard drive removed and see the pin connector. What type of
-
Hi all I am kinda new to Java! I have an anemic class (defines no behaviour) that has a field of primitive type char. I know that fields are always initialized even if don´t do it, so I created this class to find out what character java assigns to a
-
Trying to create a calendar in a new window???
I have a button that when clicked on should open up a new frame/window and using labels create a schedule from monday to tuesday. I managed to get the new window to come up but i am unable to add any labels to it. Anyone know what I am doing wrong? h
-
Last night I downloaded the file ADBESTDSCS4_LS1.dmg and used Easy Install; however CS4 InDesign failed to install. I've called tech support, but the person I spoke with told me to read several articles about troubleshooting an installation using di
-
Lost some permissions after synchronizing with external hard drive
I bought a LaCie external hard drive so I could back up my files in preparation for upgrading from Tiger to Snow Leopard. Everything was working fine for a while. This is my first experience using an external hard drive and performing back ups. The e