Format for Predefined lists of repeated measurements with changing variables

Hi,
I am a scientist and trying to draw an instrument ("writing a script" sounded wrong for LabView ) that is supposed to perform repeated measurements in an imaging experiment.
I want to be able to give the instrument a list that defines the values for several variables for each repetition, because I want it to do different things in different episodes of the experiments and/or alternate different acquisition methods. In this way I can use the same script for a wide range of experimental paradigms.
I am trying to decide on the format in which I could write the sequence to LabView to read. I looked into XML, but the LabView scheme seems pretty useless. If I use a textfile I would have to program a parseing script myself. If I use binary files I need to program an editor.
I also thought about whether I want a line by line execution protocoll or just changing variables and leaving the execution protocoll integrated in the instrument. However, the latter would reduce the versatility.
What would you think is a good way to do it?
In general each measurement consists of:
0. wait for a defined time (always the same)
1. light on (different light sources)
2. acquire images (different durations, exposure times, frames numbers)
3. trigger a device (not in all repetitions, maybe changing devices in future)
4. turn on a channel (changing channels)
5. acquire images (different durations, exposure times, frames numbers - also different from step 2)
6. turn off the channel (same as in 4)
7. acquire images (different durations, exposure times, frames numbers - also different from step 2 and 5)
8. light off (same source as 1)
So there is basically a repetitive pattern. The image acquitisition 'epics' are performed by the same device, everything else is switching on and off channels of a NI PCI.
Dennis
P.S. I use LabView 2009

I'm in agreement that your best bet would be a simple CSV or tab delimited file.  You can edit these in Excel, which makes the writing a lot easier.  There is the Read Spreadsheet File VI which can give you a 2D array for your steps and parameters.
So, to keep it simple, use a csv.
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines

Similar Messages

  • Which format for external hard drive to use with time machine backup and connect to windows laptop?

    Hi!  I have an external hard drive on which I have transferred my iTunes library (just mine - not others).  I have also a folder containing just films (some but not all of which are in iTunes too)  Everything has been working just fine until yesterday I noticed that Time Machine was not including the external hard drive in back up as it wasn't formatted.  So I have moved everything back to the Mac hard drive and and ready to format the external hard drive - but understand that if I do the contents cannot be opened from a windows laptop ...  is that right?  Is there are format I could choose that would allow Time Machine to back up and allow Windows to open as well (the idea being that I take the external hard drive with me on holidays etc!!)  Many thanks for any advice. 

    ok - I understand.  I have managed so far to format the drive (on windows) to exFAT file system - which apparently works with both Windows and Mac - but you're  correct - it will not be included in time machine backup as I have checked the back up files and Samsung is not showing.  Reckon I'm onto having to buy yet another portable hard drive just for windows - or of course buy myself a new mac book!!  Can I ask you please - does the drive have to be clear of everything before I change the format - or can I change it with the files still in there?  Also, got any quick ways duplicating the files onto another External Hard drive (for use on the windows laptop)  At the moment the files are taking 2/3 hours + to copy over!  Thank you! 

  • I'm looking for a list of printers compatible with Airport Extreme

    My existing HP printer is not compatible with Airport Extreme and I want to be able to print from all of my Apple devices. I'm looking for a new photo quality printer / scanner / copier which will work wirelessly with all my devices.

    Sorry, but there is no "official" list of printers that Apple provides that indicate which are fully functional with the AirPorts. One "unofficial" list has been maintained by iFelix and may be worth taking a look at.

  • RAW Camera Format for webos like Apple can this with iPad?

    Hi all,
    is there a chance to get in the near future (eventually with the Touchpad Release) a Software to view Picture Raw Formats like Nikons nef, Canons crw and others?
    The Software for the "Apples iPad Camera Connection Kit" is continously updated by apple to support current Cameras and view RAW files (Pictures) on the IPad. This will be the greatest benefit to buy an Touchpad, if this could be done by hp or other companys.
    Do you think this software will ever exist?
    Thanks a lot and greets from germany
    Andreas
    Post relates to: Pre Plus p100ueu (02)

    Hello all,
    I have Mac OS X 10.4.11 Tiger and have iPhoto '08. It supports RAW, and therfore Tiger will support RAW. Now I have read up and see you have a Sony A200? Well see if the A200 is compatible with iPhoto '08 and we can go from there. Also, iPhoto should be compatible since it works with almost all cameras ( I have yet to hear about it not workin with any cameras yet) so I'm assuming it will work. But I cannot guarantee that.
    Regards,
    Your Fellow eMac User,
    Matthew Knice

  • Originally formatted for Mac, now need to use with Windows....

    I have a 1st Gen iPod Mini that I had formatted and used (rarely) with my Mac. I now want to wipe it clean and sync it to my iTunes for Windows (7.0.1.8). I am using a brand new Apple Dock Connector to USB 2.0 since my PC isn't able to handle the Firewire cable the Mini came with.
    I connected my Mini to my PC (new Dell laptop) and it pops up a dialogue box stating that the iPod appears corrupted and advised Restoring and/or disconnecting and reconnecting. I reconnected and that did not fix. I then tried to Restore and got this error: "Problem downloading software; requested resource not found".
    I CAN see my iPod in iTunes. I've read a number of different links but I'm at a loss. I think that what I need to do is reformat my Mini to use iTunes for Windows but can't seem to get that far. Any suggestions would be greatly appreciated as this is...suprise...supposed to be a holiday gift for someone!Thanks.

    Have you seen these?
    http://docs.info.apple.com/article.html?artnum=304309
    http://docs.info.apple.com/article.html?artnum=304468

  • What format for my external drive allows use with Mac and Windows?

    I got an external hard disk (1 tr) and i want to used it for my windows and mac, i read i can have two partitions one for mac and one for windows, but i dont really want to have two parts, and I read i can format it by fat32 and i can write and read on both os, is that true?
    I want to use it for movies, os backups, and files..
    Is it true that i can only save files up to 4 GB when the format is fat32?
    please advise..

    It this case you would need to to go to "Disk Utility" on mac and select 3 partions which will be under the Parition Layout in my screen shot below. "Current" is grayed out that will drop down select 3 partitions and make one NTFS, second Mac OS Extended, third FAT32. Using the FAT32 for both Mac and Windows but the files have to be under 4GB each.

  • Query for a list of FIFO layers with quantity and FIFO cost

    Hi,
    Is there a report/ query where I could get something as follows:
    ItemCode1 - Open FIFO Layer1 - Quantity 1 - Open FIFO Layer1 Cost - Open FIFO Layer1 Inventory Value
    ItemCode1 - Open FIFO Layer2 - Quantity 2 - Open FIFO Layer2 Cost - Open FIFO Layer2 Inventory Value
    ItemCode1 - Open FIFO Layer3 - Quantity 3 - Open FIFO Layer3 Cost - Open FIFO Layer3 Inventory Value
    The total quantity and the total value of this would match the total quantity and total value of the Inventory Audit Report.
    I know OINM table has all detailed transactions, but I find it difficult to get what I want from OINM.
    Thanks,
    Ajay Audich

    Hi Ajay.....
    Please do refer Inventory Valuation Simulation Report for FIFO Method. It gives you the details as you required........
    Regards,
    Rahul

  • How to repeat duplication with changing values?

    Hello all!
    First of all - english is not my first language so I don't really know how to explain this in an easy way (and therefore I don't know what to search for either). Maybe a better topic title is needed as well.
    I made an illustration to show what I need, I guess it's easier to understand than my explanation below...
    QUESTION: I have a circle. I want to make a copy of this circle for, say, 80 % of the original size. I'd like to repeat the duplication so the next copy have the same distance to the second circle as between the first two circles (in other word the percentage would change between tranformations) - and so on.
    Hopefully there is some easy way to achieve this so I don't have to do it manually.
    Thanks in advance for any advice!
    (Btw, I use CS5)

    Thank you for your quick reply! This works! I found out another way to do it (sometimes it seems to help with the thinking process just to start a new topic...); the Transition-tool. The downside is that I cannot insert the distance that I wan't to use, so you're advice may be better.
    Thanks again!

  • Applet error with changing variable data after several runs....

    Can anyone give some advice on the following:
    I have a java card program running on a gsm sim:
    The program makes use of member variables which
    contain data that is reused and rewritten all the time.
    The member variables are all declared as (for example)
    private byte[] myVariable = {(byte) ' ',(byte) ' '};
    And the values stored in the variables are changed
    everytime the program gets an event. This works fine
    for about 15 - 35 times and then suddenly the program
    can't execute any code that accesses these variables (the
    other parts that simply display a message or the menu and that
    never change their variable's value have no problem running on).
    Does anyone know a specific reason for this ? Should I rather
    use my own EF entries on the SIM to keep data ? Is there any
    specific rules around using variables and reusing them ?
    The only fix (once this occurs) seems to be to reload the applet
    onto the card...resetting the phone etc. does not change this
    behaviour....
    Any help would be much appreciated...

    I don't think that your problem lies in your private member variable.
    From my point of view it is more likely that you some kind of memory allocation problem somewhere.
    Anyway it is always a good idea to post a minimal applet which reproduces the erroneous behaviour.

  • Smarform for pick list

    Hi,
    Could anybody post the program and form in XML format for pick list smartform /SMB40/SDPLK_L  ?
    I could not find this smartform in the preconfigured package in market place.
    Thanks Appreciated.
    Anna

    Here is the print program:
    * Print of pickinglist for one single delivery note with Smart Form
    REPORT /bpr3pf/rvadek01 LINE-COUNT 100 MESSAGE-ID vn.
    TABLES: vbco3,                         "Communicationarea for view
            vblkk,                         "Headerview
            vblkp,                         "Itemview
            ltak,                          "Transportauftrag
            adrs,                          "Communicationarea for Address
            riserls,                       "Serialnumbers
            komser,                        "Communicationarea Serialnumbers
            tvst, tvstt,                   "Shipping point
            vbkok, vbpok.
    TABLES: nast,                          "Messages
            *nast,                         "Messages
            tnapr,                         "Programs & Forms
            itcpo,                         "Communicationarea for Spool
            arc_params,                    "Archive parameters
            toa_dara,                      "Archive parameters
            addr_key.                      "Adressnumber for ADDRESS
    TYPE-POOLS szadr.
    DATA: retcode     LIKE sy-subrc,       "Returncode
          xvbeln      LIKE likp-vbeln,
          xkomau      LIKE likp-vbeln,
          xscreen(1)  TYPE c.              "Output on printer or screen
    DATA: BEGIN OF tvblkp OCCURS 0.        "Internal table for items
            INCLUDE STRUCTURE vblkp.
    DATA: END OF tvblkp.
    DATA: BEGIN OF tsernr OCCURS 0.        "Internal table for serialnumbers
            INCLUDE STRUCTURE riserls.
    DATA: END OF tsernr.
    DATA: BEGIN OF tsernr_print OCCURS 0.
            INCLUDE STRUCTURE komser.
    DATA: END   OF tsernr_print.
    DATA:  BEGIN OF tltap OCCURS 50.       "TA-Positionen
            INCLUDE STRUCTURE ltap.
            INCLUDE STRUCTURE ltap1.
    DATA:  END OF tltap.
    DATA: BEGIN OF svblkp.
            INCLUDE STRUCTURE vblkp.
    DATA: END OF svblkp.
    INCLUDE /smb40/vblpdata.
    *include vblpdata.
    INCLUDE /smb40/vbfadata.
    *include vbfadata.
    INCLUDE /smb40/vbukdata.
    *include vbukdata.
    INCLUDE /smb40/vbupdata.
    *include vbupdata.
    INCLUDE /smb40/vbbddata.
    *include vbbddata.
    INCLUDE /smb40/vbpadata.
    *include vbpadata.
    INCLUDE /smb40/sadrdata.
    *include sadrdata.
    *       FORM ENTRY                                                    *
    *       Steuerung des Drucks                                          *
    FORM entry USING return_code us_screen.
      CLEAR retcode.
      xscreen = us_screen.
      PERFORM processing USING us_screen.
      IF retcode NE 0.
        return_code = 1.
      ELSE.
    * Kommimengen an Lieferungen zurückgeben, aber nicht bei Druckansicht
        IF xscreen = ' '.
          PERFORM delivery_update.
        ENDIF.
        return_code = 0.
      ENDIF.
    ENDFORM.                    "entry
    *       FORM PROCESSING                                               *
    *  -->  PROC_SCREEN                                                   *
    FORM processing USING proc_screen.
      REFRESH: xlips,
               xvbfa,
               xvbuk,
               xvbup,
               yvbfa,
               yvbuk,
               yvbup.
      PERFORM get_data.
      CHECK retcode = 0.
      PERFORM get_comm USING proc_screen tvst-aland.
      CHECK retcode = 0.
      PERFORM user_exit1.
      PERFORM smartform_print.
      CHECK retcode = 0.
    ENDFORM.                    "processing
    *       S U B R O U T I N E S                                         *
    *       FORM DELIVERY_UPDATE                                          *
    *       Ergänzen Lieferung um Kommissionierinformation                *
    * Ergänzen der Lieferungen um Kommissionierinformation
    FORM delivery_update.
      DATA: BEGIN OF hvbpok OCCURS 10.     "Lieferpositionen Kommiss.
              INCLUDE STRUCTURE vbpok.
      DATA: END OF hvbpok.
      DATA: BEGIN OF sav_nast.
              INCLUDE STRUCTURE nast.
      DATA: END OF sav_nast.
    * DATA: SYNC_FLAG TYPE C.             "synchrone Verbuchung?
    * Füllen Lieferkopfdaten für Kommi-Update
      vbkok-vbeln_vl = xvbeln.
      vbkok-vbeln = vblkk-komau.
    * Füllen Positionsdaten zu Liefernr.
      LOOP AT tvblkp.
        hvbpok-vbeln_vl = tvblkp-vbeln.
        hvbpok-posnr_vl = tvblkp-posnr.
        hvbpok-posnn = tvblkp-posnr.
        hvbpok-vbeln = vblkk-komau.
        hvbpok-vbtyp_n = 'Q'.
        hvbpok-pikmg = tvblkp-komng.
        hvbpok-meins = tvblkp-meins.
        hvbpok-ndifm = 0.
        hvbpok-taqui = ' '.
        hvbpok-charg = tvblkp-charg.
        hvbpok-matnr = tvblkp-matnr.
        hvbpok-brgew = tvblkp-brgew.
        hvbpok-gewei = tvblkp-gewei.
        hvbpok-volum = tvblkp-volum.
        hvbpok-voleh = tvblkp-voleh.
        hvbpok-orpos = 0.
        APPEND hvbpok.
      ENDLOOP.
    * IF NAST-VSZTP <> 4.
    *    SYNC_FLAG = 'X'.
    * ELSE.
    *    SYNC_FLAG = ' '.
    * ENDIF.
      sav_nast = nast.
      CALL FUNCTION 'SD_DELIVERY_UPDATE_PICKING'
        EXPORTING
          nicht_sperren = 'X'
          vbkok_wa      = vbkok
          aufrufer_t    = 'X'
        TABLES
          vbpok_tab     = hvbpok.
      nast = sav_nast.
    * Freigabe an Datenbank
    * COMMIT WORK.
    ENDFORM.                    "delivery_update
    *       FORM get_comm                                               *
    *  -->  US_SCREEN  Output on screen                                   *
    *                  ' ' = printer                                      *
    *                  'X' = screen                                       *
    *  -->  US_COUNTRY County for telecommunication and SET COUNTRY       *
    FORM get_comm USING us_screen us_country.
      DATA: lvs_itcpo         TYPE   itcpo,
            lvf_device(30)    TYPE   c,
            lvf_dialog(1)     TYPE   c   VALUE ' ',
            lvs_recipient     LIKE   swotobjid,
            lvs_sender        LIKE   swotobjid,
            lvs_snast         TYPE   snast,
            lvf_program       LIKE   sy-repid,
            lvs_comm_type     TYPE   ad_comm,
            lvs_comm_values   TYPE   szadr_comm_values.
    * reset return code
      retcode = 0.
    * if there is a communication strategy used ...
      IF NOT nast-tcode IS INITIAL.
    *   ... use stratagy to get communication type
        CALL FUNCTION 'ADDR_GET_NEXT_COMM_TYPE'
             EXPORTING
                  strategy           = nast-tcode
    *             ADDRESS_TYPE       =
    *             ADDRESS_NUMBER     = VBDKA-ADRNR
    *             PERSON_NUMBER      = VBDKA-ADRNP
                  address_number     = addr_key-addrnumber
                  person_number      = addr_key-persnumber
             IMPORTING
                  comm_type          = lvs_comm_type
                  comm_values        = lvs_comm_values
    *        TABLES
    *             STRATEGY_TABLE     =
             EXCEPTIONS
                  address_not_exist  = 1
                  person_not_exist   = 2
                  no_comm_type_found = 3
                  internal_error     = 4
                  parameter_error    = 5
                  OTHERS             = 6.
        IF sy-subrc <> 0.
          retcode = sy-subrc.
          syst-msgty = 'E'.
          PERFORM protocol_update.
        ENDIF.
      ENDIF.
    * convert communication data
      MOVE-CORRESPONDING nast TO lvs_snast.
      MOVE sy-repid           TO lvf_program.
      CALL FUNCTION 'CONVERT_COMM_TYPE_DATA'
           EXPORTING
                pi_comm_type              = lvs_comm_type
                pi_comm_values            = lvs_comm_values
                pi_screen                 = us_screen
    *           PI_NEWID                  =
                pi_country                = us_country
                pi_repid                  = lvf_program
                pi_snast                  = lvs_snast
           IMPORTING
                pe_itcpo                  = lvs_itcpo
                pe_device                 = lvf_device
                pe_mail_recipient         = lvs_recipient
                pe_mail_sender            = lvs_sender
           EXCEPTIONS
                comm_type_not_supported   = 1
                recipient_creation_failed = 2
                sender_creation_failed    = 3
                OTHERS                    = 4.
      IF sy-subrc <> 0.
        retcode = sy-subrc.
        syst-msgty = 'E'.
        PERFORM protocol_update.
      ENDIF.
      CHECK retcode EQ 0.
    * if there is no communication type
      IF  lvs_comm_type IS INITIAL.
    *   set device
        CASE nast-nacha.
          WHEN '1'.
            lvf_device = 'PRINTER'.
          WHEN '2'.
            lvf_device = 'TELEFAX'.
            lvs_itcpo-tdtelenum = nast-telfx.
            IF nast-tland IS INITIAL.
              lvs_itcpo-tdteleland = us_country.
            ELSE.
              lvs_itcpo-tdteleland = nast-tland.
            ENDIF.
            lvs_itcpo-tdsenddate = nast-vsdat.
            lvs_itcpo-tdsendtime = nast-vsura.
            lvs_itcpo-tdfaxuser  = nast-usnam.
          WHEN '3'.
            lvf_device = 'TELETEX'.
            lvs_itcpo-tdtelenum = nast-teltx.
            IF nast-tland IS INITIAL.
              lvs_itcpo-tdteleland = us_country.
            ELSE.
              lvs_itcpo-tdteleland = nast-tland.
            ENDIF.
            lvs_itcpo-tdsenddate = nast-vsdat.
            lvs_itcpo-tdsendtime = nast-vsura.
          WHEN '4'.
            lvf_device = 'TELEX'.
            lvs_itcpo-tdtelenum = nast-telx1.
            IF nast-tland IS INITIAL.
              lvs_itcpo-tdteleland = us_country.
            ELSE.
              lvs_itcpo-tdteleland = nast-tland.
            ENDIF.
            lvs_itcpo-tdsenddate = nast-vsdat.
            lvs_itcpo-tdsendtime = nast-vsura.
          WHEN OTHERS.
            lvf_device = 'PRINTER'.
        ENDCASE.
      ENDIF.
    * fill structure itcpo
      itcpo = lvs_itcpo.
      SET COUNTRY us_country.
    *  include rvadopfo.
    ENDFORM.                    "get_comm
    *       FORM GET_DATA                                                 *
    *       General provision of data for the form                        *
    FORM get_data.
      DATA: vblkp_lines      TYPE p.
    * Beschaffen View
      xvbeln = nast-objky.
      CALL FUNCTION 'RV_DELIVERY_PICK_VIEW'
        EXPORTING
          vbeln     = xvbeln
          zweck     = 'D'
          spras     = nast-spras
        IMPORTING
          vblkk_wa  = vblkk
        TABLES
          vblkp_tab = tvblkp
        EXCEPTIONS
          OTHERS    = 1.
      IF sy-subrc NE 0.
        PERFORM protocol_update.
      ENDIF.
    * gibt es zu kommissionierende Positionen, ggf. sortieren
      DESCRIBE TABLE tvblkp LINES vblkp_lines.
      IF vblkp_lines GT 0.
    * Nummernvergabe Kommissionierauftrag
        CLEAR vblkk-komau.
        CALL FUNCTION 'NUMBER_GET_NEXT'
          EXPORTING
            nr_range_nr = '01'
            object      = 'SD_PICKING'
          IMPORTING
            number      = vblkk-komau
          EXCEPTIONS
            OTHERS      = 1.
        IF sy-subrc NE 0.
        ENDIF.
        IF vblkk-komau IS INITIAL.
          vblkk-komau = sy-datum+2.
          vblkk-komau+6(4) = sy-uzeit(4).
        ENDIF.
        PERFORM sort_pick_list.
        retcode = 0.
      ELSE.
        retcode = 4.
        syst-msgid = 'VN'.
        syst-msgno = '202'.
        syst-msgty = 'E'.
        syst-msgv1 = vblkk-vbeln.
        PERFORM protocol_update.
        CHECK 1 = 2.
      ENDIF.
    * Lesen Versandstelle
      IF vblkk-vstel EQ space.
        CLEAR: tvst, tvstt.
      ELSE.
        SELECT SINGLE * FROM tvst WHERE vstel EQ vblkk-vstel.
        IF sy-subrc NE 0.
          CLEAR tvst.
          syst-msgid = 'VN'.
          syst-msgno = '203'.
          syst-msgty = 'E'.
          syst-msgv1 = 'TVST'.
          syst-msgv2 = syst-subrc.
          PERFORM protocol_update.
        ENDIF.
        SELECT SINGLE * FROM tvstt WHERE spras EQ nast-spras
                                     AND vstel EQ vblkk-vstel.
        IF sy-subrc NE 0.
          CLEAR tvstt.
          syst-msgid = 'VN'.
          syst-msgno = '203'.
          syst-msgty = 'E'.
          syst-msgv1 = 'TVSTT'.
          syst-msgv2 = syst-subrc.
          PERFORM protocol_update.
        ENDIF.
      ENDIF.
    ENDFORM.                    "get_data
    *       FORM GET_SERIAL_NO                                            *
    *       In this routine the serialnumbers are fetched from the        *
    *       database.                                                     *
    FORM get_serial_no.
      REFRESH tsernr.
      REFRESH tsernr_print.
      CHECK vblkp-anzsn > 0.
    * Read the Serialnumbers of a Position.
      CALL FUNCTION 'SERIAL_LS_PRINT'
        EXPORTING
          vbeln  = vblkp-vbeln
          posnr  = vblkp-posnr
        TABLES
          iserls = tsernr.
    * Process the stringtable for Printing.
      CALL FUNCTION 'PROCESS_SERIALS_FOR_PRINT'
        EXPORTING
          i_boundary_left             = '(_'
          i_boundary_right            = '_)'
          i_sep_char_strings          = ',_'
          i_sep_char_interval         = '_-_'
          i_use_interval              = 'X'
          i_boundary_method           = 'C'
          i_line_length               = 50
          i_no_zero                   = 'X'
          i_alphabet                  = sy-abcde
          i_digits                    = '0123456789'
          i_special_chars             = '-'
          i_with_second_digit         = ' '
        TABLES
          serials                     = tsernr
          serials_print               = tsernr_print
        EXCEPTIONS
          boundary_missing            = 01
          interval_separation_missing = 02
          length_to_small             = 03
          internal_error              = 04
          wrong_method                = 05
          wrong_serial                = 06
          two_equal_serials           = 07
          serial_with_wrong_char      = 08
          serial_separation_missing   = 09.
      IF sy-subrc NE 0.
        PERFORM protocol_update.
      ENDIF.
    ENDFORM.                    "get_serial_no
    *       FORM SMARTFORM_PRINT
    FORM smartform_print.
      DATA: e_werks LIKE tvblkp-werks VALUE ' ',
            e_lgort LIKE tvblkp-lgort VALUE ' ',
            e_lgnum LIKE tvblkp-lgnum VALUE ' ',
            e_mbdat LIKE tvblkp-mbdat VALUE IS INITIAL.
      DATA: lf_fm_name            TYPE rs38l_fnam.
      DATA: ls_control_param      TYPE ssfctrlop.
      DATA: ls_composer_param     TYPE ssfcompop.
      DATA: ls_recipient          TYPE swotobjid.
      DATA: ls_sender             TYPE swotobjid.
      DATA: lf_formname           TYPE tdsfname.
      DATA: ls_addr_key           LIKE addr_key.
      CLEAR retcode.
    *  nast_key = objky.
      PERFORM set_print_param USING      ls_addr_key
                              CHANGING ls_control_param
                                       ls_composer_param
                                       ls_recipient
                                       ls_sender
                                       retcode.
    *Get the Smart Form name.
      IF NOT tnapr-sform IS INITIAL.
        lf_formname = tnapr-sform.
      ELSE.
        MESSAGE e001(/smb40/ssfcomposer).
      ENDIF.
    * determine smartform function module for invoice
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
           EXPORTING  formname           = lf_formname
    *                 variant            = ' '
    *                 direct_call        = ' '
           IMPORTING  fm_name            = lf_fm_name
           EXCEPTIONS no_form            = 1
                      no_function_module = 2
                      OTHERS             = 3.
      IF sy-subrc <> 0.
    *   error handling
        retcode = sy-subrc.
        IF sy-subrc = 1.
          MESSAGE e001(/smb40/ssfcomposer).
        ENDIF.
        IF sy-subrc = 2.
          MESSAGE e002(/smb40/ssfcomposer).
        ENDIF.
        PERFORM protocol_update.
      ENDIF.
      CALL FUNCTION lf_fm_name
        EXPORTING
           archive_index              = toa_dara
    *   ARCHIVE_INDEX_TAB          =
           archive_parameters         = arc_params
           control_parameters         = ls_control_param
    *   MAIL_APPL_OBJ              =
           mail_recipient             = ls_recipient
           mail_sender                = ls_sender
           output_options             = ls_composer_param
           user_settings              = ' '
           vblkk                     = vblkk
           TABLES
                tvblkp                     = tvblkp
    * IMPORTING
    *   DOCUMENT_OUTPUT_INFO       =
    *   JOB_OUTPUT_INFO            =
    *   JOB_OUTPUT_OPTIONS         =
    EXCEPTIONS
    formatting_error           = 1
    internal_error             = 2
    send_error                 = 3
    user_canceled              = 4
    OTHERS                     = 5
      IF sy-subrc <> 0.
        retcode = sy-subrc.
        PERFORM protocol_update.
    * get SmartForm protocoll and store it in the NAST protocoll
        PERFORM add_smfrm_prot.
      ENDIF.
    ENDFORM.                    "smartform_print
    *       FORM PROTOCOL_UPDATE                                          *
    *       The messages are collected for the processing protocol.       *
    FORM protocol_update.
      CHECK xscreen = space.
      CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
        EXPORTING
          msg_arbgb = syst-msgid
          msg_nr    = syst-msgno
          msg_ty    = syst-msgty
          msg_v1    = syst-msgv1
          msg_v2    = syst-msgv2
          msg_v3    = syst-msgv3
          msg_v4    = syst-msgv4
        EXCEPTIONS
          OTHERS    = 1.
    ENDFORM.                    "protocol_update
    *       FORM SENDER                                                   *
    *       This routine determines the address of the sender (Table VBUR)*
    FORM user_exit1.
    ENDFORM.                                                    "user_exit1
    INCLUDE /smb40/mv50bfz1.
    *include mv50bfz1.
    *&      Form  set_print_param
    *       text
    *      -->P_LS_ADDR_KEY  text
    *      <--P_LS_CONTROL_PARAM  text
    *      <--P_LS_COMPOSER_PARAM  text
    *      <--P_LS_RECIPIENT  text
    *      <--P_LS_SENDER  text
    *      <--P_RETCO  text
    FORM set_print_param USING    is_addr_key LIKE addr_key
                         CHANGING cs_control_param TYPE ssfctrlop
                                  cs_composer_param TYPE ssfcompop
                                  cs_recipient TYPE  swotobjid
                                  cs_sender TYPE  swotobjid
                                  cf_retcode TYPE sy-subrc.
      DATA: ls_itcpo     TYPE itcpo.
      DATA: lf_repid     TYPE sy-repid.
      DATA: lf_device    TYPE tddevice.
      DATA: ls_recipient TYPE swotobjid.
      DATA: ls_sender    TYPE swotobjid.
      lf_repid = sy-repid.
      IF itcpo IS INITIAL.
        CALL FUNCTION 'WFMC_PREPARE_SMART_FORM'
          EXPORTING
            pi_nast       = nast
            pi_addr_key   = is_addr_key
            pi_repid      = lf_repid
          IMPORTING
            pe_returncode = cf_retcode
            pe_itcpo      = ls_itcpo
            pe_device     = lf_device
            pe_recipient  = cs_recipient
            pe_sender     = cs_sender.
        IF cf_retcode = 0.
          MOVE-CORRESPONDING ls_itcpo TO cs_composer_param.
    *   CS_CONTROL_PARAM-NO_OPEN
    *   CS_CONTROL_PARAM-NO_CLOSE
          cs_control_param-device      = lf_device.
          cs_control_param-no_dialog   = 'X'.
          cs_control_param-preview     = xscreen.
          cs_control_param-getotf      = ls_itcpo-tdgetotf.
          cs_control_param-langu       = nast-spras.
    *   CS_CONTROL_PARAM-REPLANGU1
    *   CS_CONTROL_PARAM-REPLANGU2
    *   CS_CONTROL_PARAM-REPLANGU3
    *   CS_CONTROL_PARAM-STARTPAGE
        ENDIF.
      ELSE.
        MOVE-CORRESPONDING itcpo TO cs_composer_param.
    *   CS_CONTROL_PARAM-NO_OPEN
    *   CS_CONTROL_PARAM-NO_CLOSE
        cs_control_param-device      = lf_device.
        cs_control_param-no_dialog   = 'X'.
        cs_control_param-preview     = xscreen.
        cs_control_param-getotf      = itcpo-tdgetotf.
        cs_control_param-langu       = nast-spras.
    *   CS_CONTROL_PARAM-REPLANGU1
    *   CS_CONTROL_PARAM-REPLANGU2
    *   CS_CONTROL_PARAM-REPLANGU3
    *   CS_CONTROL_PARAM-STARTPAGE
      ENDIF.
    ENDFORM.                               " set_print_param
    **&      Form  protocol_update_i
    **       text
    **  -->  p1        text
    **  <--  p2        text
    *form protocol_update_i.
    *  check xscreen = space.
    *  call function 'NAST_PROTOCOL_UPDATE'
    *       exporting
    *            msg_arbgb = syst-msgid
    *            msg_nr    = syst-msgno
    *            msg_ty    = syst-msgty
    *            msg_v1    = syst-msgv1
    *            msg_v2    = syst-msgv2
    *            msg_v3    = syst-msgv3
    *            msg_v4    = syst-msgv4
    *       exceptions
    *            others    = 1.
    *endform.                               " protocol_update_i
    *&      Form  add_smfrm_prot
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM add_smfrm_prot.
      DATA: lt_errortab             TYPE tsferror.
      DATA: lf_msgnr                TYPE sy-msgno.
      DATA:  l_s_log                TYPE bal_s_log,
             p_loghandle            TYPE balloghndl,
             l_s_msg                TYPE bal_s_msg.
      FIELD-SYMBOLS: <fs_errortab>  TYPE LINE OF tsferror.
    * get smart form protocoll
      CALL FUNCTION 'SSF_READ_ERRORS'
        IMPORTING
          errortab = lt_errortab.
    * add smartform protocoll to nast protocoll
      LOOP AT lt_errortab ASSIGNING <fs_errortab>.
        CLEAR lf_msgnr.
        lf_msgnr = <fs_errortab>-errnumber.
        CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
          EXPORTING
            msg_arbgb = <fs_errortab>-msgid
            msg_nr    = lf_msgnr
            msg_ty    = <fs_errortab>-msgty
            msg_v1    = <fs_errortab>-msgv1
            msg_v2    = <fs_errortab>-msgv2
            msg_v3    = <fs_errortab>-msgv3
            msg_v4    = <fs_errortab>-msgv4
          EXCEPTIONS
            OTHERS    = 1.
      ENDLOOP.
    * open the application log
      l_s_log-extnumber    = sy-uname.
      CALL FUNCTION 'BAL_LOG_CREATE'
        EXPORTING
          i_s_log      = l_s_log
        IMPORTING
          e_log_handle = p_loghandle
        EXCEPTIONS
          OTHERS       = 1.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      LOOP AT lt_errortab ASSIGNING <fs_errortab>.
        MOVE-CORRESPONDING <fs_errortab> TO l_s_msg.
        CALL FUNCTION 'BAL_LOG_MSG_ADD'
          EXPORTING
            i_log_handle = p_loghandle
            i_s_msg      = l_s_msg
          EXCEPTIONS
            OTHERS       = 1.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
      ENDLOOP.
      CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                               " add_smfrm_prot

  • My iPod is formatted for Windows, why should I reformat it for Macintosh?

    Hello everyone,
    I just made the switch from a PC to a Mac and I am very happy to now be on the Mac side of the fence.
    I've been reading these forums to find out how to transfer the contents of my 30GB iPod to iTunes on my new MacBook (I didn't keep the songs in iTunes on my old PC, but I do have all of them on actual CDs).
    I can tell from these posts HOW to do this transfer (using Senuti seems easiest), but my question now is WHY do this? If I keep my iPod formatted for Windows I'll still be able to use it on both PCs and Macs, but if I restore it to be formatted for Macs, then I can only use it on Macs. I'm thinking that as long as I have access to a PC to periodically update iTunes, I should be fine with not switching it over. Is there anything that I am missing here? I just don't want to run into problems down the road.
    If anyone is using an iPod formatted for Windows, but works almost exclusively with Mac computers, I'd love to hear feedback on how it's going. And if anyone has advice on why this is OR isn't a good idea, I'd love to hear that too.
    Thanks.
    Andrew

    A Mac formatted iPod will mount and unmount slightly faster on OS X than a PC formatted one. Also if you want to use the iPod as a removable drive between other Macs you won't have the same file size restrictions Windows formatting has. A FAT32 formatted iPod or other drive cannot transfer files which are 4GB or larger. In addition to those, (except in the case of the Shuffle) the iPod's firmware cannot be updated from Mac OS X without doing a restore. This would mean you would need to connect back to a PC when a software update came along, however if you are going to continue to use the iPod on a Mac and a PC this isn't an issue.

  • Help with Report Variables

    I have been doing battle with the SBO Customer Receivables Aging Report. I am trying to add the fields "Customer Reference" and "Creation Date" to the Repetitive area of the report with no success. All of the existing fields are variables, and the on-line help says to contact SAP support (which would be me) for help with changing variables. Does anyne have a list of these variables, or know how to define them?
    Many thanks,
    Mike.

    Hi Mike Stroud, i'm actualy also working on the customer ageing report. You also responded to my post. It was the reports one. Well, im not sure about the variables but i simply wrote a query that brings all that info and more up. But i'm having problems diplsying it. In the normal SAP report/print layout, if i  make the report based on the query it doesn't let me move the info from the repetitive area to the header....why.....can you get around this??? I then did it in the advanced layout but the first page is always wrong. What do you want to do with the variables?? what are you trying to achieve with the report because me and my coleagues have had a BIG problem with the ageing.

  • Classic scenario: Update shopping cart with changes in backend PO?

    The Shopper would like to have visibility in their shopping cart (SRM 5.0, classic scenario) of changes made to the follow-on PO created in ECC6. Is it possible for the cart to be updated with changes made to the backend document, or would the customisation for this type of request be too complex?
    Any advice would be appreciated, thanks!

    Hi,
    Yes this report is reading the PO quantity and value and the history tab for follow-on documents such as GR or invoice.
    Thus the SC history is updated.
    Kind regards,
    Yann
    Message was edited by:
            Yann Bouillut

  • Can Pages 4.3 maintain defined text formatting for at a given list level?

    I'm hoping the answer to this question is a simple 'duh' solution that I some how over looked. I'm using Pages 4.3 and I am trying to create a tiered list to organize ideas into different sublevels. I want to be able to write at a particular level, then create sub levels (return -> tab) with different formatting so the levels are easily distinguished at a glance. When I move back to the higher levels (return -> shift + tab), Pages maintaines the text formatting I used at the lower level, rather than returning to the previously used format at the higher level. For example, what I want is ....
    Main 1             --- (Return -> Tab)
    Sub 1             --- (Return -> Shift +Tab)
    Main 2
    What I get is...
    Main 1             --- (Return -> Tab)
    Sub 1             --- (Return -> Shift +Tab)
    Main 2
    This means that anytime I move up or down in the tiers of a list, I need to redefine the formatting for each new bullet. I tried creating my own list styles, but that does not appear to preserve changes made to fonts or sizes. This seems like such a simple function and time saver that I feel like I must be doing something wrong. It has been a while since I used pages, but I don't remember having these problems before. Does pages really require one to reset the formatting everytime the move between list levels?

    Thanks Michael!
    So your suggestion is to create the pricing in ECC and then download it in CRM...
    Now tat would mean that first the mapping has to be performed in ECC for the existing paroducts and product category..then create pricing for those mapped prod. cat. in ECC and then download it to CR M..plz correct me if I am wrong...
    regards,
    Aneesh

  • Format for certain columns in list view control

    I have a list view control and I would like to format the alignment for certain columns. I heard that the only way you can do this is by formatting the cells in excel. I tried this with no success. Can someone please give me step by step instructions on how to achieve this. I am currently allowing Xcelsius to handle my formatting for money. Is it possible to have Xcelsius handle the money formatting and have excel handle the alignment  formatting. I am open to whatever works at this point. Also I am using Xcelsius 2008 (Build Number 12,2,1,66).
    Much Thx

    Hi,
       In list view control you can format the entire row only, not a certain column.
       Go to property>Appearance>Text Tab>select Header>Format selected text->select the format.
      For width change: Property> Layout Tab>check custom column width the click the icon and enter width in pixel.
    Regards,
    Senthil K

