Python(3) clipboad manipulation - a few doubts

My programming is generally messy (and very procedural), but I've been having to pick up some basic Python for a course that I teach. Since I've always heard that python makes simple utilities dead-simple to write, I decided to try one out on my own.
PROBLEM DESCRIPTION:
I copy some song lyrics/chords from a db-management app (opensong, its in the AUR) to paste it in libreoffice for formatting and eventual distribution/printing. The format is as below, basically lines starting with periods are chord lines, and lyrics may have spaces/underscores added to do alignment (see extra spacing between 'is' and 'to' in third line and the underscores on 4th line). Sections are listed like [C] for chorus or [V1] for verse 1.
[C]
.C G/B Am C/G
Jingle bells, jingle bells
.C F/G
Jingle all the way
.F F/C C C
Oh what fun it is to ride
. G G F/A G/B C
In a one-horse o___pen sleigh
So, its convenient to sometimes have just the lyrics, which means removing all chords lines and the multiple-space/underscore characters. In addition, due to the way libreoffice treats the initial text when I paste it, I get windows line endings (and when saving, reopening I get additional spacing because of that).
So here's what I have, all messy and basically uncommented, but should be simple enough to follow. And it works!:-
import sys
from PyQt4.QtGui import QApplication
app = QApplication(sys.argv)
clipboard = QApplication.clipboard()
text = clipboard.text()
splittext = text.splitlines() #deals with windows newlines if they exist
newtext = ""
for line in splittext:
if line[0] != ".": #remove chord lines
oldchar = " "
newline = ""
for char in line:
if not (char == " " and char == oldchar) and char != "_":
newline += char
oldchar = char
if newtext != "":
newtext += "\n" + newline
else:
newtext += newline
clipboard.setText(newtext)
sys.exit(app.exec_())
My questions:-
1. Am I 'wasting' code at any point? (subjective I know)
2. Without the sys.exit call I get really weird behaviour, where 'setText' would seem to grab the selection and I'd then have to re-run the app again (and get an error on clipboard.text() before I could actually use the mouse to select anything. This was the same behaviour I got from using pyGtk, actually. Does it have something to do with both QT and GTK assuming they're being used in graphical apps?
3. It seemed to me while doing my searching that the documentation for pyGTK is much better than that for pyQT, did I miss something (a good pyQT wiki or example website, for example)?

Stebalien wrote:1. If you are willing to use a regex and some list comprehension you can get rid of the for loops:
Thanks, will take a look at this after I'm back from lunch.
Stebalien wrote:2. IIRC, X11 doesn't store the contents of the clipboard. When an application puts data on the clipboard, it must stick around to provide the data when requested by another application. This is probably the source of your problem.
I'm aware that X11 only stores (for want of a better word) a pointer/reference to the app providing the data, but as far as I can tell my python application does seem to hang around. Will test that a bit, if this theory is correct, though, wouldn't that mean that sys.exit would mean what's in the clipboard (and from my small pthon script) is deleted? Because it's still usable even after the script finishes
Stebalien wrote:3. Just read the C++ QT documentation. The method calls are approximately the same in python.
I've come across all the C++ documentation, did not realize it was approximately the same. Unfortunately that means that its missing what (IMHO) is the best part about the pyGtk document, small code fragments which can be tried out...

