Quantcast
Channel: SCN : All Content - PowerBuilder Developer Center
Viewing all 2935 articles
Browse latest View live

The re-introduction of a certification program for PowerBuilder developers

$
0
0

Someone have notice about this SAP project ?

Is possible to start the new certification ?

 

GMY


Visual Studio Vs Powerbuilder

$
0
0

ok guys,

 

 

I have to prepare for a session to a meeting where I have to convince developers to switch from Visual Studio to Powerbuider.

 

 

Can you give me 10 good reasons for the mission?

 

 

ty

 

GMY

Como Usar Office Desde PowerBuilder

$
0
0

Desde PowerBuilder Podemos trabajar con documentos de office de dos maneras. Con interacción directa del usuario o sin ella.

Para tener interacción directa del usuario con el documento de office utilizamos un control ole sobre una ventana donde se puede vincular o incrustar un documento.Para trabajar un documento de office sin tener interacción directa del usuario podemos utilizar OLE o DDE

 

COMO FUNCIONA

 

OLE y DDE le permiten realizar acciones similares. Ambos permiten enviar comandos a otra aplicación, realizar acciones en dicha aplicación, y devolver los datos a su aplicación PowerBuilder. Hay, sin embargo, algunas diferencias fundamentales entre OLE y DDE. En las operaciones de OLE, el control del programa está realmente transferido temporalmente al otro programa (ej: Microsoft Excel con el propósito de manipular los datos de la hoja). Con DDE, las operaciones se producen cuando PowerBuilder envía una orden a Microsoft Excel para iniciar la comunicación entre las dos aplicaciones. PowerBuilder, sin embargo, siempre tiene el control del programa.

 

Otra diferencia, que es una ventaja de OLE, OLE es el que inicia automáticamente la aplicación de objetos cuando el control del programa se transfiere a la aplicación de objeto. Cuando utiliza DDE, usted debe comprobar que la aplicación que va a utilizar (el servidor DDE) se ha iniciado, y ponerlo en marcha si es necesario.

 

Además, con los datos de OLE siempre se muestra en una ventana dependiente o independiente tal y como aparece en la aplicación que creó el objeto. Por ejemplo, si la solicitud es objeto de Microsoft Excel, una ventana de objeto dependiente o independiente muestra los datos de la hoja de trabajo de la aplicación PowerBuilder (la aplicación contenedora) tal como aparece en el propio Microsoft Excel. DDE no le permiten ver la hoja de trabajo que aparece en la solicitud.

 

DDE (Dynamic Data Exchange )

 

 

Para utilizar DDE, el proceso requiere que por lo menos dos aplicaciones de estar involucrado. La aplicación que solicita datos o envía comandos ejecutables se llama el cliente, mientras que la aplicación que se ejecuta el comando solicitado o devuelve los datos solicitados se llama el servidor. Dependiendo de cómo se implementa el DDE, una aplicación puede ser capaz de actuar tanto como el cliente y un servidor. PowerBuilder ha sido desarrollado para apoyar DDE para ambos

Ejemplo

 

long handle

string s_regiondata[3]

handle = OpenChannel("Excel", "REGION.XLS",Handle(w_ddewin))

GetRemote("R1C2", s_regiondata[1], handle, Handle(w_ddewin))

GetRemote("R1C3", s_regiondata[2], handle, Handle(w_ddewin))

GetRemote("R1C4", s_regiondata[3], handle, Handle(w_ddewin))

CloseChannel(handle, Handle(w_ddewin))

 

AUTOMATIZACIONES CON OLE

 

myoleobject = CREATE oleobject

rc = myoleobject.ConnectToNewObject ( "Excel.Application" )

 

Como Abrir Documentos de Office

Aplicacion

Objeto Ole

Abreviado

Excel

Microsoft.Office.Interop.Excel

Excel.Application

Word

Microsoft.Office.Interop.Word

Word.Application

PowerPoint

