﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>StrataFrame Forum » StrataFrame Application Framework - V1 » WinForms (How do I?)  » Binding a control to a regular form property?</title><generator>InstantForum 2017-1 Final</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>StrataFrame Forum</webMaster><lastBuildDate>Sun, 03 May 2026 14:28:30 GMT</lastBuildDate><ttl>20</ttl><item><title>Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27535.aspx</link><description>When using SF we have the BindingField which is based on the BusinessObject property of the control, sometimes I have controls which I would like to bind to a new form's property and no business object, so I can reference this property instead of the control itself.&lt;br&gt;
&lt;br&gt;
In this case if I use a SF control, can still use its BindingField property with not BusinessObject? or should I just add a regular property and assign the control value in the GET/SET?&lt;br&gt;</description><pubDate>Tue, 28 Jun 2011 11:07:19 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost30104.aspx</link><description>Charles Hankey I noticed you were using iText for PDF's. Are you still using it? Do you program in C# or VB? If you use VB where did you find your examples or did you just convert the C# from their site? If you are still using it do you have forms where you fill fields from a database table?&lt;div&gt;Thank you for your time and effort.&amp;nbsp;</description><pubDate>Tue, 28 Jun 2011 11:07:19 GMT</pubDate><dc:creator>Terry Bottorff</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost29207.aspx</link><description>You can build a sql select statement into the sqldataadapter rather than point it to a sproc and you'll get the same result, I believe.&amp;nbsp; &lt;br/&gt;&lt;br/&gt;I am hosting the form that launches the report inside a SF app, so I think I can grab the connection from the application.&amp;nbsp; The connection string at design time is a different matter.&lt;br/&gt;&lt;br/&gt;I'll keep posting as I work through this, but I'll probably post in User Contrib Samples for easy access.&amp;nbsp; I'm pretty convinced this is the way to go with SF apps.&amp;nbsp; I don't see any plus side to using SF business objects for reporting but am willing to listen to arguments in their favor.&amp;nbsp; Just don't see where the creating a propertyinside reporting bos for child stuff is near as fast as creating datasets from a sqldataadapter.&amp;nbsp; &lt;br/&gt;&lt;br/&gt;Makes sense for CRUD of course, but for just grabbing data for reporting seems overbloated.</description><pubDate>Mon, 13 Dec 2010 17:24:25 GMT</pubDate><dc:creator>Charles R Hankey</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost29206.aspx</link><description>Hi Charles,&lt;br/&gt;&lt;br/&gt;Thanks for posting the link to the video, very interesting.&amp;nbsp; I was wondering how to get the data to preview with SF BO, but guess is not possible for now.&amp;nbsp; I kind of like the SP approach, even though that will require an stored procedure for each report, but is either that or no having preview available.&lt;br/&gt;&lt;br/&gt;Using the method explained in the video, you also need to grab the connection string at runtime to avoid having to hard code it.</description><pubDate>Mon, 13 Dec 2010 16:43:25 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost29204.aspx</link><description>I've been working a bit more with Xtrareports now, so i wanted to share some observations and this thread seems a good place to tack it on, as Peter was so helpful.&lt;br/&gt;&lt;br/&gt;&lt;div&gt;First, there is a 42 minute video of a DevExpress Webinar ( god I love that company ) that was very helpful for me getting two very basic things worked out : having preview data available at design time when the datasource is a parameterized sproc and how to hook up the params through the interface.&lt;br/&gt;&lt;br/&gt;&lt;div&gt;&lt;a href="http://tv.devexpress.com/#XtraReportsWebinar1"&gt;&lt;/a&gt;&lt;br/&gt;&lt;div&gt;&lt;a href="http://tv.devexpress.com/#XtraReportsWebinar1"&gt;tv.devexpress.com/#XtraReportsWebinar1&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;Key concept is to drop a sqldataadapter on the Xtrareport design surface and use that to generate the dataset ( in my case off a sproc )&lt;br/&gt;&lt;br/&gt;&lt;div&gt;The sda lets you set default values for params which will be used at design time in preview mode. &amp;nbsp;A sqltableadapter won't.&lt;br/&gt;&lt;br/&gt;&lt;div&gt;(sqldataadapter is not in the toolbox by default so you have to right-click the data tab, pick Choose Items and add it )&lt;br/&gt;&lt;br/&gt;&lt;div&gt;The video explaiins everything else very clearly. &amp;nbsp;( the part I messed with a bit was trying to drag and drop fields from the datasource treeview onto the report - I needed to find the Fieldlist on the Xtrareports menu and D and D from there. &amp;nbsp;That is also where you create calculated fields) &amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;One other comment re Peter's post - there is a third alternative to denormalized tables and subreports - detail bands. &amp;nbsp;As Peter is a long-time xtrareports user he probably started designing before DevExpress added child detail bands to the product. &amp;nbsp;They are now recommended over sub reports when the goal is just to have multiple child bands.&lt;br/&gt;&lt;br/&gt;&lt;div&gt;Old Foxpro developers will particularly appreciate how easy all this is, especially since we didn't get multiple detail bands out of the box until late ( too late ) in vfp 9&lt;br/&gt;&lt;br/&gt;&lt;div&gt;Anyway, my experience of DevExpress so far has been extremely positive and I love the XtraReports !!</description><pubDate>Mon, 13 Dec 2010 14:30:23 GMT</pubDate><dc:creator>Charles R Hankey</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27587.aspx</link><description>Oops, all the indentation was lost in the post. It should have looked something like this:&lt;br&gt;
&lt;br&gt;
Company...Employee...Order...OrderLineItem&lt;br&gt;
C1..E1..O1..OL1&lt;br&gt;
C1..E1..O1..OL2&lt;br&gt;
C1..E1..O1..OL3&lt;br&gt;
C1..E1..O2..OL1&lt;br&gt;
C1..E2..O3..OL1&lt;br&gt;
C1..E2..O4..OL1&lt;br&gt;
C1..E2..O4..OL2&lt;br&gt;
C2..E1..O5..OL1&lt;br&gt;
C2..E1..O5..OL2&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Company (GroupHeader1)&lt;br&gt;
..Employee (GroupHeader2)&lt;br&gt;
....Order (GroupHeader3)&lt;br&gt;
......Order Line Items (Detail Band)&lt;br&gt;
....Order (GroupFooter3)&lt;br&gt;
..Employee (GroupFooter2)&lt;br&gt;
Company (GroupFooter1)&lt;br&gt;
&lt;br&gt;
Company (GroupHeader1)&lt;br&gt;
..Employee (GroupHeader2)&lt;br&gt;
....Order (GroupHeader3)&lt;br&gt;
......Order Line Items (Detail Band)&lt;br&gt;
....Order (GroupFooter3)&lt;br&gt;
....Order Sub Report1&lt;br&gt;
..Employee (GroupFooter2)&lt;br&gt;
Company (GroupFooter1)&lt;br&gt;</description><pubDate>Tue, 29 Jun 2010 19:16:04 GMT</pubDate><dc:creator>Peter Jones</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27586.aspx</link><description>Oops, all the indentation was lost in the post. It should have looked something like this:&lt;br&gt;
&lt;br&gt;
Company...Employee...Order...OrderLineItem&lt;br&gt;
C1..E1..O1..OL1&lt;br&gt;
C1..E1..O1..OL2&lt;br&gt;
C1..E1..O1..OL3&lt;br&gt;
C1..E1..O2..OL1&lt;br&gt;
C1..E2..O3..OL1&lt;br&gt;
C1..E2..O4..OL1&lt;br&gt;
C1..E2..O4..OL2&lt;br&gt;
C2..E1..O5..OL1&lt;br&gt;
C2..E1..O5..OL2&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Company (GroupHeader1)&lt;br&gt;
..Employee (GroupHeader2)&lt;br&gt;
....Order (GroupHeader3)&lt;br&gt;
......Order Line Items (Detail Band)&lt;br&gt;
....Order (GroupFooter3)&lt;br&gt;
..Employee (GroupFooter2)&lt;br&gt;
Company (GroupFooter1)&lt;br&gt;
&lt;br&gt;
Company (GroupHeader1)&lt;br&gt;
..Employee (GroupHeader2)&lt;br&gt;
....Order (GroupHeader3)&lt;br&gt;
......Order Line Items (Detail Band)&lt;br&gt;
....Order (GroupFooter3)&lt;br&gt;
....Order Sub Report1&lt;br&gt;
..Employee (GroupFooter2)&lt;br&gt;
Company (GroupFooter1)&lt;br&gt;</description><pubDate>Tue, 29 Jun 2010 19:15:33 GMT</pubDate><dc:creator>Peter Jones</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27585.aspx</link><description>Really awesome, Peter! :w00t:</description><pubDate>Tue, 29 Jun 2010 19:15:20 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27584.aspx</link><description>Hi Charles,&lt;br&gt;
&lt;br&gt;
In that simple example I would have a single, denormalised, view:&lt;br&gt;
&lt;br&gt;
Company	Employee	Order	OrderLineItem&lt;br&gt;
C1	E1	O1	OL1&lt;br&gt;
C1	E1	O1	OL2&lt;br&gt;
C1	E1	O1	OL3&lt;br&gt;
C1	E1	O2	OL1&lt;br&gt;
C1	E2	O3	OL1&lt;br&gt;
C1	E2	O4	OL1&lt;br&gt;
C1	E2	O4	OL2&lt;br&gt;
C2	E1	O5	OL1&lt;br&gt;
C2	E1	O5	OL2&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
The report group levels would be:&lt;br&gt;
&lt;br&gt;
Company (GroupHeader1)&lt;br&gt;
   Employee (GroupHeader2)&lt;br&gt;
      Order (GroupHeader3)&lt;br&gt;
         Order Line Items (Detail Band)&lt;br&gt;
      Order (GroupFooter3)&lt;br&gt;
   Employee (GroupFooter2)&lt;br&gt;
