Porque uma parte do programa é português Brasil e outra Inglês?

Estou usando a ultima versão 31.4.0 e já baixei e reinstalei algumas vezes a versão Português/BR, mas sempre fica várias páginas ou menus em Inglês.
VÃO CORRIGIR ISTO QUANDO?!?!?!?

Porque não tinha contribuidores para fazer a tradução, a próxima versão (Thunderbird 38) vai está 100% traduzida.

Similar Messages

  • Estava em uma janela quando cliquei em outra janela uma parte da janela anterior apareceu na atual janela e travou mas logo depois voltou ao normal!

    Estava em uma janela quando cliquei em outra janela uma parte do conteúdo da janela anterior apareceu na atual janela e travou mas logo depois voltou ao normal! é normal isso acontecer ou eh problema do Firefox? Obs: uma dessas janelas era um vídeo

    Normal não é, mas pode acontecer, normalmente está ligado a placa de vídeo, verifique se os drives da placa de vídeo estão atualizados e não se esqueça de atualizar o Firefox.

  • Existe uma versao do programa PROMOB para o Mac?

    Sera que existe uma versao do programa, se nao, posso instalar e usar a versao do Windows? o que devo fazer para usar este programa?
    Por favor, se alguem puder me ajudar. Agradeco.

    Hello, This is the Adobe Forum for those that may like to use it: Foros de usuario a usuario
    http://forums.adobe.com/community/international_forums/espanol
    Thanks,
    eidnolb

  • Z Tcode doesn't write the last part of program

    Hi experts,
    I have a program in a transaction code, and the last part, must be write:
    Send it to the world
        lv_sent_to_all = lo_send_request->send( i_with_error_screen = 'X' ).
        IF lv_sent_to_all = 'X'.
          WRITE 'Email Sent Successfully'.
        ENDIF.
        COMMIT WORK.
      CATCH cx_document_bcs INTO bcs_exception.
        WRITE: 'Error Occurred'. WRITE: 'Error Type', bcs_exception->error_type.
        EXIT.
    ENDTRY.
    If I execute only the program, the write works correctly.
    But if I execute the tcode (X) with the program, no write is working.
    Someone knows about it??? Why is working if you execute the program and not when you execute the transaction??
    thanks you very much!

    Its simple. While creating transaction code in SE93, u might have selected radio buton Program and screen (dialog transaction)
    It should be 2nd option Program and selection screen (report transaction)
    Create another transaction code selecting radio buton Program and selection screen (report transaction) and run the transaction code. It will work

  • Look for LabVIEW part time programming

    Hi,
    I am available for part time LabVIEW programming. Areaingapore.
    Certified LabVIEW Developer.
    Currently resides at Spore. Look for LabVIEW project. 
    Please email me at [email protected] 
    BR,
    Bug Killer 

    you can visit my website: www.bjcyck.com

  • Making part of program reusable

    hi all,
    In my program some declaration are regularly repeating in the same or other related programs so i want to make that as reusable part so that whenever i need i just call that part instead of writing whole thing again, i don't know how to do that can any one help me with this.
    Message was edited by: Matthew Billingham - subject modified. Do not have subject IN ALL CAPITALS.

    Using a TOP include for re-use of data declarations is a bad programming practice. You can only define global variables this way. Global variables should be at a minimum.
    It also encourages lazy programming - with many variables that won't be used in the program.
    Using an include in this way is NOT a candidate for reusability. Reusability should be about functionality.

  • HELP!! ERROR IN reading from file!! (PART of )PROGRAM

    Take a look at my program first....
    import java.io.*;
    public class reading_file {
    public static void main(String[] args) throws IOException {
    BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
    String [] sType= new String[10];
    int [] sNum= new int[10];
    float [] sPrice= new float[10];
    String FileName="new.txt";
    BufferedReader inFile=new BufferedReader(new FileReader(FileName));
    String inputLine="";
    int totalLines=0;
    while(inFile.readLine()!=null){
    totalLines++;
    int totalStock=totalLines/3;
    System.out.println(totalStock);
    for(int i=0; i<totalStock;i++){
    sType=inFile.readLine();
    System.out.println(sType[i]);
    sNum[i] =Integer.parseInt(inFile.readLine());
    System.out.println(sNum[i]);
    sPrice[i] =Float.parseFloat(inFile.readLine());
    System.out.println(sPrice[i]);
    inFile.close();
    I am reading the info from the file to the respective array shown.
    e.g these are the info in the .txt file
    /////=>
    PANTS
    35
    23.3
    LOGITECH CORDLESS DESKTOP
    200
    50.23
    MONITER
    62
    54.9
    <=
    but when i run the program the errors such as :
    ==>
    compile-single:
    run-single:
    3
    null
    Exception in thread "main" java.lang.NumberFormatException: null
    at java.lang.Integer.parseInt(Integer.java:415)
    at java.lang.Integer.parseInt(Integer.java:497)
    at reading_file.main(reading_file.java:26)
    Java Result: 1
    BUILD SUCCESSFUL (total time: 0 seconds)
    why is that??
    any mistake in the program??

    You could mark the start of the file with the mark method from BufferedReader, but you'd best check that this is ok to do with a call to the bufferedreader markSupported method. This method will return true if you are able to mark the reader. You have to include an int parameter with the mark method that is bigger than the file size. In your case this will be easy since the file is small. Then before the second reading, call reset( ) on your buffered reader.
    Personally, I wouldn't use arrays but would use an arraylist. Also, I'd have the 3 bits of information entered into a single object and store all the information (contained within the single object) into a single arraylist. Since the arraylist has a variable size, you don't need to know its size in advance, and you don't have to worry about reading through a file twice. Once will do nicely.

  • HT1296 lost part of programs on pc for itunes and other essentials, need to fix or download again

    have lost a drive for itunes and won,t work, tried to download itunes again but won,t work ?

    You need to follow these instructions: http://support.apple.com/kb/HT1923

  • Como habilitar a partição swap?

    Como um bom Linux, o Firefox OS possui algumas funções que precisam ser devidamente configuradas para uso, a partição SWAP permite espaço extra (e mais lento) para memória RAM, ajudando na abertura paralela de mais apps.
    Obtive acesso root através dos arquivos presentes neste site: http://elsimpicuitico.wordpress.com/firefoxos/
    remontei a partição /system com permissão de escrita através do seguinte comando:
    mount -o remount,rw /system
    Daí iniciei a configuração da partição SWAP, criando tanto um arquivo no SD com essa função como uma partição propriamente dita no SD.
    usando essa partição configurei o arquivo /etc/fstab e mandei ligar o swap pelo comando
    swapon -a
    mas o comando retornou o erro:
    swapon: /sdcard/.swap: Function not implemented
    Após algumas pesquisas descobri que a função de swap precisa estar habilitada no Kernel do sistema
    https://support.mozilla.org/pt-BR/questions/976573
    Segundo a pergunta acima, o kernel é responsabilidade da própria Alcatel
    Mas supostamente pode-se verificar o suporte ou não do kernel ao swap através do comando:
    cat /proc/cpuinfo
    que retorna isto:
    Processor : ARMv7 Processor rev 1 (v7l)
    processor : 0
    BogoMIPS : 501.64
    Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4
    CPU implementer : 0x41
    CPU architecture: 7
    CPU variant : 0x0
    CPU part : 0xc05
    CPU revision : 1
    Hardware : QCT MSM7x27a FFA
    Revision : 0000
    Serial : 0000000000000000
    na linha Features é possível ver que a função "swp", abreviação de swap está disponível no kernel.
    Em outro site: http://translate.googleusercontent.com/translate_c?depth=1&hl=pt-BR&rurl=translate.google.com&sl=pl&tl=pt-BR&u=http://forum.myfirefoxos.pl/watek-Swap-file%3Fpage%3D2&usg=ALkJrhhpyk7CxJc32ip4ny3Brzzb-G6eGw
    diz que é preciso alterar uma configuração no kernel para habilitar o suporte do mesmo ao swap, e podia-se verificar este suporte no conteúdo do arquivo presente no Firefox OS:
    /proc/config.gz
    copiando para o SD e descompactando é possível ler este trecho:
    CONFIG_HAVE_KERNEL_LZO=y
    CONFIG_KERNEL_GZIP=y
    # CONFIG_KERNEL_LZMA is not set
    # CONFIG_KERNEL_LZO is not set
    CONFIG_DEFAULT_HOSTNAME="(none)"
    # CONFIG_SWAP is no set
    CONFIG_SYSVIPC=y
    CONFIG_SYSVIPC_SYSCTL=y
    # CONFIG_POSIX_MQUEUE is not set
    # CONFIG_BSD_PROCESS_ACCT is not set
    CONFIG_SWAP is not set, ou seja, o suporte ao Swap não foi habilitado durante a compilação do kernel, editar este arquivo e mandá-lo pra pasta parece não mudar muita coisa, afinal ele é só um texto reportando características já existentes do kernel, sem poder para controlá-lo.
    Mesmo sabendo disso, experimentei inserir este mesmo arquivo alterado para que o parâmetro CONFIG_SWAP esteja como CONFIG_SWAP=y, como todas as outras opções habilitadas, em uma imagem de initramfs e mandar o sistema dar boot com ela, bom, o sistema restaurou o arquivo original e seguiu seu boot normalmente.
    Sabendo isto, a lógica diz para pegar o código fonte do kernel do Firefox OS (no meu caso, o branch hamachi), alterar o arquivo .config presente em sua pasta raiz e alterar o
    # CONFIG_SWAP is not set
    para
    CONFIG_SWAP=y
    Após isso bastaria compilar, unir em uma imagem de boot com arquivos initramfs e bootimg.cfg (usar aquelas presentes no arquivo de boot original provavelmente não traria problemas) e montar uma nova imagem de boot, com o kernel já habilitado pra suportar swap
    instalá-la usando fastboot no aparelho e seguir a configuração do ponto onde o erro Function not implemented aparecia.
    aparentemente as fontes do kernel estão presentes na página do Sourceforge da Alcatel, cujo download pode ser feito aqui:
    http://sourceforge.net/projects/alcatel/files/ONE_TOUCH_FIRE_4012_20130628.tar.xz/download
    mas ele precisa deste patch: https://www.codeaurora.org/cgit/quic/lf/b2g/build/plain/patch/ics_strawberry/kernel/kernel-add-fillcolor.patch?h=v1.1
    mesmo assim esse kernel parece não ser o mais estável, como podemos ver pelos comentários aqui:
    http://forum.myfirefoxos.pl/watek-Swap-file (recomendo o uso do Google Translate, o texto está em Polonês)
    Mas alguns comentários depois há pessoas que obtiveram sucesso em usar swap, até reportam qual tipo de cartão SD é o mais adequado!
    aqui neste vídeo é mostrado o Alcatel One Touch Fire com memória swap funcionando e rodando o b2g 1.4
    http://www.youtube.com/watch?v=Uaa6OI5aopc
    Por isso é possível chegar a conclusão de que sim, é possível usar swap.
    Mas como se o código fonte do kernel fornecido pela Alcatel é defeituoso? usando a árvore de desenvolvimento android do projeto b2g, pelo processo de construção tradicional do repositório GIT do b2g:
    https://developer.mozilla.org/en-US/Firefox_OS/Building_and_installing_Firefox_OS
    Apenas alterando o arquivo de coniguração do kernel para habilitar o suporte a swap e compilando normalmente.
    Parece até que algumas pessoas usando as builds pré-compiladas do projeto Vegnux conseguem ter o swap habilitado por padrão, mas já tentei todas as builds que tenho aqui (stock da Vivo, stock da Movistar, 1.2 stable, 1.3 stable e duas do 1.4) e nenhuma tem essa característica.
    Escrevi tudo isso através de alguns dias de tentativas de habilitar o swap no meu aparelho sem sucesso. E infelizmente não tenho como compilar o b2g pelo repositório GIT pois não atendo os requisitos de hardware do computador nem tenho conexão banda larga para baixar os 12GB de arquivos necessários.
    Alguém poderia usar isto pra fazer ao menos a tentativa, afinal, encontrei pouca documentação sobre o assunto, especialmente em pt-BR.
    Espero que isso ajude a alguém que tenha como fazer outras tentativas de habilitar o SWAP no Alcatel One Touch Fire.
    Páginas que me foram úteis:
    útil para saber como manipular uma imagem de boot do android/firefoxos
    http://yorik.uncreated.net/guestblog.php?2014=15
    útil pra saber como configurar a partição SWAP e um aparelho que retorna o mesmo erro, mostrando que a falha está no kernel sem swap habilitado.
    http://modmymobile.com/forums/564-motorola-milestone-general/555311-q-what-about-swap-milestone.html
    Achei o local da fonte do kernel e vários comandos
    http://k.japko.eu/alcatel-otf-hackers-guide-1.html
    Onde baixei os arquivos com o Busybox, acesso root para o alcatel one touch fire e imagens pré-compiladas de novas versões do b2g para hamachi
    http://elsimpicuitico.wordpress.com/firefoxos/
    tutorial oficial para compilação e instalação de uma build do b2g
    https://developer.mozilla.org/en-US/Firefox_OS/Building_and_installing_Firefox_OS
    http://elsimpicuitico.wordpress.com/firefoxos/

    Rapaz, tenho gerado imagens para meu Alcatel através do repositório Git do B2G.
    Quais configurações vc acha que devem ser alteradas antes de realizar o Build? Pelo o que entendi do seu texto seria o '''.config''' no Raiz do B2G, mas nesse arquivo só possui este conteúdo:
    MAKE_FLAGS=-j3
    GECKO_OBJDIR=/home/anderson/firefoxos/B2G/objdir-gecko
    DEVICE_NAME=hamachi
    DEVICE=hamachi
    Não existe a opção '''CONFIG_SWAP''' nele. Pesquisando essa opção no conteúdo dos arquivos, o mais próximo que encontrei foi:
    ./kernel/arch/arm/configs/msm7627a_defconfig
    ./kernel/arch/arm/configs/msm7627a-perf_defconfig
    Mas, não tenho ideia se ia funcionar. Infelizmente não estou com muito tempo este mês para pesquisar, mas se me indicar o que alterar, eu faço aqui e deixo compilando, depois a gente conversa via "Mensagem particular" aqui no fórum (ou outra forma).

  • PO Output For Communication Program is not Submitting in Background PO appr

    Hi Gurus,
    We are working on "PO Output For Communication" Program.We created a Standard Purchase Order and Approved it through the "E-Mail" option checked."PO Output For Communication" program was not submitted in the background.
    From the workflow we found that it was stucked at PO new Communication Process.
    As the value of column "po_output_format" is NULL in the "PO_SYSTEM_PARAMETERS" table it is not submitting in background.
    Already in the front end
    Purchasing responsibility->setup->organizations->purchasing options
    under Documnet control we assigned Output format column as "PDF".
    Will you please provide us your valuable solution as soon as possible.
    Thanks in Advance,
    RS

    This Program "PO Output for Communication" does effects in other parts.
    I mean that this program actually sends an email (or fax or print) along with the PO in PDF attachment or in the TEXT format.
    This program does other part than the above mentioned point also.If yes then provide me the information in which other parts this program effects.I believe it is only the part you mentioned above.
    PO Output for Communication
    http://docs.oracle.com/cd/E18727_01/doc.121/e13410/T446883T443960.htm#srs.poxpopdf
    PO Output for Communication Search
    http://www.oracle.com/pls/ebs121/search?word=PO+Output+for+Communication&format=ranked&remark=quick_search
    Thanks,
    Hussein

  • Where is a part of configuration archive file of network devices

    Hi everyone,
    Today I'm already install Cisco Prime 2.1 for my customer but I'm having trouble about backup configuration file. Originally my customer use LMS to backup router/switch configuration and they can copy configuration file from local disk to backup storage immediately in anytime that they want but now when they use Prime 2.1. They not know where is the part that program will save configuration file (.txt or .cfg) to local disk. Prime 2.1 is the appliance box and we can login root to see the linux part.
    I don't know that exactly the Cisco Prime will save backup configuration to database file (such as sql file) of text file (.txt or .cfg) and if it save as text. i would like to know where is the part of backup configuration file that I can access to copy it via ftp.
    Thank you for advice,

    Hi ,
    Right now this feature is not available in PI , enhancement has already been filed to address this issue:
    transferring device config archive from PI to other server is not supported and currently
    there's no way to achieve this.
    Previously, the following enhancement bug was previously raised but I'm not sure whether
    this feature will be announced from the further PI version or not.
    CSCud84458 Need separate folder for config archives to be stored on NCS/PI
    Symptom: Device Configuration can not be retrieved from NCS/Prime Infrastructure using CLI
    or an LMS 'shadow' directory equivalent
    Conditions: PI 1.x and 2.0 are affected by this limitation.
    Workaround: None
    Further Problem Description: Unlike precursor products, such as LMS, device configurations
    are not natively stored in the filesystem and are rather stored in the inbuilt Oracle DB
    as BLOB objects.
    Thanks-
    Afroz
    ***Ratings Encourages Contributors ***

  • Programs slow

    HI,
    Some of our concurrent programs are running very slow...taking more time to complete..Is there any way to know which part of program(query) is taking more time to complete..
    Thanks,
    Praveen

    Hi hussein,
    Thanks for your prompt reply.
    Since its production db wont it be extra load on the database,and database will become more slower...?
    Thanks,
    Praveen

  • Downloading and Uploading ABAP programs

    I need to move a new GUI program (including all screens, include, subroutines, etc.) that was developed on our SAP 4.5 system to our new, upgraded, ECC 6.0 system.
    There is an old ABAP program that we use to use called ZSABAPUPDOWNLOAD, but it no longer seem to work between these two SAP versions.
    Because of the version differences between these tow systems, our BASIS group does not want us to use a transport to move this code.
    Other than completely recreating this program on the ECC60 system, does anyone know of a program (like the old ZSABAPUPDOWNLOAD) or utility that I could use to transfer this program to the new system?

    welcome to SDN.
    is this the program do u have.
    if not check it with this.
    REPORT ZUPDOWNPROGRAMS LINE-SIZE 132 LINE-COUNT 62 NO STANDARD PAGE HEADING.
      This program up / downloads from / to a local dataset
      all the components of an ABAP - i.e TEXTS, the entire CUA
      including statuses and menus, DYNPROS and source code.
      Program documentation and variants are not handled.
      INCLUDED programs are automatically handled both on upload
      or download. INCLUDE selection can be excluded or generic
      e.g only handle INCLUDES starting with ZIN*
      INCLUDES within INCLUDES also handled.
      The only restriction is on UPLOAD the INCLUDED programs must come
      from the same directory as the main program.
      On Download of course the ABAP must exist in the library.
         Note for LINUX and BATCH users
      This program was originally designed as a one off tool for
      getting ABAPS etc from a SAP R2 (IBM MVS mainframe system) into
      an R3 test system minimising the need for a large amount of
      mainframe sysprogs (anybody remember what they were !!) time
      and support to say nothing of access problems from TSO /JES2 /
      SAP R2. At that time network connections were patchy and the
      transport systems largely incompatable and not very reliable.
      This program was originally designed as a one off tool for
      Must run on Windows front end ---- If you are running SAP with
      LINUX on your work station you will have to change the WS_UPLOAD
      and WS_DOWNLOAD functions to reflect the Linux file system. The
      contents of the data sets themseleves do not need to be changed
      Program can easily be modified to run in batch and store
      the data on a UNIX host. Change the WS_UPLOAD and WS_DOWNLOAD
      to read from and write to UNIX data sets (OPEN FILE etc).
      You will also need to modify the parts of the program that get
      the DOS directory and display the Windows file paths.
      The actual abap data sets do not need to be changed.
    Rel 4.0   names can now be up to 40 bytes long
              Dynpros and CUA have changed from rel 3.1
              Tabstrips now loaded and unloaded in dynpros
       Please note restriction on 4.6 systems for users who
       have ABAP names which include '/'s in their names.
    Rel 4.6b, 4.6c Abap names can include the '/' in their names
    e.g /CUST1/CUST2/ORDER
    This causes problems when storing to a local file.
    a solution is to change the name to %CUST1%CUST2%ORDER i.e / will
    be changed to %. On upload the % should be changed back to /
    again.    This change still needs to be implemented.
    If you don't use the / in the abap name then this is not a problem.
    If file to be uploaded is in rel 3 format then names are only 8
    bytes long.
      program uses 3 datasets per abap
         1) abapname.eee     source, dynpr logic, texts, CUA stuff
         2) abapname.hhh     dynpr header
         3) abapname.fff     dynpro fields.
    because of varying lengths and contents 3 data sets are used. The
    complexity of combining all these to 1 data set would make the
    program far too complex.
      NOTE: This version of the program can only be used on
            release 4.0 or higher. Once an ABAP has been converted
            to rel 4.0 it cannot be converted back to rel 3.0
            on a release 3/3.1 system. Release 4 CUA tables
            are different.  Use release 3 version of this program
           for releases 3.0 and 3.1. Available on SAPFANS website.
      Note that data to be uploaded must have been previously downloaded
      by this program (any version since rel 2.0) - except for Initial
      Load -- see end of these comments.
             Dynpros and CUA statuses have changed since rel 3.1
       This program will handle rel 3.1 format on upload but will
       download in rel 4.0 format. To upload 3.1 format specify an 'X'
       in the rel3 parameter.
       If you have downloaded components in rel 4.0 format and you
       want to re-load to a 3.1 system  you will have to load
       the source via standard upload and re-create dynpros and the CUA
       manually.
       As names can now be longer than 8 characters you can only
       use this program if the SAP front end (SAPGUI) supports
       long file names (WIN 95/98 or WIN NT). Windows 3.x will not
       work as the underlying DOS system cannot handle long file names.
          UPLOAD function and DOS directory.
    When an ABAP is selected for UPLOAD then the DOS
    directory is read into a table. A file called ABAP.BAT is created,
    and down loaded to the 'C' drive and executed.
    This file executes a DOS DIR command and pipes the output
    into a dataset which is then uploaded into an internal
    table on SAP.
    Note on running DOS commands from ABAP
    The first time this procedure is executed you will see a DOS window
    which you will have to close manually. To get round this
    use windows explorer to select the file ABAP.BAT and then
    right mouse click on the file name. Select the
    properties window. From this click the CLOSE on EXIT box. This
    will then automatically close the DOS function after it has
    executed. (Windows restriction).
    The DOS function has not been tested using Windows 2000 so
    it might not work. OK on W95,W98,WME and Windows NT (No Thanks)
    If INCLUDE programs are wanted on UPLOAD only the specified
    directory is searched.
    Instead of entering path name manually you can click on
    the path parameter. Because of Windows restriction you will
    have to select ANY file in the relevant directory.
    The path will then be copied on to the selection screen.
    To do still : Merge 3 files to one and compress output to .ZIP file
                   fix 4.5 4.6 problem of abaps containing '/' in the name
                   possibility to automatically up / download referenced
                   function modules with selection criteria like INCLUDES
    To load the ist time into a system.
    Create program with ABAP editor and Upload the .EEE file.
    Delete ist line  (????SRCE) in the ABAP EDITOR --NOT THE DISK FILE
    Delete all the source from the line that starts ????TEXT (towards
    the end file) till the end so the last line in your source is ENDFORM.
    DO NOT ALTER THE DISK FILE. DO THESE CHANGES IN THE ABAP EDITOR.
    Save file and execute
    Use following parameters (Note the ist time you won't get proper
    text on the selection screen).
    Function      U
    Path          full dos path containing source e.g c:\abaps\
                   NOTE YOU MUST ENTER THE FINAL \ as above.
    REPID         the program name. e.g ZZJIMHXX
                   note that on the DISK you will see 3 files
                   ZZJIMHXX.EEE, ZZJIMHXX.FFF, ZZJIMHXX.HHH
                   just use the name before the dos qualifier - the
                   program will do the rest
    ignore other parameters
    The program will then load itself with all the texts etc.
    It should now be ready for use.
      Macros
    DEFINE DEFINE_TABLE.
      DATA: &1 LIKE &2 OCCURS &3 WITH HEADER LINE.
    END-OF-DEFINITION.
    DEFINE CLS.
      REFRESH &1.
      CLEAR &1.
    END-OF-DEFINITION.
    DEFINE INIT.
      IF &1 NE SPACE.
        SEARCH &1 FOR '. .'.
        IF SY-SUBRC = 0.
          WRITE '*' TO &1+SY-FDPOS(1).
        ENDIF.
        TRANSLATE &1 USING '*%'.
      ELSE.
        MOVE '%' TO &1.
      ENDIF.
    END-OF-DEFINITION.
    end of macros
    /     SAP standard tables                                        */
    TABLES: D020S,                         "Dynpro header
            D020T,                         "Dynpro title
            D021T,                         "Screen field keyword texts
            TRDIR,                         "Attribute table
            TADIR,                         "Dev. class etc.
            EUDB,                          "CUA data
            TSTC,                          "transaction data
            TITLE,                         "CUA titles
            RSMPTEXTS.                     "Function texts (rel 4.0)
    /     Work tables to hold ABAP source etc, and dynpro            */
    /     contents.                                                  */
    DATA: BEGIN OF H.                      "Header
            INCLUDE STRUCTURE D020S.
    DATA: END OF H.
    DATA: BEGIN OF H1 OCCURS 10,           "Header
          NAME(40)               TYPE C,                        "rel 4
          NUMBER(4)              TYPE N.
            INCLUDE STRUCTURE D020S.
    DATA: END OF H1.
    DATA: BEGIN OF H2 OCCURS 0,            "Rel 3  dynp. header
            CNAME(8)   TYPE C,
            CNUM(4)    TYPE C,
            NNAME(8)   TYPE C,
            NNUM(4)    TYPE C,
            FILL(51)   TYPE C,
            CDAT(6)    TYPE C,
            CTIM(6)    TYPE C,
          END OF H2.
    DATA: BEGIN OF F OCCURS 250.           "Dynpro Fields
            INCLUDE STRUCTURE D021S.
    DATA: END OF F.
    DATA: BEGIN OF F1 OCCURS 500,          "Dynpro Fields
          NAME(40)               TYPE C,                        "rel 4
          NUMBER(4)              TYPE N.
            INCLUDE STRUCTURE D021S.
    DATA: END OF F1.
    DATA: BEGIN OF OLD_F1 OCCURS 0,        "Dynpro Fields (rel 3)
          NAME(8)    TYPE C,
          NUMBER(4)     TYPE C.
            INCLUDE STRUCTURE D021SE_OLD.
    DATA: END OF OLD_F1.
    DATA: BEGIN OF F2 OCCURS 0,            "Dynpro Fields (rel 3)
          TFIL(284)  TYPE C,
          END OF F2.
    DATA: BEGIN OF M OCCURS 3.             "Match codes (if any)
            INCLUDE STRUCTURE D023S.
    DATA: END OF M.
    DATA: BEGIN OF E OCCURS 0.             "Dynpro Logic
            INCLUDE STRUCTURE D022S.
    DATA: END OF E.
    DATA: BEGIN OF E1 OCCURS 0,            "Dynpro Logic
          NAME(40)               TYPE C,                        "rel 4
          NUMBER(4)              TYPE N.
            INCLUDE STRUCTURE D022S.
    DATA: END OF E1.
    DATA: BEGIN OF T   OCCURS 0,           "prog name and dynpro nrs
          NAME(40)     TYPE C,                                  "rel 4
          NUMBER(4)    TYPE N,
    END OF T.
    DATA: BEGIN OF R   OCCURS 56,          "prog name and language
          NAME(40)     TYPE C,                                  "rel 4
          LANGUAGE(1)  TYPE C,
       END OF R.
    DATA: BEGIN OF S OCCURS 3000,
          TXT(180)               TYPE C,   "rel 4   was 132
          END OF S.
    DATA: BEGIN OF R1 OCCURS 50,           "for include programs
            NAME(40)             TYPE C,                        "rel 4
            INSTANCE(3)          TYPE P,
          END OF R1.
    DATA: BEGIN OF S1 OCCURS 3000,
          TXT(180)               TYPE C,   "   rel 4  was 132
          END OF S1.
    DATA: BEGIN OF U OCCURS 100,           "Text elements
          TXT(180)               TYPE C,   " rel 4   was 132
          END OF U.
    DATA: BEGIN OF DIR.                    "ABAP Attributes
            INCLUDE STRUCTURE TRDIR.
    DATA: END OF DIR.
    DATA: BEGIN OF DTXT.                   "Dynpro field keyword texts
            INCLUDE STRUCTURE D021T.
    DATA: END OF DTXT.
    /     This data contains all the components of the               */
    /     CUA such as menus, statuses, Pfkeys                        */
    /     As from rel 4.5 Tabstrips are automatically copied as well */
    /     The rel3 parameter must be set however to load the         */
    /     correct version of the CUA tables if uploading rel 3       */
    /     data to a rel 4 system.                                    */
    /     Rel 4.0B can  convert 3.1 and earlier CUA's                */
    /     This could change later however.                           */
    CUA Tables.
    Key of CUA tables in EUDB data set. Name is len 40 in rel 4.0
    DATA BEGIN OF EU_KEY.
            INCLUDE STRUCTURE RSEU1_KEY.
    DATA END OF EU_KEY.
        Status
    DATA BEGIN OF STA OCCURS 0.
            INCLUDE STRUCTURE RSMPE_STAT.                       " rel 4
    DATA END OF STA.
        Functions
    DATA BEGIN OF FUN OCCURS 0.
            INCLUDE STRUCTURE RSMPE_FUNT.                       "rel 4
    DATA END OF FUN.
        Menus
    DATA BEGIN OF MEN OCCURS 0.
            INCLUDE STRUCTURE RSMPE_MEN.   "rel 4.0
    DATA END OF MEN.
        Menus (texts)
    DATA BEGIN OF MTX OCCURS 0.
            INCLUDE STRUCTURE RSMPE_MNLT.  "rel 4.0
    DATA END OF MTX.
        Action Bar
    DATA BEGIN OF ACT OCCURS 0.
            INCLUDE STRUCTURE RSMPE_ACT.   "rel 4.0
    DATA END OF ACT.
        Push Buttons
    DATA BEGIN OF BUT OCCURS 0.
            INCLUDE STRUCTURE RSMPE_BUT.   "rel 4.0
    DATA END OF BUT.
        PF-Keys
    DATA BEGIN OF PFK OCCURS 0.
            INCLUDE STRUCTURE RSMPE_PFK.   "rel 4.0
    DATA END OF PFK.
        Function sets
    DATA BEGIN OF SET OCCURS 0.
            INCLUDE STRUCTURE RSMPE_STAF.  "rel 4.0
    DATA END OF SET.
        Documentation
    DATA BEGIN OF DOC OCCURS 0.
            INCLUDE STRUCTURE RSMPE_ATRT.  "rel 4.0
    DATA END OF DOC.
        Title codes with text
    DATA: BEGIN OF TIT OCCURS 0.
            INCLUDE STRUCTURE RSMPE_TITT.  "rel 4.0
    DATA: END OF TIT.
    DATA BEGIN OF FTX OCCURS 0.            "rel 4.0
            INCLUDE STRUCTURE RSMPTEXTS.
    DATA END OF FTX.
           rel 3.1 CUA components.
        Status
    DATA BEGIN OF OLD_STA OCCURS 0.
            INCLUDE STRUCTURE RSEU1_GEN.   " rel 3.1
    DATA END OF OLD_STA.
        Functions
    DATA BEGIN OF OLD_FUN OCCURS 0.
            INCLUDE STRUCTURE RSEU1_FUN.   "rel 3.1
    DATA END OF OLD_FUN.
        Menus
    DATA BEGIN OF OLD_MEN OCCURS 0.
            INCLUDE STRUCTURE RSEU1_MEN.   "rel 3.1
    DATA END OF OLD_MEN.
        Menus (texts)
    DATA BEGIN OF OLD_MTX OCCURS 0.
            INCLUDE STRUCTURE RSEU1_TXM.   "rel 3.1
    DATA END OF OLD_MTX.
        Action Bar
    DATA BEGIN OF OLD_ACT OCCURS 0.
            INCLUDE STRUCTURE RSEU1_ACT.   "rel 3.1
    DATA END OF OLD_ACT.
        Push Buttons
    DATA BEGIN OF OLD_BUT OCCURS 0.
            INCLUDE STRUCTURE RSEU1_BUT.   "rel 3.1
    DATA END OF OLD_BUT.
        PF-Keys
    DATA BEGIN OF OLD_PFK OCCURS 0.
            INCLUDE STRUCTURE RSEU1_PFK.   "rel 3.1
    DATA END OF OLD_PFK.
        Function sets
    DATA BEGIN OF OLD_SET OCCURS 0.
            INCLUDE STRUCTURE RSEU1_SET.   "rel 3.1
    DATA END OF OLD_SET.
        Documentation
    DATA BEGIN OF OLD_DOC OCCURS 0.
            INCLUDE STRUCTURE RSEU1_ETM.   "rel 3.1
    DATA END OF OLD_DOC.
        Title codes with text
    DATA: BEGIN OF OLD_TIT OCCURS 0.
            INCLUDE STRUCTURE TITLE.       "rel 3.1
    DATA: END OF OLD_TIT.
    dynamic function text
    DATA BEGIN OF FDN OCCURS 1.
            INCLUDE STRUCTURE RSEU1_FDYN.  "not req for rel 4.
    DATA END OF FDN.
    Icons
    DATA BEGIN OF FIN OCCURS 1.
            INCLUDE STRUCTURE RSEU1_ICON.  "not req for rel 4
    DATA END OF FIN.
    dynamic menu texts
    DATA BEGIN OF MDN OCCURS 1.
            INCLUDE STRUCTURE RSEU1_MDYN.  "not req for rel 4.
    DATA END OF MDN.
        Symbol list
    DATA BEGIN OF SYM OCCURS 0.
            INCLUDE STRUCTURE RSEU1_SYMB.
    DATA END OF SYM.
        Status Short text
    DATA BEGIN OF STX OCCURS 0.
            INCLUDE STRUCTURE RSEU1_CTX.
    DATA END OF STX.
        Attributes for function key settings (menu bars)  Rel 3.0
    DATA BEGIN OF ATT OCCURS 0.
            INCLUDE STRUCTURE RSEU1_HAT.
    DATA END OF ATT.
        Include-Menus
    DATA BEGIN OF INC OCCURS 3.
            INCLUDE STRUCTURE RSEU1_INC.
    DATA END OF INC.
    Last used numbers
    DATA BEGIN OF LAST.
            INCLUDE STRUCTURE RSEU1_LST.
    DATA END OF LAST.
      data for call transaction (SE41 to re-generate the CUA)
    DATA: BEGIN OF T_BDC_TAB OCCURS 0.
            INCLUDE STRUCTURE BDCDATA.     "BDC data
    DATA: END OF T_BDC_TAB.
    DATA: BEGIN OF T_MESSTAB OCCURS 0.
            INCLUDE STRUCTURE BDCDATA.
    DATA: END OF T_MESSTAB.
    /     Program data                                               */
    DATA: NUMBER(4)               TYPE N,
          OLDNUM(4)               TYPE N,
          FILESIZE                TYPE I,
          NR_OF_BYTES             TYPE I,
          I(3)                    TYPE P,
          IX(3)                   TYPE P,
          J(3)                    TYPE P,
          L(3)                    TYPE P,
          CUA-FLAG(1)             TYPE C,
          CUA_RETURN(10)          TYPE C,
          DYNPRO_MESSAGE(160)     TYPE C,
          DYNPRO_LINE             TYPE P,
          DYNPRO_WORD(30)         TYPE C,
          NUM(3)                  TYPE N,
          DYNNAME(44)             TYPE C,
          FN1(128)                TYPE C,
          FN2(128)                TYPE C,
          FN3(128)                TYPE C,
          W_ITERATE(1)            TYPE C,
          MAIN(1)                 TYPE C,
          FUNC(1)                 TYPE C,
          OLDNAME(40)             TYPE C,
          OLD-FUNC(8)             TYPE C,
          NEW-FUNC(8)             TYPE C,
          FOUND(1)                TYPE C,
          LANGUAGE                LIKE SY-LANGU,
          FIRST-TIME(1)           TYPE C VALUE 'Y',
          OK-CODE(5)              TYPE C,
          NAME(40)                TYPE C,                       "rel 4
          TXLINE(70)              TYPE C,
          LINE(132)               TYPE C.
    DATA:
          UL_FILE(128)          TYPE C,
          DL_FILE(128)          TYPE C,
          DOSLINE(72)           TYPE C.
    DATA: BEGIN OF DOSDIR OCCURS 0,
            TEXT(72),
          END OF DOSDIR.
    DATA: BEGIN OF I_PROG OCCURS 0,
          NAME(40),
          END OF I_PROG.
    DATA: BEGIN OF I_PROGT OCCURS 0,
          NAME(40),
          END OF I_PROGT.
    DATA: BEGIN OF I_INCLUDE OCCURS 0,
          NAME(40),
          HANDLED(1)   TYPE C,
          END OF I_INCLUDE.
    DATA: BEGIN OF I_INCL OCCURS 0,
          NAME(40),
          END OF I_INCL.
    DATA: BUFFER(1024).
    DATA: WINSYS(3).
    DATA: GLOBAL_FILEMASK_MASK(20), GLOBAL_FILEMASK_TEXT(20).
    DATA: GLOBAL_FILEMASK_ALL(80).
    DATA: T_FILENAME(128),
          TMP_FILENAME(128),
          T_MODE(1),
          FIELDLN     TYPE I.
    DEFINE_TABLE I_DYNPFIELDS DYNPREAD 0.  "dynpro fields to be updated
    DATA: I_FLDS LIKE HELP_VALUE OCCURS 0 WITH HEADER LINE.
    FIELD-SYMBOLS: <F>.
    /     Parameters                                                 */
    SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-001.
    SELECTION-SCREEN SKIP 1.
    SELECT-OPTIONS REPID FOR TRDIR-NAME OBLIGATORY .
    PARAMETERS:
          FUNCTION(1)       TYPE C OBLIGATORY,  "Function
          DSNAME(40)        TYPE C,        "Data set name
          INCLUDES(1)       TYPE C DEFAULT 'N', "Resolve Includes
          IMASK(40)         TYPE C,        "Include Mask
          CLASS             LIKE TRDIR-CLAS,
          AUTHOR            LIKE TRDIR-CNAM,          "Author
          APPL              LIKE TRDIR-APPL,
          PATH(88)          TYPE C DEFAULT 'A:\',
          REL3(1)           TYPE C.
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(70) TEXT-004.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(70) TEXT-005.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(70) TEXT-002.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(70) TEXT-003.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END  OF BLOCK A1.
    /          Check users workstation is running WINDOWS,        */
    /          WINDOWS 95, or WINDOWS NT. OS/2 no good for        */
    /          this application.                                  */
    CALL FUNCTION 'WS_QUERY'
         EXPORTING
              QUERY  = 'WS'
         IMPORTING
              RETURN = WINSYS.
    IF WINSYS(2) NE 'WN'.                  "Win 3.X no good either
      WRITE: / 'Windows NT or Windows 95/98 is required'.
      EXIT.
    ENDIF.
    /          Get names of programs to be handled.               */
    /          Name can be a single value, many values or ranges  */
    /          as per standard SELECT-OPTIONS on selection screen */
    / On Download read TRDIR and store program names in a table   */
    / as per selection options.                                   */
    / On upload read the specified directory for all files of     */
    /  type .EEE from specified directory                         */
    /  compare file names with selection criteria                 */
    MOVE FUNCTION TO FUNC.
    MOVE 'Y' TO MAIN.
    CASE FUNC.
      WHEN 'U'.                            "Upload required
        PERFORM READ_DOS_DIRECTORY.
        PERFORM GET_RANGE_UL.              "Get list of progs to process
      WHEN 'D'.                            "Download required
        PERFORM GET_RANGE_DL.              "Get list of progs to process
      WHEN OTHERS.
        WRITE: / 'Function not performed due to user request'.
        EXIT.
    ENDCASE.
    SORT I_PROG.
    DELETE ADJACENT DUPLICATES FROM I_PROG.
    For download INCLUDE handling can be resolved via function
    module call.
    All Includes within Includes are also resolved by the function
    module call.
    Note that this method does not work if program itself is of type
    I (it's an include)
    In this case we can still search the source.
    IF FUNC = 'D'.
      IF INCLUDES = 'Y'.
        PERFORM GET_INCLUDES_DL.
        PERFORM PROCESS_INCLUDES_DL.
      ENDIF.
    ENDIF.
    Program list from selection criteria i.e excluding INCLUDES found
    LOOP AT I_PROG.
      MOVE I_PROG-NAME TO R1-NAME.
      APPEND R1.
      DESCRIBE TABLE R1 LINES I.
      WHILE I NE 0.
        PERFORM EXECUTE-FUNCTION.
      ENDWHILE.
      REFRESH R1.
    ENDLOOP.
    We need to check now for INCLUDES on DOWNLOAD when the INCLUDE
    program itself is of type I. In this case the function call
    will not return the INCLUDES. For example we could be
    downloading ZTESTTOP (an Include itself) which as an include
    ZTEST01.
    The process fortunately is the same as the UPLOAD function
    except of course we need to read the library instead of the
    DOS directory
    process INCLUDE modules for Upload
    On upload the procedure is more complex as Includes within
    Includes can only be resolved by scanning the code and
    searching if the program exists in the directory.
    To get all INCLUDES within INCLUDES entries in table I_INCL
    that do not exist in I_INCLUDE are copied to table I_INCLUDE
    after each entire pass of table i_INCLUDE and table is then
    re-looped through. Programs in table I_INCLUDE that have already
    been processed have a "Y" indicator set in I_INCLUDE-AVAIL.
    if  func = 'U'.
    IF INCLUDES = 'Y'.
      DESCRIBE TABLE I_INCL LINES I.
      IF I > 0.
        W_ITERATE = 'Y'.
      ELSE.
        W_ITERATE = ' '.
      ENDIF.
      WHILE W_ITERATE = 'Y'.
        PERFORM PROCESS_INCLUDES_UL.
        PERFORM LOOP_THROUGH.
        DESCRIBE TABLE I_INCL LINES I.
        IF I > 0.
          W_ITERATE = 'Y'.
        ELSE.
          W_ITERATE = ' '.
        ENDIF.
      ENDWHILE.
    endif.
    ENDIF.
    DESCRIBE TABLE I_INCLUDE LINES I.
    IF I > 0.
      SKIP 1.
      WRITE: / ' Included Programs found'.
      SKIP 1.
      LOOP AT I_INCLUDE.
        WRITE I_INCLUDE-NAME TO LINE(40).
        CONDENSE LINE.
        WRITE: / LINE(80).
      ENDLOOP.
    ENDIF.
    /       Table R contains ABAP names to up / download.            */
    /       Loop through table R and perform up / download           */
    /       for each program.                                        */
    /       Table R1 contains INCLUDE names found (if any)           */
    /       As each                                                  */
    FORM EXECUTE-FUNCTION.
      LOOP AT R1.
        MOVE-CORRESPONDING R1 TO R.
        APPEND R.
      ENDLOOP.
      REFRESH R1.
      LOOP AT R.
        REFRESH : T, E1, H1, F1, S, U.
        PERFORM PROCESS.
        MOVE 'N' TO MAIN.
      ENDLOOP.
      REFRESH R.
      DESCRIBE TABLE R1 LINES I.
    ENDFORM.
    /     Build file names for UP/DOWNLOAD                           */
    /     3 files are generated per ABAP.                            */
    /       1) ABAP    Path\PROGNAME.EEE (ABAP, Attr,Texts)          */
    /          Logic   Path\PROGNAME.EEE (Dynpro Source Logic)       */
    /          CUA     Path\PROGNAME.EEE (CUA components - keys etc) */
    /       2) Header  Path\PROGNAME.HHH (Dynpro Header)             */
    /       3) Fields  Path\PROGNAME.FFF (Dynpro Field definitions  )*/
    / ( If alternate file name specified -DSNAME- this will          */
    /   be used instead. This is only valid for the main program.    */
    /   INCLUDED programs will have file names as specified          */
    /   above).                                                      */
    /  By using this scheme it saves the user from having to         */
    /  be prompted for 3 file names.                                 */
    /  If you want multiple copies / versions on disk either         */
    /  rename the old versions or specify a different directory in   */
    /  the path parameter.                                           */
    FORM PROCESS.
      MOVE PATH TO FN1.
      CASE MAIN.
        WHEN 'Y'.
          IF DSNAME NE SPACE.
            WRITE DSNAME TO FN1+66.                             "rel 4
          ELSE.
            WRITE R-NAME TO FN1+66.                             "rel 4
          ENDIF.
        WHEN OTHERS.
          WRITE R-NAME TO FN1+66.                               "rel 4
      ENDCASE.
      MOVE FN1 TO FN2.
      MOVE FN1 TO FN3.
      WRITE '.HHH' TO FN1+124(4).                               "rel 4
      WRITE '.FFF' TO FN2+124(4).                               "rel 4
      WRITE '.EEE' TO FN3+124(4).                               "rel 4
      CONDENSE FN1 NO-GAPS.
      CONDENSE FN2 NO-GAPS.
      CONDENSE FN3 NO-GAPS.
      NAME   = R-NAME.
      CASE FUNC.
        WHEN 'D'.
          PERFORM DOWNLOAD_OBJECTS.
          CLEAR LINE.
          WRITE : 'ABAP : ' TO LINE.
          WRITE R-NAME TO LINE+8.
          WRITE 'has been unloaded' TO LINE+55.
          CONDENSE LINE.
          WRITE: / LINE.
          DESCRIBE TABLE T LINES I.
          IF I = 0.
            WRITE: / 'No Dynpros were found for unload function'.
          ELSE.
            WRITE: / 'The following Dynpros have been unloaded : '.
            PERFORM LOOP_THROUGH_T.
          ENDIF.
        WHEN 'U'.
          PERFORM UPLOAD_OBJECTS.
          DESCRIBE TABLE T LINES I.
          CASE I.
            WHEN 0.
              WRITE:  / 'No Dynpros were found for restore function'.
            WHEN OTHERS.
              WRITE: / 'The following Dynpros have been restored : '.
              PERFORM LOOP_THROUGH_T.
          ENDCASE.
          IF MAIN EQ 'Y'.
            CASE OLDNAME.
              WHEN SPACE.
                CLEAR LINE.
                WRITE : 'ABAP : ' TO LINE.
                WRITE R-NAME TO LINE+8.
                WRITE 'has been restored' TO LINE+55.
                CONDENSE LINE.
                WRITE: / LINE.
              WHEN OTHERS.
                CLEAR LINE.
                WRITE : 'ABAP : ' TO LINE.
                WRITE R-NAME TO LINE+8.
                WRITE 'has been restored - original name :'
                   TO LINE+55.
                WRITE OLDNAME TO LINE+92.
                CONDENSE LINE.
                WRITE: / LINE.
            ENDCASE.
          ELSE.
            CLEAR LINE.
            WRITE : 'ABAP : ' TO LINE.
            WRITE R-NAME TO LINE+8.
            WRITE 'has been restored' TO LINE+55.
            CONDENSE LINE.
            WRITE: / LINE.
          ENDIF.
      ENDCASE.
    ENDFORM.
    /      print progname + dynpro nrs that have been processed.     */
    FORM LOOP_THROUGH_T.
      LOOP AT T.
        CLEAR LINE.
        WRITE R-NAME TO LINE.
        WRITE T-NUMBER TO LINE+50.
        CONDENSE LINE.
        WRITE: / LINE.
      ENDLOOP.
    ENDFORM.
    /            Download Objects                                    */
    FORM DOWNLOAD_OBJECTS.
      PERFORM UNLOAD_ABAP.                 "ABAP source, texts, attr
      SELECT SINGLE * FROM TRDIR
       WHERE NAME EQ R-NAME.
      IF TRDIR-SUBC = 'I'.
        CASE INCLUDES.                     "Included file wanted
          WHEN 'Y'.
            PERFORM SCAN4-INCLUDES.
        ENDCASE.
      ENDIF.
      PERFORM UNLOAD_CUA.                  "CUA stuff
      PERFORM DOWNLOAD_DATA.               "Download EEE file to PC
      PERFORM BUILD_T.        "Build table of all dynpros in ABAP
      DESCRIBE TABLE T LINES I.
      CASE I.
        WHEN 0.            "if no dynpros exist then cannot download any
          PERFORM DOWNLOAD_DATA.           "Download EEE file to PC
        WHEN OTHERS.
          PERFORM UNLOAD_DYNPROS.          "Get Raw dynpros from SAP
          PERFORM UNLOAD_DYNPRO_COMPONENTS."Convert to table
          PERFORM DOWNLOAD_DATA.           "Download ABAP etc. to PC
          PERFORM DOWNLOAD_BIN_H1.         "Download dynpro header
          PERFORM DOWNLOAD_BIN_F1.         "Download dynpro fields
      ENDCASE.
    ENDFORM.
    /  Split ABAP up into its component parts                        */
    /                           A) Program source (72)               */
    /                           B) Texts          (132)              */
    /                           C) Attributes     (117)              */
    /                           D) CUA stuff      (Various)          */
    FORM UNLOAD_ABAP.
    /    Get ABAP language. Only required on download.               */
      SELECT SINGLE * FROM TRDIR
        WHERE NAME EQ R-NAME.
      MOVE TRDIR-RLOAD TO R-LANGUAGE.
      READ REPORT R-NAME INTO S.           "Get source into table S
      MOVE '????SRCE' TO S-TXT.
      INSERT  S INDEX 1.
    /    Text elements, Numbered texts, headings, selection texts    */
    /    Read text elements with logon language. If they don't       */
    /    exist read with the value taken from TRDIR.                 */
      READ TEXTPOOL R-NAME INTO U LANGUAGE SY-LANGU.
      IF SY-SUBRC NE 0.
        READ TEXTPOOL R-NAME INTO U LANGUAGE R-LANGUAGE.
      ENDIF.
      DESCRIBE TABLE U LINES I.
      CASE I.
        WHEN 0.
        WHEN OTHERS.
          MOVE '????TEXT' TO S-TXT.
          APPEND S.
          LOOP AT U.
            MOVE U-TXT TO S-TXT.
            APPEND S.
            DELETE U.
          ENDLOOP.
      ENDCASE.
    /    Retrieve Attributes from TRDIR and add to table S           */
    /    Change language to logged on language                       */
      MOVE '????ATTR' TO S-TXT.
      APPEND S.
      SELECT SINGLE * FROM TRDIR
             WHERE NAME EQ R-NAME.
      MOVE SY-LANGU TO TRDIR-RLOAD.
      MOVE-CORRESPONDING TRDIR TO DIR.
      MOVE DIR TO S-TXT.
      APPEND S.
    ENDFORM.
    /             retrieve CUA stuff and append to table S.          */
    FORM UNLOAD_CUA.
      MOVE R-NAME TO EU_KEY-NAME.          "Program name for CUA
      MOVE 'D' TO EU_KEY-SPRSL.            "CUA seems to want D as lang
    MOVE R-LANGUAGE TO EU_KEY-SPRSL.     "Language              "rel 2.2
    IMPORT STA FUN MEN MTX ACT BUT PFK SET LAST INC STX DOC    "rel 2.2
      IMPORT STA STX FUN MEN MTX ACT BUT PFK SET LAST INC DOC     "rel 3.0
             ATT FDN MDN SYM FIN           "rel 3.0
              FROM DATABASE EUDB(CU) ID EU_KEY.
      IF SY-SUBRC NE 0.                    "No statuses
        EXIT.
      ENDIF.
    read titles in logged on language. If not present use
    language from TRDIR.
      CASE REL3.
        WHEN SPACE.                        "(rel 4)
          SELECT * FROM RSMPTEXTS WHERE PROGNAME EQ R-NAME
                            AND SPRSL = SY-LANGU.
            MOVE-CORRESPONDING RSMPTEXTS TO FTX.
            APPEND FTX.
          ENDSELECT.
          IF SY-SUBRC NE 0.
            SELECT * FROM RSMPTEXTS WHERE PROGNAME EQ R-NAME
                              AND SPRSL = R-LANGUAGE.
              MOVE-CORRESPONDING RSMPTEXTS TO FTX.
              APPEND FTX.
            ENDSELECT.
          ENDIF.
          DESCRIBE TABLE FTX LINES I.
          IF   I > 0.
            MOVE '????FTXT' TO S-TXT.
            APPEND S.
            LOOP AT FTX.
              MOVE FTX TO S-TXT.
              APPEND S.
            ENDLOOP.
          ENDIF.
        WHEN OTHERS.
          SELECT * FROM TITLE WHERE PROGNAME   EQ R-NAME
                              AND   DDLANGUAGE EQ SY-LANGU.
            MOVE-CORRESPONDING TITLE TO TIT.
            APPEND TIT.
          ENDSELECT.
          IF SY-SUBRC NE 0.
            SELECT * FROM TITLE WHERE PROGNAME   EQ R-NAME
                                AND   DDLANGUAGE EQ R-LANGUAGE.
              MOVE-CORRESPONDING TITLE TO TIT.
              APPEND TIT.
            ENDSELECT.
          ENDIF.
      ENDCASE.
      DESCRIBE TABLE STA LINES I.
      IF   I > 0.
        MOVE '????STAT' TO S-TXT.
        APPEND S.
        LOOP AT STA.
          MOVE STA TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE FUN LINES I.
      IF   I > 0.
        MOVE '????FUNC' TO S-TXT.
        APPEND S.
        LOOP AT FUN.
          MOVE FUN TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE MEN LINES I.
      IF   I > 0.
        MOVE '????MEN1' TO S-TXT.
        APPEND S.
        LOOP AT MEN.
          MOVE MEN TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE MTX LINES I.
      IF   I > 0.
        MOVE '????MTX1' TO S-TXT.
        APPEND S.
        LOOP AT MTX.
          MOVE MTX TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE ACT LINES I.
      IF   I > 0.
        MOVE '????ACTN' TO S-TXT.
        APPEND S.
        LOOP AT ACT.
          MOVE ACT TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE BUT LINES I.
      IF   I > 0.
        MOVE '????BUTN' TO S-TXT.
        APPEND S.
        LOOP AT BUT.
          MOVE BUT TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE PFK LINES I.
      IF   I > 0.
        MOVE '????PFKY' TO S-TXT.
        APPEND S.
        LOOP AT PFK.
          MOVE PFK TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE SET LINES I.
      IF   I > 0.
        MOVE '????SETS' TO S-TXT.
        APPEND S.
        LOOP AT SET.
          MOVE SET TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      IF LAST NE SPACE.
        MOVE '????LIST' TO S-TXT.
        APPEND S.
        MOVE LAST TO S-TXT.
        APPEND S.
      ENDIF.
      DESCRIBE TABLE INC LINES I.
      IF   I > 0.
        MOVE '????INCL' TO S-TXT.
        APPEND S.
        LOOP AT INC.
          MOVE INC TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE STX LINES I.
      IF   I > 0.
        MOVE '????STXT' TO S-TXT.
        APPEND S.
        LOOP AT STX.
          MOVE STX TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE DOC LINES I.
      IF   I > 0.
        MOVE '????DOCN' TO S-TXT.
        APPEND S.
        LOOP AT DOC.
          MOVE DOC TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE TIT LINES I.
      IF   I > 0.
        MOVE '????TITL' TO S-TXT.
        APPEND S.
        LOOP AT TIT.
          MOVE TIT TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
    Next 5 tables are rel 3.0 specific  (ATT, FDN, MDN, SYM, FIN)
      DESCRIBE TABLE ATT LINES I.
      IF   I > 0.
        MOVE '????VATT' TO S-TXT.
        APPEND S.
        LOOP AT ATT.
          MOVE ATT TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE FDN LINES I.
      IF   I > 0.
        MOVE '????VFDN' TO S-TXT.
        APPEND S.
        LOOP AT FDN.
          MOVE FDN TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE MDN LINES I.
      IF   I > 0.
        MOVE '????VMDN' TO S-TXT.
        APPEND S.
        LOOP AT MDN.
          MOVE MDN TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE SYM LINES I.
      IF   I > 0.
        MOVE '????VSYM' TO S-TXT.
        APPEND S.
        LOOP AT SYM.
          MOVE SYM TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE FIN LINES I.
      IF   I > 0.
        MOVE '????VFIN' TO S-TXT.
        APPEND S.
        LOOP AT FIN.
          MOVE FIN TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.

  • Can't understand this thread program.

    Hi ..this is a part of program from http://java.sun.com/docs/books/tutorial/essential/concurrency/simple.html ..I dnt understand the last block in the following program,the one starting from "if (args.length > 0) { ......."
    can somebody tell why is it used?
    public static void main(String args[]) throws InterruptedException {
            //Delay, in milliseconds before we interrupt MessageLoop
            //thread (default one hour).
            long patience = 1000 * 60 * 60;
            //If command line argument present, gives patience in seconds.
            if (args.length > 0) {
                try {
                    patience = Long.parseLong(args[0]) * 1000;
                } catch (NumberFormatException e) {
                    System.err.println("Argument must be an integer.");
                    System.exit(1);
            }

    Well it says in the code comments:
    //Delay, in milliseconds before we interrupt MessageLoop
            //thread (default one hour).So I am guessing that that is the delay period, but the snippet of code you pasted actually does nothing except set a value patience and then look for a command line argument and if it exists attempts to set patience to that value.

  • Distributed Programming Queries

    Hey,
    My group at uni is currently trying to make a program that runs via a multi-threaded client/server, however its not going too well.
    It needs to authorize the users as they log on and store their details, as well as having a chat lobby and running a game (storing its highscores etc).
    anyone got any advice? got any example code? ;-)
    currently we are looking at putting the server and the chat lobby together, while making the client and game do the rest of the work (the game is going to be P2P)
    i have included the spec for the project as a guide to the kind of help we need:
    - Authorize and Register (if not alredy authorized)
    - Store current information on clients (name, IP etc)
    - provide a method of transferring player details between server/client
    - Store scores from game on server (i.e. high score table)
    - connection stats (i.e. no of connections, player stats (i.e. wins/losses/games played))
    - the client needs to mirror these actions as well as allow the play between two other players
    we hope this helps in choosing the advice to give and we thank you in advance for everyones help.

    What you need to do is this - Learn the Java language
    Your question does not merit an actual answer. Most people are seeking answers to technical questions, or planning help.
    You need nither of these.
    You are set right now. You know what you want to do, and what needs to be done. That's the hardest part of programming.
    I would say that you should buy some books on Java for your development team, learn them, and then hire a Java consultant to come in and be the "technical director" for your project.

Maybe you are looking for

  • Problem with creating User Defined Fields

    Hello, I have a big problem on one customers db. Everytime when user logs in SBO, he got immediatley after login message, that db structure was modified and user must click OK to continue (close all form - in this case is still no form opened). I tri

  • SEM-CPM-MC: Creating CPM variables

    Hi, I know this is probably not the right place to post it, but I couldnt find a better place. I trying to create a variable in SEM-CPM-MC, but no matter what I do, I'm only able to create a runtime variable with selection type P - Variable for singl

  • 5230 and PC USB cable Pc don't recognize the USB...

    Hello and thanks in advance for any help. PC= Laptop (no bluetooth) with Vista Home full updated. 1) when I connect the phone to the pc with the USB cable (Nokia CA101D) the phone ask "pcsuite" connection. I say OK. 2) The pc doesn't seems to "hear"

  • Tell us about your first computer

    Hi Guys I noticed that djh22 posted some interesting info in the Introduce Yourself thread about his computing history and I thought it was worth starting a new thread on this topic! What was the first computer you used?  Does anyone remember the Dra

  • Why does my keyboard repeat keys and the screen goes off center?

    Keyboard repeats letters, erases multiple letters and generally goes crazy. Also screen goes off center and too large for frame.