Crazy Scripting Help

I’ve created a group of 40 different icons (telephone, star, diamond, etc.) and I need to apply 150 colors to each one of those icons then save each icon individually as a PNG with a filename of <ICONNAME-COLORNAME.png>. Those 150 colors have already been defined with individual custom color names within a color group I created called “MyColors.”
I’ve figured out the PNG export part of the javascript (and that script is available all over the place) but my scripting skills suck and I’m not sure what I need to do to get this done. I’ve read the Illustrator Scripting Guide (I got lost pretty quick) and I’ve done some searching for scripts but without any luck. I was thinking that the best way to approach this was to put each of the different icons (telephone, star, diamond, etc.) on a single layer, each within a different illustrator file and then run the script on each file to automatically generate the colors and layers I need within each file. I could then run a PNG export script against each file. Or is there a better way to create these PNGs?
I know it’s a lot to ask and I hate to ask it, but I’ll lose my mind if I have to do this by hand. Can anyone help me with this scripting? I’d be happy to throw a few bucks your way (or donate them to the charity of your choice)!
I'm on Illustrator CS5/CS6 ...

So I got this far but the layer objects aren't duplicating. Any ideas?
var docRef = app.activeDocument;
with (docRef) {
var grp = swatchGroups.getByName('Rob');
for (var i = 0; i < swatchGroups.length; i++) {
    if (swatchGroups[i].name == 'Rob') {
        grp = swatchGroups[i];
var grpList = grp.getAllSwatches();
//var sw = grpList[55];
var originalLayerLength = layers.length;
for (var i = 0; i < originalLayerLength; i++) {
var oldLayer = layers[i];
oldLayer.name = oldLayer.name;
oldLayer.visible = true;
    for (var j = 0; j < grpList.length; j++) {
        var nLayer = layers.add();
        nLayer.name = oldLayer.name + '-' + grpList[j].name;
        nLayer.visible = true;
        for (var k = 0; k < oldLayer.pathItems; k++) {
            oldLayer.pathItems[k].duplicate(nLayer,
ElementPlacement.PLACEATBEGINNING);
        for (var k = 0; k < nLayer.pathItems.length; k++) {
            nLayer.pathItems[k].selected = true;
            nLayer.pathItems[k].fillColor = grpList.color;
   for(var i = 0; i < pathItems.length; i++) {
    pathItems[i].selected = true;
        pathItems[i].fillColor = sw.color;

Similar Messages

  • Oracle 10g Rel2(10.2.0.3) on Vista ultimate driving me crazy, Please HELP

    Hello Folks and Expert,
    I am Certified Ora DBA and am stuck, thats a shame
    I am going to install and Test Oracle 10g on Vista as my future client will use Just Vista and no othr OS, so there is no OTHER OS options,
    I ready all the documentaiotn and release notes and also read that Oracle 10g(10.2.0.3) is certified on Vita Ultimate.
    I downloaded the DB which is frm the below link:
    Oracle Database 10g Release 2 (10.2.0.3/10.2.0.4) for Microsoft Windows Vista and Windows 2008
    *** It installs but it justdoesn't work properly, PLEASE HEEEEEEELP I am running out of time.
    steps I have done:
    1. Installed loppback and tested and it works when I ping, both ping computer and ping computer.domain with no error.
    - whic means under windows>system32>driver> etc>host I added the 10.10.10.10 and cmputer name.
    2. Under MMC I added cmputer local policy for local computer
    3. Also Under "Local security setting" under "Local Policies" Under "User right Assignment" Under "Log on as a Batch job" I added the User name which was created when weload the Vista for the first time which is the Computer Admin, ALSO REALOADED THE COMPUTER WITH TH FACTORY SETTING AND AFTER THE FIST BOOT, UNLOCKED THE "ADMINISTRATOR" USER OF THE OS AND TESTED WITH THE ADMIN USER AS WELL WHICH WAS ADDED TO THIS lOG ON AS A BATCH JOB.
    4. Restarted the Computer on all the step that I had to
    5. Downloaded the DB and installed the DB, it installled without any Error
    ******************My Questions are as belooooowww ******************
    When Oracle installd he prduct, usually under the
    Start menu> All programs we should have 4 folders (Application Development, Configuration and Migration, Integrated management tools, Oralce installlation products) and DATABASE CONTROL - ORCL
    a - when installation finishesh it JSUT DOESN't CREATE ------> DATABASE CONTROL - ORCL Whyyyyy ? (It is driving me crazy, I have another xp machine and it has also I had EVEN Vista Home premium and I was able to install on it before to test)
    b - I can loging to the database after i type the adress I remembered manually in the browser, it logs in without any errror, but
    When I want to shutdown the database It passes the host crendential once and I wait and it does nothing and a little windown pops up and says
    *"Enterprise manager stopped working"*
    C - To test and stop Listener also it just doesn't stop it and doest the samething,
    I just wannna CRYYY, it is getting me Crazy,
    PLEASE HELP ME with all THREE QUESTONS A,B,C PLEASE HELLLLLLPPPPP
    Rgrds,

    Hello Folks and Expert,
    I am Certified Ora DBA and am stuck, thats a shame
    I am going to install and Test Oracle 10g on Vista as my future client will use Just Vista and no othr OS, so there is no OTHER OS options,
    I ready all the documentaiotn and release notes and also read that Oracle 10g(10.2.0.3) is certified on Vita Ultimate.
    I downloaded the DB which is frm the below link:
    Oracle Database 10g Release 2 (10.2.0.3/10.2.0.4) for Microsoft Windows Vista and Windows 2008
    *** It installs but it justdoesn't work properly, PLEASE HEEEEEEELP I am running out of time.
    steps I have done:
    1. Installed loppback and tested and it works when I ping, both ping computer and ping computer.domain with no error.
    - whic means under windows>system32>driver> etc>host I added the 10.10.10.10 and cmputer name.
    2. Under MMC I added cmputer local policy for local computer
    3. Also Under "Local security setting" under "Local Policies" Under "User right Assignment" Under "Log on as a Batch job" I added the User name which was created when weload the Vista for the first time which is the Computer Admin, ALSO REALOADED THE COMPUTER WITH TH FACTORY SETTING AND AFTER THE FIST BOOT, UNLOCKED THE "ADMINISTRATOR" USER OF THE OS AND TESTED WITH THE ADMIN USER AS WELL WHICH WAS ADDED TO THIS lOG ON AS A BATCH JOB.
    4. Restarted the Computer on all the step that I had to
    5. Downloaded the DB and installed the DB, it installled without any Error
    ******************My Questions are as belooooowww ******************
    When Oracle installd he prduct, usually under the
    Start menu> All programs we should have 4 folders (Application Development, Configuration and Migration, Integrated management tools, Oralce installlation products) and DATABASE CONTROL - ORCL
    a - when installation finishesh it JSUT DOESN't CREATE ------> DATABASE CONTROL - ORCL Whyyyyy ? (It is driving me crazy, I have another xp machine and it has also I had EVEN Vista Home premium and I was able to install on it before to test)
    b - I can loging to the database after i type the adress I remembered manually in the browser, it logs in without any errror, but
    When I want to shutdown the database It passes the host crendential once and I wait and it does nothing and a little windown pops up and says
    *"Enterprise manager stopped working"*
    C - To test and stop Listener also it just doesn't stop it and doest the samething,
    I just wannna CRYYY, it is getting me Crazy,
    PLEASE HELP ME with all THREE QUESTONS A,B,C PLEASE HELLLLLLPPPPP
    Rgrds,

  • Bb id is driving me crazy!help anyoneeeeee

    Hello,
    This Blckberry Id is starting to drive me crazy.i got me a new bb curve 9300 3g last month and i created my Bbid to download app but after a few days i forgot the password,so i tried to renew my password couldnt do it.
    I created another account for the BB id so i could also use the blackberry protection app.Now it worked normally but the problem is i have a new id for the bbprotection app and cannot use it on my bb world app and they keep telling me that this account is not associated with my smarphone and i cannot find a way to change the old infos about the 1st bbid.
    What can i do,i'm going crazy here,help anyoneeeee!!

    OK...the way to destroy the first ID is to use the original "welcome" email you received when you first created it...that should have a link with which to destroy the ID. If not or if you don't have that email, then we just ignore that BB ID and leave it alone.
    So, now ignoring the first ID, what are the exact and specific issues with the second ID. Sorry, I tried to parse out the specifics from your first post, but has too little punctuation and structure for me to figure out what is going on there, so I ask you to list the issues out in an orderly and complete fashion now.
    Thanks!
    Occam's Razor nearly always applies when troubleshooting technology issues!
    If anyone has been helpful to you, please show your appreciation by clicking the button inside of their post. Please click here and read, along with the threads to which it links, for helpful information to guide you as you proceed. I always recommend that you treat your BlackBerry like any other computing device, including using a regular backup schedule...click here for an article with instructions.
    Join our BBM Channels
    BSCF General Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

  • Gallery script help, please

    Gallery script help, please
    Hello,
    I'm new to actionscript in general, I do know a little...
    I foung a gallery script, modified many things, the images
    open fine, everything is working, but here's the thing:
    the gallery is in 3 sections, red, blue and yellow.
    I would like to know how, what, and where to put a script so
    that if a "the small red image #1" is clicked, I can load any sort
    of a movie on top of the "the BIG red image #1" or #2 or 3 and so
    on...same goes for the blue and yellow...
    If I figured things correctly on my own...the small thumbnail
    images of the gallery are not buttons, that's why I can't attach a
    movie (let's say) to them...but it is all written in script, using
    the horizontal and vertical position of the mouse to open the large
    images of the gallery...
    So, I don't know how to figure things out, to attach a
    specific movie to a specific thumbnail...
    p.s.: I think the script that controls the gallery is in
    symbol 120
    I really would appreciate the help
    Merry Christmas in advance to everyone
    Sandra
    here are all the files...
    http://www.gentro.ca/sandra_test.zip

    There's a great tutorial on kirupa...
    click
    here for link

  • Firefox not responding, freezes, sometimes responds after a few minutes, other times a pop-up appears asking if I want to stop script - help please

    firefox not responding, freezes, sometimes responds after a few minutes, other times a pop-up appears asking if I want to stop script - help please

    Start Firefox in [[Safe Mode]] to check if one of the add-ons is causing the problem (switch to the DEFAULT theme: Tools > Add-ons > Themes).
    * Don't make any changes on the Safe mode start window.
    See:
    * [[Troubleshooting extensions and themes]]
    * [[Troubleshooting plugins]]
    If it does work in Safe-mode then disable all extensions and then try to find which is causing it by enabling one at a time until the problem reappears.
    * Use "Disable all add-ons" on the [[Safe mode]] start window to disable all extensions.
    * Close and restart Firefox after each change via "File > Exit" (Mac: "Firefox > Quit"; Linux: "File > Quit")

  • My iphone is acting crazy plz help asap my phone is giving reading me everything i lay my hand on and is not letting me scroll down or select anything i must have accidentally switched some voice thing on plz help me close it:(

    my iphone is acting crazy plz help asap my phone is giving reading me everything i lay my hand on and is not letting me scroll down or select anything i must have accidentally switched some voice thing on plz help me close it:(

    First off, try triple clicking the home button.
    To scroll use three fingers and I think you have to double tap to get into something.
    Go to Settings>General>Accessability>Voiceover and then turn that off.
    Hope that sorts it for you

  • If/then checkbox script help in Adobe Acrobat Form...

    If have an order form that has two different pricing fields (regular price per item & subscription price per item) for each line item and then a quantity and then a total field. Lastly, there is a checkbox on the form that indicate if they are signing up for a monthly subscription.
    What I am trying to do is create a script that totals each line by the regular price multipled by the quantity or subscription price by quantity if the subscription check box is checked ("Yes"). So far, I've tried several scripts I found in the forum but no luck at all.
    The check box is near the billing fields toward the bottom so all the line items appear first in the top section of the form. So, an individual would fill out each line and the calculations would just total each row (reg price * qty) as you go down the form...then when you check the subscription box all the line totals would change to reflect the subscription pricing for each row (which can be different). Just need help with one row and I can duplicate for each row.....
    Here is what I have that does NOT work yet.....:
    (function () {
    if (this.getField("sub").value==="Yes") {
         var b1 = this.getField("Price1b");
         var c1 = this.getField("Qty1");
         var d1 = this.getField("Price1");
         event.value = b1.value * c1.value;
    } else event.value = d1.value * c1.value;

    One last strange thing is that when I then do the "Value is the Sum simple total of the row total fields (where the script is) and then click the check mark for subscription, the number in the grand total field shows the opposite value as the row total field (so when you click the subscription check box, the row total goes to the subscription price and the grand total field then shows the full price)....can't figure out why that happens......?
    Any ideas?

  • PowerShell Scripting help to combine two scripts

    I have a script that helps automate virtual server builds.  The script creates a specification document which is used to perform the actual builds.
    # Spec-And-Build.ps1 - Loops through a directory and performs an
    # end to end specification generation and build on each request in that directory
    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true)]
        [string]$RequestDir,
        [Parameter(Mandatory=$true)]
        [string]$SpecDir,
        [Parameter(Mandatory=$false)]
        [pscredential]$Credential_CPR,
        [Parameter(Mandatory=$false)]
        [pscredential]$Credential_VDC,
        [Parameter(Mandatory=$false)]
        [pscredential]$Credential_Admin
    if (!$Credential_CPR) {
        $Credential_CPR = Get-Credential -Message "CPR Domain Credentials."
        if (!$Credential_CPR.UserName.ToUpper().StartsWith("CPR\")) {
            $Credential_CPR = New-Object pscredential(
                ("CPR\" + $Credential_CPR.UserName), $Credential_CPR.Password)
    if (!$Credential_VDC) {
        $Credential_VDC = Get-Credential -Message "VDC Domain Credentials."
        if (!$Credential_VDC.UserName.ToUpper().StartsWith("VDC\")) {
            $Credential_VDC = New-Object pscredential( `
                ("VDC\" + $Credential_VDC.UserName), $Credential_VDC.Password)
    if (!$Credential_Admin) {
        $Credential_Admin = Get-Credential -UserName "Administrator or root" `
            -Message "Enter the Administrator or root password for the new VM. The user name here will be ignored"
    .\Gen-VMSpec-Many.ps1 -RequestDir $RequestDir -SpecDir $SpecDir -Credential_VDC $Credential_VDC
    $caption = "Continue Build"
    $message = "Please validate the generated specification files in $SpecDir - Then click Continue to start build"
    $opContinue = new-Object System.Management.Automation.Host.ChoiceDescription "&Continue","help"
    $opAbort = new-Object System.Management.Automation.Host.ChoiceDescription "&Abort","help"
    $choices = [System.Management.Automation.Host.ChoiceDescription[]]($opContinue,$opAbort)
    $answer = $host.ui.PromptForChoice($caption,$message,$choices,0)
    if ($answer -eq 0) {
        .\Build-VM-Many.ps1 -SpecDir $SpecDir -Credential_CPR $Credential_CPR -Credential_VDC $Credential_VDC -Credential_Admin $Credential_Admin
    } else {
        Write-Host "Build step aborted, run Build-VM-Many.ps1 manually to continue."
    This script works well.  Now I need to add a section that adds Active Directory groups to the built servers from the spec document.  I found this script which also works well:
    # Create local group on the local or a remote computer 
    Write-Host -foregroundcolor Yellow 'Admin Privileges Required!' 
    $computerName = Read-Host 'Enter computer name or press <Enter> for localhost' 
    $localGroupName = Read-Host 'Enter local group name' 
    $description = Read-Host 'Enter description for new local group' 
    if ($computerName -eq "") {$computerName = "$env:computername"} 
    if([ADSI]::Exists("WinNT://$computerName,computer")) { 
        $computer = [ADSI]"WinNT://$computerName,computer" 
        $localGroup = $computer.Create("group",$localGroupName) 
        $localGroup.SetInfo() 
        $localGroup.description = [string]$description 
        $localGroup.SetInfo() 
    My question is, how do I make one script from the two?  I am very new to PowerShell scripting.

    Here are the instructions on how to use PowerShell:
    http://technet.microsoft.com/en-us/scriptcenter/dd793612.aspx
    Your question is vague and is asking for someone to do this for you.  It is better if you do it yourself and post back with specific questions.
    In the end you have to write and debug the scripts. We will not do this for you but we will answer questions.
    ¯\_(ツ)_/¯

  • Saveas Scripting help request

    I am trying to piece together a maro that will initially resize an image and save it with a different suffix at different size increments. I found within the cs5 scripts folder the macro 'Fit Image.jsx' that would allow me to resize correctly but am lost on how to add in the subsequent save steps and additional resize and saves. I would like to have it save the image with 5 different file sizes and suffixes (400x400 '-2' suffix, 250x250 '-2T', 150x150 '-1', 100x100 '-0', and 50x50 '-2S'). I found some information on the saveas http://forums.adobe.com/message/2652204 but have no experience with javascript. I have some understanding of VBA and believe a loop could be used but haven't the slightest idea how to set this up. Is there anyone out there that could help walk me through this and lend me a hand?
    ---Below contains the 'Fit Image.jsx' file that I found---
    // c2008 Adobe Systems, Inc. All rights reserved.
    // Written by Ed Rose
    // based on the ADM Fit Image by Charles A. McBrian from 1997
    // edited by Mike Hale added option to avoid resize on images already smaller than target size
    @@@BUILDINFO@@@ Fit Image.jsx 1.0.0.21
    /* Special properties for a JavaScript to enable it to behave like an automation plug-in, the variable name must be exactly
       as the following example and the variables must be defined in the top 1000 characters of the file
    // BEGIN__HARVEST_EXCEPTION_ZSTRING
    <javascriptresource>
    <name>$$$/JavaScripts/FitImage/Name=Fit Image...</name>
    <menu>automate</menu>
    <enableinfo>true</enableinfo>
    <eventid>3caa3434-cb67-11d1-bc43-0060b0a13dc4</eventid>
    <terminology><![CDATA[<< /Version 1
                             /Events <<
                              /3caa3434-cb67-11d1-bc43-0060b0a13dc4 [($$$/AdobePlugin/FitImage/Name=Fit Image) /imageReference <<
                               /width [($$$/AdobePlugin/FitImage/Width=width) /pixelsUnit]
                               /height [($$$/AdobePlugin/FitImage/Height=height) /pixelsUnit]
                               /limit [($$$/AdobePlugin/FitImage/limit=Don't Enlarge) /boolean]
                              >>]
                             >>
                          >> ]]></terminology>
    </javascriptresource>
    // END__HARVEST_EXCEPTION_ZSTRING
    // enable double clicking from the Macintosh Finder or the Windows Explorer
    #target photoshop
    // debug level: 0-2 (0:disable, 1:break on error, 2:break at beginning)
    // $.level = 2;
    // debugger; // launch debugger on next line
    // on localized builds we pull the $$$/Strings from a .dat file, see documentation for more details
    $.localize = true;
    var isCancelled = true; // assume cancelled until actual resize occurs
    // the main routine
    // the FitImage object does most of the work
    try {
        // create our default params
        var sizeInfo = new SizeInfo();
        GlobalVariables();
        CheckVersion();
        var gIP = new FitImage();
        if ( DialogModes.ALL == app.playbackDisplayDialogs ) {
            gIP.CreateDialog();
            gIP.RunDialog();
        else {
            gIP.InitVariables();
            ResizeTheImage(sizeInfo.width.value, sizeInfo.height.value);
        if (!isCancelled) {
            SaveOffParameters(sizeInfo);
    // Lot's of things can go wrong
    // Give a generic alert and see if they want the details
    catch( e ) {
        if ( DialogModes.NO != app.playbackDisplayDialogs ) {
            alert( e + " : " + e.line );
    // restore the dialog modes
    app.displayDialogs = gSaveDialogMode;
    isCancelled ? 'cancel' : undefined;
    function ResizeTheImage(width, height) {
        var oldPref = app.preferences.rulerUnits;
        var docWidth;
        var docHeight;
        var docRatio;
        var newWidth;
        var newHeight;
        var resolution = app.activeDocument.resolution;
        var limit = sizeInfo.limit;
        app.preferences.rulerUnits = Units.PIXELS; // save old preferences
        // original width, height
        docWidth = (1.0 * app.activeDocument.width * resolution) / 72.0; // decimal inches assuming 72 dpi (used in docRatio)
        docHeight = (1.0 * app.activeDocument.height * resolution) / 72.0; // ditto
        if (docWidth < 1.0 || docHeight < 1.0)
            return true; // error
        if (width < 1 || height < 1)
            return true; // error
        if ( limit && ( docWidth <= width && docHeight <= height ) ){
            app.preferences.rulerUnits = oldPref; // restore old prefs
            isCancelled = false; // if get here, definitely executed
            return false; // no error
        docRatio = docWidth / docHeight; // decimal ratio of original width/height
        newWidth = width;
        newHeight = ((1.0 * width) / docRatio); // decimal calc
        if (newHeight > height) {
            newWidth = docRatio * height; // decimal calc
            newHeight = height;
        // resize the image using a good conversion method while keeping the pixel resolution
        // and the aspect ratio the same
        app.activeDocument.resizeImage(newWidth, newHeight, resolution, ResampleMethod.BICUBIC);
        app.preferences.rulerUnits = oldPref; // restore old prefs
        isCancelled = false; // if get here, definitely executed
        return false; // no error
    // created in
    function SaveOffParameters(sizeInfo) {
        // save off our last run parameters
        var d = objectToDescriptor(sizeInfo, strMessage);
        app.putCustomOptions("3caa3434-cb67-11d1-bc43-0060b0a13dc4", d);
        app.playbackDisplayDialogs = DialogModes.ALL;
        // save off another copy so Photoshop can track them corectly
        var dd = objectToDescriptor(sizeInfo, strMessage);
        app.playbackParameters = dd;
    function GlobalVariables() {
        // a version for possible expansion issues
        gVersion = 1.1;
        gMaxResize = 300000;
        // remember the dialog modes
        gSaveDialogMode = app.displayDialogs;
        app.displayDialogs = DialogModes.NO;
        gInAlert = false;
        // all the strings that need to be localized
        strTitle = localize( "$$$/JavaScript/FitImage/Title=Fit Image" );
        strConstrainWithin = localize( "$$$/JavaScript/FitImage/ConstrainWithin=Constrain Within" );
        strTextWidth = localize("$$$/JavaScripts/FitImage/Width=&Width:");
        strTextHeight = localize("$$$/JavaScripts/FitImage/Height=&Height:");
        strTextPixels = localize("$$$/JavaScripts/FitImage/Pixels=pixels");
        strButtonOK = localize("$$$/JavaScripts/FitImage/OK=OK");
        strButtonCancel = localize("$$$/JavaScripts/FitImage/Cancel=Cancel");
        strTextSorry = localize("$$$/JavaScripts/FitImage/Sorry=Sorry, Dialog failed");
        strTextInvalidType = localize("$$$/JavaScripts/FitImage/InvalidType=Invalid numeric value");
        strTextInvalidNum = localize("$$$/JavaScripts/FitImage/InvalidNum=A number between 1 and 300000 is required. Closest value inserted.");
        strTextNeedFile = localize("$$$/JavaScripts/FitImage/NeedFile=You must have a file selected before using Fit Image");
        strMessage = localize("$$$/JavaScripts/FitImage/Message=Fit Image action settings");
        strMustUse = localize( "$$$/JavaScripts/ImageProcessor/MustUse=You must use Photoshop CS 2 or later to run this script!" );
        strLimitResize = localize("$$$/JavaScripts/FitImage/Limit=Don^}t Enlarge");
    // the main class
    function FitImage() {
        this.CreateDialog = function() {
            // I will keep most of the important dialog items at the same level
            // and use auto layout
            // use overriding group so OK/Cancel buttons placed to right of panel
            var res =
                "dialog { \
                    pAndB: Group { orientation: 'row', \
                        info: Panel { orientation: 'column', borderStyle: 'sunken', \
                            text: '" + strConstrainWithin +"', \
                            w: Group { orientation: 'row', alignment: 'right',\
                                s: StaticText { text:'" + strTextWidth +"' }, \
                                e: EditText { preferredSize: [70, 20] }, \
                                p: StaticText { text:'" + strTextPixels + "'} \
                            h: Group { orientation: 'row', alignment: 'right', \
                                s: StaticText { text:'" + strTextHeight + "' }, \
                                e: EditText { preferredSize: [70, 20] }, \
                                p: StaticText { text:'" + strTextPixels + "'} \
                            l: Group { orientation: 'row', alignment: 'left', \
                                    c:Checkbox { text: '" + strLimitResize + "', value: false }, \
                        buttons: Group { orientation: 'column', alignment: 'top',  \
                            okBtn: Button { text:'" + strButtonOK +"', properties:{name:'ok'} }, \
                            cancelBtn: Button { text:'" + strButtonCancel + "', properties:{name:'cancel'} } \
            // the following, when placed after e: in w and h doesn't show up
            // this seems to be OK since px is put inside the dialog box
            //p: StaticText { text:'" + strTextPixels + "'}
            // create the main dialog window, this holds all our data
            this.dlgMain = new Window(res,strTitle);
            // create a shortcut for easier typing
            var d = this.dlgMain;
            // match our dialog background color to the host application
            d.graphics.backgroundColor = d.graphics.newBrush (d.graphics.BrushType.THEME_COLOR, "appDialogBackground");
            d.defaultElement = d.pAndB.buttons.okBtn;
            d.cancelElement = d.pAndB.buttons.cancelBtn;
        } // end of CreateDialog
        // initialize variables of dialog
        this.InitVariables = function() {
            var oldPref = app.preferences.rulerUnits;
            app.preferences.rulerUnits = Units.PIXELS;
            // look for last used params via Photoshop registry, getCustomOptions will throw if none exist
            try {
                var desc = app.getCustomOptions("3caa3434-cb67-11d1-bc43-0060b0a13dc4");
                descriptorToObject(sizeInfo, desc, strMessage);
            catch(e) {
                // it's ok if we don't have any options, continue with defaults
            // see if I am getting descriptor parameters
            var fromAction = !!app.playbackParameters.count;
            if( fromAction ){
                // reset sizeInfo to defaults
                SizeInfo = new SizeInfo();
                // set the playback options to sizeInfo
                descriptorToObject(sizeInfo, app.playbackParameters, strMessage);
            // make sure got parameters before this
            if (app.documents.length <= 0) // count of documents viewed
                if ( DialogModes.NO != app.playbackDisplayDialogs ) {
                    alert(strTextNeedFile); // only put up dialog if permitted
                app.preferences.rulerUnits = oldPref;
                return false; // if no docs, always return
            var w = app.activeDocument.width;
            var h = app.activeDocument.height;
            var l = true;
            if (sizeInfo.width.value == 0) {
                sizeInfo.width = w;
            else {
                w = sizeInfo.width;
            if (sizeInfo.height.value == 0) {
                sizeInfo.height = h;
            else {
                h = sizeInfo.height;
            app.preferences.rulerUnits = oldPref;
            if ( DialogModes.ALL == app.playbackDisplayDialogs ) {
                var d = this.dlgMain;
                d.ip = this;
                d.pAndB.info.w.e.text = Number(w);
                d.pAndB.info.h.e.text = Number(h);
                d.pAndB.info.l.c.value = sizeInfo.limit;
            return true;
        // routine for running the dialog and it's interactions
        this.RunDialog = function () {
            var d = this.dlgMain;
            // in case hit cancel button, don't close
            d.pAndB.buttons.cancelBtn.onClick = function() {
                var dToCancel = FindDialog( this );
                dToCancel.close( false );
            // nothing for now
            d.onShow = function() {
            // do not allow anything except for numbers 0-9
            d.pAndB.info.w.e.addEventListener ('keydown', NumericEditKeyboardHandler);
            // do not allow anything except for numbers 0-9
            d.pAndB.info.h.e.addEventListener ('keydown', NumericEditKeyboardHandler);
            // hit OK, do resize
            d.pAndB.buttons.okBtn.onClick = function () {
                if (gInAlert == true) {
                    gInAlert = false;
                    return;
                var wText = d.pAndB.info.w.e.text;
                var hText = d.pAndB.info.h.e.text;
                var lValue = d.pAndB.info.l.c.value;
                var w = Number(wText);
                var h = Number(hText);
                sizeInfo.limit = Boolean(lValue);
                var inputErr = false;
                if ( isNaN( w ) || isNaN( h ) ) {
                    if ( DialogModes.NO != app.playbackDisplayDialogs ) {
                        alert( strTextInvalidType );
                    if (isNaN( w )) {
                        sizeInfo.width = new UnitValue( 1, "px" );
                        d.pAndB.info.w.e.text = 1;
                    } else {
                        sizeInfo.height = new UnitValue( 1, "px" );
                        d.pAndB.info.h.e.text = 1;
                        return false;
                else if (w < 1 || w > gMaxResize || h < 1 || h > gMaxResize) {
                    if ( DialogModes.NO != app.playbackDisplayDialogs ) {
                        gInAlert = true;
                        alert( strTextInvalidNum );
                if ( w < 1) {
                    inputErr = true;
                    sizeInfo.width = new UnitValue( 1, "px" );
                    d.pAndB.info.w.e.text = 1;
                if ( w > gMaxResize) {
                    inputErr = true;
                    sizeInfo.width = new UnitValue( gMaxResize, "px" );
                    d.pAndB.info.w.e.text = gMaxResize;
                if ( h < 1) {
                    inputErr = true;
                    sizeInfo.height = new UnitValue( 1, "px" );
                    d.pAndB.info.h.e.text = 1;
                if ( h > gMaxResize) {
                    inputErr = true;
                    sizeInfo.height = new UnitValue( gMaxResize, "px" );
                    d.pAndB.info.h.e.text = gMaxResize;
                if (inputErr == false)  {
                    sizeInfo.width = new UnitValue( w, "px" );
                    sizeInfo.height = new UnitValue( h, "px" );
                    if (ResizeTheImage(w, h)) { // the whole point
                        // error, input or output size too small
                    d.close(true);
                return;
            if (!this.InitVariables())
                return true; // handled it
            // give the hosting app the focus before showing the dialog
            app.bringToFront();
            this.dlgMain.center();
            return d.show();
    function CheckVersion() {
        var numberArray = version.split(".");
        if ( numberArray[0] < 9 ) {
            if ( DialogModes.NO != app.playbackDisplayDialogs ) {
                alert( strMustUse );
            throw( strMustUse );
    function FindDialog( inItem ) {
        var w = inItem;
        while ( 'dialog' != w.type ) {
            if ( undefined == w.parent ) {
                w = null;
                break;
            w = w.parent;
        return w;
    // Function: objectToDescriptor
    // Usage: create an ActionDescriptor from a JavaScript Object
    // Input: JavaScript Object (o)
    //        object unique string (s)
    //        Pre process converter (f)
    // Return: ActionDescriptor
    // NOTE: Only boolean, string, number and UnitValue are supported, use a pre processor
    //       to convert (f) other types to one of these forms.
    // REUSE: This routine is used in other scripts. Please update those if you
    //        modify. I am not using include or eval statements as I want these
    //        scripts self contained.
    function objectToDescriptor (o, s, f) {
        if (undefined != f) {
            o = f(o);
        var d = new ActionDescriptor;
        var l = o.reflect.properties.length;
        d.putString( app.charIDToTypeID( 'Msge' ), s );
        for (var i = 0; i < l; i++ ) {
            var k = o.reflect.properties[i].toString();
            if (k == "__proto__" || k == "__count__" || k == "__class__" || k == "reflect")
                continue;
            var v = o[ k ];
            k = app.stringIDToTypeID(k);
            switch ( typeof(v) ) {
                case "boolean":
                    d.putBoolean(k, v);
                    break;
                case "string":
                    d.putString(k, v);
                    break;
                case "number":
                    d.putDouble(k, v);
                    break;
                default:
                    if ( v instanceof UnitValue ) {
                        var uc = new Object;
                        uc["px"] = charIDToTypeID("#Pxl"); // pixelsUnit
                        uc["%"] = charIDToTypeID("#Prc"); // unitPercent
                        d.putUnitDouble(k, uc[v.type], v.value);
                    } else {
                        throw( new Error("Unsupported type in objectToDescriptor " + typeof(v) ) );
        return d;
    // Function: descriptorToObject
    // Usage: update a JavaScript Object from an ActionDescriptor
    // Input: JavaScript Object (o), current object to update (output)
    //        Photoshop ActionDescriptor (d), descriptor to pull new params for object from
    //        object unique string (s)
    //        JavaScript Function (f), post process converter utility to convert
    // Return: Nothing, update is applied to passed in JavaScript Object (o)
    // NOTE: Only boolean, string, number and UnitValue are supported, use a post processor
    //       to convert (f) other types to one of these forms.
    // REUSE: This routine is used in other scripts. Please update those if you
    //        modify. I am not using include or eval statements as I want these
    //        scripts self contained.
    function descriptorToObject (o, d, s, f) {
        var l = d.count;
        if (l) {
            var keyMessage = app.charIDToTypeID( 'Msge' );
            if ( d.hasKey(keyMessage) && ( s != d.getString(keyMessage) )) return;
        for (var i = 0; i < l; i++ ) {
            var k = d.getKey(i); // i + 1 ?
            var t = d.getType(k);
            strk = app.typeIDToStringID(k);
            switch (t) {
                case DescValueType.BOOLEANTYPE:
                    o[strk] = d.getBoolean(k);
                    break;
                case DescValueType.STRINGTYPE:
                    o[strk] = d.getString(k);
                    break;
                case DescValueType.DOUBLETYPE:
                    o[strk] = d.getDouble(k);
                    break;
                case DescValueType.UNITDOUBLE:
                    var uc = new Object;
                    uc[charIDToTypeID("#Rlt")] = "px"; // unitDistance
                    uc[charIDToTypeID("#Prc")] = "%"; // unitPercent
                    uc[charIDToTypeID("#Pxl")] = "px"; // unitPixels
                    var ut = d.getUnitDoubleType(k);
                    var uv = d.getUnitDoubleValue(k);
                    o[strk] = new UnitValue( uv, uc[ut] );
                    break;
                case DescValueType.INTEGERTYPE:
                case DescValueType.ALIASTYPE:
                case DescValueType.CLASSTYPE:
                case DescValueType.ENUMERATEDTYPE:
                case DescValueType.LISTTYPE:
                case DescValueType.OBJECTTYPE:
                case DescValueType.RAWTYPE:
                case DescValueType.REFERENCETYPE:
                default:
                    throw( new Error("Unsupported type in descriptorToObject " + t ) );
        if (undefined != f) {
            o = f(o);
    // Function: SizeInfo
    // Usage: object for holding the dialog parameters
    // Input: <none>
    // Return: object holding the size info
    function SizeInfo() {
        this.height = new UnitValue( 0, "px" );
        this.width = new UnitValue( 0, "px" );
        this.limit = false;
    // Function: NumericEditKeyboardHandler
    // Usage: Do not allow anything except for numbers 0-9
    // Input: ScriptUI keydown event
    // Return: <nothing> key is rejected and beep is sounded if invalid
    function NumericEditKeyboardHandler (event) {
        try {
            var keyIsOK = KeyIsNumeric (event) ||
                          KeyIsDelete (event) ||
                          KeyIsLRArrow (event) ||
                          KeyIsTabEnterEscape (event);
            if (! keyIsOK) {
                //    Bad input: tell ScriptUI not to accept the keydown event
                event.preventDefault();
                /*    Notify user of invalid input: make sure NOT
                       to put up an alert dialog or do anything which
                             requires user interaction, because that
                             interferes with preventing the 'default'
                             action for the keydown event */
                app.beep();
        catch (e) {
            ; // alert ("Ack! bug in NumericEditKeyboardHandler: " + e);
    //    key identifier functions
    function KeyHasModifier (event) {
        return event.shiftKey || event.ctrlKey || event.altKey || event.metaKey;
    function KeyIsNumeric (event) {
        return  (event.keyName >= '0') && (event.keyName <= '9') && ! KeyHasModifier (event);
    function KeyIsDelete (event) {
        //    Shift-delete is ok
        return ((event.keyName == 'Backspace') || (event.keyName == 'Delete')) && ! (event.ctrlKey);
    function KeyIsLRArrow (event) {
        return ((event.keyName == 'Left') || (event.keyName == 'Right')) && ! (event.altKey || event.metaKey);
    function KeyIsTabEnterEscape (event) {
        return event.keyName == 'Tab' || event.keyName == 'Enter' || event.keyName == 'Escape';
    // End Fit Image.jsx

    With Photoshop CS5 you can use Image Processor Pro and this should do what you require...
    http://blogs.adobe.com/jnack/2011/05/new-image-processor-pro-script-for-cs5.html

  • SAP Script Help

    Hi Experts,
    I am printing 8 main windows in one page in a script. But the problem is whatever changes I make to one window it gets reflected in  all the windows. So the allignment doesnt get proper at all for the printing. what is the resolution for this.Please help me out with.
    Thank You.

    Please clarify your Question More, You are getting Problem in windows or in Pages.
    check Utilities->Printing test.
    Also,
    Settings->form Painter->Tick Graphical form Painter->Remove tick from Graphical PC Editir=>continue
    By this check the attributes and parametrs  of all windows and pages

  • Issue in running eCATT Scripts  - Help required very urgently

    Dear All,
    We are running the eCATT scripts from Solman 7.0 by connecting it to ERP system R/3 4.6C. While running the scripts, we are facing some issue.
    1. If we try to run the scripts then those are getting failed. The same scripts if we run after some time with out changing any code then those are running fine.
    We are frequently facing this probelm.
    Could you please let me know the solution. Your help is really appreciated.
    Thanks,
    Mahendra
    Moderator Message: Urgently word is not allowed in this forum. Open a new thread without the "priority" word.
    Edited by: kishan P on Sep 6, 2010 11:18 AM
    Edited by: kishan P on Sep 6, 2010 11:21 AM

    Dear Ananth,
    Scripting is getting failed at different lines of code at different runs.
    Thanks,
    Mahendra

  • Script help

    Dear friends,
        I need to do the following task.
       For Movement 911, I need to remove hard coding (PROD) and incorporate the following logic in the script program.
    Data is maintained (set-id:z_vendor_assembly_area) in both “Format Group (PRTCLASS)” and “Symbolic name (LNAME)”. Above set-id already contained PROD against cost center No. Hard coding should be removed and apply processing logic as follows:
    Read PRTCLASS for LNAME = PROD
    Extract FROM
    If  Vendor No. = FROM  in the layout form then show “Cost Center” =  LNAME
        I don't know where to incoporte the coding in the below program, Pls anyone give me the solution to where to incorporate the coding and how.
    script Coding:
    TABLES: ltak, ltap, *ltap, rldru, *rldru, mgef, itcpo, usr01,
            t300, t300t, t331, t333b, t646g, t646h, tsp03, t340d,
            t329f, t329d, t329p, *t329p, t329a, t301t, *t301t, lqua,
            rl03t, *rl03t, lein, t302t, *t302t, cpkme, lprdr,
            likp, kna1, mseg, afpo, t003p, marc, makt, stxl, lips,
            lubu, cobl, ekpo, t157e, caufv, ltbp, mkpf, t156t, lfa1,
            resb, plpo, pkhd, t001w, mara, vbap, eket, qals, t024,
            ekko, vbak, sadr, t001l, t496f, t496r, tvapt, pkps,
            tvaut, vbpa, pa0105,
      table usr03 was removed for 3.1h to 4.6 conversion.
      tables usr21 & adrp were added instead.
            usr21, adrp,
      for the Ethis project Aug 2001       //EB
            inob, kssk, ksml, ausp, cawnt, cabnt, prps, prps,mseg, zmapd,
    SR29757 //EB sept 2002
            t333,
    SR#76047
            afko, aufk,
    SR#82839
            viora, jsto, tj30, tj30t.
    *{   INSERT         for Service Pack changes  Jan 20001 // EB.
    DATA: humla TYPE c.
    *}   INSERT
    DATA:    BEGIN OF addr_groups OCCURS 3.
            INCLUDE STRUCTURE adagroups.
    DATA:    END OF addr_groups.
    DATA:    BEGIN OF addr_sel.
            INCLUDE STRUCTURE addr1_sel.
    DATA:    END OF addr_sel.
    DATA:    BEGIN OF addr_val.
            INCLUDE STRUCTURE addr1_val.
    DATA:    END OF addr_val.
    4.7 Upgrade Issue Resolution
    DATA:   DRUCKVERBUCHER            TYPE C.  "Steuert ob Druck aus Verbu.
    data    etikett type c.
    DATA: batchsrc   LIKE mseg-charg,                           "GV1
          batchdest  LIKE mseg-charg,
          destmatnr(18) TYPE c,
          binflg     TYPE c,
          ctrlcycle  LIKE pkhd-pknum,
          diff       TYPE i,
          fstprnt    TYPE c VALUE 'X',                          "GV1
          item_count(4) TYPE n,
          prntmess   TYPE c VALUE 'X',                          "GV1
          negative   TYPE c,
          hotpick TYPE c,
          key(12) TYPE c,
          objnr(22) TYPE c,
          srcmatnr(18) TYPE c,
          stattext(40) TYPE c,
          valuatsrc  LIKE mseg-bwtar,                           "GV1
          valuatdest LIKE mseg-bwtar,                           "GV1
          prtbatch  TYPE c,                                     "GV1
          prtvaluat TYPE c,                                     "GV1
          supparea LIKE pkhd-prvbe,
          status_drpz LIKE   tj02-istat VALUE 'I0210',
          tot_qty   TYPE i,                                     "GV1
          vendcar(10)   TYPE c,
        vendint like mseg-lifnr,
          vendint TYPE i,
          wrkeof TYPE c.                                        "GV1
    DATA: BEGIN OF t_altbin OCCURS 10,                          "GV1
            bin(6) TYPE c,
          END OF t_altbin,
          bin1(6) TYPE c,                                       "GV1
          bin2(6) TYPE c,                                       "GV1
          bin3(6) TYPE c,                                       "GV1
          bin4(6) TYPE c,                                       "GV1
          bin5(6) TYPE c,                                       "GV1
          bin6(6) TYPE c,                                       "GV1
          bin7(6) TYPE c,                                       "GV1
          bin8(6) TYPE c,                                       "GV1
          bin9(6) TYPE c,                                       "GV1
          bin10(6) TYPE c.                                      "GV1
    DATA: BEGIN OF t_qty OCCURS 100,                            "GV1
             bin   LIKE ltap-nlpla,
             qty TYPE i,
             matnr LIKE ltap-matnr,
          END OF t_qty.                                         "GV1
    DATA:   p_proto    LIKE rldru-proto.
    *data  con_program_data   like sy-repid value 'RLVSDR00'.
    DATA  con_program_data   LIKE sy-repid VALUE 'ZPJSDR00'.
    *{ Added for SR:293067
    DATA: BEGIN OF mseg_data_0 OCCURS 10,
             aufnr LIKE mseg-aufnr,
             mblnr LIKE ltak-mblnr,
             mjahr LIKE ltak-mjahr,
             mbpos LIKE ltap-mbpos,
    END OF mseg_data_0.
    DATA: mseg_data LIKE mseg_data_0.
    DATA: x(1) TYPE c.
    *........Reportspezifische Parameter und Select-Options.................
    SELECTION-SCREEN  BEGIN OF BLOCK xxx WITH FRAME TITLE text-010.
    PARAMETERS:
            druckkz  LIKE rldru-drukz,
            edrucker LIKE rldru-ldest,
            spoolpar LIKE rldru-spool,
            drucken AS CHECKBOX DEFAULT 'X'. "Kz Liste drucken
    SELECTION-SCREEN SKIP 1.
    PARAMETERS:
            tasch AS CHECKBOX   DEFAULT 'X',    "Druck TA-Schein
            lesch AS CHECKBOX   DEFAULT 'X',    "Druck LE-Schein
            letasch AS CHECKBOX DEFAULT 'X',    "Druck LE-TA-Schein
            leinh AS CHECKBOX   DEFAULT 'X'.    "Druck LE-Inhaltsverzeichnis
    SELECTION-SCREEN END OF BLOCK xxx.
           Interne Tabellen                                             *
    *........Tabelle der TA-Positionen.....................................
    DATA:   BEGIN OF tap OCCURS 50.
            INCLUDE STRUCTURE ltap.
            INCLUDE STRUCTURE ltap1.
    DATA:   END OF tap.
    DATA: BEGIN OF lsperr OCCURS 50.
            INCLUDE STRUCTURE lein.
    DATA: END OF lsperr.
    DATA BEGIN OF options1.
            INCLUDE STRUCTURE itcpo.
    DATA END OF options1.
    DATA: BEGIN OF prlst_tmp.
            INCLUDE STRUCTURE print_co.
    DATA: END OF prlst_tmp.
    DATA: BEGIN OF l_qamvtab OCCURS 10.
            INCLUDE STRUCTURE qamv.
    DATA: END OF l_qamvtab.
    DATA: BEGIN OF l_qamv_save.
            INCLUDE STRUCTURE qamv.
    DATA: END OF l_qamv_save.
    *DATA: BEGIN OF G_QAMV_TAB OCCURS 10.
           INCLUDE STRUCTURE QAMV.
    *DATA: END OF G_QAMV_TAB.
    DATA: BEGIN OF qamvtab OCCURS 10.
            INCLUDE STRUCTURE qamv.
    DATA: END OF qamvtab.
    DATA: BEGIN OF qapotab OCCURS 10.
            INCLUDE STRUCTURE qapo.
    DATA: END OF qapotab.
    DATA: BEGIN OF qasvtab OCCURS 10.
            INCLUDE STRUCTURE qasv.
    DATA: END OF qasvtab.
    DATA: BEGIN OF i_qals.
            INCLUDE STRUCTURE qals.
    DATA: END OF i_qals.
    DATA: i_first_print(1) VALUE 'X',
          i_print_message  LIKE tq30-kzmessage VALUE 'X'.
    DATA: BEGIN OF qsperr OCCURS 100.
            INCLUDE STRUCTURE lqua.
    DATA: END OF qsperr.
    *........Interne Tabelle zur Aufnahme der Druckinformationen zu dem.....
    *........Druck von Palettenscheinen. ...................................
    *........(Achtung: wird auch gebraucht im RLKOMM00-Kommilistendruck)....
    DATA: BEGIN OF int_ledruck OCCURS 100,
            drukz      LIKE t329f-drukz,
            formu      LIKE t329f-formu,
            tddelete   LIKE t329p-tddelete,
            tdnewid    LIKE t329p-tdnewid,
            tdimmed    LIKE t329p-tdimmed,
            tddataset  LIKE t329p-tddataset,
            tdcopies   LIKE t329p-tdcopies,
            ldest      LIKE t329d-ldest,
            le_schtyp,
            sorco(4),
            lenum      LIKE lein-lenum,
            vltyp      LIKE ltap-vltyp,
            vlber      LIKE ltap-vlber,
            vlpla      LIKE ltap-vlpla,
            nltyp      LIKE ltap-nltyp,
            nlber      LIKE ltap-nlber,
            nlpla      LIKE ltap-nlpla,
            lgnum      LIKE ltap-lgnum,
            nidr2      LIKE t329d-nidr2,
            nidr3      LIKE t329d-nidr3,
            nidr4      LIKE t329d-nidr4,
          END OF int_ledruck.
    ........Protoco of Printer search instead of print out...............
    DATA:   BEGIN OF iproto OCCURS 20.
            INCLUDE STRUCTURE lprdr.
    DATA:   END OF iproto.
           Einzelfelder                                                 *
    DATA: flg_lgtyp_barcode(1)     TYPE c VALUE ' '.
    DATA:   flg_form_open             TYPE c,
            flg_tadruck_aut           TYPE c,
            flg_tadruck_man           TYPE c,
            flg_tadruck_wie           TYPE c,       " Sapscript oder Abap
            flg_taplg1                TYPE c,
            flg_taplg2                TYPE c,
            flg_druck_umbuch          TYPE c,
            flg_erster_umbuch         TYPE c,
    flag for vendors with more than one address    //EB Aug99
            flg_vendor_addr           TYPE c,
            erster_durchlauf          TYPE c,
            mvmt261-flag              type c.
    DATA:   kz_sort_vonlagertyp       TYPE c.
    DATA:   hlp_tapos                 LIKE ltap-tapos,
            hlp_tapos_umbuch          LIKE ltap-tapos,
            sav_tapos                 LIKE ltap-tapos,
            cnt_samml                 TYPE p.            "Anz. Pos./Blatt
    Umbuchungsspezifika.........................................*
    DATA:   u2_taplg  LIKE rldru-taplg,
            cnt_umb_pos     TYPE   c.
    DATA:   BEGIN OF u2_rl03t.
            INCLUDE STRUCTURE rl03t.
    DATA:   END OF u2_rl03t.
    DATA:   BEGIN OF u2_ltap.
            INCLUDE STRUCTURE ltap.
    DATA:   END OF u2_ltap.
           Konstanten                                                   *
    DATA:   druckaufbereitung(16)     TYPE c VALUE 'X_PAPER_NT      ',
            con_blank                 LIKE ltap-vorga VALUE '  ',
            con_eins                  LIKE ltap-tapos VALUE '0001',
            con_tb                    LIKE ltap-vorga VALUE 'TB',
            con_u1                    LIKE ltap-vorga VALUE 'U1',
            con_u2                    LIKE ltap-vorga VALUE 'U2',
            con_schein_le             VALUE '1',      "LE-Schein
            con_schein_leta           VALUE '2',      "LE-TA-Schein
            con_schein_lei            VALUE '3',      "LE-Inhaltsverzeichnis
            con_vorga_tl              LIKE t342-vorga VALUE 'TL',
            rfltn(18)                 TYPE c,
            taplg(19)                 TYPE c,
           *taplg(19)                 TYPE c,
            talgn(15)                 TYPE c.
    *.......Altlasten wegen gemeinsamer Includes............................
    DATA:   abap      TYPE c     VALUE 'A',
            sapscript TYPE c     VALUE 'S',
            formular  LIKE t329f-formu.
    DATA: bar1 TYPE c,
          bar2 TYPE c,
          bar3 TYPE c,
          bar5 TYPE c,
          shipping TYPE c,
          afsdesc LIKE caufv-ktext,
          afsnum LIKE afpo-matnr,
          engdesc LIKE makt-maktx,
          engsernum LIKE afpo-charg,
          destplan LIKE mseg-werks,
          srcplan LIKE mseg-werks,
          deststor LIKE mseg-lgort,
          srcstor LIKE mseg-lgort,
          destbin LIKE ltap-nlpla,
          prodordnum LIKE afpo-aufnr,
          collectord LIKE caufv-maufnr,
          engnum LIKE caufv-stlbez,
          sonum LIKE ltap-nlpla,
          topass TYPE c,
          rush TYPE c,
          delnum LIKE ltap-nlpla,
          soitemnum(16) TYPE c,
          textkey(15) TYPE c,
          textkey1(10) TYPE c,
          class-text(15) TYPE c VALUE 'Classification:',
          sdgrpchk LIKE ltap-vlpla,
          temp-ltak-date like ltak-bdatu,
          temp-wm-mvmt like ltak-bwlvs.
    DATA: BEGIN OF i_snum OCCURS 0,
            aufnr     LIKE zpps-aufnr,
            zmatnr    LIKE zpps-zmatnr,
            zatserial LIKE zpps-zatserial,
    *{ Modification Start P913099
    Added the following fields
            zatcage   LIKE zpps-zatcage,
            zatser_cage(23) TYPE c,           " Concatenate zatserial + zatcage.
    *}Modification End P913099
          END OF i_snum.
    DATA: w_remain LIKE sy-tabix,
          w_line   LIKE sy-tabix,
          w_start  LIKE sy-tabix,
          w_end    LIKE sy-tabix,
    *{ Modification Start P913099
    *Commented the two fields
        serialnum1 LIKE zpps-zatserial,
        serialnum2 LIKE zpps-zatserial.
    Added the following fields
          serialnum1(23) type c,
          serialnum2(23) type c.
    *}Modification End P913099
    *{ Added for SR:27018
    DATA: flag_watermark_cust,
          wm_text LIKE zcscf-zwmtext,
          csc_uk_wm TYPE c.
    DATA: BEGIN OF i_zcscf OCCURS 10.
            INCLUDE STRUCTURE zcscf.
    DATA: END OF i_zcscf.
    Added for the Ethis Project...Aug 2001   //EB
    DATA: temp-objek LIKE inob-objek,
          temp-lsonr LIKE rl03t-lsonr.
    DATA: BEGIN OF temp_inob.
            INCLUDE STRUCTURE inob.
    DATA: END OF temp_inob.
    DATA: BEGIN OF temp_kssk.
            INCLUDE STRUCTURE kssk.
    DATA: END OF temp_kssk.
    DATA: BEGIN OF temp_ausp.
            INCLUDE STRUCTURE ausp.
    DATA: END OF temp_ausp.
    DATA: BEGIN OF temp_cawnt.
            INCLUDE STRUCTURE cawnt.
    DATA: END OF temp_cawnt.
    DATA: BEGIN OF temp_cabnt.
            INCLUDE STRUCTURE cabnt.
    DATA: END OF temp_cabnt.
    DATA: BEGIN OF temp_ksml OCCURS 0,
                imerk LIKE ksml-imerk,
          END OF temp_ksml.
    DATA: BEGIN OF out_batch_class OCCURS 0,
                description LIKE cabnt-atbez,
                value       LIKE ausp-atwrt,
          END OF out_batch_class.
    DATA: BEGIN OF i_ltap OCCURS 0,
             tanum LIKE ltap-tanum,
             vlpla LIKE ltap-vlpla,
             vltyp LIKE ltap-vltyp,
             vlber LIKE ltap-vlber,
             vsolm LIKE ltap-vsolm,
            END OF i_ltap.
    DATA special-fill(18) TYPE c.
    DATA float-value TYPE p DECIMALS 3.
    DATA: actualen TYPE i,
          remlen   TYPE i,
          atsign(1) TYPE c VALUE '@',
          source-wbs-ele LIKE zmapd-zsourceposid,
          pono LIKE mseg-ebeln,
          vendorno       LIKE mcha-lifnr,
          linecnt  TYPE i,
          char-prodorder LIKE ausp-atwrt.
    DATA: persono    LIKE usr21-persnumber,
          first-name LIKE adrp-name_first,
          last-name  LIKE adrp-name_last.
    end Aug 2001 //EB
    issue#MM20020808  // EB Aug 2002
    DATA: BEGIN OF temp_mseg occurs 0,
            mblnr like mseg-mblnr,
            mjahr like mseg-mjahr,
            zeile like mseg-zeile,
            bwart like mseg-bwart,
            xauto like mseg-xauto,
            matnr like mseg-matnr,
            lgort like mseg-lgort,
            tbnum like mseg-tbnum,
            werks like mseg-werks,
          END OF temp_mseg.
    data: temp-beskz like marc-beskz,
          temp-fevor like marc-fevor,
          temp-msg-text(10) type c,
          high-priority-flag type c.
    issue#MM20020819  // EB Aug 2002
    DATA: temp-indx(4) TYPE n.
    SR29757 //EB sept 2002
    DATA: BEGIN OF temp_afvc OCCURS 0,
            aplzl LIKE afvc-aplzl,
            plnkn LIKE afvc-plnkn,
            vornr LIKE afvc-vornr,
            objnr LIKE afvc-objnr,
          END OF temp_afvc.
    DATA: stattext-oper(40) TYPE c,
          temp-drukz LIKE t333-drukz,
          oper-count        TYPE i.
    end SR29757
    TYPES: BEGIN OF t_storloc,
              storloc TYPE mseg-lgort,
           END OF t_storloc.
    DATA: storloc_tbl TYPE STANDARD TABLE OF t_storloc WITH HEADER LINE.
    TYPES: BEGIN OF t_sched1,
              fevor TYPE afko-fevor,
           END OF t_sched1.
    DATA: sched1_tbl TYPE STANDARD TABLE OF t_sched1 WITH HEADER LINE.
    TYPES: BEGIN OF t_sched2,
              fevor TYPE afko-fevor,
           END OF t_sched2.
    DATA: sched2_tbl TYPE STANDARD TABLE OF t_sched2 WITH HEADER LINE.
    INCLUDE mllvskon.
    ........Sort-routeenies and definition of output table OUT..........
    Egidio Jan 99
    INCLUDE zlvsdr30.
           AT SELECTION-SCREEN                                          *
    AT SELECTION-SCREEN.
      PERFORM at_selection_screen.
    wait up to 10 seconds.
           START-OF-SELECTION                                           *
    START-OF-SELECTION.
      PERFORM start_of_selection.
           GET LTAK                                                     *
    GET ltak.
      PERFORM get_ltak.
      clear temp-ltak-date.
      temp-ltak-date = ltak-bdatu.
      temp-wm-mvmt = ltak-bwlvs.
           GET LTAP                                                     *
    GET ltap.
      CLEAR temp-indx.
      PERFORM get_ltap.
               GET NEW TABLES INFO  (CODE MOVED IN form get_ltap.)
    perform new_tables_access.
           END-OF-SELECTION                                             *
    END-OF-SELECTION.
      PERFORM end_of_selection.
          Unterprogramme, die zu den einzelnen Reportereignissen        *
          aufgerufen werden:                                            *
          AT_SELECTION_SCREEN                                           *
          START_OF_SELECTION                                            *
          GET_LTAK                                                      *
          GET_LTAP                                                      *
          END_OF_SELECTION                                              *
          AT SELECTION-SCREEN                                           *
    FORM at_selection_screen.
    *........Prüfen das eingegebene Druckkennzeichen.......................
      IF druckkz NE space.
        PERFORM t329f_lesen USING t4_lgnum druckkz.
        IF sy-subrc NE 0.
          MESSAGE a118 WITH t4_lgnum druckkz.
        ENDIF.
      ENDIF.
    *........Prüfen den eingegebenen Drucker...............................
      IF edrucker NE space.
        PERFORM tsp03_lesen USING edrucker.
        IF sy-subrc NE 0.
          MESSAGE a119 WITH edrucker.
        ENDIF.
      ENDIF.
    *........Prüfen das eingegebene Spoolparameterkennzeichen..............
      IF spoolpar NE space.
        PERFORM t329p_lesen USING t4_lgnum spoolpar.
        IF sy-subrc NE 0.
          MESSAGE a116 WITH t4_lgnum spoolpar.
        ENDIF.
      ENDIF.
    ENDFORM.
          START-OF-SELECTION                                            *
    FORM start_of_selection.
    ........Is used in mutual include RLVSEXTE...........................
      flg_tadruck_wie = sapscript.
    ........Initialize internal table out ...............................
      REFRESH out.
    *........Importieren von QPSERR und LSPERR aus Memory
      IF NOT t4_kzmem IS INITIAL.
        IMPORT qsperr
               lsperr FROM MEMORY ID druck_id.
        SORT qsperr.
      ENDIF.
    ENDFORM.
          GET LTAK                                                      *
    FORM get_ltak.
      CLEAR cpkme.
    *........Read T340D-REPID once to def. Work-area for data -> open_form
      PERFORM t340d_lesen USING ltak-lgnum.
    *........Druckkennzeichen .............................................
      IF druckkz IS INITIAL.
    *........Druckkennzeichen aus dem TA-Kopf..............................
        IF ltak-drukz IS INITIAL.
          MESSAGE a114.
        ELSE.
    *........read necessary information about Sort-indicator and check....
          PERFORM t329f_lesen USING t4_lgnum ltak-drukz.
          IF sy-subrc NE 0.
            MESSAGE a118 WITH t4_lgnum ltak-drukz.
          ENDIF.
        ENDIF.
      ENDIF.
    *........Prüfen, ob Wiederholdruck ....................................
      IF NOT ltak-druck IS INITIAL.        " Mimik für Wiederholdruck
        MOVE text-002 TO rldru-wiedr.      " Druckwiederholung
      ENDIF.
    *........Lesen Text zur Transportart..................................
      PERFORM t333b_lesen USING ltak-lgnum ltak-trart.
    ........Lesen Kanbandaten / Read Kanbandata if necessary.............
      IF NOT ltak-pknum IS INITIAL AND NOT ltak-pkpos IS INITIAL.
        PERFORM kanban_read.
      ENDIF.
    .......Füllen IKOPF / Fill internal table IKOPF......................
      PERFORM ikopf_fuellen.
    ENDFORM.
          GET LTAP                                                      *
    FORM get_ltap.
    .......Print certificate number etc... when printing online.........
      PERFORM ltap_adding_from_qsperr.
    .......Special treatment for posting changes........................
      PERFORM posting_change_special.
    *.......Print extra note when TO is inventory doc. or when 0-stock-ctrl.
      PERFORM inv_nulko_note.
    .......Mixing of bin location with position within bin...............
      PERFORM platz_positionen_mischen.
    .......Special stock into external format............................
      PERFORM sonum_conversion.
    .......Find Printer according to Printer tables etc..................
      PERFORM printer_search.
    ZPJ_LVSUMBUCHEN was added for production issue #518795
      CLEAR temp_mseg[].
      IF t329f-formu = 'ZPJ_LVSTAEINZEL' OR
         t329f-formu = 'ZPJ_LVSUMBUCHEN' OR
         t329f-formu = 'ZPJ_LVSTA961ZEL'.
    *issue mm515642
        SELECT mblnr mjahr zeile bwart xauto matnr lgort tbnum werks
               INTO CORRESPONDING FIELDS OF TABLE temp_mseg FROM mseg
               WHERE mblnr EQ ltak-mblnr
               AND mjahr EQ ltak-mjahr
               AND matnr EQ ltap-matnr.
      ELSE.
    *issue mm20200819
        SELECT mblnr mjahr zeile bwart xauto matnr lgort tbnum werks
               INTO CORRESPONDING FIELDS OF TABLE temp_mseg FROM mseg
               WHERE mblnr EQ ltak-mblnr
               AND mjahr EQ ltak-mjahr
               AND lgort EQ ltak-lgnum.
      ENDIF.
      PERFORM new_tables_access.
    .......Füllen Out / Fill internal table OUT..........................
      PERFORM out_fuellen.
    ENDFORM.
          END-OF-SELECTION                                              *
    FORM end_of_selection.
    *........Some helper fields...........................................
      DATA:  sav_vltyp     LIKE  ltap-vltyp,
             sav_tanum     LIKE  ltap-tanum,
             sav_formu     LIKE t329f-formu,
             sav_tddelete  LIKE t329p-tddelete,
             sav_tdimmed   LIKE t329p-tdimmed,
             sav_tdnewid   LIKE t329p-tdnewid,
             sav_tddataset LIKE t329p-tddataset,
             sav_tdcopies  LIKE t329p-tdcopies,
             sav_ldest     LIKE ltap-ldest.
           DCE Project (SR 29757)
           Determine if TO is assigned to a Queue instead of printing
      DATA: to_warehouse          LIKE ltak-lgnum,
            to_nbr                LIKE ltak-tanum,
            wk_queue              LIKE ltak-queue,      "Queue
            wk_priority           LIKE ltak-tapri,
            process_hotpick       TYPE c,
            assign_msg(6)         TYPE c.
    SR#83485 do not print the TO if......
      if temp-wm-mvmt is initial.
         move ltak-bwlvs to temp-wm-mvmt.
      endif.
      if srcplan = '0001' and
         destplan = '0017' and
         temp-wm-mvmt = '911'.
         exit.
      endif.
    Only check the hotpicks with movement type 261
      CLEAR process_hotpick.
      IF ( hotpick = 'X' OR
           hotpick = 'A' OR
           hotpick = 'B' OR
           hotpick = 'C' OR
           hotpick = 'D' ) AND
           ikopf-bwart NE 261.
        process_hotpick = 'X'.
      ENDIF.
      CLEAR assign_msg.
      IF ikopf-queue IS INITIAL AND
         ikopf-kquit NE 'X' AND
         process_hotpick NE 'X' AND
    Warehouse 17A
    ( ( ikopf-lgnum =  '17A' AND
       ( ikopf-bwart =  101  OR
         ikopf-bwart =  105 ) ) OR
    Warehouse 1A
       ( ikopf-lgnum =  '1A ' AND
       ( ikopf-bwart =  101 OR
         ikopf-bwart =  105 OR
         ikopf-bwart =  231 OR
         ikopf-bwart =  261 OR
         ikopf-bwart =  351 OR
         ikopf-bwart =  541 OR
         ikopf-bwart =  911 ) ) ).
       ikopf-bwart =  954 ) ) ).           "KYS
        to_warehouse = ikopf-lgnum.
        to_nbr       = ikopf-tanum.
        PERFORM assign_queue IN PROGRAM zmrf_assign_queue
                USING to_warehouse to_nbr wk_queue
                      wk_priority assign_msg hotpick.
      ENDIF.
    Bypass printing if TO is assigned to a queue
      IF assign_msg = 'ASSIGN'.
        ltak-tapri = wk_priority.
        ltak-queue = wk_queue.
        IF wk_queue(6) = 'PALLET'.
          SELECT SINGLE zcage INTO wk_queue
               FROM ztocage
                   WHERE lgnum = ltak-lgnum AND
                         tbnum = ltak-tbnum.
          IF sy-subrc NE 0.
             wk_queue = 'PALLET_??'.
          ENDIF.
        ENDIF.
        IF wk_priority = 5.
          CONCATENATE wk_queue 'Hotpick' INTO ltak-lznum SEPARATED BY space.
        ELSE.
          ltak-lznum = wk_queue.
        ENDIF.
        CLEAR assign_msg.
      ELSE.
    Ethis phase III //EB Sept 2002
        CLEAR temp-drukz.
        PERFORM check-movement-types.
        clear: mvmt261-flag, high-priority-flag.
        perform get_usrdefined_stortype.
    issue #552159
        IF temp-drukz = '05'.
           move 'X' to high-priority-flag.
           PERFORM mvmt961_logic.
    SR#76047
        elseif not mvmt261-flag is initial .
               move 'X' to high-priority-flag.
               perform mvmt261_special_logic.
    SR#82839 (not yet implemented Feb 2006(EB)
               if mseg-werks  = '0001' and
                  ikopf-bwart = '261'.
                  loop at temp_mseg.
                     clear: temp-beskz, temp-fevor, temp-msg-text.
                     select single beskz fevor into (temp-beskz, temp-fevor) from marc
                            where matnr  = temp_mseg-matnr and
                                  werks  = temp_mseg-werks.
                     perform get_userdefined_scheduler.
                     read table sched1_tbl with key fevor = temp-fevor.
                     if sy-subrc = 0.
                        move ' AMAX' to temp-msg-text.
                     else.
                        read table sched2_tbl with key fevor = temp-fevor.
                        if sy-subrc = 0.
                           move ' Solumina' to temp-msg-text.
                        endif.
                     endif.
                     check sy-subrc = 0.
                     if sy-subrc = 0 and temp-beskz = 'E'.
                        perform solumina_PO_signal.
                     endif.
                  endloop.
               endif.
        endif.
        if high-priority-flag is initial.
          flg_form_open = con_false.
          MOVE con_x TO erster_durchlauf.
           Ausdruck der TA-Scheine / Printing normal TO papers          *
           (wenn Parameter "Druck TA-Schein" gesetzt ist)               *
          IF tasch = con_x.
    *.......Einzelne TA-Positionen drucken bzw. Sammelliste................
            LOOP AT ikopf.
              PERFORM sort_out.
              PERFORM ikopf_to_original.
              CLEAR item_count.
              LOOP AT out WHERE ltap-tanum = ltak-tanum.        "GV01
                item_count = item_count + 1.
              ENDLOOP.
              LOOP AT out WHERE flg_druck_umbuch IS initial
                            AND ltap-tanum = ltak-tanum.
    .......Filling  because of form-handling............................
                PERFORM out_to_original.
      Batch classification description & value + vendor & PO
    This was inserted for for the ETHIS project Aug 2001; by EB
           clear out_batch_class[].
                FREE out_batch_class.
                PERFORM batch_classification.
                PERFORM mvmt281_extra_info.
    *........Prüfen, ob gemäß T329D-Einstellung gedruckt werden darf......
    *//....../ Check with T329D if printing is allowed....................
                CHECK t329d-nidru <> con_x.
    *//.....Drucken Einzeldruck / Solo-Printing (One TO-item per page) ....
                IF out-samml IS INITIAL.
                  PERFORM einzelta_drucken.    " Drucken Positionen einzeln
                ENDIF.
    *.......Printing Collect list / Sammelliste ..........................
    *//.....Wechsel VON-Lagertyp ( nur bei Sammellisten )...................
                IF ltap-tanum   <> sav_tanum     OR
                   ltap-vltyp   <> sav_vltyp     OR
                  out-formu     <> sav_formu     OR
                  out-tddelete  <> sav_tddelete  OR
                  out-tdimmed   <> sav_tdimmed   OR
                  out-tdnewid   <> sav_tdnewid   OR
                  out-tddataset <> sav_tddataset OR
                  out-tdcopies  <> sav_tdcopies  OR
                  out-ldest     <> sav_ldest.
    .........more interesting coding.....................................
                  IF kz_sort_vonlagertyp = con_x AND
                    t329f-samml          = con_x.
                    PERFORM druck_ansteuern.
    .........get back to the boring part.................................
                    sav_tanum     =   ltap-tanum.
                    sav_vltyp     =   ltap-vltyp.
                    sav_formu     =   out-formu.
                    sav_tddelete  =   out-tddelete.
                    sav_tdimmed   =   out-tdimmed.
                    sav_tdnewid   =   out-tdnewid.
                    sav_tddataset =   out-tddataset.
                    sav_tdcopies  =   out-tdcopies.
                    sav_ldest     =   out-ldest.
                  ENDIF.
                ENDIF.
    *//.....On change of any one of the fields in the OUT before TANUM .. ..
                IF ltap-tanum   <> sav_tanum     OR
                  out-formu     <> sav_formu     OR
                  out-tddelete  <> sav_tddelete  OR
                  out-tdimmed   <> sav_tdimmed   OR
                  out-tdnewid   <> sav_tdnewid   OR
                  out-tddataset <> sav_tddataset OR
                  out-tdcopies  <> sav_tdcopies  OR
                  out-ldest     <> sav_ldest.
    .........more interesting coding.....................................
                  IF out-samml = con_x AND
                    kz_sort_vonlagertyp <> con_x.
                    PERFORM druck_ansteuern.
    .........get back to the boring part.................................
                    sav_tanum     =   ltap-tanum.
                    sav_formu     =   out-formu.
                    sav_tddelete  =   out-tddelete.
                    sav_tdimmed   =   out-tdimmed.
                    sav_tdnewid   =   out-tdnewid.
                    sav_tddataset =   out-tddataset.
                    sav_tdcopies  =   out-tdcopies.
                    sav_ldest     =   out-ldest.
                  ENDIF.
                ENDIF.
    *.......Drucken Sammelliste / Printing into list.......................
                IF NOT out-samml IS INITIAL.
                  PERFORM sammelliste_drucken_sapscript.
                ENDIF.
                MOVE space TO erster_durchlauf.
              ENDLOOP.
              IF wrkeof = 'X'.
                CALL FUNCTION 'WRITE_FORM'
                     EXPORTING
                          element = 'EOF'.
              ENDIF.
    *.......Beim Ende von Druckparameter und Drucker - Formular schliessen..
              IF NOT out-samml IS INITIAL.
                PERFORM formular_schliessen.
              ENDIF.
            ENDLOOP.
    *........Formular schließen / Close last Form .........................
            PERFORM formular_schliessen.
          Drucken Umbuchanweisung / Print posting changes extra .........
            LOOP AT ikopf.
              PERFORM sort_out.
              PERFORM ikopf_to_original.
              CLEAR:  u2_rl03t, u2_ltap, u2_taplg, cnt_umb_pos.
              CLEAR item_count.
              LOOP AT out WHERE ltap-tanum = ltak-tanum.        "GV01
                item_count = item_count + 1.
              ENDLOOP.
              LOOP AT out WHERE flg_druck_umbuch = con_true
                                AND ltap-tanum = ltak-tanum.
                PERFORM out_to_original.
      Batch classification description & value + vendor & PO
    This was inserted for for the ETHIS project Aug 2001; by EB
           clear out_batch_class[].
                FREE out_batch_class.
                PERFORM batch_classification.
                PERFORM umbuchungen_drucken.
              ENDLOOP.
            ENDLOOP.
          ENDIF.
          Druck der Scheine zu den Lagereinheiten./ Print LE-forms ....*
          (wenn entsprechende Parameter gesetzt sind)..................*
          IF lesch = con_x OR letasch = con_x OR leinh = con_x.
            PERFORM le_druck.                  "in Include-RLVSDR31
          ENDIF.
    Ethis III // Sept 2002
        ENDIF.
    SR#29757
      ENDIF.
    ENDFORM.
           INCLUDES                                                     *
    *........Zulesen der Gefahrenvermerke...................................
    *........Preparing hazardous goods notes
    INCLUDE rlvsmgef.
    *........Externer Aufruf des Druckprogramms.............................
    *........Call of printing from external i.e. out of posting TOs
    INCLUDE rlvsexte.
    *........Zulesen der Druckroutine  für SAPSCRIPT-Druck Einzel-TA.......
    *........Printing Solo-formulars
    *include rlvsdr90.
    INCLUDE zlvsdr90.                                           "//GV1
    *........Zulesen der Druckroutine  für SAPSCRIPT-Druck Sammelliste.....
    *........Printing lists
    *include rlvsdr91.
    INCLUDE zlvsdr91.                                           "//GV1
    *........Zulesen der Druckroutine  für SAPSCRIPT-Druck Umbuchungen.....
    *........Printing posting changes
    *include rlvsdr92.
    INCLUDE zlvsdr92.                                           "//GV1
    *........Drucken von Lagereinheiten. ..................................
    *........Printing Storage Units
    *include rlvsdr31.
    INCLUDE zlvsdr31.                                           "//GV1
    *........Print a different form for movement type 961/962..............
    INCLUDE zlvsdr961.                                     "//sr#44937 //EB
    *........New tables access
    INCLUDE zpjlvsdx.                                           "//GV1
    INCLUDE zspectrm.
    SR#82839
    include zsignal.
           FORM BARCODE_TAPLG                                           *
           Barcodeverschlüsselung mit TA-Nummer,-Position und Lgnum     *
    FORM barcode_taplg.
      WRITE ltak-tanum TO rldru-taplg(10). " EinzelPositionsDruck
      WRITE ltap-tapos TO rldru-taplg+10(4).
      WRITE ltak-lgnum TO rldru-taplg+14(3).
    ENDFORM.
           FORM DRUCK_ANSTEUERN                                         *
           Anstoßen des DRUCKS  über SAPSCRIPT                          *
    FORM druck_ansteuern.
    *........Eventuell offenes Formular schließen / Close open forms......
      IF flg_form_open = con_true.
        CALL FUNCTION 'WRITE_FORM'
             EXPORTING
                  element = 'EOF'.                              "GV01
        PERFORM formular_schliessen.
      ENDIF.
    *........Das neue Formular eroeffnen
      PERFORM formular_oeffnen.
      PERFORM sammelliste_kopf.
    ENDFORM.
           FORM EINZELTA_DRUCKEN                                        *
           Druckvorbereitung                                            *
    FORM einzelta_drucken.
      IF flg_form_open = con_true.
        PERFORM formular_schliessen.
      ENDIF.
    ........Hazardous materials, Barcode.................................
      PERFORM solo_prepare.
      PERFORM formular_oeffnen.            "Open
      PERFORM einzelta_drucken_sapscript.                       "RLVSDR90
      PERFORM formular_schliessen.         "Close
    ENDFORM.
           FORM FORMULAR_OEFFNEN                                        *
           Formular oeffnen                                             *
    FORM formular_oeffnen.
      flg_form_open = con_true.
    ........Füllen ITCPO ................................................
    .........Anhängen an Spool oder Neueintrag ? ........................
      IF t329p-tdnewid = con_x.
        MOVE t329p-tdnewid TO itcpo-tdnewid.
      ENDIF.

    Let it be more clear.
    U pasted the driver program .
    What I suggest u to do is use routines and do the required things.For this u will have seperate program,check out that and let me know.
    Regards

  • Basic script help for a newbie?!?!

    Need help with a basic script, I need to display 5 input fields in a single dynamic field. And i need them to have a certain order of display, ie: input 1 is displayed on line 1, 2 on the next line, etc. any help would be appreciated
    I have been trying various scripts but i either make the second input field replace the first one, or i cant get the vars to populate the field with a button.. Im kinda lost.

    Show what you have tried so far that give you the results where you either replace fields or can't get vars to populate them with a button.

  • Shell Script Help

    I'm an IBM guy and I was assigned this MAC projet. I'm a MAC noob. I have a multi-user eMac. The user account folders are blown away when the computer shuts down leaving just the root accout and default account. I included a new javapolicy file in the default user account. A file called java.policy resides in the user home folder at log in (/users/johndoe/java.policy) for every new user that logs in. I need to create a logon shell script that finds the java.policy file in their home folder and renames it .java.policy to make it hidden. Remaming it in the default profile is not an option, and I don't know who will be using the computer at any given day. Can someone help me with the code.
    #!/bin/bash/
    I'm clueless, thanks for the help

    The generic bash rename syntax for your specified command is:
    mv /Users/shortuser/javapolicy /Users/shortuser/.java.policy
    Here's a typical script:
    #!/bin/bash
    mv /path/to/source/.java.policy /Users/shortuser/.java.policy
    The most direct mechanism would be via a computer login preference and workgroup manager, setting up a script that executes at user login. That script is invoked at login and can copy over or create the required file. Another of the usual techniques for executing commands at login is the so-called [login hook (HT2420)|http://support.apple.com/kb/HT2420], though if you're using Open Directory (OD) or OD with Active Directory (AD), it'll probably be better to go that way than the login hook.
    Other discussions [here|http://arstechnica.com/civis/viewtopic.php?f=20&t=416343] and [here|http://www-personal.umich.edu/~lsiden/tutorials/signed-applet/signed-appl et.html]
    I'd tend to expect to see the policytool used for this file, too. Launch Terminal.app and see +man policytool+ for details on that.
    I'd also tend to expect to see this sort of stuff established within the system-wide policy module from the JRE that's usually located in [the system library directory |http://stackoverflow.com/questions/4372060/java-security-file-location-on-mac- snow-leopard] (/Library/Java/Home/lib/security/java.policy) and not with a per-user setting, too, and that's a rather different approach than populating the per-user settings. (But then I'm not a Java geek.)
    FWIW, it's "Mac" and not "MAC", it's Unix, and files and directories doesn't get blown away unless there's a problem somewhere, or unless this is a school or kiosk or other environment that's using specific system-reset processing. And if there's system-reset processing here, then you'll obviously need to work within that. That processing is usually associated with OD, hence the earlier pointers. (And if there's this sort of reset processing going on, there's usually a reason for it, I'd probably try to keep as much sensitive stuff out of the local directories as I could reasonably manage.)

  • Active Directory scripting help

    I am trying to clean up our group policies so I am in need of help creating a script that will list all group policies in our domain, list all the settings that are set in each GPO, and the security filtering for each gpo and also list any settings that
    are duplicated in another policy and exports it into a readable (by me) file. I am familiar with batch scripts, VB Scripts, and PowerShell so something in these forms is good for me but I am moderately familiar with VB Scripts and beginner with PowerShell
    scripts.
    Thank you

    Windows Server has GPO CmdLets that do most of that.
    http://technet.microsoft.com/en-us/library/ee461027.aspx
    Look in the repository for scripts if you have WS2003.
    ¯\_(ツ)_/¯

Maybe you are looking for

  • Video out to Samsung A650 not working correctly

    I have a MBP 2.2Ghz, and I recently purchased a 46" Samsung LN46A650. I used the DVI to VGA adapter and a VGA cable for the first week and it worked. then i wanted to move further from the tv, so i bought a VGA extension cable. tried it, it didn't wo

  • FMS for Udf based on Posting Date + 4 weeks and +4 weeks excluding weekends

    Hello, Requirement 1 Have made a udf in the Sales Order Header as Manfacture Drawing Rel Date U_FDRDT in which I want that if a Sales Order posting date is 15/12/2010 then this udf should automatically update with the + 4 weeks date i.e 14/01/2011 Re

  • Download ps element 9 to different computer

    old pc crashed, want to download ps elements 9 to another pc which does not have cd player. I have cd & serial #. How do I do this thxs., technobeam

  • To display line in the bargraph for average

    Hi, I want to design a barchart, In this I want to show the first bar(average) in the group as a line graph and the remaing as a rectangular bar. So i have set the show selected series as a line in the crystal reports designer for the first bar, But

  • How to export 4K 60fps video in Premiere?

    How to export 4K 60fps video in Premiere? I just installed the latest Adobe Premiere PRO CC v8.0 as a trial test. Source video is 3840x2160 60fps i can't export it at the same settings i get this error: And there is no Youtube 4K option What to do ho