Company (GroupFooter1)&lt;br&gt;
&lt;br&gt;
So, just a single BO based on a denormalised view&lt;br&gt;
&lt;br&gt;
A more complex approach would to use SubReports, e.g. your Order may have a range of other attributes in addition to Order Line Items that you may want to show. In this case you may have:&lt;br&gt;
&lt;br&gt;
Company (GroupHeader1)&lt;br&gt;
   Employee (GroupHeader2)&lt;br&gt;
      Order (GroupHeader3)&lt;br&gt;
         Order Line Items (Detail Band)&lt;br&gt;
      Order (GroupFooter3)&lt;br&gt;
      Order Sub Report1&lt;br&gt;
   Employee (GroupFooter2)&lt;br&gt;
Company (GroupFooter1)&lt;br&gt;
&lt;br&gt;
In this case Order Sub Report1 would have its own BO.&lt;br&gt;
&lt;br&gt;
"I meant in creating a parent-child report or parent-child-child-grandchild etc rather than the denormalization of a view."&lt;br&gt;
Denormalised view (see above)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
"Do you use 4 BO s in this case to load your datasets?"&lt;br&gt;
No. See above&lt;br&gt;
&lt;br&gt;
"And assuming that there are parent child relationships defined in your BOs, does that get in the way or is it not a problem as long as the instance BOs do not have a parent BO set?"&lt;br&gt;
No relationships. See above.&lt;br&gt;
&lt;br&gt;
"My assumption was in the case above, no matter how I got the tables in the dataset filled, the relationships in order to create a parent child report would be set in the dataset, no?"&lt;br&gt;
No. There is no need for any relationships to be defined. Just get the data into a flat file format and sort and group as needed within the report. For instance, you will see that Employee E1 took Orders for 2 different Companies therefore the same view could also be used to generate a report along the lines of:&lt;br&gt;
&lt;br&gt;
Employee(GroupHeader1)&lt;br&gt;
   Company (GroupHeader2)&lt;br&gt;
      Order (GroupHeader3)&lt;br&gt;
         Order Line Items (Detail Band)&lt;br&gt;
      Order (GroupFooter3)&lt;br&gt;
   Company (GroupFooter2)&lt;br&gt;