Microsoft.Office.Interop.PowerPoint

PowerPoint.Application

Outlook

Microsoft.Office.Interop.Outlook

Outlook.Application

Infopath

Microsoft.Office.Infopath


Visio

Microsoft.Office.Interop.Visio


Project

Microsoft.Office.Interop.MSProject


Access

Microsoft.Office.Interop.Access

Access.Application

 

EJEMPLO

 

 

oleobject            myoleobject

integer                 rc, i, count, j, colcount

string                    mydata, colname, colnames

 

myoleobject = CREATE oleobject

rc = myoleobject.ConnectToNewObject ( "Excel.Application" )

IF rc <> 0 THEN

                MessageBox ( "Error", String ( rc ) )

                Return

END IF

 

try

                myoleobject.Application.Visible = TRUE  //  objeto Application  ver http://msdn.microsoft.com/en-us/library/dd787731(v=office.12).aspx

                myoleobject.Workbooks.Add()  // objeto Workbooks http://msdn.microsoft.com/en-us/library/bb259439(v=office.12).aspx

               // Propiedad ActiveWorkbook del objeto aplication (retorma un workbook) http://msdn.microsoft.com/en-us/library/bb220820(v=office.12).aspx

                count = myoleobject.ActiveWorkbook.Sheets.Count

 

                for i = 1 to count

 

                               colcount = Integer ( dw_1.object.DataWindow.column.count )

                               FOR j = 1 TO colcount

                                               colname = dw_1.Describe ( "#" + String ( j ) + ".Name" )

                                               CHOOSE CASE j

                                                               CASE 1

                                                                              colnames = colname

                                                               CASE ELSE

                                                                              colnames = colnames + '~t' + colname

                                               END CHOOSE

                               NEXT

                               colnames = colnames + "~r~n"

                               mydata = dw_1.Object.DataWindow.Data

                               ClipBoard ( colnames + mydata )

                               myoleobject.ActiveWorkbook.Sheets(i).Paste()

                next

                myoleobject.DisconnectObject()

catch ( exception e )

                MessageBox ( "Error", e.GetMessage() )

finally

                Destroy myoleobject

end try

 

 

 

 

REFERENCIAS

 

Visual Basic for Applications Language Reference

http://msdn.microsoft.com/en-us/library/ee441138.aspx

 

 

Office client development

http://msdn.microsoft.com/en-us/library/bb726434(v=office.12).aspx

 

 

Excel Object Model Reference

http://msdn.microsoft.com/en-us/library/bb149081(v=office.12).aspx

 

 

Word Object Model Reference

http://msdn.microsoft.com/en-us/library/bb244515(v=office.12).aspx

 

Printing directly from the Clipboard

$
0
0

Hi all,

 

I have a Problem with PB12.5.2.

 

The function

 

...

job = PrintOpen( )

result = PrintScreen(job, 1, 1, 7500, 6000)

PrintClose(job)

...

 

doesn't work in exe.

 

Now I want to use the Windows (global external function) function to get a hard copy to the clipboard.

 

...

keybd_event( 44,1,0,0 )

...

 

This works.

 

But how can I use to print directly from the clipboard without an external program? Does anyone have a solution? Thank you.

 

André

ISUG-TECH's New Membership Benefit - Appeon Mobile!

$
0
0

 

** Hot News **

 

 

 

 

New Member Benefit - Appeon Mobile!

 

 

   The International SAP Technical User Group is pleased to announce the immediate availability of their latest benefit for their Coreand GoldMembers - Appeon Mobile for PowerBuilder! The new mobility feature extends the existing Appeon membership benefit offering of Appeon Web with Appeon Mobile. The pair of products just released is also known as Appeon 2013. The new Appeon Mobile benefit is now available on ISUG-TECH's 'My Benefits' page.

     This new version of the Appeon software also includes the update to Appeon Web version 6.6. Appeon Web 6.6 includes new features like: new DBMS support for ASE (native driver), HANNA, mySQL; new cloud support in RackSpace & Amazon; enhanced QTP Automated Testing;  SAP NetWeaver support; updated UI for AEM IE 10 & Windows 8 Native Support; and more!

    The newly-released Appeon Mobile 1.0 is only the beginning ... later this year the benefit will upgrade you to Appeon for PowerBuilder 2013 R2, which will include Appeon Mobile 2.0.  This will become automatically available once Appeon releases the new version. The targeted new features for Appeon Mobile 2.0 will include: a local DBMS on the device and support for Android tablets and Smartphones!

     This is a truly awesome benefit for Core and Gold members. If you are not an ISUG-TECH Core or Gold member or have a lower level of membership and would like to access this new benefit, you must upgrade your membership first.  Corporate and Chartered members should contact support for more information.

Regards ... Chris

Code Exchange

$
0
0

I just noticed that there is a Code Exchange on SCN. Is anyone working to get the old PB/Sybase code exchange contents copied over?

PB 10.2 > 12.5

$
0
0

