Sunteți pe pagina 1din 4

Strings table in SQR FAQ: 1) What is strings table ?

Ans) Strings table is a application data table which stores the labels(PS_STRINGS_TBL) .It is one of the common techniques many of the delivered programs employ to take advantage of allocating labels without hard coding. 2) What is the use of strings table ? Ans) It will store all the label information which can be printed on the SQR report . Report headings (like pay011,pay212,PeopleSoft) Column names (Emplid, DeptId, Firstname, Lastname.) 3) How to populate strings table & What is its structure ? Ans) Go to the following navigation Main Menu -> PeopleTools -> Utilities -> Administration ->Strings Table It contains following fields PROGRAM_ID , STRING_ID , LABEL_ID , DEFAULT_LABEL, STR_LBL_TYPE, STRING_TEXT, COL_WIDTH 4) How to use strings table in sqr program ? Ans) To take advantage of strings table do the following steps > Incorporate the following SQCS into your program SQRTRANS.SQC, GETRPLNG.SQC, PRCSLNG.SQC (Which will be called internally in PRCSAPI.SQC No need to include if your program is getting run through process scheduler i.e already included STDAPI.SQC) > Inside this SQRTRANS.SQC we are having different procedures .Only the following can be called out side of this sqc they are Init_Report_Translation ($Report_ID, $Report_Language) Get_Field_Information ($Report_ID, $Field_ID, :$Field_Text, :#Field_Width) Append_Report_Translation ($Report_ID) Add_Report_Translation($Report_ID, $Report_Language) All the procedure parameters are equal to the fields in strings table i.e Strings Table Fields PROGRAM_ID STRING_ID STRING_TEXT Procedure parameters $Report_ID :$Field_Text :$Field_Text

Result will be

COL_WIDTH

:#Field_Width

$Report_Language Is coded as $Language_Cd , Which gets the data from GETRPLNG.SQC It indicates the Language code ex : ENG ( for more info on this see GETRPTLNG.SQC, PRCSLNG.SQC) Finally the coding looks like the following way Example : Observe the following coding from one of the delivered SQR (pay010.sqr) begin-procedure Report-Translation ! Read from PAY010 and PAY1 program ids do Init_Report_Translation($ReportID,$language_cd) do Append_Report_Translation('PAY1') do Append_Report_Translation('HR')

do Get_Field_Information ('PAY010', 'REPORT_TITLE', $Pay010_ReportTitle, #dummy_width) do Get_Field_Information ('PAY010', 'REG', $Pay010_Reg, #dummy_width) do Get_Field_Information ('PAY010', 'OVR', $Pay010_Ovr, #dummy_width) do Get_Field_Information ('PAY010', 'OTH', $Pay010_Oth, #dummy_width) do Get_Field_Information ('PAY010', 'EMP_NM', $Pay010_Emp_Nm, #dummy_width) do Get_Field_Information ('PAY010', 'EMP_ID', $Pay010_Emp_Id, #dummy_width) do Get_Field_Information ('PAY010', 'DEPT_ID', $Pay010_Dept_Id, #dummy_width) do Get_Field_Information ('PAY010', 'PG_LN_ADL', $Pay010_Pg_Ln_Adl, #dummy_width) do Get_Field_Information ('PAY010', 'HOURS', $Pay010_Hours, #dummy_width) do Get_Field_Information ('PAY010', 'ERNS', $Pay010_Erns, #dummy_width) do Get_Field_Information ('PAY010', 'TYPE', $Pay010_Type, #dummy_width) do Get_Field_Information ('PAY010', 'NO_DATATXT', $Pay010_No_DataTxt, #dummy_width) do Get_Field_Information ('PAY1', do Get_Field_Information ('PAY1', do Get_Field_Information ('PAY1', do Get_Field_Information ('PAY1', do Get_Field_Information ('HR', do Get_Field_Information ('HR', end-procedure 'GR_TOT', $Pay1_Gr_Tot, #dummy_width) 'CMP_TOT', $Pay1_Cmp_Tot, #dummy_width) 'PAYPER_TOT', $Pay1_PayPer_Tot, #dummy_width) 'PAYGRP_TOT', $Pay1_PayGrp_Tot, #dummy_width) 'BUS_UNIT1', $HR_Bus_Unit1, 'BUS_UNIT2', $HR_Bus_Unit2, #dummy_width) #dummy_width)

Result will be

Here Report-Translation is initiated in GETRPLNG.SQC , Inside this procedure we can see the using of Init_Report_Translation , Append_Report_Translation , Get_Field_Information do Init_Report_Translation($ReportID,$language_cd) (Initiated in SSQRTRANS.SQC) Here $ReportId is written in the code like the following move 'PAY010' to $ReportID

$language_cd , Finally gets the value of ENG $language_cd is fetches language dependent information from PRCSLNG.SQC

do Append_Report_Translation('PAY1') (Initiated in SSQRTRANS.SQC) Here PAY1 is $ReportID do Append_Report_Translation('HR') (Initiated in SSQRTRANS.SQC) Here HR is $ReportID do Get_Field_Information ('PAY010', 'REPORT_TITLE', $Pay010_ReportTitle, #dummy_width) (Initiated in SSQRTRANS.SQC) It is the main procedure which fetches the data from PS_STRINGS_TBL and stores in the $Field_Text. To know what exactly was stored in the $Field_Text i.e in the $Pay010_ReportTitle use the following sql
SELECT STRING_TEXT FROM PS_STRINGS_TBL WHERE PROGRAM_ID = 'PAY010' AND STRING_ID ='REPORT_TITLE';

It is common for all , where ever you find GET_FIELD_INFORMATION In the above SQL statement the result will be stored in $Pay010_ReportTitle and it can be further used in PRINT statement to print the label the result is Employees Not Processed in Current Payroll

Take an another Get_Field_Information procedure parameters do Get_Field_Information ('PAY010', 'OVR', $Pay010_Ovr, #dummy_width) Apply the same SQL statement listed above result will be
SELECT STRING_TEXT FROM PS_STRINGS_TBL WHERE PROGRAM_ID = 'PAY010' AND STRING_ID ='OVR';

Result will be

<- OVERTIME ->

Now $PAY010_REPORTTITLE , $PAY010_OVR will be hardcoded in a print statement in the following way move $Pay010_ReportTitle to $ReportTitle print $Pay010_Ovr (0,127)

These can be printed on SQR report in the label section .

Advantages : No need to hard code label names in directly in coding. If any kind of changes has to be done in the headings ,Directly can log-in to PIA can modify there . Automatically same changes will appear in SQR report This is one of the techniques almost all every delivered program employs

Result will be

S-ar putea să vă placă și