Employee (GroupFooter1)&lt;br&gt;
&lt;br&gt;
All sorting and grouping is performed in the XtraReport.&lt;br&gt;
&lt;br&gt;
I think the essential point is that Parent &gt; Child &gt; Grand Child relationships fall into place using the report Grouping hierarchy.&lt;br&gt;
&lt;br&gt;
Cheers, Peter&lt;br&gt;
&lt;br&gt;</description><pubDate>Tue, 29 Jun 2010 19:10:38 GMT</pubDate><dc:creator>Peter Jones</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27581.aspx</link><description>Peter thanks so much.  &lt;br&gt;
&lt;br&gt;
I think I asked my question in-artfully ...&lt;br&gt;
&lt;br&gt;
I meant in creating a parent-child report or parent-child-child-grandchild etc rather than the denormalization of a view.  So for multiple companies, to show both their employees and their orders and the details of those orders :&lt;br&gt;
&lt;br&gt;
Company ( detail band ) has two children - employees and orders&lt;br&gt;
employees ( first child detail )&lt;br&gt;
orders ( second child detail ) &lt;br&gt;
lineitems ( child detail of orders ) &lt;br&gt;
etc.  &lt;br&gt;
&lt;br&gt;
Do you use 4 BO s in this case to load your datasets?  And assuming that there are parent child relationships defined in your BOs, does that get in the way or is it not a problem as long as the instance BOs do not have a parent BO set?&lt;br&gt;
&lt;br&gt;
My assumption was in the case above, no matter how I got the tables in the dataset filled, the relationships in order to create a parent child report would be set in the dataset, no?  &lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;</description><pubDate>Tue, 29 Jun 2010 11:41:41 GMT</pubDate><dc:creator>Charles R Hankey</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27576.aspx</link><description>Wow. Peter that is one Great Answer. Thank you. It will take me some time to digest all of that but that will certainly get me started. Thanks again for all of the time you put into helping others.</description><pubDate>Tue, 29 Jun 2010 07:24:33 GMT</pubDate><dc:creator>Terry Bottorff</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27574.aspx</link><description>Hi Guys,&lt;br&gt;
&lt;br&gt;
"I would want to creae datasets that defined the relationship between tables and then simply fill the tables - either directly from sprocs on the back end or using the datatable of a BO."&lt;br&gt;
&lt;br&gt;
The "defined relationships" are simply as choose the do so in the view. For instance the following view is used for a report:&lt;br&gt;
&lt;br&gt;
CREATE View vw_Rpt0002HPCProdSummary&lt;br&gt;
&lt;br&gt;
AS&lt;br&gt;
&lt;br&gt;
SELECT          tblSTAStations.STAStnType, tblBTCBatch.BTCBatch, &lt;br&gt;
                         tblCMPCompany_1.CMPRegName + '/' + tblCMPCompany_2.CMPRegName AS AbattoirSupplier, tblSZGSizeGroup.SZGSequ, tblHGRHideGrades.HGRSequ, &lt;br&gt;
                         tblSZRSizeRanges.SZRSize, 1 AS HideCount, tblHPCHidePiece.HPCDateTime, tblHPCHidePiece.HPCHidePart, tblHPCHidePiece.HPCWght, &lt;br&gt;
                         tblHPCHidePiece.HPCWghtSize, tblHPCHidePiece.HPCArea, tblHPCHidePiece.HPCAreaSize, tblHPCHidePiece.HPCSubst, tblHPCHidePiece.HPCSubstSize, &lt;br&gt;
                         tblSTAStations.STAName + '/' + tblSTRStationTerm.STRName AS Station, tblSTAStations.STAID, tblSTRStationTerm.STRID, tblHGRHideGrades.HGRName, &lt;br&gt;
                         tblBTCBatch.BTCType, tblHPCHidePiece.HPC_CMPIDOperator, tblHPCHidePiece.HPC_CMPIDAbattoir, tblHPCHidePiece.HPC_CMPIDSupplier, &lt;br&gt;
                         tblHPCHidePiece.HPC_CMPIDGrower, tblHPCHidePiece.HPC_CMPIDTannery, tblCMPCompany.CMPRegName AS OperatorName, &lt;br&gt;
                         tblCMPCompany_1.CMPRegName AS AbattoirName, tblCMPCompany_2.CMPRegName AS SupplierName, tblCMPCompany_3.CMPRegName AS GrowerName, &lt;br&gt;
                         tblCMPCompany_4.CMPRegName AS TanneryName, tblSZGSizeGroup.SZGName, tblSZRSizeRanges.SZRRangeDesc, tblINIInvItems.INIID, &lt;br&gt;
                         tblINIInvItems.INISequ, tblINIInvItems.INIProdCode + '/' + tblINIInvItems.ININame AS INIDescription, tblHPCHidePiece.HPCID AS PKID, 0 AS CtrlShowSuppliers,&lt;br&gt;
                          0 AS CtrlShowBatches, 0 AS CtrlShowStations, tblINIInvItems.INI_SPCID, tblSZRSizeRanges.SZRMax, dbo.GetEnumNameSizeTypes(tblSTAStations.STAStnType) As StationTypeName&lt;br&gt;
FROM            tblHPCHidePiece INNER JOIN&lt;br&gt;
                         tblHGRHideGrades ON tblHPCHidePiece.HPC_HGRID = tblHGRHideGrades.HGRID INNER JOIN&lt;br&gt;
                         tblSZRSizeRanges ON tblHPCHidePiece.HPC_SZRIDWght = tblSZRSizeRanges.SZRID INNER JOIN&lt;br&gt;
                         tblSZGSizeGroup ON tblSZRSizeRanges.SZR_SZGID = tblSZGSizeGroup.SZGID INNER JOIN&lt;br&gt;
                         tblSTRStationTerm ON tblHPCHidePiece.HPC_STRID = tblSTRStationTerm.STRID INNER JOIN&lt;br&gt;
                         tblSTAStations ON tblSTRStationTerm.STR_STAID = tblSTAStations.STAID INNER JOIN&lt;br&gt;
                         tblCMPCompany ON tblHPCHidePiece.HPC_CMPIDOperator = tblCMPCompany.CMPID INNER JOIN&lt;br&gt;
                         tblCMPCompany AS tblCMPCompany_1 ON tblHPCHidePiece.HPC_CMPIDAbattoir = tblCMPCompany_1.CMPID INNER JOIN&lt;br&gt;
                         tblCMPCompany AS tblCMPCompany_2 ON tblHPCHidePiece.HPC_CMPIDSupplier = tblCMPCompany_2.CMPID INNER JOIN&lt;br&gt;
                         tblCMPCompany AS tblCMPCompany_3 ON tblHPCHidePiece.HPC_CMPIDGrower = tblCMPCompany_3.CMPID INNER JOIN&lt;br&gt;
                         tblCMPCompany AS tblCMPCompany_4 ON tblHPCHidePiece.HPC_CMPIDTannery = tblCMPCompany_4.CMPID INNER JOIN&lt;br&gt;
                         tblBTCBatch ON tblHPCHidePiece.HPC_BTCID = tblBTCBatch.BTCID INNER JOIN&lt;br&gt;
                         tblPUNPackingUnit ON tblHPCHidePiece.HPC_PUNID = tblPUNPackingUnit.PUNID INNER JOIN&lt;br&gt;
                         tblINIInvItems ON tblPUNPackingUnit.PUN_INIID = tblINIInvItems.INIID&lt;br&gt;