We are planning to migrate our application from PB 10.2 to 12.5. Finally!! (and of course, EA Server 6.x if possible/needed. I've been posting about this separately). I did an initial migration of the code, it converted fine. So, I am confident it will work fine may be with minor changes.

 

I am just worried about compatibility of other tools we are using. For e.g., We have PVCS 8.02 and Powergen 6.5. Will these tools work with PB 12.5? I am afraid if the client will have budget for the upgrades to newer versions of these other tools within PB upgrade project. In that case, I am suggesting SVN for version control and PB Orca for the Build. I am sure a lot of you went through similar upgrades and/or decisions. Can you please share your experiences with upgrade to PB 12.5 in general?

 

In my other posts about EAS, I asked about migrating to EAS 6.x. Terry suggested against it. After initial tests with EAS 6.x, I am inclining towards keeping EAS 5.5. Has anyone used this combination (PB 12.5 + EAS 5.5) successfully?

 

I am currently testing these scenarios. I am also trying to tap into the vast experience and knowledge this forum members have in these topics. Any hints/suggestions you can give will be greatly appreciated.

Printing directly from the Clipboard

$
0
0

Hi all,

 

I have a Problem with PB12.5.2.

 

The function

 

...

job = PrintOpen( )

result = PrintScreen(job, 1, 1, 7500, 6000)

PrintClose(job)

...

 

doesn't work in exe.

 

Now I want to use the Windows (global external function) function to get a hard copy to the clipboard.

 

...

keybd_event( 44,1,0,0 )

...

 

This works.

 

But how can I use to print directly from the clipboard without an external program? Does anyone have a solution? Thank you.

 

André


Java Script in Webform - dw clicked event

$
0
0

Can some one give me an example of how to get the name of the DataObject in the data window clicked event.  All the examples seem to expect that a data window control will always have the same DataObject. 

 

Thanks,

Datawindow Property for Object Order

$
0
0

Hello,

 

Our PB Application is built from many Datawindow that hold Object shapes. This Application is working and running just fine for a long time. I am trying to use data from its Datawindow Objects to redraw them. I wondering if anyone knows of a way to tell which Shape is stacked in front or behind. Powerbuilder is not the most Graphical environment I know I figured that there has to be a way for the Datawindow to know the order. I could not find anything in the documentation or source code. Currently my best idea was to index the control based on there order of appearance when listed with :

 

ls_describe="DataWindow.objects"

ls_objects = idw_location.describe(ls_describe)

 

That method does not produce correct results.

 

Thanks,

 

Shai

 

 

123PB.PNG

 

In this Image, I would like to know that a 'Reducer Gear Box' should be drawn on top off the 'Torque Tube' Control and not the other way around.

How to access the properties of an OLE object in a datawindow object in powerscript?

$
0
0

By any chance do you know how to access the properties of an ole object in a datawindow in PB Clasic 12.1. First time I am playing with OLE object in a datawindow.

 

This is the scenario:

 

I have a data window dw_1 and in dw_1 I inserted an ole object ole_1 (ole_1  is an Angular Gauge to represent % of Labor Efficiency). 

 

Then I have window with a datawindow control and I use dw_1 as my dataobject. The gauges show up perfectly and seems to be working because if I click on it the needle, it moves to where I click in the ole (at run time).

Also the datawindow work fine (retrieve the data).

 

The ole_1 object property I need to access is NeedleValue and you set the value with a method SetNeedleValue(Double x). How do I access this method ?

 

If I tray to set the value of NeedleValue it does not assign the value (at run time), but I think I am not accessing the property correctly. In the datawindow painter the properties are change without any problem

 

Help on How to access the properties of the ole_1 inside of a datawindow?

 

If I double click the object in the datawindow painter the properties window of the ole shows and I can change the properties. Now at run time I do not know how to access the properties.

 

 

Also this is the code I used to try to set the value to the mentioned property.

 

dw_1.object.datawindow.ole.ole_1.SetNeedleValue(ldd_est_vrs_actual_range)

 

As this line of code execute nothing happens. It just go thru like if it works.

 

I also use dw_1.object.ole_1.NeedleValue = 123 then I get "Error accessing external object property NeedleValue at line xxx".

 

Also I attached the ocx just in case somebody have a chance and give me an advice.

 

I will appreciate any input.

 

Regards,

 

 

  Clarence A

Dynamically adding objects into header/footer of datawindows (grid issue)

$
0
0

I need to dynamically add a text object into the header and/or footer of all datawindow controls in my application. Most of these controls contain a grid style dataobject. The side effect of grids is that it chops the header and footer width to the first column's width in the detail band. This has always bothered me but now it produces an unacceptable visual.

 

If the text to be assigned to the new object is wider than can fit in the column it is chopped. Auto size height is not an option and is also visually unappealing. This object must not take away from the display area vertically. Ideally I would like the text to extend past the column boundary if necessary (like Excel does automatically). How can this be accomplished?

Search a bunch of PBW's for a specific word

$
0
0

Hi -

 

 

In our project we have about 50-60 minor applications under our umbrella. Each application has a stand alone PBW and target (obviously)

 

I need to find the occurence of a specific string (the name of the database server, as we are migrating the same from one version to another under a different name) for analysis purposes

 

 

Basically, I am looking for something like the below:

 

 

1. Select a folder which has all the subfolders (one subfolder per application) - User Selection thro a windows native dialog. I did this one thro shell32.dll and of course, using some help online
2. Get a list of PBW's in the selected folder - This one I did using OLE
3. Search thro the application corresponding to each of the PBW's - This is where I don't have a clue. PB might surely have some API for this, but I don't have a clue about it
4. Display results in a window. So, there should be a feedback loop from step 3 to 4

 

 

Please help me here with any ideas. If we automate this, we could save a lot of time. Thanks a bunch :-)

 

 

Thanks,
Krishna

Build stops in pb 11.1

$
0
0

I searched on this issue... and, it looks like it was an old posting

which I can't bring up anymore

But, it seems to stop the build process without an error indication

it just doesn't create the rest of the DLL's in my project

if I remove the UF_IMBC function below

it will compile

could it be the blob conversion statement?

 

 

I have an external function that's designed to give me an intelligent mail barcode string

defined as this

 

Function long USPSEncode ( &

          blob TrackPtr, &

          blob RoutePtr, &

          Ref string BarPtr &

          ) Library "usps4pb.dll" Alias For "pbEncoder;ansi"

 

------------------------------------------------------------------------------------------------------------------

 

and, I get the data... from calling this function

 

UF_IMBC

 

Blob lblb_Track, lblb_Route

string as_tracking, as_routing, as_barcode, ret_val, czipcode

