2013 Jan 21 10:23 PM
Hi Experts,
My requirement is I have a table in the below format.
zone del_date master_route stops
Z1 02/05/13 M1 5
Z2 02/05/13 M1 0
Z3 02/05/13 M1 3
Z4 02/05/13 M1 4
Z5 02/05/13 M1 2
Z1 02/06/13 M1 1
Z2 02/06/13 M1 7
Z3 02/06/13 M1 9
Z4 02/06/13 M1 8
Z5 02/06/13 M1 11
..................
..................
Z6 02/06/13 M2 12
Z7 02/06/13 M2 13
Z8 02/06/13 M2 17
which i need to display like below based on the user entered Master route. For ex: lets say user entered M1 then it should display.
del_date Z1 Z2 Z3 Z4 Z5
02/05/13 5 0 3 4 2
02/06/13 1 7 9 8 11
.......
.......
I created the dynamic table using the below code:
CLEAR wa_it_fldcat.
wa_it_fldcat-fieldname = 'DEL_DATE'.
wa_it_fldcat-datatype = 'DATS'.
wa_it_fldcat-intlen = 8.
wa_it_fldcat-col_pos = 0.
APPEND wa_it_fldcat TO it_fldcat .
LOOP AT gt_tzone INTO gs_tzone. <= looping for all the zones for that particular Master route
index = sy-tabix.
CLEAR wa_it_fldcat.
wa_it_fldcat-fieldname = gs_tzone-tzone.
wa_it_fldcat-datatype = 'INT4'. <= Mentioned the data type as int4 as i need to store the stops
wa_it_fldcat-intlen = 10.
wa_it_fldcat-col_pos = index.
APPEND wa_it_fldcat TO it_fldcat .
ENDLOOP.
* Create dynamic internal table and assign to FS
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fldcat
IMPORTING
ep_table = new_table.
ASSIGN new_table->* TO <dyn_table>.
* Create dynamic work area and assign to FS
CREATE DATA new_line LIKE LINE OF <dyn_table>.
ASSIGN new_line->* TO <dyn_wa>.
For the Master route M1 the internal structure of the dynamic table would be:
begin of structure <dyn_wa>.
DEL_DATE DATS 8
Z1 INT4 10
Z2 INT4 10
Z3 INT4 10
Z4 INT4 10
Z5 INT4 10
End of structure <dyn_wa>.
Now the issue is how to assign the values of stops from the internal table to dynamic structure for a specific date?
as i cant code like
MOVE the stop value TO <dyn_wa>-field1 as field1 would be created dynamically.
Also i need to nake the field as editable after displaying it as ALV if the stop value = 0.
Please help me in resolving this issue.
2013 Jan 23 3:38 PM
If you are doing a dynamic table, you would need to access dynamically created fields frequently. Easiest solution is creating a Macro. (It is too small for a subroutine).
FIELD-SYMBOLS <gfs_variable> TYPE any.
**********************************************************************
*This Macro assigns the field of structure to a variable
**********************************************************************
*&1 - Structure
*&2 - Fieldname
*&3 - Variable the data needs to be assigned to
**********************************************************************
DEFINE field_symbol_data.
clear &3.
assign component &2 of structure &1 to <gfs_variable>.
if sy-subrc is initial.
&3 = <gfs_variable>.
unassign <gfs_variable>.
endif.
END-OF-DEFINITION.
So that you can easily access any variable by below code.
field_symbol_data <lwa_work_area> 'MATNR' lv_matnr.
Here, I have used 'MATNR' for example, it can be any variable having character.
The good part about this is, it does not give a dump even if you used a wrong field name. In case you want to do error handling for the same, you can do it by adding an ELSE condition at line 17 in above code.
To make field edit, based on condition, you just have to put
wa_it_fldcat-edit = 'X'.
in your code whenever your condition is satisfied. This of course has to be done before you display the ALV. If you want to make field editable after you have displayed ALV, I think there might be few threads available for solution.
Hi Experts,
My requirement is I have a table in the below format.
zone del_date master_route stops
Z1 02/05/13 M1 5
Z2 02/05/13 M1 0
Z3 02/05/13 M1 3
Z4 02/05/13 M1 4
Z5 02/05/13 M1 2
Z1 02/06/13 M1 1
Z2 02/06/13 M1 7
Z3 02/06/13 M1 9
Z4 02/06/13 M1 8
Z5 02/06/13 M1 11
..................
..................
Z6 02/06/13 M2 12
Z7 02/06/13 M2 13
Z8 02/06/13 M2 17
which i need to display like below based on the user entered Master route. For ex: lets say user entered M1 then it should display.
del_date Z1 Z2 Z3 Z4 Z5
02/05/13 5 0 3 4 2
02/06/13 1 7 9 8 11
.......
.......
I created the dynamic table using the below code:
CLEAR wa_it_fldcat.
wa_it_fldcat-fieldname = 'DEL_DATE'.
wa_it_fldcat-datatype = 'DATS'.
wa_it_fldcat-intlen = 8.
wa_it_fldcat-col_pos = 0.
APPEND wa_it_fldcat TO it_fldcat .
LOOP AT gt_tzone INTO gs_tzone. <= looping for all the zones for that particular Master route
index = sy-tabix.
CLEAR wa_it_fldcat.
wa_it_fldcat-fieldname = gs_tzone-tzone.
wa_it_fldcat-datatype = 'INT4'. <= Mentioned the data type as int4 as i need to store the stops
wa_it_fldcat-intlen = 10.
wa_it_fldcat-col_pos = index.
APPEND wa_it_fldcat TO it_fldcat .
ENDLOOP.
* Create dynamic internal table and assign to FS
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fldcat
IMPORTING
ep_table = new_table.
ASSIGN new_table->* TO <dyn_table>.
* Create dynamic work area and assign to FS
CREATE DATA new_line LIKE LINE OF <dyn_table>.
ASSIGN new_line->* TO <dyn_wa>.
For the Master route M1 the internal structure of the dynamic table would be:
begin of structure <dyn_wa>.
DEL_DATE DATS 8
Z1 INT4 10
Z2 INT4 10
Z3 INT4 10
Z4 INT4 10
Z5 INT4 10
End of structure <dyn_wa>.
Now the issue is how to assign the values of stops from the internal table to dynamic structure for a specific date?
as i cant code like
MOVE the stop value TO <dyn_wa>-field1 as field1 would be created dynamically.
Also i need to nake the field as editable after displaying it as ALV if the stop value = 0.
Please help me in resolving this issue.
2013 Jan 22 3:37 PM
2013 Jan 22 9:29 PM
Okay...to assign the values, you can do this.
FIELD-SYMBOLS:
<fs1> TYPE int4
.
SORT:
itab BY del_date " This is your data table
.
LOOP AT itab ASSIGNING <ls_itab> .
AT NEW del_date .
CLEAR:
new_line
.
new_line-del_date = <ls_itab>-del_date .
ENDAT .
UNASSIGN:
<fs1>
.
ASSIGN COMPONENT <ls_itab>-zone
OF STRUCTURE new_line
TO <fs1> .
IF <fs1> IS ASSIGNED .
<fs1> = <ls_itab>-stops .
ENDIF .
AT END OF del_date .
APPEND new_line TO <dyn_tab> .
ENDAT .
ENDLOOP .
The above should get you started on it. If you get it in and step through debugger, you should be able to modify to meet your needs.
As for being editable, use cl_gui_alv_grid class to display; there is quite a bit involved in setting it up (especially since you are using a dynamic table); if you understand how the above assignment works to move the data to the dynamic table, reversing the process during edit mode should be fairly simple.
Edit - I can't remember, but you may need to add parens around <ls_itab>-zone in ASSIGN COMPONENT...can't remember if that is required...
Edit 2 - Switched ls_out in append to new_line, because I decided to use your names after I built sample; and missed changing that.
2013 Jan 23 9:11 PM
Thanks Steve for your input.
I am trying to modify the code which you provided..but in the below line..
ASSIGN COMPONENT <ls_itab>-zone
OF STRUCTURE new_line
TO <fs1> .
IF <fs1> IS ASSIGNED .
<fs1> = <ls_itab>-stops .
ENDIF .
<fs1> is not getting assigned as in my requirment the field name ZONE in my internal table would be static where as fields in the STRUCTURE will change. In the above example for the master route 'M1'
i have the STRUCTURE created with fields Z1,Z2,Z3,Z4,Z5.
As " ASSIGN COMPONENT <ls_itab>-zone OF STRUCTURE" statement is also trying to look for field name with zone in the structure it is not assigning the <fs1>.
Please suggest me how to proceed.
Thanks in advance!
2013 Jan 23 9:18 PM
<ls_itab>-zone should have data in it, like Z1, Z2, Z3.
NEW_LINE should have fields named Z1, Z2, Z3.
Correct?
So what the ASSIGN statement is doing is pointing the field symbol at the field of structure NEW_LINE that is contained in <ls_itab>-zone. So if <ls_itab>-zone has Z1 the field symbol will point to NEW_LINE-Z1; if <ls_itab>-zone has Z2 the field symbol will point to NEW_LINE-Z2, etc; it should work.
I suggest making sure <ls_itab>-zone has the field name in all caps; so Z1, not z1. That maybe why the assignment is failing.
Also make sure the field symbol is of the same type as the Z1 fields in NEW_LINE.
If you can post your code, I can maybe help more if this does not work.
2013 Jan 23 3:38 PM
If you are doing a dynamic table, you would need to access dynamically created fields frequently. Easiest solution is creating a Macro. (It is too small for a subroutine).
FIELD-SYMBOLS <gfs_variable> TYPE any.
**********************************************************************
*This Macro assigns the field of structure to a variable
**********************************************************************
*&1 - Structure
*&2 - Fieldname
*&3 - Variable the data needs to be assigned to
**********************************************************************
DEFINE field_symbol_data.
clear &3.
assign component &2 of structure &1 to <gfs_variable>.
if sy-subrc is initial.
&3 = <gfs_variable>.
unassign <gfs_variable>.
endif.
END-OF-DEFINITION.
So that you can easily access any variable by below code.
field_symbol_data <lwa_work_area> 'MATNR' lv_matnr.
Here, I have used 'MATNR' for example, it can be any variable having character.
The good part about this is, it does not give a dump even if you used a wrong field name. In case you want to do error handling for the same, you can do it by adding an ELSE condition at line 17 in above code.
To make field edit, based on condition, you just have to put
wa_it_fldcat-edit = 'X'.
in your code whenever your condition is satisfied. This of course has to be done before you display the ALV. If you want to make field editable after you have displayed ALV, I think there might be few threads available for solution.
2013 Jan 24 10:11 PM
Hi Steve and Chinmay,
I got the output of what I am looking for. Thanks for your valuable inputs.
My Code:
LOOP AT gt_stops ASSIGNING <fs_stops>. <<<<<< my data table
AT NEW lfdat.
CLEAR: <fs_dyntable>.
UNASSIGN:<fs1>.
MOVE 'DEL_DATE' TO wa_flname.
ASSIGN COMPONENT wa_flname
OF STRUCTURE <fs_dyntable> TO <fs1>.
IF <fs1> IS ASSIGNED.
<fs1> = <fs_stops>-lfdat. <<<<<delivery date
ENDIF.
ENDAT.
UNASSIGN:<fs2>.
ASSIGN COMPONENT <fs_stops>-lzone
OF STRUCTURE <fs_dyntable> TO <fs2>.
IF <fs2> IS ASSIGNED.
<fs2> = <fs_stops>-max_stops.
ENDIF.
AT END OF lfdat.
APPEND <fs_dyntable> TO <t_dyntable>.
ENDAT.
ENDLOOP.
I thought of checking with you to see whether we can make a single cell in a column as editable in ALV?
and
How to read the values of the table on the ALV report to insert back to my data table(which i showed in the intial post)
In my requirement i should make the field having the value zero as editable so that the user can enter a new value.
For ex: In this example i should make the fields with value '0' as editable and should gray out all the other fields and insert the rows back to the original table and I need to insert the edited field back to the data table.
| Del_Date | Z1 | Z1 | Z1 | Z1 | Z1 |
|---|---|---|---|---|---|
| 02/05/2013 | 2 | 3 | 52 | 1 | 2 |
| 02/06/2013 | 2 | 0 | 85 | 1 | 5 |
| 02/07/2013 | 0 | 0 | 0 | 0 | 0 |
| 02/08/2013 | 0 | 8 | 8 | 5 | 52 |
| 02/09/2013 | 2 | 0 | 0 | 8 | 9 |
Thanks in Advance!
2013 Jan 24 10:17 PM
Are you using CL_GUI_ALV_GRID for you editable ALV? If so, I have recently done this, and I will check my code. If it is the REUSE functions, I have no idea, as I don't use those.
Your column names are what you use to see which field you should modify:
ASSIGN COMPONENT column_name
OF STRUCTURE new_line
TO <fs> .
I believe you should have the name of the column during change mode, in addition, the row of the record edited.
So you can read the record using the index (row number), then use the column name to decide which column needs to be changed.
2013 Jan 24 11:16 PM
Hi Steve,
Can we make single cell editable based on its value (in my case if it is 0) with the help of CL_GUI_ALV_GRID.? is so can we you please suggest how to do that.
Thanks in advance.
2013 Jan 25 2:45 PM
Yes, I just recently finished a program where I had to decide which cells were editable based on other values in the row. With cl_gui_alv_grid, you can set change mode on a cell by cell basis.
I have some things to take care of this morning, then I will post the specifics of it.
If you are not familiar with cl_gui_alv_grid and change mode for it, here is a link to a discussion on working with the change event and it includes some basic sample code.
http://wiki.sdn.sap.com/wiki/display/ABAP/Making+ALV+to+react+to+Change+data+automatically
2013 Jan 25 8:54 PM
Here is some info on single field editing with ALV grid class:
When creating initial Field Catalog, flag the fields you want to be editable as fcat-edit = 'X'
In the layout creation, you need to set a field as the style field; this needs to be the last field in your output table and typed lvc_t_styl; you then create a record in this style field for each other field in your output structure. If you want the field to be editable, you set style to cl_gui_alv_grid=>mc_style_enabled; if you don't want it to be editable, you can set it to cl_gui_alv_grid=>mc_style_disabled.
So yout output table would look like this, after it is dynamically created:
TYPES:
BEGIN OF lts_out,
date TYPE datum,
z1 TYPE int4,
z2 TYPE int4,
z3 TYPE int4,
z4 TYPE int4,
z5 TYPE int4,
style TYPE lvc_t_styl,
END OF lts_out
.
Each record would need to create the style table stored in it; so if the record for date has a 0 entry, you would add the name of the zone that has a 0 entry, to the style field with lvc_t_styl-style = cl_gui_alv_grid=>mc_style_enabled; all other fields can have a lvc_t_styl record added that has lvc_t_styl-style = cl_gui_alv_grid=>mc_style_disabled.
If you want to switch the fields on and off for editing, you will need to update the style table with the new value (enabled/disabled), then call the refresh method of the ALV grid.
Between the last posts wiki entry I linked and the above, you should be able to get a good start on single cell editing in CL_GUI_ALV_GRID.
If you have specific questions, please post and I will do my best to answer.
2013 Jan 25 9:09 PM
Hi Steve,
This is what exactly i started doing since today morning...but i am facing the below issue as i explained below in the code...
In my sceanario as I am creating a dynamic table using the below code..
wa_it_fldcat-fieldname = 'DEL_DATE'.
wa_it_fldcat-datatype = 'DATS'.
wa_it_fldcat-intlen = 8.
wa_it_fldcat-col_pos = 0.
APPEND wa_it_fldcat TO it_fldcat .
LOOP AT gt_tzone INTO gs_tzone.
index = sy-tabix.
CLEAR wa_it_fldcat.
wa_it_fldcat-fieldname = gs_tzone-tzone.
wa_it_fldcat-datatype = 'INT4'.
wa_it_fldcat-intlen = 10.
wa_it_fldcat-col_pos = index.
APPEND wa_it_fldcat TO it_fldcat .
ENDLOOP.
CLEAR wa_it_fldcat. <<<<<<<Trying to append the variable field_style of type STRUCTURE LVC_T_STYL <<<<<<<<
wa_it_fldcat-fieldname = 'field_style'.
wa_it_fldcat-datatype = 'lvc_t_styl'.
wa_it_fldcat-col_pos = index + 1.
APPEND wa_it_fldcat TO it_fldcat .
* Create dynamic internal table and assign to FS
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fldcat
<<<<In this structure it is accepting only the elementary data types of type C(4)..that is why my data type of structure 'LVC_T_STYL' is getting truncated as 'LVC_' and it is NOT working as it should be...<<<<<<<
IMPORTING
ep_table = new_table.
ASSIGN new_table->* TO <t_dyntable>.
* Create dynamic work area and assign to FS
CREATE DATA new_line LIKE LINE OF <t_dyntable>.
ASSIGN new_line->* TO <fs_dyntable>.
I have taken the source code from this link http://scn.sap.com/thread/715772 and it is working excellent for a static table to make the single cell editable based on the condition...but I am facing issue to append the variable of type 'LVC_T_STYL' (its a structure) to my fieldcat while building an internal table..
Please let me know your thoughts...
Thanks!
2013 Jan 25 9:24 PM
Hmmm; did not anticipate that. I was using a static table when I did the editable ALV.
I may have a better way to create the dynamic table, let me do a test to see if it is capable of handling adding a table to the structure.
Can you see if you have class cl_abap_typedescr in your system?
2013 Jan 25 9:27 PM
Steve,
To eloborate little bit more on the above issue..
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fldcat <<< this is of type LVC_T_FCAT which has a field DATATYPE of type CHAR 4 <<<<<
IMPORTING
ep_table = new_table.
So in the below code...
wa_it_fldcat-fieldname = 'field_style'.
wa_it_fldcat-datatype = 'lvc_t_styl'. <<<< this value is getting truncated to length 4
wa_it_fldcat-col_pos = index + 1.
APPEND wa_it_fldcat TO it_fldcat .
So property of field_style is not working properly..Hope i am clear in explaining the issue..
2013 Jan 25 9:30 PM
Yes I have that class in my system
Class/Interface CL_ABAP_TYPEDESCR
Method Short description
DESCRIBE_BY_DATA Description of data object type
DESCRIBE_BY_DATA_REF Description of data object type using reference
DESCRIBE_BY_NAME Description of object type using relative/absolute names
DESCRIBE_BY_OBJECT_REF Description of object type using reference
GET_BY_XTYPE
GET_DDIC_HEADER Returns the Nametab Header of a Dictionary Type
GET_DDIC_OBJECT Returns the Nametab Object of a Dictionary Type
GET_PROPERTY Returns Special Information for Specified Types
GET_RELATIVE_NAME Returns the relative name of a type
HAS_PROPERTY Ascertains whether a type has a specific attribute
IS_DDIC_TYPE Returns ABAP_TRUE if it is a Dictionary type
IS_INSTANTIATABLE Can Be Created of the Type (Data) Objects?
2013 Jan 25 9:42 PM
Yes, check the other fields in LVC_S_FCAT to see if there is a different field you can use, instead of DATATYPE to enter the type.
I have written a class here that will handle dynamic table creation and usage (without the usage of the Field Catalog, etc).
It would be used like this:
DATA:
gr_dyn_tab TYPE REF TO zcl_ca_dyn_tab_builder,
gr_tab TYPE REF TO data
.
START-OF-SELECTION .
CREATE OBJECT gr_dyn_tab .
gr_dyn_tab->add_ddic_field(
p_field_name = 'F_STYLE'
p_data_element = 'LVC_T_STYL'
) .
gr_dyn_tab->create_table( ) .
gr_tab = gr_dyn_tab->get_table( ) .
You can use the public methods to add individual fields, fields with base types (int4, c, etc), structures, DDIC Table types; pretty much whatever you want. Then when you are ready, you call create table method, then get table method.
It even has a method to return a data object of the same structure as the table.
Unfortunately, this would need to be built into your system before you can use it; so it may be better to see if a different field works for DDIC types in LVC_T_FCAT (I don't ever use that, so not familiar with it).
See attachment for copy of class (unfortunately, I could not attach pdf, so it is text file, not as readable).
Edit - If you did try to implement that class, you would need to create a couple custom exception classes as well, since I use TRY/CATCH exception handling for the most part and will create my own exception classes if I can't find a standard that works.
2013 Jan 25 10:10 PM
Hi Steve,
I sincerely thanking you for your support..
I am not very good at OOPS concepts..but I am can understand the code..iam trying to analyze your code but it is giving hard time to look at the code in the attachment as it in in unstructured format in text file...is there any way to send the code in structure format or can you put an Asterisk at the begining of the commented line so that i can paste in the editor to analyze.
I tried to do that but it is really getting hard to me to differentiate the comment vs code in the OOPS.
Hope I am not troubling you much..
Thanks again Steve..I really appreciate your time...
2013 Jan 25 10:28 PM
I figured it out and commented the code..Please ignore the above message. I will analyze the code and will let you know if I have any doubts.. Thanks!
2013 Jan 25 10:59 PM
Just so you know, this is a print out of a global class, created in SE24 or SE80; it may be hard to create if you are not too familiar with the tools for class creation in abap.
If you want to see what is happening, look at the add_ddic_field, add_generic_field, add_structure and create table methods. Those handle deciding what fields to add to a table and the actual creation of the internal table.
Everything is done through the RTTI classes (CL_ABAP_DATADESCR, CL_ABAP_TYPEDESCR, etc). So you can add any type without restrictions to your table structure.
If you are struggling with anything in the analysis of the code, I may be able explain it for you.
2013 Jan 28 10:21 PM
Hi Steve,
Can you please elaborate little bit more on how to read the changed values from the dynamic ALV..If you have any sample code that helps me alot..
Thanks!
2013 Jan 28 10:35 PM
Are you using CL_GUI_ALV_GRID to handle the change mode?
Please include with your post the name of the table you are submitting to your ALV object; this way, my example will make more sense.
2013 Jan 28 10:56 PM
Hi Steve,
For initial display i am using 'REUSE_ALV_GRID_DISPLAY' but for changed mode i can use
CL_GUI_ALV_GRID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'GRID'
i_callback_user_command = 'USER_COMMAND'
i_callback_top_of_page = 'ALV_TOP_OF_PAGE'
* is_layout =
it_fieldcat = t_fieldcat
TABLES
t_outtab = <t_dyntable> <= the table i am submitting for ALV.
I am trying to use the below code to capture the fields but it is giving dump while reading the second field on the ALV.
loop at <t_dyntable> into <fs_dyntable>.
WHILE sy-subrc = 0.
ASSIGN COMPONENT sy-index OF STRUCTURE <fs_dyntable> TO <fs1>.
ENDWHILE.
ENDLOOP.
Please suggest me. Let me know if you need any other details from me. Thanks.
2013 Jan 28 11:02 PM
Hi Steve,
I attacged my code until display the ALV. Please find the attached images.
2013 Jan 29 3:21 PM
First, in my opinion, you should just stick with one method or the other for displaying/changing the ALV; if you know how to setup change mode for the REUSE functions, stay with those; if not, learn how to use the CL_GUI_ALV_GRID.
The general concept to read the field changed by the ALV is as follows:
During the on change event handler for the ALV grid (not sure if REUSE Functions has something exactly similar) you should be provided with the row and column that has changed; and the value it was changed to.
FIELD-SYMBOLS:
<record> TYPE any,
<field> TYPE any
.
1. Read the record of the dynamic table where the record has changed using the row value
READ TABLE <t_dyntable> ASSIGNING <record>
INDEX row .
2. If this read is successful, use the column name to read the column that changed.
ASSIGN COMPONENT column_name
OF STRUCTURE <record>
TO <field> .
3. Assign the new value to the field
<field> = new_value .
Steps 1 & 2 allow you to get the field in the table that was changed. Step 3 actually updates the field in the Table.
If you are not familiar with ALV Grids (either REUSE or GL_GUI_ALV_GRID) in change mode; I'd suggest focusing on getting to the point where you can get change mode to work correctly, then focus on how to update the data dynamically.
2013 Jan 30 5:27 PM
2013 Jan 30 2:48 AM
2013 Jan 30 3:21 AM
Hi Alok,
I sincerely appreciate your response. I sent the code to your email id. Please refer to the below thread too to as it is the beginning of the discussion. Please let me know if you need any other details from me. Thanks once again.
http://scn.sap.com/thread/3296119
I am in CST time zone (Minneapolis, US). I will reply to your email as quickly as possible.
Thanks,
Uday.
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |