Help for conditional indexing in LV 2012?

Not that I need it, but I could not find any help on the new LV 2012 Conditional Indexing feature. It appears in the contextual menu, but the contextual help does not provide any hint of what this is, and it's nowhere to be found in the Help:
Solved!
Go to Solution.

Sorry it took so long to get back.  I had to download LV2012.  I think I still need to download the patch.  And also setup all of my setting and addons.  VIPM will be busy for the rest of the day.
Anyways, your benchmark is flawed.  Add outputs to the arrays and you will get radically different results.  I think some of your loops didn't exactly iterate the 10000 times since there was no output.  And I have no clue what you were trying to show with the second benchmark.
I didn't edit the labels yet.  So for those who haven't looked at the VI, "x/y" is the time for pre-allocating and keeping only what is needed.  "x/y 2" is the same except with another data type.  "x/y 3" is using the build array.  "x/y 4" is using the new conditional indexing feature.  Each one is looped 10000 times and the average is given (in ms).
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
Attachments:
Conditional Indexing Benchmark Results.PNG ‏3 KB
benchmarking.vi ‏24 KB

Similar Messages

  • Help for conditional formatting of a chart query!!!!!

    Dear Gurus,
    can Anyone give me a step by step for conditional formatting on the chart?
    I want my charts in my queries to be for example:
    green color when actual data <= version,
    Yellow if actual > version & 101%, red if actual >=101%.
    Thank You very much for sharing your Knowledge.

    Hi Des,
    You can achieve this through exceptional reporting. Choose your query & execute the report. click on the 'Exceptions & Conditions' button. create the exception you wish to have by choosing version & your key figure, in your case. when you click 'Transfer' it automatically gets activated & you can be able to view the colors set by you.
    Revert back for any modifications.
    Manoj

  • Help for with slow, glitchy (late 2012) iMac

    This is an ANSWER and not a request for help.  I didn't know where to post this and apologize for stepping where I shouldn't. 
    I have a Late 2012 iMac that has been crashing, running slow, and now worse;  all my documents and everything in Finder have disappeared.  I discovered a fix that may help others with similar issues.  I use my iMac for use with Logic Pro X and Mainstage where freezeups are a disaster.  I thought about this awhile and realized I had installed a new USB 3.0 external hard disk a few months ago when this issue began. I began to experience more and more crashes and extremely slow performance.  Beach-balls and slow performance were common.  But the last straw was when everything in Finder disappeared.  My Document and Application folders were empty.  If I clicked on "About This Mac" I saw nothing.    It took two tries to prove my theory, but here's what I did to make "the fix".  I unplugged the USB 3.0 drive and all USB and external devices.  I did a restore of OSX Mt Lion.  All was back to normal.  But after plugging in the USB 3.0 drive, all the afore mentioned problems came back.  I did one more restore, this time NOT connecting the USB 3.0 external hard disk.  Now I have gone some time and my iMac's speed is back to "incredible", no beach balls or any sign of slow performance in recording or running any other app.  Apparently, the 2012 iMac; although spec'ed to be USB 3.0 compatible, may not be all that compatible. Hope this helps someone!

    Likely the external drive is bad or defective cable.

  • Please help for create index for table in db2

    Dear Consultants,
    Our Production Servers have a problem, when user input materials in t-code VA01, the check data take long time to complete.
    I was create a incident on SAP Portal and they recommended to create a new index on table:
    VBRP in the order MANDT, AUBEL and AUPOS.
    but we don't sure how to do this, please help us !
    The SAP consultant message:
    " It was identified that there is one SQL statement which was
    responsible for the majority of the time spent during the VA01
    transaction. It accounted for around 49 seconds.
    The SQL statement was analysed and a selectivity analysis was carried
    out on certain fields specified in the WHERE clause. The statement is
    currently executed via a full table scan which is not an efficient
    access. It is therefore recommended to create a new index on table
    VBRP in the order MANDT, AUBEL and AUPOS. "
    Our System Landscape IS : DEV -> QAS -> Production and DataBase server : db2 9.07 , SAP ECC 6.0, windows server 2008
    Thanks and Best Regards,
    Hien Nguyen

    Hi Deepak,
    Could you please tell me the places where can i post the message for ABAPer, i don't know to choose : ABAP Development , ABAP Testing and Troubleshoo… or somthing else
    Sorry for my amateur !
    Thanks you very much.
    Best Regards,
    Hien

  • Ajax code help for conditional select list.

    Hi,
    I am using AJAX code for the first time, I dont have knowledge in java, I just grabbed the code from this forum and trying to manipulate to my requirement.
    My Requirement is I have two select lists, 1) host_name and 2) database_name.
    As soon as I pick/choose the value in host_name select list, I need to populate only those databases on that particular host. I dont want to submit the page for this action.
    Here is the code, I appreciate if some one can help.
    On demand Application Process code:
    declare
    l_counter number;
    l_o_name varchar2(2000);
    begin
    owa_util.mime_header('text/xml', FALSE );
    htp.p('Cache-Control: no-cache');
    htp.p('Pragma: no-cache');
    owa_util.http_header_close;
    htp.prn('<select>');
    for rec in (select "ORA_DATABASES_VW"."DATABASE_NAME" as "DATABASE_NAME",
         "ORA_DATABASES_VW"."DB_ID" as "DB_ID"
    from "ORA_DATABASES_VW"
    where "ORA_DATABASES_VW"."HOST_NAME" = :TEMP_ITEM)
    loop
    htp.prn('<option value="' || rec.db_id || '">' || rec.database_name || '</option>');
    end loop;
    htp.prn('</select>');
    end;
    HTML Header on that page:
    =================
    <script language="JavaScript1.1" type="text/javascript">
    function get_List_XML (source_item,target_item){   
    var v_Target = html_GetElement(target_item);
    var v_Source = html_GetElement(source_item);
    var ajaxResult = new htmldb_Get(null,&APP_ID.,'APPLICATION_PROCESS=POPULATE_LIST_XML',0);
    ajaxResult.add('TEMP_ITEM',source_item.value);
    var v_result_xml = ajaxResult.get('XML');
    if(v_result_xml && v_Target)
    var options_Contents = v_result_xml.getElementsByTagName("option");
    v_Count = options_Contents.length;
    v_Target.length = 0;
    for(var i=0;i<v_Count;i++)
    var v_opt_xml = v_result_xml.getElementsByTagName("option");
    appendToSelect(v_Target, v_opt_xml.getAttribute ('value'),v_opt_xml.firstChild.nodeValue)
    function appendToSelect(target_item, option_val, option_content) {  
    var v_Opt = document.createElement("option");
    v_Opt.option_value = option_val;
    if(document.all){
    target_item.options.add(v_Opt);
    v_Opt.innerText = option_content;
    }else{  
    v_Opt.appendChild(document.createTextNode(option_content));
    target_item.appendChild(v_Opt);
    </script>
    Form element attribute in the host_name column. P935_INSTANCE_DB_NAME is my page item for database_name.
    onchange="get_List_XML (this,'P935_INSTANCE_DB_NAME')"

    Here is the code, Hope I had put it correctly now.
    This is fixed now. Thanks a lot for helping out this. I have two questions.
    1) I am seeing very slowness when selecting the select list. Will these java code require much resource?
    2) I need to put this logic in many screens for many columns. So having these many application process and application items and java code, will the application performance get a hit? I know that application process are on-demand and get called only when required.
    declare
    l_counter number;
    l_o_name varchar2(2000);
    begin
    owa_util.mime_header('text/xml', FALSE );
    htp.p('Cache-Control: no-cache');
    htp.p('Pragma: no-cache');
    owa_util.http_header_close;
    htp.prn('<select>');
    for rec in (select "ORA_DATABASES_VW"."DATABASE_NAME" as "DATABASE_NAME",
    "ORA_DATABASES_VW"."DB_ID" as "DB_ID"
    from "ORA_DATABASES_VW"
    where "ORA_DATABASES_VW"."HOST_NAME" = :TEMP_ITEM)
    loop
    htp.prn('<option value="' || rec.db_id || '">' || rec.database_name || '</option>');
    end loop;
    htp.prn('</select>');
    end;
    HTML Header on that page:
    =================
    <script language="JavaScript1.1" type="text/javascript">
    function get_List_XML (source_item,target_item){
    var v_Target = html_GetElement(target_item);
    var v_Source = html_GetElement(source_item);
    var ajaxResult = new htmldb_Get(null,&APP_ID.,'APPLICATION_PROCESS=POPULATE_LIST_XML',0);
    ajaxResult.add('TEMP_ITEM',source_item.value);
    var v_result_xml = ajaxResult.get('XML');
    if(v_result_xml && v_Target)
    var options_Contents = v_result_xml.getElementsByTagName("option");
    v_Count = options_Contents.length;
    v_Target.length = 0;
    for(var i=0;i<v_Count;i++)
    var v_opt_xml = v_result_xml.getElementsByTagName("option");
    appendToSelect(v_Target, v_opt_xml.getAttribute ('value'),v_opt_xml.firstChild.nodeValue)
    function appendToSelect(target_item, option_val, option_content) {
    var v_Opt = document.createElement("option");
    v_Opt.option_value = option_val;
    if(document.all){
    target_item.options.add(v_Opt);
    v_Opt.innerText = option_content;
    }else{
    v_Opt.appendChild(document.createTextNode(option_content));
    target_item.appendChild(v_Opt);
    </script>
    Form element attribute in the host_name column. P935_INSTANCE_DB_NAME is my page item for database_name.
    onchange="get_List_XML (this,'P935_INSTANCE_DB_NAME')"
    }

  • Regarding Condition Index

    Hi All,
    With regards to condition index I have made the required tick in the condition type now when I am going into the master data with regards to creating condition records selecting the condition index tab by giving the input as the condition type, the system says that there are no records found, eventhough I have created the sales order  in the system, the access sequence consists of line item and sales order please advise if any other configuration needs to be done for condition index and how do I check if the configuration is complete.
    Kind Regards
    Atul

    Hi Condition indes only Specifies whether the system updates one or more condition indices when maintaining condition records. It depends whether you had created the combination of condition recored to determin if you can find the existing one, please be sure you had created the condition record via vk11.

  • How to install or attach or add the plugins '.mnu and .vlx' to autocad 2012 or 2013 (mac version). In windows, its 'menuload' and express tools, that helps for it. But this command doesn't exist in mac version. so is there any other command or solution?

    How to install or attach or add the plugins '.mnu and .vlx' to autocad 2012 or 2013 (mac version). In windows, its 'menuload' and express tools, that helps for it. But this command doesn't exist in mac version. so is there any other command or solution?

    Please see autocad support at autodesk.com
    http://docs.autodesk.com/ACD/2014/ENU/index.html?url=files/GUID-5E50A846-C80B-4F FD-8DD3-C20B22098008.htm,topicNumber=d30e484012

  • Some help for a simple condition statement...

    Hello! I wanted some help this condition statement...
    There are 2 tweens called "mc_sun" and "mc_welcome" I want to
    run when someone clicks on a button called "btn_home", but I don't
    know exactly how to write the code because I've already tried these
    2 modes and noone work at all!
    THANKS FOR THE HELP!!!!

    I think I know what you're after here ... but I could be
    wrong ;) but try this:

  • Conditional Help for Multiple Customers

    In the company I work for we have a software product that is configurable for different customers. I have a master online help that contains ALL the components. When we are sending a particular iteration of the software to a customer with their specific set of components exposed, I have to generate a specific help for this set of components. I have all the different components conditionalised so that I can pick and choose the components needed for each customer. Development here are trying to automate the software build process and I am wondering if there is any way for our build process, via a script or something, to pick the conditionalised topics from the master help system so that we do not have to generate a new help for every customer? Any help or advice would be great. Thanks.

    Bill Albing describes what you need to know in an article on my site.
    http://www.grainge.org/pages/authoring/command_line/command_line.htm
    See - Preparing a Layout for Each Deliverable.
    See www.grainge.org for RoboHelp and Authoring tips
    @petergrainge

  • Creation of condition index

    I created a condition table with one field "KUNRE - Bill-to party" to use as a condition index. 
    When I tried to access the table via path
    IMG > SD > Basic functions > Pricing >  Maintain condition index > Maintain condition tables for index
    I am getting an error "Table F 904 not Available - Message # VK016"
    Can you help in creating a condition index with example.
    Thanks,

    Hi Rama,
    This may help:
    http://help.sap.com/saphelp_40b/helpdata/en/93/743387546011d1a7020000e829fd11/content.htm
    Cheers

  • F4 HELP FOR ONLY SELECTED FIELD VALUES

    Hi,
    I have to display the F4 help for the selection screen field parameter. From the ICON table, I need to display the field ID values. In the ICON table, I have lot of field values for the field ID, but I need to display only 3 field values into F4 help.(like say @07@, @08@, @0A@ only at the F4 help).
    Thanks in advance.
    Regards
    Ramesh mavilla.

    Hi,
    See the follwoing code example
    REFRESH: I_DYNPREAD .
    CLEAR : I_DYNPREAD .
    I_DYNPREAD-FIELDNAME = 'P_KAPPL'.
    APPEND I_DYNPREAD.
    CLEAR I_DYNPREAD.
    L_REPID = SY-REPID .
    L_DYNNR = '1000' .
    CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
    DYNAME = L_REPID
    DYNUMB = L_DYNNR
    TABLES
    DYNPFIELDS = I_DYNPREAD.
    IF SY-SUBRC EQ 0.
    READ TABLE I_DYNPREAD INDEX 1.
    P_KAPPL = I_DYNPREAD-FIELDVALUE.
    ENDIF.
    REFRESH: I_DYNPREAD .
    CLEAR : I_DYNPREAD .
    REFRESH: I_KSCHL.
    TRANSLATE P_KAPPL TO UPPER CASE.
    TRANSLATE P_KVEWE TO UPPER CASE.
    SELECT KAPPL KVEWE KSCHL VTEXT FROM T685T
    INTO CORRESPONDING FIELDS OF TABLE I_KSCHL
    WHERE KAPPL = P_KAPPL
    AND KVEWE = P_KVEWE
    AND SPRAS = 'EN'.
    IF SY-SUBRC <> 0.
    MESSAGE E001(ZZ) WITH 'No Condition Type exist for Application'.
    *p_kappl ' and Usage' p_kvewe.
    ELSE.
    REFRESH: I_FIELDS.
    I_FIELDS-TABNAME = 'T685T'.
    I_FIELDS-FIELDNAME = 'KAPPL'.
    I_FIELDS-SELECTFLAG = ''.
    APPEND I_FIELDS.
    I_FIELDS-TABNAME = 'T685T'.
    I_FIELDS-FIELDNAME = 'KVEWE'.
    I_FIELDS-SELECTFLAG = ''.
    APPEND I_FIELDS.
    I_FIELDS-TABNAME = 'T685T'.
    I_FIELDS-FIELDNAME = 'KSCHL'.
    I_FIELDS-SELECTFLAG = 'X'.
    APPEND I_FIELDS.
    I_FIELDS-TABNAME = 'T685T'.
    I_FIELDS-FIELDNAME = 'VTEXT'.
    I_FIELDS-SELECTFLAG = ' '.
    APPEND I_FIELDS.
    CLEAR: V_SEL.
    CALL FUNCTION 'HELP_VALUES_GET_NO_DD_NAME'
    EXPORTING
    CUCOL = 0
    CUROW = 0
    DISPLAY = ' '
    SELECTFIELD = 'KSCHL'
    TITEL = 'Cond Type'
    IMPORTING
    IND =
    SELECT_VALUE = V_SEL
    TABLES
    FIELDS = I_FIELDS
    FULL_TABLE = I_KSCHL
    IF SY-SUBRC = 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDIF. "SY-SUBRC.
    And also go throw the link which it clears more about F4
    Check the link below for creating collective search help
    http://help.sap.com/saphelp_nw04/helpdata/en/cf/21ee86446011d189700000e8322d00/content.htm
    Check the ink below for creating elementary search help
    http://help.sap.com/saphelp_erp2005/helpdata/en/cf/21ee5f446011d189700000e8322d00/content.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/3d/e53642e2a3ab04e10000000a1550b0/content.htm
    <b>Reward with points if helpful.</b>
    Regards,
    Vijay

  • Creating an index: it's not possible to select a tablespace for the index

    Hi,
    we are using SQL-Developer Version 3.0.04.
    When creating an index it's not possible to select a tablespace for the index. The only choice which is offered by SQL-Developer is <DEFAULT>.
    The user itself has privileges on several other tablespaces - and therefore not just only on the default tablespace of the user.
    Any help will be appreciated
    Rgds
    JH

    Hi JH,
    Well, the capability is somewhat buried in the UI, but it is there.
    In the Create Index dialog ...
    1. Tick the "Advanced" check-box in the upper right-hand corner.
    2. Select "Properties" from the left-hand list (Definition, Properties, Partitions, DDL).
    3. Click the Storage Options... button
    4. Use the drop-down list to select the desired tablespace.
    Return to (2.) and select DDL to see that your tablespace choice is present.
    Regards,
    Gary
    SQL Developer Team
    Edited by: Gary Graham on Mar 7, 2012 5:06 PM
    And if all you see in the drop-down list is <DEFAULT>, then I would suggest rechecking the user's privileges. Or provide more details about your environment: OS / Database / JDK version, and so on.

  • How to update a large (over 4 million item) List(Of Byte) quickly by altering indexes contained in a Dictionary(Of Integer, Byte) where the Dictionaries keys are the indexes in the List(Of Byte) that need to be changed to the values for those indexes?

       I'm having some difficulty with transferring images from a UDP Client to a UDP Server. The issue is receiving the bytes necessary to update an original image sent from the Client to the Server and updating the Servers List(Of Byte) with the
    new bytes replacing bytes in that list. This is a simplex connection where the Sever receives and the Client sends to utilize the least amount of bandwidth for a "Remote Desktop" style application where the Server side needs image updates of whatever
    occurs on the Client desktop.
       So far I can tranfer images with no issue. The images can be be any image type (.Bmp, .Gif, .JPeg, .Png, etc). I was working with sending .JPeg's as they appear to be the smallest size image when a Bitmap is saved to a memory stream as type
    .JPeg. And then I am using GZip to compress that byte array again so it is much smaller. However on a loopback on my NIC the speed for sending a full size screen capture is not very fast as the Server updates fairly slowly unless the Clients screen capture
    Bitmap is reduced in size to about 1/3'd of the original size. Then about 12000 bytes or less are sent for each update.
       Due to .JPeg compression I suppose there is no way to get the difference in bytes between two .JPegs and only send those when something occurs on the desktop that alters the desktop screen capture image. Therefore I went to using .Bmp's as each
    .Bmp contains the same number of bytes in its array regardless of the image alterations on the desktop. So I suppose the difference in bytes from a second screen capture and an inital screen capture are what is different in the second image from the initial
    image.
       What I have done so far is save an initial Bitmap of a screen capture using a memory stream and saving as type .Bmp which takes less than 93 milliseconds for 4196406 bytes. Compressing that takes less than 118 milliseconds to 197325 bytes for
    the current windows on the desktop. When that is done PictureBox1 is updated from nothing to the captured image as the PictureBox's background image with image layout zoom and the PictureBox sized at 1/2 my screens width and 1/2 my screens height.
       Then I save a new Bitmap the same way which now contains different image information as the PictureBox is now displaying an image so its back color is no longer displayed (solid color Aqua) and the cursor has moved to a different location. The
    second Bitmap is also 4196406 in bytes and compressed it was 315473 bytes in size.
       I also just found code from this link Converting a Bitmap to a Byte Array (and Byte Array to Bitmap) which gets a byte array
    directly from a Bitmap and the size of that is 3148800 for whatever is full screen captured on my laptop. So I should be able to work with smaller byte arrays at some point.
       The issue I'm having is that once the Client sends an image of the desktop to the Server I only want to update the server with any differences occuring on the Clients desktop. So what I have done is compare the first screen captures bytes (stored
    in a List(Of Byte)) to the second screen captures bytes (stored in a List(Of Byte)) by using a For/Next for 0 to 4196405 where if a byte in the first screen captures List is not equal to a byte in the second screen captures List I add the index and byte of
    the second screen captures list to a Dictionary(Of Integer, Byte). The Dictionary then only contains the indexes and bytes that are different between the first screen capture and second screen capture. This takes about 125 milliseconds which I think is pretty
    fast for 4196406 byte comparison using a For/Next and adding all the different bytes and indexes for each byte to a Dictionary.
        The difference in Bytes between the inital screen capture and the second screen capture is 242587 as an example which changes of course. For that amount of bytes the Dictionary contains 242587 integers as indexes and 242587 bytes as different
    bytes totaling 485174 bytes for both arrays (keys, values).  Compressed the indexes go from 242587 to 43489 bytes and the values go from 242587 to 34982 bytes. Which means I will have to send 78, 481 bytes from the Client to the Server to update the display
    on the server. Quite smaller than the original 4196406 bytes of the second Bitmap saved to type .Bmp or the compressed size of that array which was 315473 bytes. Plus a few bytes I add as overhead so the server knows when an image array ends and how many packets
    were sent for the array so it can discard complete arrays if necessary since UDP is lossfull although probably not so much in current networks like it may originally have been when the internet started.
        In reality the data from the Client to the Server will mostly be the cursor as it moves and updating the Server image with only a few hundred bytes I would imagine at a time. Or when the cursor selects a Button for example and the Buttons
    color changes causing those differences in the original screen capture.
       But the problem is if I send the Dictionaries Indexes and Bytes to the Server then I need to update the original Bitmap List(Of Byte) on the server by removing the Bytes in the received informations Index locations array from the Servers Bitmap
    List(Of Byte) and replacing those Bytes with the Bytes in the received informations Byte array. This takes so long using a For/Next for however many indexes are in the received informations Index array to update the Bitmap List(Of Byte) on the server using
    "Bmp1Bytes.RemoveAt(Index As Integer)" followed by "Bmp1Bytes.Insert(Index As Integer, Item As Byte)" in the For/Next.
        I've tried various For/Next statements including using a new List(Of Byte) with If statements so If the the integer for the For/Next ='s the Key in a Dictionary(Of Integer, Byte) using a Counter to provide the Dictionaries Key value then
    the Dictionaries byte value will be added to the List(Of Byte) and the counter will increas by one Else the List(Of Byte) adds the original "Bmp1Bytes" byte at that index to the new List(Of Byte). This takes forever also.
       I also tried the same For/Next adding to a new Dictionary(Of Integer, Byte) but that takes forever too.
       I think I could use RemoveRange and AddRange to speed things up. But I don't know how to retrieve a contiguous range of indexes in the received indexes that need to be updated in the servers "Bmp1Bytes" List(Of Byte) from the received
    array of indexes and bytes which are in a Dictionary(Of Integer, Byte).  But I believe this would even be slower than some realistic method for replacing all Bytes in a List(Of Byte) when I have the indexes that need to be replaced and the bytes to replace
    them with.
       Even if I just used AddRange on a new List(Of Byte) to add ranges of bytes from the original "Bmp1Bytes" and the changes from the Dictionary(Of Integer, Byte) I think this would be rather slow. Although I don't know how to do that
    by getting contiguous ranges of indexes from the Dictionaries keys.
       So I was wondering if there is some method perhaps using Linq or IEnumerable which I've been unable to figure anything out which could do this.
       I do have some copy and pasted code which I don't understand how it works that I am using which I would guess could be altered for doing something like this but I can't find information that provides how the code works.  Or even if I did
    maybe I can't understand it. Like the code below which is extremely fast.
       Dim strArray() As String = Array.ConvertAll(Of Integer, String)(BmpComparisonDict.Keys.ToArray, Function(x) x.ToString())
    La vida loca

    Monkeyboy,
    That was quite a bit to read, but still a bit unclear. Could you put a specific list of goals/questions, asked in the smallest possible form?
    It seems like either you're making a program that monitors activity on your computer, or you're writing some kind of remote pc app.
    When you do get your bytes from using lockbits, keep in mind all the files header info would be lost. I think retaining the header info is worth the extra bytes.
    The other, thing: I'm not sure if you're taking 32bpp screen shots, but also keep in mind that the "whole desktop" is the final destination for blended graphics, if that makes sense. What I mean is that there is no need to capture an "alpha"
    channel for a desktop screenshot, as alpha would always be 255, this could save you 1 byte per pixel captured... Theres nothing "behind" the desktop, therefore no alpha, and every window shown above the desktop is already blended. I suggest using
    24Bpp for a full screen capture.
    Your X,Y information for the mouse could be stored as UINT16, this would save you a measly 2 bytes per location update/save.
    When you update your byte arrays, maybe you can turn the array into a stream and write to whatever index, however many bytes, that should prevent a "Shift" of bytes, and instead overwrite any bytes that "get in the way".
    ex
    Dim example As String = "This is an example."
    Dim insertString As String = "was"
    Dim insertBytes As Byte() = System.Text.Encoding.ASCII.GetBytes(insertString)
    Dim bytes As Byte() = System.Text.Encoding.ASCII.GetBytes(example)
    Dim modifiedBytes As Byte() = {}
    Using ms As New System.IO.MemoryStream(bytes)
    ms.Position = 5
    ms.Write(insertBytes, 0, 3)
    modifiedBytes = ms.ToArray
    End Using
    Dim newString As String = System.Text.Encoding.ASCII.GetString(modifiedBytes)
    'Notice how below there isn't the word "is" anymore, and that there isn't a
    'space.
    'This demonstrates that you overwrite existing data, versus shifting everything to
    'the right.
    'Returns: This wasan example.
    MsgBox(newString)
    “If you want something you've never had, you need to do something you've never done.”
    Don't forget to mark
    helpful posts and answers
    ! Answer an interesting question? Write a
    new article
    about it! My Articles
    *This post does not reflect the opinion of Microsoft, or its employees.
    Well it's too much to read. I was really tired when I wrote it. Even the below is too much to read but perhaps gets the point across of what I would like to do which I think
    Joel Engineer may have answered but I'm not sure. As I'm still too tired to understand that yet and research what he said in order to figure it out yet.
    But maybe the code below can provide the concept of the operation with the comments in it. But seeing as how I'm still tired it may be confused.
    Option Strict On
    Imports System.Windows.Forms
    Imports System.IO
    Imports System.IO.Compression
    Imports System.Drawing.Imaging
    Imports System.Runtime.InteropServices
    Public Class Form1
    Dim Bmp1Bytes As New List(Of Byte)
    Dim Bmp1BytesCompressed As New List(Of Byte)
    Dim Bmp2Bytes As New List(Of Byte)
    Dim BmpComparisonDict As New Dictionary(Of Integer, Byte)
    Dim BmpDifferenceIndexesCompressed As New List(Of Byte)
    Dim BmpDifferenceBytesCompressed As New List(Of Byte)
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    SomeSub()
    End Sub
    Private Sub SomeSub()
    ' Pretend this code is in UDP Client app. A screen capture is performed of the desktop. Takes about 90 milliseconds.
    Bmp1Bytes.Clear()
    Using BMP1 As New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
    Using g1 As Graphics = Graphics.FromImage(BMP1)
    g1.CopyFromScreen(0, 0, 0, 0, BMP1.Size)
    Cursor.Draw(g1, New Rectangle(Cursor.Position.X, Cursor.Position.Y, Cursor.Size.Width, Cursor.Size.Height))
    Using MS As New MemoryStream
    BMP1.Save(MS, System.Drawing.Imaging.ImageFormat.Bmp)
    Bmp1Bytes.AddRange(MS.ToArray)
    End Using
    End Using
    End Using
    Bmp1BytesCompressed.AddRange(Compress(Bmp1Bytes.ToArray))
    ' UDP Client app sends Bmp1BytesCompressed.ToArray to UDP Server which is the entire image of the desktop that the UDP
    ' Client is on. This image takes awhile to send since compressed it is about 177000 bytes from over 4000000 bytes.
    ' I will be using different code just to get the bytes from the actual Bitmap in the future. That is not important for now.
    ' Pretend the UDP Server has received the bytes, decompressed the array received into a List(Of Byte) and is displaying
    ' the image of the UDP Clients desktop in a PictureBox.
    ' Now the image on the UDP Clients desktop changes due to the mouse cursor moving as an example. Therefore a new Bitmap
    ' is created from a screen capture. This takes about 90 milliseconds.
    Bmp2Bytes.Clear()
    Using BMP2 As New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
    Using g1 As Graphics = Graphics.FromImage(BMP2)
    g1.CopyFromScreen(0, 0, 0, 0, BMP2.Size)
    Cursor.Draw(g1, New Rectangle(Cursor.Position.X, Cursor.Position.Y, Cursor.Size.Width, Cursor.Size.Height))
    Using MS As New MemoryStream
    BMP2.Save(MS, System.Drawing.Imaging.ImageFormat.Bmp)
    Bmp2Bytes.AddRange(MS.ToArray)
    End Using
    End Using
    End Using
    ' Now I have the original images bytes in Bmp1Bytes and the new images bytes in Bmp2Bytes on the UDP Client. But I don't
    ' want to send all of the bytes in Bmp2Bytes to the UDP Server. Just the indexes of and the bytes that are different in
    ' Bmp2Bytes from Bmp1Bytes.
    ' This takes less than 100 milliseconds for what I've tested so far where over 500000 bytes in Bmp2Bytes are different
    ' than the bytes in Bmp1Bytes. Usually that amount would be much less. But during testing I was displaying the image
    ' from Bmp1 bytes in a PictureBox so a large amount of data would change between the first screen shot, the PictureBox
    ' then displaying an image on the same PC and then the second screen shot.
    BmpComparisonDict.Clear()
    For i = 0 To Bmp1Bytes.Count - 1
    If Bmp1Bytes(i) <> Bmp2Bytes(i) Then
    BmpComparisonDict.Add(i, Bmp2Bytes(i))
    End If
    Next
    ' So now I have all the difference bytes and their indexes from Bmp2Bytes in the BmpComparisonDict. So I compress
    ' the indexes into on List and the Bytes into another List.
    BmpDifferenceIndexesCompressed.Clear()
    BmpDifferenceBytesCompressed.Clear()
    BmpDifferenceIndexesCompressed.AddRange(Compress(BmpComparisonDict.Keys.SelectMany(Function(d) BitConverter.GetBytes(d)).ToArray()))
    BmpDifferenceBytesCompressed.AddRange(Compress(BmpComparisonDict.Values.ToArray))
    ' Now pretend the UDP Client has sent both those arrays to the UDP Server which has added both decompressed arrays
    ' to a Dictionary(Of Integer, Byte). And the server has the original image decompressed bytes received in a List
    ' called Bmp1Bytes also.
    ' This is where I am stuck. The UDP Server has the Dictionary. That part was fast. However there is no
    ' fast method I have found for creating a new List(Of Byte) where bytes in the originally received List(Of Byte) that
    ' do not have to be altered are placed into a new List(Of Byte) except for the indexes listed in the
    ' Dictionary(Of Integer, Byte) that need to be placed into the appropriate index locations of the new List(Of Byte).
    ' The below example for doing so is exceptionally slow. Pretend UpdateDictionary has all of the decompressed indexes
    ' and bytes received by the UDP Server for the update contained within it.
    Dim UpdateDictionary As New Dictionary(Of Integer, Byte)
    Dim UpdatedBytes As New List(Of Byte)
    Dim Counter As Integer = 0
    For i = 0 To Bmp1Bytes.Count - 1
    If i = UpdateDictionary.Keys(Counter) Then ' Provides the index contained in the Keys for the Dictionary
    UpdatedBytes.Add(UpdateDictionary.Values(Counter))
    Counter += 1
    If Counter > UpdateDictionary.Count - 1 Then Counter = 0
    Else
    UpdatedBytes.Add(Bmp1Bytes(i))
    End If
    Next
    ' So what I'm trying to do is find an extremely fast method for performing something similar to what the
    ' above operation performs.
    End Sub
    Private Function Compress(BytesToCompress() As Byte) As List(Of Byte)
    Dim BytesCompressed As New List(Of Byte)
    Using compressedStream = New MemoryStream()
    Using zipStream = New GZipStream(compressedStream, CompressionMode.Compress)
    zipStream.Write(BytesToCompress, 0, BytesToCompress.Count)
    zipStream.Close()
    BytesCompressed.AddRange(compressedStream.ToArray)
    End Using
    End Using
    Return BytesCompressed
    End Function
    Private Function Decompress(BytesToDecompress() As Byte) As List(Of Byte)
    Dim BytesDecompressed As New List(Of Byte)
    Using DecompressedStream = New MemoryStream()
    Using zipStream = New GZipStream(DecompressedStream, CompressionMode.Decompress)
    zipStream.Write(BytesToDecompress, 0, BytesToDecompress.Count)
    zipStream.Close()
    BytesDecompressed.AddRange(DecompressedStream.ToArray)
    End Using
    End Using
    Return BytesDecompressed
    End Function
    End Class
    La vida loca

  • How to create a F4 help for a report selection screen field

    hi,
    can any one guide me to create F4 help for a field in a selection screen in a report program,plz give me a sample code

    hi,
    Here are the following ways
    1.with the help of match code objects we can create the F4 Functionality for Field.
    Syntax is :
    PARAMETERS: p_org LIKE t527x-orgeh MATCHCODE OBJECT zorg.
    2. One more thing is we can do it with Search Help's also.
    3. Even we can do it HELP Views also.
    Help Views:
    You have to create a help view if a view with outer join is needed as selection method of a search help
    The selection method of a search help is either a table or a view. If you have to select data from several tables for the search help, you should generally use a database view as selection method. However, a database view always implements an inner join. If you need a view with outer join for the data selection, you have to use a help view as selection method.
    All the tables included in a help view must be linked with foreign keys. Only foreign keys that have certain attributes can be used here. The first table to be inserted in the help view is called the primary table of the help view. The tables added to this primary table with foreign keys are called secondary tables.
    The functionality of a help view has changed significantly between Release 3.0 and Release 4.0. In Release 3.0, a help view was automatically displayed for the input help (F4 help) for all the fields that were checked against the primary table of the help view. This is no longer the case in Release 4.0.
    As of Release 4.0, you must explicitly create a search help that must be linked with the fields for which it is offered (see Linking Search Helps with Screen Fields ).
    Existing help views are automatically migrated to search helps when you upgrade to a release higher than 4.0.
    A help view implements an outer join, i.e. all the contents of the primary table of the help view are always displayed. You therefore should not formulate a selection condition for fields in one of the secondary tables of the help view. If records of these secondary tables cannot be read as a result of this selection condition, the contents of the corresponding fields of the secondary table are displayed with initial value.
    <REMOVED BY MODERATOR>
    Edited by: Alvaro Tejada Galindo on Feb 15, 2008 3:15 PM

  • How to get search help for 2nd  parameter based on the 1st parameter value

    Hi all!
       I have 2 parameters (material no, revision level). I have created a search help for revision level. It has an importing parameter :material no. and one exporting parameter : revision level.When I checked it, it's giving the revision values only for the specified.
    In my report , I have kept these 2 materials in my selection screen.For revision level , I have added the matchcode object which I have created. When I  pressed F4 for revision level, it's giving all the values irrespective of the material no. in the first parameter. How to solve it? Please suggest.

    Hi,
    Try this code filling internal table fields,
    DATA: BEGIN OF values,
            OID TYPE ZCL_OBJECT-OBJECTID,
            ODEC TYPE ZCL_OBJECT-OBJECT_DESC,
           END OF values,
           W_FIELD(10).
    DATA: ZCL_PROJECT-PROJECTID type zcl_project-projectid,
          ZCL_OBJECT-OBJECTID(5).
    DATA: progname TYPE sy-repid,
          dynnum   TYPE sy-dynnr,
          dynpro_values TYPE TABLE OF dynpread,
          field_value LIKE LINE OF dynpro_values,
          values_tab LIKE TABLE OF values.
    CALL SCREEN 100.
    *&      Module  VALUE_PROJECTID  INPUT
          text
    *MODULE VALUE_PROJECTID INPUT.
    CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
          EXPORTING
               tabname     = 'ZCL_PROJECT'
               fieldname   = 'PROJECTID'
               dynpprog    = progname
               dynpnr      = dynnum
               dynprofield = 'ZCL_PROJECT-PROJECTID'.
    *ENDMODULE.                 " VALUE_PROJECTID  INPUT
    *&      Module  VALUE_OBJECTID  INPUT
          text
    MODULE VALUE_OBJECTID INPUT.
       CALL FUNCTION 'DYNP_VALUES_READ'
           EXPORTING
                dyname             = progname
                dynumb             = dynnum
                translate_to_upper = 'X'
           TABLES
                dynpfields         = dynpro_values.
      READ TABLE dynpro_values INDEX 1 INTO field_value.
    W_FIELD = FIELD_VALUE-FIELDVALUE.
      SELECT  OBJECTID
              OBJECT_DESC
        FROM  ZCL_OBJECT
        INTO  (VALUES-OID,
               VALUES-ODEC)
    WHERE PROJECTID = FIELD_VALUE-FIELDVALUE.
       APPEND VALUES TO VALUES_TAB.
    ENDSELECT.
       CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
           EXPORTING
                retfield    = 'OID'
                dynpprog    = progname
                dynpnr      = dynnum
                dynprofield = 'ZCL_OBJECT-OBJECTID'
                value_org   = 'S'
           TABLES
                value_tab   = values_tab.
    ENDMODULE.                 " VALUE_OBJECTID  INPUT
    *&      Module  INIT  OUTPUT
          text
    MODULE INIT OUTPUT.
      progname = sy-repid.
      dynnum   = sy-dynnr.
      CLEAR: field_value, dynpro_values.
      field_value-fieldname = 'ZCL_PROJECT-PROJECTID'.
      APPEND field_value TO dynpro_values.
      IF SY-UCOMM = 'BACK'.
        LEAVE program.
    ENDIF.
    IF SY-UCOMM = 'ANS'.
       LEAVE  TO SCREEN  '0'.
    ENDIF.
    ENDMODULE.                 " INIT  OUTPUT
    START-OF-SELECTION.
    WRITE: / field_value-fieldvalue,
             W_FIELD.
      LOOP AT VALUES_TAB INTO VALUES.
        WRITE / VALUES.
      ENDLOOP.
      if sy-subrc <> 0.
        WRITE / field_value-fieldvalue.
      endif.
    Plzz reward points if it helps

Maybe you are looking for

  • How can I iterate through the TextObjects of a Report object?

    Post Author: EMoscosoCam CA Forum: Other Hello(Using Crystal Reports XI Release 2 and Visual Basic 6)I have the name of a TextObject as a string. I would like to make something like this:Dim objReport As CRAXDRT.Report' once initialized from an RPT f

  • Clicking noise from the HDD of the new Mac Mini

    I just recently purchased a new Mac mini to retire the Macbook pro from my leaving room (it was heating up too much when running Plex). The problem I find is that the new Mini's HDD (toshiba 5400) has a loud clicking noise which on the MBP I can't ba

  • Window manager that can scale individual window or virtual desktop?

    Xfig doesn't work well on high DPI screens, especially for users whose vision is not that great. The problem is that there is no configuration option to scale elements such as lines. I see two ways to solve the problem: Scale the Xfig window. Scale t

  • Do I need the XP product key when restoring from the backup CD's?

    I bought a Thinkpad z60t about six years ago from a computer dealer on the internet.  It came with Windows XP and Microsoft Office installed.  The first thing I did when I received it was to burn the backup (restore) CD's (eight of them, I believe).

  • Can't print to cups printer on linux

    Hello, in my application I use a StyleReport to print data from database. On windows everything work fine. Because I want my app to be plattform independend I've installed debian on a workstation and a cups lpd printer. I can use that printer with mo