long test, ll_retcode

 

 

 

 

If Pos(s_zip,"-") > 0 then

          czipcode=mid(s_zip,1,Pos(s_zip,"-")-1)+mid(s_zip,Pos(s_zip,"-")+1,4)

else

          czipcode=s_zip

End if

 

 

if len(v_mailer) > 6 then

          as_tracking = '00' + v_service + v_mailer + string(v_serial,"000000")

else

          as_tracking = '00' + v_service + v_mailer + string(v_serial,"000000000")

end if

 

 

//return as_tracking

as_routing = czipcode

//as_routing = ret_val

//return as_tracking

lblb_Track = blob(Trim(as_Tracking)+Space(21),encodingansi!)

lblb_Route = blob(Trim(as_Routing)+Space(12),encodingansi!)

 

 

as_BarCode = Space(65)

 

 

ll_retcode = USPSEncode(lblb_Track, lblb_Route, as_BarCode)

 

 

If ll_RetCode = 0 Then

          return as_BarCode

Else

          return string(ll_retcode)

End If

dropdown listbox Issue - Powerbuilder 7.0

$
0
0

Hi All

 

We have an issues in our application (PB70).

Issue: When we open our application from external Monitor, only dropdown listbox values are popping up on Primary Monitor remaining application remain exist in external monitor.

 

Any suggestions, please ..

 

Regards

Siva


.NET Assembly not usable in PB 12.5 3072 Classic debugger

$
0
0

Hi,

 

I have noticed a problem trying to debug some code that is using a .NET assembly I created. I am using ConnectToNewObject via CCW to access the assembly. If I have created a PB executable everything works fine. The assembly loads and I can run the methods in the assembly.

 

When I run the application through the debugger the ConnectToNewObject returns a -3. The dll is in my applications directory. Anyone know if there is a way to get this to work while in the debugger, or is messagebox my best friend? 

 

Thanks,

Mike

PowerBuilder Certification

$
0
0

Hi There -

 

I have been working close to 7 years in PowerBuilder. I wanna get a professional certifiicate in PB

Could someone please help with details regarding this?

 

Thanks in advance :-)

 

Regards,

Krishna

PB 12.5 Deployment to JBoss 7.1

$
0
0

Has anyone sucessfully deployed a PowerBuilder application to JBoss 6.1 or JBoss 7.1?

I'm trying to replace EaServer with JBoss because of licensing issues and would like to replace it with something more current than JBoss 4.04.

 

I'm currently trying to deploy to JBOSS 5.1 with PASP and I'm having problems.  I would prefer the deployment to be seamless, but would be happy with a manual process as long as I am able to deploy to a current version of JBoss. 

 

Can anyone help?

Exception: System.Runtime.InteropServices.COMException: Class not registered

$
0
0

I have been using Powerbuilder 12.5 and I have migrate an old project from classic to .net recently. However there is an error regarding to my openwithparam() statement, each time I run the following code this exception occurred:

 