Maybe you are looking for

  • IS-U contract account field under R/3 quotation side

    Dear Friend, As I have a requirement called IS-U contract account field should be available in R/3 quotation side. what is the configuration for this, and I did the config for IS-U and SD side integration(reference field under FPP1), but the contact

  • Get different format error when opening excel file

    Hi, In 10g form, I use CLIENT_OLE2 to generate an excel file on the client machine. Every time, I open the excel file, I get the error message, 'The file you are trying to open, 'my1.xls', is in a different format than specified by the file extension

  • Does anyone know why the majority of the songs on iTunes cost $1.29 ?

    I am definitely not a novice when it comes to iTunes but i noticed that the majority of the songs are $1.29 instead of .99 cents. Does anyone have a reasonable explanation for this? I never thought of asking until now. Will it ever go back to to the

  • Lenovo Vibe X2 AP camera not working

    Hi, I have bought Linovo vibe X2-Ap from Flipkart in India last week. I have an issue with the mobile. It camara is not working when flash is on. When I click to take picture the flash flickers, but does not take any pictures and after few seconds ca

  • Speech analysis Pr 6

    Hello, I have been trying to use the speech analysis functionality in Pr6 but the only option I can select is American English. To be sure, other options show up, but they are all inactive, appearing in gray. Would it be possible for you to advise gu