&lt;br&gt;
It has lots of relationships. The actual stored procedure that the report executes to gather the data is a lot more complex but presents the same data as the view:&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
CREATE Procedure [dbo].[stp_Rpt0002HPCProdSummary]&lt;br&gt;
&lt;br&gt;
@CMPIDTannery As Uniqueidentifier = Null,&lt;br&gt;
@CMPIDOperator As  Uniqueidentifier = Null,&lt;br&gt;
@CMPIDAbattoir As  Uniqueidentifier= Null,&lt;br&gt;
@CMPIDSupplier As  Uniqueidentifier = Null,&lt;br&gt;
@CMPIDGrower As  Uniqueidentifier = Null,&lt;br&gt;
@SPCID As  Uniqueidentifier = Null,&lt;br&gt;
@STRID As  Uniqueidentifier = Null,&lt;br&gt;
@STRType As  Integer = Null,&lt;br&gt;
@INIID As  Uniqueidentifier = Null,&lt;br&gt;
@HGRID As  Uniqueidentifier = Null,&lt;br&gt;
@AbLotNo As nvarChar(500) = Null,&lt;br&gt;
@Batches As nvarChar(500) = Null,&lt;br&gt;
@Contract As nvarChar(500) = Null,&lt;br&gt;
@ToDate As DateTime,&lt;br&gt;
@FromDate As DateTime,&lt;br&gt;
@FromKillDate As DateTime = Null,&lt;br&gt;
@ToKillDate As DateTime = Null,&lt;br&gt;
@CtrlShowSuppliers As Integer = 1,&lt;br&gt;
@CtrlShowBatches As Integer = 1,&lt;br&gt;
@CtrlShowStations As Integer = 1&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
AS&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Declare @StartOfBatchTO As Integer&lt;br&gt;
Declare @FirstBatch As nvarChar(500)&lt;br&gt;
Declare @LastBatch As nvarChar(500)&lt;br&gt;
Declare @LengthOfBatch As Integer&lt;br&gt;
Declare @BatchSelectType As Integer&lt;br&gt;
Declare @StartOfAbLotNoTO As Integer&lt;br&gt;
Declare @FirstAbLotNo As nvarChar(500)&lt;br&gt;
Declare @LastAbLotNo As nvarChar(500)&lt;br&gt;
Declare @LengthOfAbLotNo As Integer&lt;br&gt;
Declare @AbLotNoType As Integer&lt;br&gt;
Declare @myCtrlShowSuppliers As Integer&lt;br&gt;
Declare @myCtrlShowBatches As Integer&lt;br&gt;
Declare @myCtrlShowStations As Integer&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
-- Make sure the hide/unhide controls are sensible&lt;br&gt;
&lt;br&gt;
Set @myCtrlShowSuppliers = @CtrlShowSuppliers&lt;br&gt;
Set @myCtrlShowBatches = @CtrlShowBatches&lt;br&gt;
Set @myCtrlShowStations = @CtrlShowStations&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
-- Configure selection criteria for those controls that can multiple, comma delimitered, entries&lt;br&gt;
Set @BatchSelectType = 0&lt;br&gt;
Set @AbLotNoType = 0&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
If @Batches Is Not NULL&lt;br&gt;
	Begin&lt;br&gt;
		Set @BatchSelectType = 1&lt;br&gt;
		Set @LengthOfBatch = Len(@Batches)&lt;br&gt;
		&lt;br&gt;
		Set @StartOfBatchTO = CHARINDEX(' TO ',@Batches)&lt;br&gt;
&lt;br&gt;
		-- Found TO so lets extract the From/To values&lt;br&gt;
 		IF  @StartOfBatchTO &gt; 0&lt;br&gt;
			Begin&lt;br&gt;
				Set @BatchSelectType = 2&lt;br&gt;
				Set @FirstBatch = Left(@Batches, (@StartOfBatchTO - 1))&lt;br&gt;
				Set @LastBatch  = Right(@Batches, (@LengthOfBatch - @StartOfBatchTO) - 3)&lt;br&gt;
			End&lt;br&gt;
	End&lt;br&gt;
&lt;br&gt;
If @AbLotNo Is Not NULL&lt;br&gt;
	Begin&lt;br&gt;
		Set @AbLotNoType = 1&lt;br&gt;
		Set @LengthOfAbLotNo = Len(@AbLotNo)&lt;br&gt;
		&lt;br&gt;
		Set @StartOfAbLotNoTO = CHARINDEX(' TO ',@AbLotNo)&lt;br&gt;
&lt;br&gt;
		-- Found TO so lets extract the From/To values&lt;br&gt;
 		IF  @StartOfAbLotNoTO &gt; 0&lt;br&gt;
			Begin&lt;br&gt;
				Set @AbLotNoType = 2&lt;br&gt;
				Set @FirstAbLotNo = Left(@AbLotNo, (@StartOfAbLotNoTO - 1))&lt;br&gt;
				Set @LastAbLotNo  = Right(@AbLotNo, (@LengthOfAbLotNo - @StartOfAbLotNoTO) - 3)&lt;br&gt;
			End&lt;br&gt;
	End&lt;br&gt;