Similar Messages

  • A few doubts in the 'beginners guide'

    Hello, I'm trying out arch (still with virtualbox), and I'm following the 'beginners guide' on the wiki.
    I managed to install it but ended up with a few doubts, about some parts of the installation.
    On the "Partition Hard Drives" part, it says that there are 3 types of disk partitions (primary, extended, logical), but when I'm creating the partitions with cfdisk, I can only choose between primary and logical. Does the extended gets created automatically when I create some logical partitions?
    When I have to set the filesystem mountpoints, I think that I don't do anything to the /dev/sda (I only set the ones with numbers at the end - the partitions), but I don't think the wiki is clear on this, the only thing I see there is this part: "Recall that partitions end in a number. Therefore, sda is not itself a partition, but rather, signifies an entire drive" which is easily overlooked when you don't understand much.
    When you need to choose the mirrors (/etc/pacman.d/mirrorlist), the wiki doesn't tell much. For example, what is the difference between choosing ftp or http servers? do you choose both? In the beginning there's a server that has as a comment #any, does this mean it will choose automatically which server it will use?
    that's it... for now :)

    moosie wrote:For the hard drive part, someone correct me if I'm wrong, but sda refers to the whole drive where as sda# refers to a partition, one might say portion, of this drive; i.e sda1 would be the first partition sda2 the second and so on. As for the mirrors for the difference between ftp and http refer to this link: http://daniel.haxx.se/docs/ftp-vs-http.html  I haven't read this but it seems to be a good source of knowledge. Also for the mirrors and the install as a whole I recommend watching this youtube video: http://www.youtube.com/watch?v=RjTTl_9aUXc in the video the reflector and curl are used to come up with the fastest mirrors based on your location and he goes through the whole installation process all the way to the point where he installs gnome.
    In general, if you're not sure of something, better not to post it. Also, don't do googling for someone else, Arch users are expected to be competent to do their own research. Else you end up feeding help vampires (not necessarily saying the OP is one).

  • Stapler - A python utility for manipulating PDF docs based on pypdf

    Link to github:
    http://github.com/hellerbarde/stapler/tree/master
    * Dependencies *
    Stapler depends only on the packages python and python-pypdf, both of
    which can be found in the archlinux repositories.
    * History *
    Stapler is a pure python replacement for PDFtk, a tool for manipulating PDF
    documents from the command line. PDFtk was written in Java, and natively
    compiled with gcj. And it has been discontinued a few years ago and bitrot is
    setting in (i.e. it does not compile anymore in archlinux).
    Since I used it quite a lot, I decided to look for an alternative and found
    pypdf, a PDF library written in pure Python. I couldn't find a tool which
    actually uses the library, so I started writing my own.
    At some point I plan on providing a GUI, but the command line version will
    always exist.
    * License *
    A simplified BSD Style license describes the terms under which Stapler is
    distributed. A copy of the BSD Style License used is found in the file "LICENSE"
    * Usage *
    I am too lazy at the moment to learn how to create a proper man page so this has
    to suffice.
    There are 4 modes in Stapler:
    - cat:
      Works like the normal unix utility "cat", meaning it con_cat_enates files. 
      The syntax is delightfully simple:
        Syntax
        stapler cat input1 [input2, input3, ...] output
        Example:
        stapler cat a.pdf b.pdf c.pdf output.pdf
        # this would append "b.pdf" and "c.pdf" to "a.pdf" and write the whole 
        # thing to "output.pdf"
      you can specify as many input files as you want, it always cats all but the
      last file specified and writes the whole thing into the last file specified
    - split:
      Splits the specified pdf files into their single pages and writes each page
      into it's own pdf file with this naming scheme:
        ${origname}p${zeropaddedpagenr}.pdf
      Syntax:
        stapler split input1 [input2 input3 ...]
      Example for a file foobar.pdf with 20 pages:
        $ stapler split foobar.pdf
        $ ls
          foobarp01.pdf foobarp02.pdf ... foobarp19.pdf foobarp20.pdf
      Multiple files can be specified, they will be processed as if you called
      single instances of stapler.
    - select/delete (called with sel and del respectively)
      These are the most sophisticated modes. With select you can cherrypick pages
      out of pdfs and concatenate them into a new pdf file.
      Syntax:
        stapler sel input1 page_or_range [page_or_range ...] [input2 p_o_r ...]
      Example:
        stapler sel a.pdf 1 4-8 20-40 b.pdf 1-5 output.pdf
        # this generates a pdf called output.pdf with the following pages:
        # 1, 4-8, 20-40 from a.pdf, 1-5 from b.pdf in this order
      What you _cannot_ do yet is not to specifying any ranges. I will probably merge
      select and cat at some point in the future so that you can specify pages and
      ranges, and if you don't, it just uses the whole file.
      The delete command works almost exactly the same as select, but inverse.
      It cherrypicks the pages and ranges which you _didn't_ specify out of the
      pdfs.
    contact me if you have questions about usage or anything, really
    2009, Philip Stark (heller <dot> barde <at> gmail <dot> com)
    Last edited by Heller_Barde (2009-08-05 21:02:54)

    firecat53 wrote:
    Are you planning on adding eventually the full functionality of pdftk -- rotate, watermark, encrypt, etc?  I occasionally use pdftk, and I'd like to see a replacement since it's apparently having troubles keeping up to date. Great work!
    Scott
    if you help me with ideas for the command syntax, sure why not. pypdf supports these things. can you make a complete list of things pdftk does that would be important to port over? and how the command line syntax for these features work. I'll then get working
    EDIT: I just had a look at the pdftk man page (didn't think of that when i wrote the above...) there are some things that will not be possible with the current version of pypdf (and frankly i doubt there is going to be a new release):
    update_info (because there is no way to write document properties with pypdf, you can read them just fine though)
    fill_form  (similar reason. it's just not supported)
    the rest will be fine. I'll rename split to burst and then I'll mimic the cat function. the others should be no problem either.
    although... i didn't find anything on rotate in the pdftk manual. how should i implement a rotate function? Rotate complete documents or single pages?
    cheers
    Phil
    Last edited by Heller_Barde (2009-08-06 07:08:42)

  • Need clarification on few doubts in OLM

    Hi,
    I would like to get the following doubts cleared. Thanks a lot in advance for any information related to these:
    1. How can OLM help in identifying the training needs for the organization?
    2. In the web based interface for learning Administration how can we search for all Courses/classes/categories etc? (*, % etc do not help only partial or exact match helps)
    3. Could not find the Cost Transfer Finance Headers page to create a Cost Transfer finance header in the Oracle Learning Management Administrator Menu. Where is this page?Is this available only with OTA.J and later?
    4. Could not find the form for restricted class. Is this available only with OTA.J and later?
    Thanks & Regards,
    Supriya

    Hi Supriya,
    Regarding 1:
    Training needs will be identified in Oracle HR and not in OLM. OLM will only record training and the associated competences and deliver training with specific competences.
    There are two ways of identifying training needs in Oracle HR:
    1: Get an overview of all competences in your organization, and use this info for your own estimate of the total training need.
    2: Let Oracle HR find the training need for each individual by comparing individual competences and the required competences for the individual job, then you can add these up to a total for the whole organization.
    You can do both from the “suitability match” functions in Oracle HR Self Service
    Regarding 2:
    In order to avoid excessive response times it’s no longer possible to use “%” as the only input in some of the searches.
    If you want to have the full list, I will suggest you use the Advanced Search instead of the normal search. In the Advanced Search you choose your “Object Type” and a “Start Date” of 1990 and leave the rest of the fields blank. This will give you a full list of courses or classes.
    Regards
    Anders

  • Hi Experts...Im new to SAP BW & BI...I have few doubts how u guys can clear

    HI Experts,
    Can anyone explain how these updates works..
    FULL Update,
    Delta Update,
    init update,
    initialize with data transfer,
    intialize without data transfer.
    V1 Update
    V2 Update
    V3 Update.
    Thanks
    Manu

    Hi...
    Full Update >> Loads all the data from the source system..every time you run a Full upload it will pick old as well as new changed records from the source system.In this case generally number of records is huge and IP takes a long time to get completed...
    In this case each time we need to fill the set up table in the source system..
    Delta load >> Delta loads only brings the changed records from the source system.To initialise a delta load:
    1) first run full load
    2) then run init IP without datatransfer
    3) run delta load...
    In this no need to fill the set up table repeatedly..
    Just fill it once first time when you are executing full load..after that when you will run init IP...delta queue will get generated..
    It saves time...
    One thing I want to mention here...
    Suppose any delta loads fails...then it is must to make the toatal staus in the IP monitor manually red before deleting the request from the target....to set back the init flag...otherwise it will not allow repeat delta and data will be lost
    In full load if you no need to make the Total Status manually red.
    Init update is to set the Init flag...
    Suppose somehow delta mechanism got corrupted...
    In this situation we have to delete the init flag >> If last failed delta load picks some records...then we will do delta with data transfer...if last failed delta IP picks 0 records...then we will do delta without data transfer...
    After running the init IP...we will run Delta IP...
    V1 Update >> Synchronous update >> Taking an example -
    If you create/change a purchase order (me21n/me22n), when you press 'SAVE' and see a success message (PO.... changed..), the update to underlying tables EKKO/EKPO has happened (before you saw the message). This update was executed in the V1 work process.
    V2 Update >> Asynchronous update >> There are some statistics collecting tables in the system which can capture data for reporting. For example, LIS table S012 stores purchasing data (it is the same data as EKKO/EKPO stored redundantly, but in a different structure to optimize reporting). Now, these tables are updated with the transaction you just posted, in a V2 process. Depending on system load, this may happen a few seconds later (after you saw the success message).
    V3 Update >> Batch asynchronous update >> V3 is specifically for BW extraction. The update LUW for these is sent to V3 but is not executed immediately. You have to schedule a job (eg in LBWE definitions) to process these. This is again to optimize performance.
    V2 and V3 are separated from V1 as these are not as realtime critical (updating statistical data). If all these updates were put together in one LUW, system performance (concurrency, locking etc) would be impacted.
    Serialized V3 update is called after V2 has happened (this is how the code running these updates is written) so if you have both V2 and V3 updates from a txn, if V2 fails or is waiting, V3 will not happen yet.
    Kindly assign me some points if this helps you...
    Regards,
    Debjani...
    Edited by: Debjani  Mukherjee on Sep 5, 2008 9:58 AM

  • Few doubts

    dear experts
    1. what is the exact difference between sy-tabix and sy-index. explain in detail.
    2.diference between sm36 and sm37.
    3. on which server we exactly do UTP(unit test planning)  what is the procedure.
    thankx
    baleeq

    Hi,
    Here is an example from which you can understand the difference between sy-tabix and sy-index.
    Itab is an internal table with the following data in it.
    id   Name
    198   XYZ
    475   ABC
    545   PQR.
    loop at itab where id > 300.
      write :/ itab-id, itab-name , sy-tabix, sy-index.
    endloop.
    My output will be :
      475 ABC 2 1
      545 PQR 3 2
    Sy-tabix is the index of the record in internal table.
    sy-index gives the no of times of loop passes.
    So, for the first record in the output (475 ABC), 2 is the index of the record in internal table and as it is first time loop pass occured, sy-index value is 1.
    Regards,
    sailaja.

  • Kernel Upgrade : Few Doubts

    during kernel upgrade.
    I renamed original kernel exe to exe.old > mv exe exe.XX
    downloaded two SAR & uncarded files to a directory and renamed it to exe. > mv exe.YY exe
    after found there were multiple files were missing in new kernel.
    is that some thing happen ?

    Hi
    As Nicholas said dont rename the exe folder,after extracting new kernel files just copy those files into your exe folder,because two files what you have download doesn't give all files which are necessary to start the SAP.
    So you better extract files into new folder,copy those files into your exe folder using below command.
    >cp -rp <newfiles> /sapmnt/<SID>/exe
    some times it may give warning saying that some files cann't be replaced because files are in use.
    Then just note down that file names and rename that file in exe folder like below.
    >cd /sapmnt/<SID>/exe
    >mv <filename> <filename>.old
    Again you copy new files to exe.
    >cp -rp <newfiles> /sapmnt/<SID>/exe

  • Schema and Table .. Few doubts.

    Hi ,
    Can you please help me out on following questions.
    1. How to physicalizing the Logical Model into database Schema AND Tables
    2. How to create a Schema and table in oracle 11g. Let me know if scripts are available.
    3. How to create a read only user with different restricted access.
    4. How to deploying the Schema, Tables (and potential scripts) into Exadata.
    Please provide the aboce details.
    Thanks in advance.
    Regards,
    Parag

    You need a Database Designer and a Database Administrator.
    1. With experience of having done so earlier or having learned as an understudy to someone with expertise
    2. Look up the Oracle 11g database SQL documentation. See http://www.oracle.com/pls/db112/homepage
    3. See the Oracle 11g database Administrator's Guide and Security Guide (from the above URL)
    4. Through a proper Change Control procedure. Each organisation has it's own methods of source code control and deployment.
    Hemant K Chitale

  • LSMW- Few doubts?

    Hi,
    Please tell me in what scenarios shall we go for LSMW with Batch Input Recording and in what scenerios shall we go for Direct Input Method in LSMW? Urgent.
    Regards,
    MD

    Hi,
    This one is the most complete document for the same
    http://sapabap.iespana.es/sapabap/manuales/pdf/lsmw.pdf
    http://service.sap.com/lsmw.
    http://****************/Tutorials/LSMW/LSMWMainPage.htm
    Here is a step by step guide on LSMW
    http://sapabap.iespana.es/sapabap/manuales/pdf/lsmw.pdf
    http://myweb.dal.ca/hchinni/sap/lsmw_home.htm
    http://www.sap-img.com/sap-data-migration.htm
    http://www.sapgenie.com/saptech/lsmw.htm
    http://sapabap.iespana.es/sapabap/manuales/pdf/lsmw.pdf
    http://www.sap.info/public/INT/int/glossary/int/glossaryletter/Word-17643ed1d6d658821_glossary/L#Word-17643ed1d6d658821_glossary
    LSMW IDOCs
    check these threads..
    http://esnips.com/doc/1cd73c19-4263-42a4-9d6f-ac5487b0ebcb/LSMW-with-Idocs.ppt
    http://sapabap.iespana.es/sapabap/manuales/pdf/lsmw.pdf
    Lsmw
    LSMW with TABLE CONTROL
    Refer the links -
    lsmw table control
    Re: Table control in LSMW
    Table control in LSMW
    Table Control in LSMW
    Re: Table Control in LSMW
    just refer to the link below
    http://www.sapmaterial.com/?gclid=CN322K28t4sCFQ-WbgodSGbK2g
    Reward Points if found helpfull..
    Cheers,
    Chandra Sekhar.

  • Please clear few doubts

    Hi,
    I came accross use of following command for oracle
    lsncrtl
    dbstart
    SQL>startup.
    Please somebody elobrate what exactly all these command do. I have some knowledge but i want to clear my concepts.

    Search the docs, pretty easy to find. Here is one:
    http://download.oracle.com/docs/cd/B19306_01/server.102/b15658/strt_stp.htm#sthref255

  • Few basic doubts about accessing AM from backing bean class

    Hi ADF experts,
    I have just started working in ADF Faces.I made a sample search page.My page is attached to a managed backing bean. I have attached command button on my page to a custom method in backing bean class.
    So on, click of button this method is called in backing bean.Now, i have few doubts:
    1)How to get values of various UI beans in this event code?
    2)I am accesing AM , in my method with this code:
    FacesContext facesContext = FacesContext.getCurrentInstance();
    ExternalContext extContext = facesContext.getExternalContext();
    Application app = facesContext.getApplication();
    DCBindingContainer binding = (DCBindingContainer)app.getVariableResolver().resolveVariable(facesContext, "bindings");
    //Accessing AM
    ApplicationModule am = binding.getDataControl().getApplicationModule();
    iS this correct ?
    3) After getting handle of am how to call my custom method in AM Class?there was "invokeMethod" API in application module class in OAF, is there any such method here?
    Please help me.
    --ADF learner.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    Thanks for ur response Frank, actually I am from OA Framework back ground.It would be great if help us a little with ur valuble thoughts.
    OA Framework also uses bc4j in model layer of framework. We have a requirement where our existing developers from OA Framework have to move to ADF to make a new application where time lines are quite strict.If this would not be possible we will switch to plain jsp and jdbc,but our tech experts say ADF Faces is the best tech.
    In OA Framework, Application Module is key class for all busiess logic and Controller is used for page navigation. So, I m just trying to find the same similarity , where we write we add all event codes in custom action methods in the backing bean class of page, which we consider equivalent to process form request method in Controller class of OAF.
    But there are two things, I still want to know:
    1)While page render, how to call specific AM methods(like setting where clause of certain VOs)
    2)In action methods, the way i described(I found that in one thread only)to access AM, what is wrong in that?Also, I went through
    http://radio.weblogs.com/0118231/stories/2004/09/23/notYetDocumentedAdfSampleApplications.html
    where coule of examples use similar approach to access AM from backing bean class and call custom methods of AM(Doing various, deletes etc from VOs).
    3)In these methods can we set any property of beans on the page, I am asking because in OAF, generally we use PPR for js alternatives.But all properties of beans cannot be set in post event.
    Thanks and Regards
    --ADF Learner                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Few more basic doubts in ABAP

    Hi Floks,
    I have few doubts in ABAP programming could please clarify that ..
    1. how to handle error messages in Call transaction and Call Session method .
    2. which logic can be used to handle the table control in BDC method . when table control required ? let me give few transction related to table control of BDC.
    3. what is structure of BDC DATA ? what is diffrence between BDC Session and Call Transaction method in programming steps ?
    4.how many message types available ? what are they ?
    5.when call transction or Call session  can be used ? how to decide which method is best for requirement ?
    could you please help me out . if u have any material or links forward to [email protected]
    Good Rewards for best answers
    Thanks ,
    Sunitha

    Here are the answers to your questions.
    1. how to handle error messages in Call transaction and Call Session method .
    --> In Call transaction, if you see the command, messages are populated into an internal table. You need to read last record of this table. Using Function module FORMAT_MESSAGE, you can get details of the message. For session method, session gets created and status of session can be seen in transaction SM35. You can process erroneous sessions from here.
    2. which logic can be used to handle the table control in BDC method . when table control required ? let me give few transction related to table control of BDC.
    --> Check these links which explain in detail with examples.
    BDC - TABLE CONTROL
    In BDC table control
    3. what is structure of BDC DATA ? what is diffrence between BDC Session and Call Transaction method in programming steps ?
    -->PROGRAM - Program Name
    DYNPRO - BDC Screen number
    DYNBEGIN - BDC screen start (Flag)
    FNAM - BDC Field name
    FVAL - BDC Field value
    4.how many message types available ? what are they
    -->
    A (Abend) Termination
    E (Error) Error
    I (Info) Information
    S (Status) Status message
    W (Warning) Warning
    X (Exit) Termination with short dump
    5.when call transction or Call session can be used ? how to decide which method is best for requirement ?\
    --> These threads discuss the same
    Session Method
    Difference between Session method and Call transaction method

  • Some Doubts

    Hi All,
    I Have a Few Doubts Here. Please Clear My Doubts
    Q1) Where the Message Mapping will Runs on ????
    Q2) Where the Proxies Runs On ???
    Q3) What is the Latest CREMAS IDOC ??
    Q5) What is BPM ??? In Which Situation We Will use BPM ??? Tel me in General Words
    Q6) What is the Purpose of Importing the Metadata of IDOC ??? With Out Importing this Can We do this or Not ???
    Q7) What is the Difference Between Logical System And the RFC Destination ???
    Q8) How Can We Define Asynchronous RFC in the RFC Destination ??
    Please Let me Know All the Doubts
    Regards
    Vamsi

    <i>Q1) Where the Message Mapping will Runs on ????</i>
    In Java Stack
    <i>
    Q2) Where the Proxies Runs On ???</i>
    In Abap Stack
    <i>Q5) What is BPM ??? In Which Situation We Will use BPM ??? Tel me in General Words</i>
    BPM process is a very useful tool as the name suggest ccBPM when ever you want to model your soultion hitting different systems, Also helps in controling and monitoring complex integration solution process.
    As it uses SAP workflow engine behind it is very effective in building complex soultion.
    some simple scenarios could be
    Wait for more than one input and start your integration process..
    Raising alerts, exceptions and so on...
    BPM is necessary when you re looking at stateful-message
    processing i.e; the state of message is persisted for
    making some decisions or routing etc.
    Some examples:
    Merging of two files into one.
    Splitting of single file and sending to to many receivers
    parallely or sequentially.
    Doing complex business process which involves inserting
    data into some system>getting response>using response
    payload to determine what step needs to be done-->
    determining receiver-->sending message.
    Well such a process will incolve steps like sync send,switch,send etc.
    Sync-Async bridge is one other example of BPM..which
    can't be donw without BPM
    Well, one can give 'n' number of examples...but what u
    got to understand is BPM will involve some process steps
    for manipulating the messages and BPM is also a logical
    sender/receiver like a business service/sytem.
    I would suggest you to do BPM patterns in the basis
    component to get more familiar with BPM
    Cheers...
    Vasu
    <b>** REward POints if found useful **</b>

  • Doubts in ALV?

    Hi,
    I have few doubts in Reuse_Alv_List_Display.
    1. How to use It_Filter?
    2. Their is a direct filter option in he list display. then what is the need of this It_Filter?
    Thanks.

    Hi ajay
    Use
    Set current filter settings. A row of the table describes the selection conditions for column entries that are not to be displayed.
    You should never manually set up the internal table with the filter settings. Use this method only to set filter criteria that you got using get_filter_criteria or a layout.
    Features
    CALL METHOD <ref. var. to CL_GUI_ALV_GRID > ->set_filter_criteria
       EXPORTING
          IT_FILTER  =   <internal table of type LVC_T_FILT > .
    <b>IT_FILTER</b>
    Table with filter properties for columns for which a filter is to be set initially
    check this link
    http://sap.ittoolbox.com/groups/technical-functional/sap-dev/top_of_page-top_of_list-using-alvgrid-functions-617843
    http://www.sap-basis-abap.com/sapalv.htm
    Rewards if helpfull
    Regards
    Pavan

  • Doubts in the program

    Hi,
    I got a few doubts in my program to display the top of page using OOPS.
    IF o_html_cntrl IS INITIAL.
        CREATE OBJECT o_html_cntrl
          EXPORTING
            parent = o_parent_top.
      ENDIF.
      CALL METHOD o_dyndoc_id->merge_document.
    o_dyndoc_id->html_control = o_html_cntrl.        <---- what is the use of this statemnt*
    Display document
      CALL METHOD o_dyndoc_id->display_document
        EXPORTING
          reuse_control      = 'X'
          parent             = o_parent_top
        EXCEPTIONS
          html_display_error = 1.
      IF sy-subrc NE 0.
        MESSAGE 'Error in displaying top-of-page' type 'I'.
      ENDIF.
    and while using class  cl_dd_document how to change the FONT size while using the method ADD_TEXT
    regards

    Hi,
    Please check this link for adding font... in SAP_STYLE of ADD_TEXT method you have to specify the style...
    Check the below thread and scroll down to the see the usage of ADD_TEXT method...
    Re: CL_GUI_ALV_GRID - display comment above GRID
    Hope this would help you.
    Good luck,
    Narin

Maybe you are looking for