Add Text Lines SBO 2005

Hi there, for a while I guess tha I have found my answer in a similar post, however this refers to SBO 2007, and I need to make this on SBO 2005, anyway ...
I need to add text lines in a purchase order via DI, but I can't find how to make it
Any ideas?
Thanks in advance and best regards
Aristoteles

Wow, bad news for me Eddy anyway I appreciate really your quick answer.
But, do you guess that is there another way to solve this without SpecialLines?
Thanks again
Aristoteles
Edited by: Aristóteles Quintanar Ramos on Jan 30, 2008 2:04 PM

Similar Messages

  • Text Lines SBO 2007

    Hi people.
    I'm trying to add text lines in a quotation via DI with 2007 SDK but my code doesn't work!
    This is:
                                    oOferta.SpecialLines.Add()
                                    If mNumSpLinea > 0 Then
                                        oOferta.SpecialLines.SetCurrentLine(mNumSpLinea)
                                    End If
                                    oOferta.SpecialLines.LineType = SAPbobsCOM.BoDocSpecialLineType.dslt_Text
                                    oOferta.SpecialLines.LineText = xHoja.Range(mCelDes).Value.ToString.Trim
                                    oOferta.SpecialLines.AfterLineNumber = mNumLinea + mNumSpLinea
                                    mNumSpLinea = mNumSpLinea + 1
    nNumSpLinea is a text lines counter because with general lines counter (from quotation) doesn't work.
    AfterLineNumber doesn't affect. Doesn't work with or without this
    I change this code trying to work but I lost!
    Any ideas???
    Thanks in advance
    Juli P.

    Hi,
    I have tested SpecialLines adding in a Quotation and it works fine. I'm testing with PL11.
    You have to pay attention and for each SpecialLine to be added you need first to call
    Qut.SpecialLines.Add()
    If you don't add first the SpecialLine then it will give you errors or ignore the added lines.
    Please check the SDK Help File, the following sample is there:
    Sub AddSpecialLine()
            'Adding special line
            'Assume Qut is an existing Quotation Document Object
            Qut.SpecialLines.Add()
            'Setting the type of special line to be sub total
            Qut.SpecialLines.LineType = SAPbobsCOM.BoDocSpecialLineType.dslt_Subtotal
            'Setting the after line number
            'A number that says after which line the special line will appear
            Qut.SpecialLines.AfterLineNumber = 2
            'Check for errors
            lRetCode = Qut.Update()
            If lRetCode <> 0 Then
                oCompany.GetLastError(lErrCode, sErrMsg)
                MsgBox(lErrCode & " " & sErrMsg) ' Display error message
            Else
                MsgBox("Special Lines Added")
            End If
    End Sub
    Hope it helps
    Trinidad.

  • Can i Use Crystal Report Add-on in SBO 2005 B PL 25

    Hi all,
    I am using SBO 2005 B PL 25, I like to use Crystal Report Add-on with this version and PL.
    Can I use It ? From Where I have to download the Add - on ? How to Install ?
    Can anybody guide me on this issue ?
    With Best Regards,
    Chintesh Soni

    HI ,
    Please go through the link.
    http://72.14.235.132/search?q=cache:sZ8kQ1GEamMJ:https://www.sdn.sap.com/irj/scn/downloads%3frid%3d/library/uuid/d0a0c14b-0e20-2b10-939b-e93a19f14c12CRYSTALREPORTSINTEGRATIONFORSAPBUSINESS+ONE&hl=en&ct=clnk&cd=1&gl=in
    Rgds,
    Premraj

  • Compile Add-On for SBO 2005 and 2007

    Hi All,
    I am looking for a document that I downloaded a while ago on steps how to compile add-ons for SBO version 2005 and 2007 on the same machine. I don't want to run both versions (I can be running either) just want to be able to compile add-ons on both version 2005 and version 2007 on my local machine. I also don't want to use virtual machine or something like that.
    Thanks for the help,
    Adele

    Hi Adele,
    usually it is enough to change the .dll reference in your code and recompile it.
    you can also decide which diapi connection you use
    when creating the company object
    //The object OComp is defined as company object of the selected version
    Dim OComp As SAPbobsCOM.Company
    Set OComp = New SAPbobsCOM.Company
    or
    //The object OComp is defined as company object of version 2005
    Dim OComp As SAPbobsCOM.Company
    Set OComp = CreateObject("SAPbobsCOM.Company.6.8")
    // for 2007 it should be
    Dim OComp As SAPbobsCOM.Company
    Set OComp = CreateObject("SAPbobsCOM.Company.8")

  • Text Lines to print on Marketing Documents

    How do I get line Types of Text to print on the documents?  2005A, SP1

    Hi Kathy,
    The exact instructions for this are in SAP Note 918132 on how to add Text lines to your PLD layout.  It details 2004 instructions and then 2005 (its easier in 2005).  If you do not have access to the note then I can paste it to you in a reply?
    Regards,
    Adrian

  • How to create a subtotal or text line in a service sales order ?

    Hi ,
    is there a way to add text line in sales order for service ? when we switch from item sales order to service sales order , the "type" column disappear , and we can not create line other than service line . we use B12007A SP01 PL07
    i've not seen this limitation in the B1 help . is it a setup problem ? or is it impossible to add those lines to service sales order ?
    thanks for help
    regards

    Hi,
    This is not setup problem this is limitation you cannot add line as text or subtotal using type option in service order like item type order. If you want to add text for your service line you can do this through linewise  udf.
    Thanks
    Sachin

  • Sales order Text Line (Type)

    Hi,
    How do I add Text Line by selecting the field "Type" in Form Settings in my DI Add-On?
    Here is the code for adding a regulare Sales Order line:
    CODE
    oDocument_SalesOrder.Lines.FreeText = "This is not the Text I want to have...It is a Drop Down List and you can select Regular, text, sun-total in Type Column";
    oDocument_SalesOrder.Lines.Add();
    Thank you,
    Rune

    Rune,
    You need to use the Document_SpecialLines Object which is new to SAP Business One 2007A.  You can find more detail on this in the 2007A SDK Help Center documentation as well as sample code with the SDK at ...
    ..\Program Files\SAP\SAP Business One SDK\Samples\COM DI\CSharp\19.SpecialLines
    Eddy

  • When I copy and paste text in facebook, the text looks fine until I hit 'share' or 'comment' to submit it. Firefox then adds indiscriminate line-feeds within the text and it looks nothing like the original text. This does not happen in Safari. (Mac OSX 10

    When I copy and paste text in facebook, the text looks fine until I hit 'share' or 'comment' to submit it. Firefox then adds indiscriminate line-feeds within the text and it looks nothing like the original text. It makes it very difficult to read and awful to look at.
    This does not happen in Safari.
    (Mac OSX 10.6.4 with Firefox 3.6.6).
    == URL of affected sites ==
    http://

    Same problem, 3.6.8 and previous recent versions. I never thought to try another browser but I just pasted into IE and it worked fine. I copied from Firefox to IE and it worked as well. It's just when you paste into Firefox that you get the weird line breaks.

  • How to add a line between the two text fields  in JTabbed Pane

    Hi Friends,
    I would like to add a Line between some text fields to seperate them.. I added those text Fields to a tabbed Pane.. Please help me to create a line between the TextFields......

    http://java.sun.com/docs/books/tutorial/uiswing/components/separator.html

  • HT202879 how do i add a line to the top and bottom of a text box only

    i have a text box in my Pages document but i need to be able to add a line tot he top and bottom only to my text box. can i pleae get some help.

    Hello alegna23,
    To add a line just to the top and bottom of a text box, you will need to add the two lines as shapes.  Follow the steps below to add a line to your document:
    Add a shape
    Click Shape in the toolbar.Click the arrows to see more shape styles.
    Select a shape to add it to the page.
    In step 2, select a line and use the squares on the end of the line to help resize the line.  You can find the full article here:
    Pages Help for Mac - Add and edit shapes
    http://help.apple.com/pages/mac/5.0/#/tan9ad18c384
    Thank you for using Apple Support Communities.
    Best,
    Sheila M.

  • Add/Remove Text Lines FCPX

    In FCPX, with the title design called "Winner's Circle" it is set at default to have 5 text lines. I only need 2 text lines for this title. The amount of text lines determines how many times "winner's circle" repeats the animation. It is repeating it's animation 3 times where there is no text content needed. How do I add or Remove a text line? Is this feature possible?
    I've attempted cutting and shortening the clip where I want it to stop animating; it'll persist for another 3 times no matter what the duration is. 
    Option F will not allow me to make a freeze frame of the motion title graphic called "Winner's Circle". Is there another way to make a freeze frame other than taking a screen shot? With this option, I would be able to add another video layer with the freeze frame of "winner's circle" above this same clip while the animation would repeat 3 more times unnecessarily--in order to disguise it...  
    I've attempted to troubleshoot with keyframes... I need "winner's circle" to cross dissolve with another clip, not gradually fade to black.  
    Thanks!  

    I'm the one that's sorry! You are a brave soul. Most come here too timid to try most things out - you're already slogging around in the guts of a fairly sophisticated template (difficulty points due to 3D orientation and behavior animation of material.) I guestimated your abilities based on such.
    My modified suggestions:
    1) you will not need to clone anything [save cloning for another day ]
    2) Find the Text Layers Group
    3) Delete the 2nd through 5th "INFORMATION" text layers (in order of appearance - top to bottom)
    4) Delete the 2nd through 5th Ramp behaviors (at the top of the "folder" -- in order of appearance... etc.)
    You should be left with one "INFORMATION" and when played, the wheel should spin and stop with the text in the correct location. 
    Select the Text "Information" layer and under the canvas in the timeline, click and drag the right edge out all the way to the right. This will keep the text "on" the rest of the length of the template.
    Play again and make sure the "Information" stays on screen for the entire length of the template.
    Click on the time clock icon under the canvas so that the clock hands read quarter past 12 then double click on the time and type "5." (number 5 plus a period) + enter (set the length of the template to 5 seconds.)
    With the Information text layer still selected, Command - D (duplicate the layer - you should now have an INFORMATION copy layer.) [both of these text layers will be independently editable in FCPX (that includes Fonts and size, etc...)
    For the duplicate layer:
    In the inspector > Properties, try these coordinates to start:
    X: 486
    Y: -1195
    Z: 23
    Rotation:
    X: 0
    Y: 0
    Z: 78
    Scale:
    X: 95
    Y: 170
    Z: 85
    Shear:
    X: -24
    Y: -9
    [You can play with any of these settings to get the "look" you prefer -- I was just trying to "match" the design somewhat -- and it's a bit of a guess...]
    Go to the Text > Format inspector. At the bottom of the column to the right of the word "Text" - when you pass the mouse over the region, a disclosure triangle will appear -- click it and select Publish from the dropdown.
    To publish colorizing elements:
    Select the Gradient > Gradient layer  (bottom of the list -- if it looks like two blue squares, open up that group and select the "generator" icon (ultra miniature monitor looking thing with a test pattern).  In the Generator inspector > Gradient, right click on the word Gradient (just over the color bar) and select publish from the dropdown.
    Right OVER the gradient folder, the bottom item of the Text Layers folder, select "Rectangle" (just under Replicator.)  In the Inspector: Shape > Style > Fill section, click on the word gradient just over the color bar (again) and select publish.
    One more thing:
    Drag the playhead to the 2 second mark under the canvas. Click anywhere in the layer's list that's NOT on any item (that is - deselect any and all items in that list.)  Type the tilde key (or accent grave key, however you look at it) -- that will add a marker. Immediately type Command-Option M , which calls up the Edit Marker dialog. In the Type section, select Build In Mandatory... then OK.
    Save the project.
    You now have a 1 Score (Winner/Loser/Tie) winner's circle template. Use a new instance for each score in the storyline.  You can trim the template or drag it out in time in FCPX -- the animation at the beginning will always play with exactly the same speed.
    PS - an oddity is occuring with my copy: the lower Information text is ending up under the upper text (like a drop shadow) and repositioning in Motion makes no difference -- if that happens to yours, just double click on the "under" text and "slide it out" to where it belongs (in FCPX).
    Anyway, it should look a little like this (at around the 2 second mark):
    For completeness: if you need "subtitle" lines, these can be accomplished in FCPX. Type a return at the end of the title and continue with a second line. Select only the second line in the text box (text tab of the inspector) and resize the font (restyle it any way you like actually...) You shouldn't need to add extra lines to what you already have (in the Motion template). Also, if you need to get rid of one or the other -- select the text of it, and type in a space character (why a space? So you have something to double click on in the canvas if you need to find it again.)
    HTH

  • I need to find all XML elements and add a line break to the text of each of them

    I need to find all XML elements and add a line break to the text of each of them.
    Is this possible with a script?

    I need to go from this ...
    to this...
    but looking for the XML elements (not paragraphs) and then adding text ...
    Thanks for your attention !!!

  • I have problem to register add-ons to SBO 2004

    -. I am using sample HELLO WORLD providing for SDK 2004.
    -. I build the installer using packager default of Visual Basic 6.0.
    -. i builf file .ard
    -. when i register the add-on and restart SBO 2004, the system show the message error:
    "Command Line arguments..."
    Someone, have a procedure step by step to register add-ons to SBO?
    thanks

    You need to declare this functions from the SBOAddonReg.dll.
    I got this code from SAP, hope this works, it's VB .NET
    Also: To use the license key I go to Project/Project properties/Configuration properties/Command line arguments
    and I copy the license to this field, and it works.
    Did you try from command line something like this?
    c:\project.exe license_key
    2) Code for a useful application
    contact me, if you don't understand the example:
    [email protected]
    Option Strict Off
    Option Explicit On
    Friend Class Form1
         Inherits System.Windows.Forms.Form
    #Region "Windows Form Designer generated code "
         Public Sub New()
              MyBase.New()
              If m_vb6FormDefInstance Is Nothing Then
                   If m_InitializingDefInstance Then
                        m_vb6FormDefInstance = Me
                   Else
                        Try
                             'For the start-up form, the first instance created is the default instance.
                             If System.Reflection.Assembly.GetExecutingAssembly.EntryPoint.DeclaringType Is Me.GetType Then
                                  m_vb6FormDefInstance = Me
                             End If
                        Catch
                        End Try
                   End If
              End If
              'This call is required by the Windows Form Designer.
              InitializeComponent()
         End Sub
         'Form overrides dispose to clean up the component list.
         Protected Overloads Overrides Sub Dispose(ByVal Disposing As Boolean)
              If Disposing Then
                   If Not components Is Nothing Then
                        components.Dispose()
                   End If
              End If
              MyBase.Dispose(Disposing)
         End Sub
         'Required by the Windows Form Designer
         Private components As System.ComponentModel.IContainer
         Public ToolTip1 As System.Windows.Forms.ToolTip
         Public WithEvents CmdUnReg As System.Windows.Forms.Button
         Public WithEvents CmdReg As System.Windows.Forms.Button
         Public WithEvents CmdExit As System.Windows.Forms.Button
         Public WithEvents CmdAddOnStr As System.Windows.Forms.Button
         'NOTE: The following procedure is required by the Windows Form Designer
         'It can be modified using the Windows Form Designer.
         'Do not modify it using the code editor.
         <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
            Me.components = New System.ComponentModel.Container
            Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components)
            Me.CmdUnReg = New System.Windows.Forms.Button
            Me.CmdReg = New System.Windows.Forms.Button
            Me.CmdExit = New System.Windows.Forms.Button
            Me.CmdAddOnStr = New System.Windows.Forms.Button
            Me.SuspendLayout()
            'CmdUnReg
            Me.CmdUnReg.BackColor = System.Drawing.SystemColors.Control
            Me.CmdUnReg.Cursor = System.Windows.Forms.Cursors.Default
            Me.CmdUnReg.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
            Me.CmdUnReg.ForeColor = System.Drawing.SystemColors.ControlText
            Me.CmdUnReg.Location = New System.Drawing.Point(24, 112)
            Me.CmdUnReg.Name = "CmdUnReg"
            Me.CmdUnReg.RightToLeft = System.Windows.Forms.RightToLeft.No
            Me.CmdUnReg.Size = New System.Drawing.Size(153, 25)
            Me.CmdUnReg.TabIndex = 3
            Me.CmdUnReg.Text = "UnRegister"
            'CmdReg
            Me.CmdReg.BackColor = System.Drawing.SystemColors.Control
            Me.CmdReg.Cursor = System.Windows.Forms.Cursors.Default
            Me.CmdReg.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
            Me.CmdReg.ForeColor = System.Drawing.SystemColors.ControlText
            Me.CmdReg.Location = New System.Drawing.Point(24, 64)
            Me.CmdReg.Name = "CmdReg"
            Me.CmdReg.RightToLeft = System.Windows.Forms.RightToLeft.No
            Me.CmdReg.Size = New System.Drawing.Size(153, 25)
            Me.CmdReg.TabIndex = 2
            Me.CmdReg.Text = "Register"
            'CmdExit
            Me.CmdExit.BackColor = System.Drawing.SystemColors.Control
            Me.CmdExit.Cursor = System.Windows.Forms.Cursors.Default
            Me.CmdExit.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
            Me.CmdExit.ForeColor = System.Drawing.SystemColors.ControlText
            Me.CmdExit.Location = New System.Drawing.Point(24, 160)
            Me.CmdExit.Name = "CmdExit"
            Me.CmdExit.RightToLeft = System.Windows.Forms.RightToLeft.No
            Me.CmdExit.Size = New System.Drawing.Size(153, 25)
            Me.CmdExit.TabIndex = 1
            Me.CmdExit.Text = "Exit"
            'CmdAddOnStr
            Me.CmdAddOnStr.BackColor = System.Drawing.SystemColors.Control
            Me.CmdAddOnStr.Cursor = System.Windows.Forms.Cursors.Default
            Me.CmdAddOnStr.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
            Me.CmdAddOnStr.ForeColor = System.Drawing.SystemColors.ControlText
            Me.CmdAddOnStr.Location = New System.Drawing.Point(24, 16)
            Me.CmdAddOnStr.Name = "CmdAddOnStr"
            Me.CmdAddOnStr.RightToLeft = System.Windows.Forms.RightToLeft.No
            Me.CmdAddOnStr.Size = New System.Drawing.Size(153, 25)
            Me.CmdAddOnStr.TabIndex = 0
            Me.CmdAddOnStr.Text = "Create AddOn String As File"
            'Form1
            Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
            Me.BackColor = System.Drawing.SystemColors.Control
            Me.ClientSize = New System.Drawing.Size(202, 206)
            Me.Controls.Add(Me.CmdUnReg)
            Me.Controls.Add(Me.CmdReg)
            Me.Controls.Add(Me.CmdExit)
            Me.Controls.Add(Me.CmdAddOnStr)
            Me.Cursor = System.Windows.Forms.Cursors.Default
            Me.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
            Me.Location = New System.Drawing.Point(4, 23)
            Me.Name = "Form1"
            Me.RightToLeft = System.Windows.Forms.RightToLeft.No
            Me.Text = "Form1"
            Me.ResumeLayout(False)
        End Sub
    #End Region
    #Region "Upgrade Support "
         Private Shared m_vb6FormDefInstance As Form1
         Private Shared m_InitializingDefInstance As Boolean
         Public Shared Property DefInstance() As Form1
              Get
                   If m_vb6FormDefInstance Is Nothing OrElse m_vb6FormDefInstance.IsDisposed Then
                        m_InitializingDefInstance = True
                        m_vb6FormDefInstance = New Form1()
                        m_InitializingDefInstance = False
                   End If
                   DefInstance = m_vb6FormDefInstance
              End Get
              Set
                   m_vb6FormDefInstance = Value
              End Set
         End Property
    #End Region
         'long GetInstallPath(const char *installDataFile,char *outStr,long len);
        Private Declare Function GetInstallPath Lib "SBOAddonReg.dll" (ByVal installDataFile As String, ByVal outStr As String, ByRef lLen As Integer) As Integer
         'BOOL RegisterAddOn(void);
        Private Declare Function RegisterAddOn Lib "SBOAddonReg.dll" () As Boolean
         'BOOL UnRegisterAddOn(const TCHAR *installDataFile);
        Private Declare Function UnRegisterAddOn Lib "SBOAddonReg.dll" (ByVal installDataFile As String) As Boolean
         Private g_sInstallPath As String
         Private g_sInstallFullPath As String
         Private g_sPreviousDir As String
         Private g_sAddOnExeName As String
         Private Sub CmdAddOnStr_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles CmdAddOnStr.Click
              Shell(VB6.GetPath & "\AddOnRegDataGen.exe", AppWinStyle.NormalFocus)
              CmdReg.Enabled = True
         End Sub
         Private Sub CmdExit_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles CmdExit.Click
              End
         End Sub
         Private Sub CmdReg_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles CmdReg.Click
              Dim sPath As String
              Dim lLen As Integer
              Dim InstallStrFile As String
              sPath = Space(1024)
              'Getting the sPath where I have to install the addon exe
            InstallStrFile = VB6.GetPath & "\SBOAddOnRegData.sld"
              lLen = GetInstallPath(InstallStrFile, sPath, Len(sPath))
              'Coping the addon exe into the path location I got
              MsgBox("Please copy your Addon exe file into: " & Trim(sPath))
              'Writing to the registry
              If RegisterAddOn = 1 Then
                   MsgBox("AddOn Was Registered Successfully")
                   CmdUnReg.Enabled = True
              Else
                   MsgBox("Failed To Register AddOn")
              End If
         End Sub
         Private Sub CmdUnReg_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles CmdUnReg.Click
              Dim InstallStrFile As String
            InstallStrFile = VB6.GetPath & "\SBOAddOnRegData.sld"
              If UnRegisterAddOn(InstallStrFile) = 1 Then
                   MsgBox("AddOn Was UnRegistered Successfully")
              Else
                   MsgBox("Failed To UnRegister AddOn")
              End If
         End Sub
    End Class

  • Need to add extra lines in email generating from oracle

    Hi!
    I am using Oracle 9i Enterprise Edition 9.2.0.6
    I am facing a problem while generating the email from Oracle
    Problem is that I want to display the data in following format
    Terminal Statistics From: 30-MAR-2008 15:39:00 To: 06-JUN-2008 16:59:00
    Containers Examined
    Export: 2
    Import: 30
    but email shows data in following format
    Terminal Statistics From: 30-MAR-2008 15:39:00 To: 06-JUN-2008 16:59:00 Containers Examined Export: 2 Import: 30
    System combines the all the data in one line, while I have used following function to add new line when and where needed, but unable to get my desired result.
    1. utl_tcp.CRLF
    2. chr(130) || chr(10)
    3. chr(10)
    I have used following procedure to generate the email.
    PROCEDURE send_html_email(
    p_module_name in varchar2,
    p_subject in varchar2,
    p_text in varchar2 default null,
    p_html in varchar2 default null
    IS
    l_boundary varchar2(32767) default 'a1b2c3d4e3f2g1';
    l_connection utl_smtp.connection;
    l_body_html clob := empty_clob; --This LOB will be the email message
    l_offset number;
    l_ammount number;
    l_temp varchar2(32767) default null;
    l_to varchar2(100);
    l_cc varchar2(100);
    l_bcc varchar2(100);
    t_v_stpt Number:=0;
    t_v_endpt Number:=0;
    c_v_stpt Number:=0;
    c_v_endpt Number:=0;
    b_v_stpt Number:=0;
    b_v_endpt Number:=0;
    l_subject varchar2(255);
    BEGIN
    /*Function to retrieve the E-mail recipients list according to the Module/application*/
    mail_recipient(p_module_name,l_to,l_cc,l_bcc);
    l_connection := utl_smtp.open_connection( pk_parameter.setting('MAILSVR'), 25 );
    utl_smtp.helo( l_connection, pk_parameter.setting('MAILSVR') );
    utl_smtp.mail( l_connection, pk_parameter.setting('MAILFROM') );
    l_temp := l_temp || 'MIME-Version: 1.0' || chr(13) || chr(10);
    LOOP
    t_v_stpt := t_v_stpt + 1;
    t_v_endpt := INSTR (l_to, ',', t_v_stpt, 1);
    IF l_to is null then
    EXIT;
    ELSIF t_v_endpt = 0 THEN
    UTL_SMTP.rcpt (l_connection, SUBSTR (l_to, t_v_stpt));
    EXIT;
    ELSE
    UTL_SMTP.rcpt (l_connection, SUBSTR (l_to, t_v_stpt, t_v_endpt -t_v_stpt));
    END IF;
    t_v_stpt := t_v_endpt;
    END LOOP;
    LOOP
    c_v_stpt := c_v_stpt + 1;
    c_v_endpt := INSTR (l_cc, ',', c_v_stpt, 1);
    IF l_cc is null then
    EXIT;
    ELSIF c_v_endpt = 0 THEN
    UTL_SMTP.rcpt (l_connection, SUBSTR (l_cc, c_v_stpt));
    EXIT;
    ELSE
    UTL_SMTP.rcpt (l_connection, SUBSTR (l_cc, c_v_stpt, c_v_endpt -c_v_stpt));
    END IF;
    c_v_stpt := c_v_endpt;
    END LOOP;
    LOOP
    b_v_stpt := b_v_stpt + 1;
    b_v_endpt := INSTR (l_bcc, ',', b_v_stpt, 1);
    IF l_bcc is null then
    EXIT;
    ELSIF b_v_endpt = 0 THEN
    UTL_SMTP.rcpt (l_connection, SUBSTR (l_bcc, b_v_stpt));
    EXIT;
    ELSE
    UTL_SMTP.rcpt (l_connection, SUBSTR (l_bcc, b_v_stpt, b_v_endpt -b_v_stpt));
    END IF;
    b_v_stpt := b_v_endpt;
    END LOOP;
    /*Header creation for email.*/
    IF l_to is not null or l_cc is not null or l_bcc is not null THEN
    l_temp := l_temp || 'To: ' || l_to || chr(13) || chr(10);
    l_temp := l_temp || 'CC: ' || l_cc || chr(13) || chr(10);
    l_temp := l_temp || 'BCC: ' || l_bcc || chr(13) || chr(10);
    l_temp := l_temp || 'From: ' || pk_parameter.setting('MAILFROM') || chr(13) || chr(10);
    l_temp := l_temp || 'Subject: ' || p_subject || chr(13) || chr(10);
    l_temp := l_temp || 'Reply-To: ' || pk_parameter.setting('MAILFROM') || chr(13) || chr(10);
    l_temp := l_temp || 'Content-Type: multipart/alternative; boundary=' ||
    chr(34) || l_boundary || chr(34) || chr(13) ||
    chr(10);
    -- Write the headers
    dbms_lob.createtemporary( l_body_html, false, 10 );
    dbms_lob.write(l_body_html,length(l_temp),1,l_temp);
    -- Write the text boundary
    l_offset := dbms_lob.getlength(l_body_html) + 1;
    l_temp := '--' || l_boundary || chr(13)||chr(10);
    l_temp := l_temp || 'content-type: text/plain; charset=us-ascii' ||
    chr(13) || chr(10) || chr(13) || chr(10);
    dbms_lob.write(l_body_html,length(l_temp),l_offset,l_temp);
    -- Write the plain text portion of the email
    l_offset := dbms_lob.getlength(l_body_html) + 1;
    dbms_lob.write(l_body_html,length(p_text),l_offset,p_text);
    -- Write the HTML boundary
    l_temp := chr(13)||chr(10)||chr(13)||chr(10)||'--' || l_boundary ||
    chr(13) || chr(10);
    l_temp := l_temp || 'content-type: text/html;' ||
    chr(13) || chr(10) || chr(13) || chr(10);
    l_offset := dbms_lob.getlength(l_body_html) + 1;
    dbms_lob.write(l_body_html,length(l_temp),l_offset,l_temp);
    -- Write the HTML portion of the message
    l_offset := dbms_lob.getlength(l_body_html) + 1;
    dbms_lob.write(l_body_html,length(p_html),l_offset,p_html);
    -- Write the final html boundary
    l_temp := chr(13) || chr(10) || '--' || l_boundary || '--' || chr(13);
    l_offset := dbms_lob.getlength(l_body_html) + 1;
    dbms_lob.write(l_body_html,length(l_temp),l_offset,l_temp);
    -- Send the email in 1900 byte chunks to UTL_SMTP
    l_offset := 1;
    l_ammount := 32767;
    utl_smtp.open_data(l_connection);
    while l_offset < dbms_lob.getlength(l_body_html) loop
    utl_smtp.write_data(l_connection, dbms_lob.substr(l_body_html,l_ammount,l_offset));
    l_offset := l_offset + l_ammount ;
    l_ammount := least(32767,dbms_lob.getlength(l_body_html) - l_ammount);
    end loop;
    utl_smtp.close_data(l_connection);
    utl_smtp.quit( l_connection );
    dbms_lob.freetemporary(l_body_html);
    END IF;
    END;
    Following procedure calls the above function and generate the email
    PROCEDURE generate_statistics
    IS
    l_minutes NUMBER:=0;
    l_sub_type cg_ref_codes.rv_meaning%type;
    l_gate_text VARCHAR2(5000);
    l_ves_text VARCHAR2(5000);
    l_exm_text VARCHAR2(5000);
    l_email_text VARCHAR2(5000);
    l_gate_tot NUMBER:=0;
    l_load_tot NUMBER:=0;
    l_discharge NUMBER:=0;
    l_exm_tot NUMBER:=0;
    /*Declare Cursor to get Examined Containers Summary*/
    CURSOR cur_examined_ctrs IS
    SELECT decode(eu.category,'I','Import','E','Export') Category, count(*) Total
    FROM service_events se, equipment_uses eu
    WHERE se.performed BETWEEN round(sysdate-l_minutes/1440,'mi')
    AND round(sysdate,'mi')
    AND se.tserv_id IN ('EXM')
    AND eu.gkey = se.equse_gkey
    AND eu.category IN ('I','E')
    GROUP BY eu.category;
    BEGIN
    /*Retrieve parameterized minutes*/
    l_minutes := nvl(pk_parameter.setting('STATSGMI'),0);
    /*Assign Values to generate email*/
    l_email_text := 'Terminal Statistics From: '||
    to_char(round(sysdate-l_minutes/1440,'mi'),'DD-MON-RRRR HH24:MI:SS')||
    ' To: '||to_char(round(sysdate,'mi'),'DD-MON-RRRR HH24:MI:SS')||
    chr(13) || chr(10)||chr(13) || chr(10);
    l_exm_text := 'Containers Examined'||utl_tcp.CRLF;
    FOR rec_examined_ctrs IN cur_examined_ctrs LOOP
    /*Generate Text for email - Vessel Activity Crane Wise Starts*/
    l_exm_text := l_exm_text ||rec_examined_ctrs.category ||': '||
    rec_examined_ctrs.total||utl_tcp.CRLF;
    l_exm_tot := l_exm_tot + rec_examined_ctrs.total;
    END LOOP;
    l_email_text := l_email_text||l_exm_text;
    pk_kictl_email.send_html_email('TERM STATISTICS',
    'Terminal Statistics Report',
    l_email_text,
    l_email_text
    END;
    I have been searching the reason and solution on net since last 2 days but hasn't find it yet.
    would anybody plz help me regarding this.
    Thanks
    Hassan

    I checked your suggestions after week end today and found that
    the suggestion of Nalla did not provide the result in my required format
    rewrite it as l_email_text := l_email_text||CHR(10)||l_exm_text;
    Peter & Krithika:
    I used html tag <BR> when and where needed and its gave me result in my required format
    e.g.: l_exm_text := l_exm_text ||'<br>'||rec_examined_ctrs.category ||': '||
    rec_examined_ctrs.total;
    Now I want to know if there any html tag thru which I can define the column number so that my text will start from there.
    means any html tag replacement of lpad (oracle funtion):
    Thanks
    Hassan

  • How to put text line just for a moment ?

    Hi,
    Do you know how to put a text line  just  for one photo? I mean I have more photos  in one portfolio but i need the text line to be seen just for one photo for the others no.
    Thank you in advance.

    You can use composition for this , where you can insert text frame for that specific photo where you want to add some description and for rest dont use text frame.
    Thanks,
    Sanjit

Maybe you are looking for

  • Payment method not found

    Hello, I am trying to post a payment to a Vendor and payee is set up different then the supplier.  I checked the data  - seems to be allright but am not able to post the payment  with error 'Payment method not found'.  Payment method has been defined

  • Vendor Invoice Without FI Postings / Pro Forma Invoice

    Is there any possibility to post vendor invoices without doing the FI postings? Vendor invoices are posted automatically through an interface to a legacy system. Is there any interaction chance, like userexit etc. in posting to avoid FI postings? Tha

  • Storage space - How to save adjustments and economize on storage need

         I am workeing in PSE 8.  I would like to know how I best save processed images while economizing on personal storage space requirements.  I.E. If I save a version of a 15 GB image does this take 30 GB's of storage for the original plus version? 

  • When I connect my 3G iphone to my Macbook it does not connect or charge my phone

    when I connect my 3G iphone to my Macbook it does not connect or charge my phone

  • Accessing Dynamically Generated Spry Checkboxes

    I've got a list with checkboxes that is generated with a data set. When the user checks some boxes and clicks "Assign" I need the assign function to run, serializing the checkbox values and running an ajax update. However, when I run my loop in the f