&lt;br&gt;
-- Read Committed assumes the database is has READ_COMMITTED_SNAPSHOT set to ON.&lt;br&gt;
Set Transaction Isolation Level Read Committed&lt;br&gt;
Begin Tran&lt;br&gt;
&lt;br&gt;
--SELECT        TOP (100) PERCENT tblSTAStations.STAStnType, tblBTCBatch.BTCBatch,&lt;br&gt;
&lt;br&gt;
SELECT        TOP (100) PERCENT tblSTAStations.STAStnType,&lt;br&gt;
&lt;br&gt;
				CASE @myCtrlShowBatches&lt;br&gt;
					WHEN 1 THEN tblBTCBatch.BTCBatch&lt;br&gt;
					WHEN 0 THEN '**'&lt;br&gt;
					END AS BTCBatch,&lt;br&gt;
					&lt;br&gt;
                         tblCMPCompany_1.CMPRegName + '/' + tblCMPCompany_2.CMPRegName AS AbattoirSupplier, tblSZGSizeGroup.SZGSequ, tblHGRHideGrades.HGRSequ, &lt;br&gt;
                         tblSZRSizeRanges.SZRSize, 1 AS HideCount, tblHPCHidePiece.HPCDateTime, tblHPCHidePiece.HPCHidePart, tblHPCHidePiece.HPCWght, &lt;br&gt;
                         tblHPCHidePiece.HPCWghtSize, tblHPCHidePiece.HPCArea, tblHPCHidePiece.HPCAreaSize, tblHPCHidePiece.HPCSubst, tblHPCHidePiece.HPCSubstSize,&lt;br&gt;
                Case @CtrlShowStations&lt;br&gt;
					WHEN 1 Then tblSTAStations.STAName + '/' + tblSTRStationTerm.STRName&lt;br&gt;
					WHEN 0 Then '**'&lt;br&gt;
					END  AS Station,&lt;br&gt;
					&lt;br&gt;
						 tblSTAStations.STAID, tblSTRStationTerm.STRID, tblHGRHideGrades.HGRName, &lt;br&gt;
                         tblBTCBatch.BTCType, tblHPCHidePiece.HPC_CMPIDOperator, tblHPCHidePiece.HPC_CMPIDAbattoir, tblHPCHidePiece.HPC_CMPIDSupplier, &lt;br&gt;
                         tblHPCHidePiece.HPC_CMPIDGrower, tblHPCHidePiece.HPC_CMPIDTannery, tblCMPCompany.CMPRegName AS OperatorName, &lt;br&gt;
                         tblCMPCompany_1.CMPRegName AS AbattoirName, tblCMPCompany_2.CMPRegName AS SupplierName, tblCMPCompany_3.CMPRegName AS GrowerName, &lt;br&gt;
                         tblCMPCompany_4.CMPRegName AS TanneryName, tblSZGSizeGroup.SZGName, tblSZRSizeRanges.SZRRangeDesc, tblINIInvItems.INIID, &lt;br&gt;
                         tblINIInvItems.INISequ, tblINIInvItems.INIProdCode + '/' + tblINIInvItems.ININame AS INIDescription, tblHPCHidePiece.HPCID AS PKID,&lt;br&gt;
                         @myCtrlShowSuppliers As CtrlShowSuppliers, @myCtrlShowBatches As CtrlShowBatches, @myCtrlShowStations As CtrlShowStations,&lt;br&gt;
                         tblINIInvItems.INI_SPCID, tblSZRSizeRanges.SZRMax, dbo.GetEnumNameStationTypes(tblSTAStations.STAStnType) As StationTypeName&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
FROM            tblHPCHidePiece INNER JOIN&lt;br&gt;
                         tblHGRHideGrades ON tblHPCHidePiece.HPC_HGRID = tblHGRHideGrades.HGRID INNER JOIN&lt;br&gt;
                         tblSZRSizeRanges ON tblHPCHidePiece.HPC_SZRIDWght = tblSZRSizeRanges.SZRID INNER JOIN&lt;br&gt;
                         tblSZGSizeGroup ON tblSZRSizeRanges.SZR_SZGID = tblSZGSizeGroup.SZGID INNER JOIN&lt;br&gt;
                         tblSTRStationTerm ON tblHPCHidePiece.HPC_STRID = tblSTRStationTerm.STRID INNER JOIN&lt;br&gt;
                         tblSTAStations ON tblSTRStationTerm.STR_STAID = tblSTAStations.STAID INNER JOIN&lt;br&gt;
                         tblCMPCompany ON tblHPCHidePiece.HPC_CMPIDOperator = tblCMPCompany.CMPID INNER JOIN&lt;br&gt;
                         tblCMPCompany AS tblCMPCompany_1 ON tblHPCHidePiece.HPC_CMPIDAbattoir = tblCMPCompany_1.CMPID INNER JOIN&lt;br&gt;
                         tblCMPCompany AS tblCMPCompany_2 ON tblHPCHidePiece.HPC_CMPIDSupplier = tblCMPCompany_2.CMPID INNER JOIN&lt;br&gt;
                         tblCMPCompany AS tblCMPCompany_3 ON tblHPCHidePiece.HPC_CMPIDGrower = tblCMPCompany_3.CMPID INNER JOIN&lt;br&gt;
                         tblCMPCompany AS tblCMPCompany_4 ON tblHPCHidePiece.HPC_CMPIDTannery = tblCMPCompany_4.CMPID INNER JOIN&lt;br&gt;
                         tblBTCBatch ON tblHPCHidePiece.HPC_BTCID = tblBTCBatch.BTCID INNER JOIN&lt;br&gt;
                         tblPUNPackingUnit ON tblHPCHidePiece.HPC_PUNID = tblPUNPackingUnit.PUNID INNER JOIN&lt;br&gt;
                         tblINIInvItems ON tblPUNPackingUnit.PUN_INIID = tblINIInvItems.INIID&lt;br&gt;
 &lt;br&gt;
 -- NOTE - it may well be wrong to exclude Regrade Ins (ERPProdType 4)                        &lt;br&gt;