{System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Windows.Markup.XamlParseException: 'Initialization of 'AxMSCommLib.AxMSComm' threw an exception.' Line number '40' and line position '14'. ---> System.Runtime.InteropServices.COMException: Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

   at System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid)   at System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid)

   at System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)

   at System.Windows.Forms.AxHost.CreateInstance()

   at System.Windows.Forms.AxHost.GetOcxCreate()

   at System.Windows.Forms.AxHost.TransitionUpTo(Int32 state)

   at System.Windows.Forms.AxHost.CreateHandle()

   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)

   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)

   at System.Windows.Forms.AxHost.EndInit()

   at MS.Internal.Xaml.Runtime.ClrObjectRuntime.InitializationGuard(XamlType xamlType, Object obj, Boolean begin)

   --- End of inner exception stack trace ---

   at System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)

   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)

   at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)

   at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)

   at System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc)

   at System.Windows.Application.LoadComponent(Uri resourceLocator, Boolean bSkipJournaledProperties)

   at System.Windows.Application.LoadComponent(Uri resourceLocator)

   at Sybase.PowerBuilder.WPF.PBWindow..ctor()

   at c__w_platgi..ctor() in c:\Users\User\Desktop\Phase32.0\offshore.out\offshore5_w_platgi_w.cs:line 0

   --- End of inner exception stack trace ---

   at Sybase.PowerBuilder.PBSessionBase.CreateInstance[T](PBPowerObject parent, Type type, Boolean init, T& t)

   at Sybase.PowerBuilder.PBWindowCreater.CreateWindow[T](Type type, Boolean init, T& t, PBPowerObject p)

   at Sybase.PowerBuilder.PBWindowCreater.CreateWindow[T](Boolean& newWindow, IPBWindow w, Type type, Boolean init, T& t, PBPowerObject p)

   at Sybase.PowerBuilder.PBWindowCreater.CreateWindow[T](Boolean& newWindow, IPBWindow w, Type type, T& t)

   at Sybase.PowerBuilder.WPF.PBSystemFunctions.Open[T0](T0& w)

   at c__gf_winopen.gf_winopen(PBString as_module, PBString as_inspcode, PBAny as_parm) in c:\Users\User\Desktop\Phase32.0\offshore.out\gf_winopen(QSSA):line 26

   at c__w_tree.c__dw_strinsplist.doubleclicked(PBInt xpos, PBInt ypos, PBLong row, PBDWObject dwo) in c:\Users\User\Desktop\Phase32.0\offshore.out\w_tree.dw_strinsplist.doubleclicked:line 52

   at Sybase.PowerBuilder.WPF.PBDataWindow.a(Object A_0, DWClickedEventArgs A_1)}System.Exception {System.Reflection.TargetInvocationException}

 

Please help me, I am stuck for days.

PB 11.1 build seems to stop on external function

$
0
0

I searched on this issue... and, it looks like it was an old posting

which I can't bring up anymore

newsgroupstats.info/...powerbuilder.../pb-11-1-exe-creation-problem.html

But, it seems to stop the build process without an error indication

it just doesn't create the rest of the DLL's in my project

if I remove the UF_IMBC function below

it will compile

could it be the blob conversion statement?

 

 

 

 

I have an external function that's designed to give me an intelligent mail barcode string

defined as this

 

 

Function long USPSEncode ( &

  blob TrackPtr, &

  blob RoutePtr, &

  Ref string BarPtr &

  ) Library "usps4pb.dll" Alias For "pbEncoder;ansi"

 

 

------------------------------------------------------------------------------------------------------------------

 

 

and, I get the data... from calling this function

 

 

UF_IMBC

 

 

Blob lblb_Track, lblb_Route

string as_tracking, as_routing, as_barcode, ret_val, czipcode

long test, ll_retcode

 

 

 

 

If Pos(s_zip,"-") > 0 then

  czipcode=mid(s_zip,1,Pos(s_zip,"-")-1)+mid(s_zip,Pos(s_zip,"-")+1,4)

else

  czipcode=s_zip

End if

 

 

if len(v_mailer) > 6 then

  as_tracking = '00' + v_service + v_mailer + string(v_serial,"000000")

else

  as_tracking = '00' + v_service + v_mailer + string(v_serial,"000000000")

end if

 

 

//return as_tracking

as_routing = czipcode

//as_routing = ret_val

//return as_tracking

lblb_Track = blob(Trim(as_Tracking)+Space(21),encodingansi!)

lblb_Route = blob(Trim(as_Routing)+Space(12),encodingansi!)

 

 

as_BarCode = Space(65)

 

 

ll_retcode = USPSEncode(lblb_Track, lblb_Route, as_BarCode)

 

 

If ll_RetCode = 0 Then

  return as_BarCode

Else

  return string(ll_retcode)

End If

Viewing all 2935 articles
Browse latest View live


Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>