WHERE       tblHPCHidePiece.HPCDateTime BETWEEN @FromDate AND @ToDate&lt;br&gt;
				AND&lt;br&gt;
			tblHPCHidePiece.HPCERPProdType &lt;&gt; 3&lt;br&gt;
				AND&lt;br&gt;
			tblHPCHidePiece.HPCERPProdType &lt;&gt; 4&lt;br&gt;
				AND&lt;br&gt;
			tblHPCHidePiece.HPCERPProdType &lt;= 6&lt;br&gt;
				AND&lt;br&gt;
			((@CMPIDTannery Is Null) OR (tblHPCHidePiece.HPC_CMPIDTannery = @CMPIDTannery))&lt;br&gt;
				AND&lt;br&gt;
			((@CMPIDOperator Is Null) OR (tblHPCHidePiece.HPC_CMPIDOperator = @CMPIDOperator))&lt;br&gt;
				AND&lt;br&gt;
			((@CMPIDAbattoir Is Null) OR (tblHPCHidePiece.HPC_CMPIDAbattoir = @CMPIDAbattoir))&lt;br&gt;
				AND&lt;br&gt;
			((@CMPIDSupplier Is Null) OR (tblHPCHidePiece.HPC_CMPIDSupplier = @CMPIDSupplier))&lt;br&gt;
				AND&lt;br&gt;
			((@CMPIDGrower Is Null) OR (tblHPCHidePiece.HPC_CMPIDGrower = @CMPIDGrower))&lt;br&gt;
				AND&lt;br&gt;
			((@HGRID Is Null) OR (tblHPCHidePiece.HPC_HGRID = @HGRID))&lt;br&gt;
				AND&lt;br&gt;
			((@STRID Is Null) OR (tblHPCHidePiece.HPC_STRID = @STRID))&lt;br&gt;
				AND&lt;br&gt;
			((@FromKillDate Is Null Or @ToKillDate Is Null) OR (tblHPCHidePiece.HPCAbKillDate Between @FromKillDate AND @ToKillDate))&lt;br&gt;
				AND&lt;br&gt;
			((@SPCID Is Null) OR (tblINIInvItems.INI_SPCID = @SPCID))&lt;br&gt;
				AND&lt;br&gt;
			((@INIID Is Null) OR (tblINIInvItems.INIID = @INIID))&lt;br&gt;
				AND&lt;br&gt;
			((@STRType Is Null) OR (tblSTAStations.STAStnType = @STRType))&lt;br&gt;
				AND&lt;br&gt;
			((@BatchSelectType = 0)&lt;br&gt;
				OR&lt;br&gt;
				(@BatchSelectType = 1 AND CHARINDEX(tblBTCBatch.BTCBatch + ',',@Batches) &gt; 0)&lt;br&gt;
				OR&lt;br&gt;
				(@BatchSelectType = 2 AND tblBTCBatch.BTCBatch Between @FirstBatch And @LastBatch))&lt;br&gt;
				AND&lt;br&gt;
			((@Contract Is Null) OR (tblBTCBatch.BTCContract = @Contract))&lt;br&gt;
				AND&lt;br&gt;
			((@AbLotNoType = 0)&lt;br&gt;
				OR&lt;br&gt;
				(@AbLotNoType = 1 AND CHARINDEX(tblHPCHidePiece.HPCAbLotNo + ',',@AbLotNo) &gt; 0)&lt;br&gt;
				OR&lt;br&gt;
				(@AbLotNoType = 2 AND tblHPCHidePiece.HPCAbLotNo Between @FirstAbLotNo And @LastAbLotNo))						&lt;br&gt;
&lt;br&gt;
				&lt;br&gt;
Option (Recompile)&lt;br&gt;
&lt;br&gt;
Commit Tran&lt;br&gt;
&lt;br&gt;
Keep in mind the view is only there so we can generate a BO. In terms of defining a XtraReport it isn't needed because in its designer it is using a standard Visual Studio Data Source which can be created via many means including a stored procedure. We use a SF BO because we can use our existing DAL code to populate it, i.e. from our perspective 'no extra coding'.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
"might get in the way when the BO was used simply as a data source"&lt;br&gt;
&lt;br&gt;
Agreed.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
"Have you found any reason to use SF BOs in the reporting module "&lt;br&gt;
&lt;br&gt;
Yes. Please see above - we can leverage our existing DAL code that is why we use SF BO's.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
"I want them to print. What would be the steps I would use to print them using XtraReport?"&lt;br&gt;
&lt;br&gt;
1) Create a Data Source that uses the view.&lt;br&gt;
&lt;br&gt;
2) Assign the Data Source to your report. DexExpress has something it calls (hmm, I forget what its called!). Anyway its a small &gt; symbol in a box - it opens up special facilities for the control (report, form, tab, etc..). For a report one of the things it exposes is the data source for the report. Just click on the Data Source pull down list and you can see all your data souces - simply select the one you want.&lt;br&gt;
&lt;br&gt;
3) Under XtraReport on the toolbar you will find Group and Sort. Here you enter the what groupings you want and any special sorting. As you select groups they are automatically created in the body of the report. Each group must have a header but a footer is optional. Note: all sorting must be carried out within the report itself. You cannot rely on data being processed in the correct order just because it was sorted correctly in the stored procedure. This cause me a bit of grief for a time...&lt;br&gt;
&lt;br&gt;
4) Drop the fields you want into the group and detail section. For instance assume your view contains Order and Line Items. Just drop the Order fields into the group header and the Line Item details into the report Details.&lt;br&gt;
&lt;br&gt;
That's basically it.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
"put a button on a form to print the data. I use Visual Basic"&lt;br&gt;
&lt;br&gt;
Ah, we don't do this. We have a specific reporting module with its own menu however doing this is pretty straight forward. I know this from asking questions of DevExpress and they regularly include a sample project with their reply. Check out http://www.devexpress.com/Support/Center/default.aspx. You can download a fully functional version of DevXpress on a 60 day trial basis to check out these samples. This is from one of the samples they sent me:&lt;br&gt;
&lt;br&gt;
Button on a form to open a report. XtraReport1 is XtraReport in the project.&lt;br&gt;
&lt;br&gt;
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click&lt;br&gt;
        Dim r As New XtraReport1&lt;br&gt;
        r.ShowPreviewDialog()&lt;br&gt;
    End Sub&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
The code in the report was as follows. It explained how I could custom sort pivot grid columns in the report. I only show this just to demonstrate everything in the report is VB.Net.&lt;br&gt;
&lt;br&gt;
Public Class XtraReport1&lt;br&gt;
&lt;br&gt;
    Private Sub XrPivotGrid3_CustomFieldSort(ByVal sender As System.Object, ByVal e As DevExpress.XtraPivotGrid.PivotGridCustomFieldSortEventArgs) Handles XrPivotGrid3.CustomFieldSort&lt;br&gt;
        Dim val1 As String = DataSet11.Tables(0).Rows(e.ListSourceRowIndex1)("ColA").ToString()&lt;br&gt;
        Dim val2 As String = DataSet11.Tables(0).Rows(e.ListSourceRowIndex2)("ColA").ToString()&lt;br&gt;
        Dim result As Integer = String.Compare(val1, val2)&lt;br&gt;
        If (result &gt; 0) Then&lt;br&gt;
            e.Result = 1&lt;br&gt;
        ElseIf (result &lt; 0) Then&lt;br&gt;
            e.Result = -1&lt;br&gt;
        Else&lt;br&gt;
            e.Result = 0&lt;br&gt;
        End If&lt;br&gt;
        e.Handled = True&lt;br&gt;
        'e.ListSourceRowIndex1 &lt;br&gt;
    End Sub&lt;br&gt;
&lt;br&gt;
    Private Sub XtraReport1_BeforePrint(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles MyBase.BeforePrint&lt;br&gt;
        DataSet11.Tables(0).Rows.Add(New Object() {"A", "Z", 1})&lt;br&gt;
        DataSet11.Tables(0).Rows.Add(New Object() {"B", "Y", 1})&lt;br&gt;
        DataSet11.Tables(0).Rows.Add(New Object() {"C", "X", 1})&lt;br&gt;
    End Sub&lt;br&gt;
End Class&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Hope this helps.&lt;br&gt;
&lt;br&gt;
Cheers, Peter&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Cheers, Peter</description><pubDate>Mon, 28 Jun 2010 22:23:51 GMT</pubDate><dc:creator>Peter Jones</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27572.aspx</link><description>Peter, if I have a View in my database that selects the records from two tables exactly like I want them to print. What would be the steps I would use to print them using XtraReport? I'm just looking for an outline of the steps used to create the report and say put a button on a form to print the data. I use Visual Basic.&lt;br&gt;
&lt;br&gt;
If this requires a huge reply then just tell me so and I will understand that this is too lengthy to attack all at once.&lt;br&gt;
TIA.</description><pubDate>Mon, 28 Jun 2010 20:18:36 GMT</pubDate><dc:creator>Terry Bottorff</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27570.aspx</link><description>Thanks Peter&lt;br&gt;
&lt;br&gt;
Just to clarify my question about related tables :  &lt;br&gt;
&lt;br&gt;
In the SF example and in using RSS, we would create a business object with a BBS, and have a child table's BO as a custom property of the parent.&lt;br&gt;
&lt;br&gt;
I seems to me that using XtraReports, I would want to creae datasets that defined the relationship between tables and then simply fill the tables - either directly from sprocs on the back end or using the datatable of a BO.  &lt;br&gt;
&lt;br&gt;
My thought was defining parent/child relationships between BOs, as we would when we normally use BOs, might get in the way when the BO was used simply as a data source for a data table in a dataset that itself defined a relationship..&lt;br&gt;
&lt;br&gt;
Have you found any reason to use SF BOs in the reporting module or do you just pull data from the backend into your datasets?&lt;br&gt;
&lt;br&gt;</description><pubDate>Mon, 28 Jun 2010 19:30:00 GMT</pubDate><dc:creator>Charles R Hankey</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27569.aspx</link><description>Hi Guys,&lt;br&gt;
&lt;br&gt;
"What I mean is how are you able to drag and drop fields on your report?"&lt;br&gt;
Yep. You end up with a tool bar item called XtraReports and in there is a field from which you drag and drop. BTW - this field list can extended via creating calculated fields within XtraReports. I've had no need (yet) to create custom fields in the BO.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
"Are you setting your relationships for child table in the dataset itself"&lt;br&gt;
Yes. The proc contains all the data that the report needs&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
"and if so do you need to turn off any parent/child metadata in the BOs so they don't interfere?"&lt;br&gt;
Charles, I'm not sure what you mean by this. Perhaps you are referring to the DDT which we don't use.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
The one thing that I really like about XtraReports is that all custom code (e.g. special sub totals, special formatting) can be written in VB.Net (our language) or C#. Very easy to leaverage those skills for reporting whereas in Crystal Reports we had to use a rather clunky scripting language. Plus form controls (such as Charts) can simply be dropped on a report.&lt;br&gt;
&lt;br&gt;
On the down side because we use VB.Net we can't ship report updates by loading a contol file, i.e. in Crystal Reports we could change a report and simple copy the .rpt file to a customer. Now we have compile our reporting project and copy the entire exe to the customer. We thought this would be a real pain but it has proven to be a problem. If we had gone down the XtraReports scripting path, rather than VB.Net for custom code, then we could have copied a designer file in the same manner as we did with Crystal Reports.&lt;br&gt;
&lt;br&gt;
And finally - we all know that the support from the SF guys is great - they always seem to go the extra mile. Well - DevExpress support is also excellent.&lt;br&gt;
&lt;br&gt;
Cheers, Peter&lt;br&gt;
&lt;br&gt;
 &lt;br&gt;</description><pubDate>Mon, 28 Jun 2010 18:57:47 GMT</pubDate><dc:creator>Peter Jones</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27564.aspx</link><description>I agree. I just don't like their interface either.</description><pubDate>Mon, 28 Jun 2010 11:36:27 GMT</pubDate><dc:creator>Terry Bottorff</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27562.aspx</link><description>Hi Peter - &lt;br&gt;
&lt;br&gt;
This answers a lot of my questions.  I like the idea of using a dataset and creating the tables from SF BOs.  Are you setting your relationships for child table in the dataset itself and if so do you need to turn off any parent/child metadata in the BOs so they don't interfere?  &lt;br&gt;
&lt;br&gt;
In any case, I am convinced now that Xtrareports is the direction I'm going in in the future.  I finally decided the RSS interface was more counter-intuitive than I have time for  :(&lt;br&gt;
&lt;br&gt;</description><pubDate>Mon, 28 Jun 2010 10:48:27 GMT</pubDate><dc:creator>Charles R Hankey</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27560.aspx</link><description>I'll go view those and see if they answer my question. Thanks.</description><pubDate>Mon, 28 Jun 2010 10:01:07 GMT</pubDate><dc:creator>Terry Bottorff</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27559.aspx</link><description>Hi Terry,&lt;br&gt;
&lt;br&gt;
I have not test it yet, but I looked at some of their online videos, and they look very impressive and the quality of the videos are the best I have seen for an online video.&lt;br&gt;
&lt;br&gt;
[url=http://www.devexpress.com/Products/NET/Reporting/QuickStart.xml]http://www.devexpress.com/Products/NET/Reporting/QuickStart.xml[/url]&lt;br&gt;</description><pubDate>Mon, 28 Jun 2010 08:49:26 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27558.aspx</link><description>Peter, what do you use to design your report? What I mean is how are you able to drag and drop fields on your report?&lt;P&gt;I've not used XtraReport but I am thinking about switching. TIA.</description><pubDate>Mon, 28 Jun 2010 07:26:31 GMT</pubDate><dc:creator>Terry Bottorff</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27557.aspx</link><description>Thanks Peter! :smooooth:</description><pubDate>Mon, 28 Jun 2010 05:48:53 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27556.aspx</link><description>Congratulations Ivan.&lt;P&gt;Regarding reporting, we have been using DevExpress Controls for about as long as we have been using Strataframe, but were using Crystal Reports (the version that came with visual studio) for our reporting, mainly due to previous experience with it. We had intended to examine xtraReports when we had a bit of time.&lt;/P&gt;&lt;P&gt;Recently we upgraded to Visual&amp;nbsp;Studio 2010, only to find that Crystal reports is only available as a seperate download currently in beta and without a client distributable. Furthermore in the Terminal Services environment we are targeting it is no longer free. This led us to quickly convert to XrtaReports, and have been very happy with the results. There is nothing we have found that Crystal Reports could do that XrtaReports can't. Where we were stuck on how to achive what we wanted, the support from Devexpress was excellent.&lt;/P&gt;&lt;P&gt;We found that the best way to handle things was to create a bo mapped to a view. We use the same view to create a dataset for the&amp;nbsp;XtraReports&amp;nbsp;designer, then we use the following to get the data from the&amp;nbsp;bo into the report&lt;/P&gt;&lt;P&gt;[codesnippet]&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt; AssignBOToReport(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;ByRef&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt; myReport &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt; DevExpress.XtraReports.UI.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;XtraReport&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;ByRef&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt; bo &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt; MicroFour.StrataFrame.Business.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;BusinessLayer&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;)&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt; bo.CurrentDataTable.Rows.Count &amp;gt;= 1 &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt; ds &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;DataSet&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;&lt;P&gt;ds.Tables.Add(bo.CurrentDataTable)&lt;/P&gt;&lt;P&gt;myReport.DataSource = ds&lt;/P&gt;&lt;P&gt;myReport.DataMember = bo.CurrentDataTable.TableName&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;Else&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;&lt;P&gt;myReport.DataSource = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;Nothing&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;&lt;P&gt;myReport.DataMember = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2 face=Consolas&gt;&lt;FONT color=#a31515 size=2 face=Consolas&gt;&lt;FONT color=#a31515 size=2 face=Consolas&gt;""&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;Sub&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;&lt;/FONT&gt;&lt;/FONT&gt;[/codesnippet]&lt;/P&gt;&lt;P&gt;The key point here is that xtraReports is very fussy in that if a report is designed from a dataset, then that is what it expect to get its data from.&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Peter</description><pubDate>Mon, 28 Jun 2010 02:25:00 GMT</pubDate><dc:creator>Peter Jones</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27553.aspx</link><description>[quote][b]Edhy Rijo (06/26/2010)[/b][hr]Well, welcome to the club :cool:&lt;BR&gt;&lt;BR&gt;Congratulations in advance wishing you and wife to be the best!!!![/quote]&lt;/P&gt;&lt;P&gt;Thanks a lot Edhy! :smooooth:</description><pubDate>Sun, 27 Jun 2010 08:09:25 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27552.aspx</link><description>Hi Charles. I have been trying to decide which Report Writer to go for and have narrowed it down to either Activereports or Xtrareports.&lt;/P&gt;&lt;P&gt;I was tending towards Activereports as , without additional licenses or expense, you can include a run time report designer for the end user. You seem to be suggesting that that can also be done with Xtrarports....did I pick this up correctly.&lt;/P&gt;&lt;P&gt;Also , would be interested if anybody has seen any feature by feature comaprison of the two. ActiveReports seems to be more expensive .</description><pubDate>Sun, 27 Jun 2010 04:33:41 GMT</pubDate><dc:creator>Ger Cannoll</dc:creator></item><item><title>RE: Binding a control to a regular form property?</title><link>http://forum.strataframe.net/FindPost27551.aspx</link><description>Hi Bill -&lt;br&gt;
&lt;br&gt;
What strategy are you using for the data?  It seems at first glance that using the BBS approach and creating the properties for child tables etc is not really necessary.  I am tempted to use standard datasets, filled from parameterized SQL views and just by-passing SF for reporting data needs.  If I go that route am I going to be missing something I'll wish I had?&lt;br&gt;
&lt;br&gt;
Second question :  do you have the whole dxExperience subscription or a separate XtraReports suite?  Does this include WPF and Silverlight?  &lt;br&gt;
&lt;br&gt;
It looks like no further license is needed to give the end-user report design functionality.  Is this the case?  &lt;br&gt;
&lt;br&gt;
( see what you started - I'm sure I'm going to have a lot of questions going forward. )&lt;br&gt;
&lt;br&gt;
TIA &lt;br&gt;
&lt;br&gt;
Charles&lt;br&gt;</description><pubDate>Sat, 26 Jun 2010 19:37:40 GMT</pubDate><dc:creator>Charles R Hankey</dc:creator></item></channel></rss>