Advertisement

03.03.2008 at 03:08PM PST, ID: 23211186
[x]
Attachment Details
[x]
The Solution Rating System

With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.

  • The Grade of the Solution
  • The Zone Rank of the Expert Providing the Solution
  • The Number of Author and Expert Comments
  • The Number of Experts Contributing
  • The Feedback of the Community

Your Input Matters
Because of the way the system is set up, the most important variable in this equation is you. As a member of Experts Exchange, you are able to cast your vote on the quality of the solutions in regard to how complete, accurate, helpful and easy to understand each solution is. When you provide your feedback, each rating is adjusted accordingly. So, if you see a solution that has a poor rating that you think is a good solution, let us know by rating it. As you do, the rating will be adjusted and will become more accurate for other members of our site.

If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support.

Thank you!

SQL Reporting: how to declare and assign a variable?

Tags: microsoft, sql server, 2005, visual studio 2005
i'm new to writing sql reports in visual studio.  i'm coming from crystal reports....

i'm working in the Layout view of report design... i have a table and i right click on a square within the grid and select Expression....
is there a way to assign a value to a variable so that i can reference it in another expression?

in particular, i am trying to handle the following formula from Crystal:
dr:=dateserial(currentYr,currentMth-1,currentDay) to dateserial(currentYr,currentMth,currentDay);

if {IM5_ARN_ALL.TransactionDate} in dr then luse:={IM5_ARN_ALL.TransactionQty} else luse:=0;
Start your free trial to view this solution
Question Stats
Zone: Microsoft
Question Asked By: zephyr_hex
Solution Provided By: chrismc
Participating Experts: 1
Solution Grade: A
Views: 95
Translate:
Loading Advertisement...
03.03.2008 at 04:19PM PST, ID: 21037154

Rank: Wizard

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.03.2008 at 04:38PM PST, ID: 21037252

Rank: Wizard

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.04.2008 at 08:15AM PST, ID: 21042299

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
 
Loading Advertisement...
Microsoft
  • Internet Protocols
  • Applications
  • Development
  • OS
  • Hardware
  • Windows Security
Apple
  • Operating Systems
  • Hardware
  • Programming
  • Networking
  • Software
Internet
  • Search Engines
  • File Sharing
  • WebTrends / Stats
  • Spy / Ad Blockers
  • Web Browsers
  • New Net Users
  • Web Development
  • Chat / IM
  • Anti Spam
  • Web Servers
  • Anti-Virus
  • Email Clients
Gamers
  • Tips
  • Online / MMORPG
  • Puzzle
  • Emulators
  • Action / Adventure
  • Role Playing
  • Consoles
  • Game Programming
  • Strategy
  • Sports
  • Misc
  • Computer Games
Digital Living
  • Hardware
  • New Net Users
  • New Users
  • Software
  • Digital Music
  • Gaming World
  • Home Security
  • Apple
  • Networking Hardware
Virus & Spyware
  • Vulnerabilities
  • IDS
  • Encryption
  • Anti-Virus
  • Operating Systems Security
  • Software Firewalls
  • WebApplications
  • Cell Phones
  • Operating Systems
  • Internet
  • Hardware Firewalls
Hardware
  • Handhelds / PDAs
  • Displays / Monitors
  • Components
  • Networking Hardware
  • Peripherals
  • Laptops/Notebooks
  • Storage
  • Servers
  • Desktops
  • New Users
  • Misc
  • Apple
Software
  • System Utilities
  • Industry Specific
  • Network Management
  • Photos / Graphics
  • Page Layout
  • VMWare
  • Misc
  • Web Development
  • OS
  • CYGWIN
  • Voice Recognition
  • Message Queue
  • Quality Assurance
  • Security
  • Firewalls
  • MultiMedia Applications
  • Development
  • Database
  • Office / Productivity
  • Business Management
  • OS/2 Apps
  • Server Software
  • Internet / Email
ITPro
  • OS
  • Storage
  • Encryption
  • Operating Systems Security
  • Apple Hardware
  • Laptops & Notebooks
  • Servers
  • Networking Hardware
  • Peripherals
  • Devices
  • Displays / Monitors
  • WebTrends / Stats
  • Search Engines
  • Firewalls
  • WebApplications
  • IDS
  • Vulnerabilities
  • Email Clients
  • File Sharing
  • Spy / Ad Blockers
  • Web Browsers
  • Web Servers
  • Networking
  • Anti-Virus
  • Chat / IM
  • Anti Spam
Developer
  • Web Servers
  • Web Browsers
  • Game Programming
  • Dev Tools
  • Industry Specific
  • Office / Productivity
  • Database
  • CYGWIN
  • Web Development
  • Search Engines
  • File Sharing
  • WebTrends / Stats
  • Programming
  • Content Management
  • Application Servers
  • Protocols
Storage
  • Removable Backup Media
  • Storage Technology
  • Servers
  • Grid
  • Remote Access
  • Backup / Restore
  • Misc
  • Hard Drives
OS
  • Miscellaneous
  • Security
  • Development
  • Linux
  • VMWare
  • MainFrame OS
  • Unix
  • Apple
  • OS / 2
  • AS / 400
  • BeOS
  • Microsoft
  • VMS / OpenVMS
Database
  • Oracle
  • Miscellaneous
  • MySQL
  • Software
  • Sybase
  • Contact Management
  • PostgreSQL
  • Data Manipulation
  • Clarion
  • InterSystems Cache
  • Siebel
  • MUMPS
  • OLAP
  • SQLBase
  • SAS
  • GIS & GPS
  • 4GL
  • Berkeley DB
  • DB2
  • Informix
  • Interbase / Firebird
  • FoxPro
  • Reporting
  • LDAP
  • Filemaker Pro
  • MS SQL Server
  • dBase
  • MS Access
Security
  • Misc
  • Web Browsers
  • Software Firewalls
  • Operating Systems Security
  • File Sharing
  • Spy / Ad Blockers
  • Vulnerabilities
  • WebApplications
  • IDS
  • Anti-Virus
  • Encryption
  • Anti Spam
  • Email Clients
  • VPN
  • Chat / IM
Programming
  • Editors IDEs
  • Installation
  • Handhelds / PDAs
  • Multimedia Programming
  • System / Kernel
  • Algorithms
  • Game
  • Signal Processing
  • Project Management
  • Open Source
  • Database
  • Misc
  • Languages
  • Processor Platforms
  • Theory
Web Development
  • Scripting
  • Blogs
  • Web Servers
  • Software
  • Search Engines
  • Web Graphics
  • Images
  • Internet Marketing
  • Images and Photos
  • Components
  • Document Imaging
  • Web Languages/Standards
  • Illustration
  • WebApplications
  • Fonts
  • WebTrends / Stats
  • Authoring
  • Digital Camera Software
  • Miscellaneous
Networking
  • Protocols
  • Apple Networking
  • Network Management
  • Message Queue
  • Application Servers
  • Content Management
  • File Servers
  • Email Servers
  • Misc
  • Java Editors & IDEs
  • Wireless
  • Networking Hardware
  • Backup / Restore
  • System Utilities
  • ISPs & Hosting
  • Web Servers
  • Storage Technology
  • Removable Backup Media
  • Servers
  • Broadband
  • Grid
  • OS / 2
  • Novell Netware
  • Unix Networking
  • Windows Networking
  • Security
  • Telecommunications
  • Operating Systems
  • Linux Networking
Other
  • Community Advisor
  • Lounge
  • Community Support
  • New Net Users
  • Philosophy / Religion
  • Math / Science
  • Miscellaneous
  • URLs
  • Expert Lounge
  • Politics
  • Puzzles / Riddles
Community Support
  • Suggestions
  • New to EE
  • New Topics
  • Community Advisor
  • CleanUp
  • Announcements
  • General
  • Feedback
  • Input
  • EE Bugs
 
03.03.2008 at 04:19PM PST, ID: 21037154

Rank: Wizard

Hi,

This is a tricky topic.
First as you are moving from Crystal (as I did 3 years ago) you will get very frustrated with RS at times.
It works completely differently to CR and until you can change your way of thinking over to the way RS works instead of trying to find equivalent's from CR in RS, it won't be easy.

RS doesn't have the different "passes" that CR has. The trick to RS is to make the database do the hard work and generate ALL the values you need.

Having said that there are some other tricks;

1) You can add calculated fields to a dataset via RS itself. In the dataset explorer where it lists the fields returned by the query, you can right click aand "Add" your own field defined by a VB.Net expression which can refer to any field in that dataset. This is evaluated record by record so can slow the query down.

2) Within in a data control you can refer to values in other cells within the same scope, i.e. the same line. Again, this is evaluated record by record and is likely to be quicker done in the original query itself.

3) VB.Net code: You can write code by going to the Report menu then Report Properties, then Code. You can declare functions and variables in here. But you have to remember these are rendered as web pages and as such they are stateless, what that means is the page will reset variables between page throws and you will lose any variables set.

4) Hidden parameters are a good way to hold individual values for the life of a report. They have to be populated either from a dataset or a VB.Net expression - you cannot alter this half way through a report.

If you could explain the scenario, I can be more specific about which route you should take.

Cheers
Chris

PS: I've never regretted switching from CR to RS. To me it's a better SME reporting tool. There are scenario's where CR is better but in the main I think RS wins.


Accepted Solution
 
03.03.2008 at 04:38PM PST, ID: 21037252

Rank: Wizard

I see you were actually fairly specific in your request!

As you are comparing against the system date I would actually do this in the dataset itself, it's not very pretty but would be the most efficient. In SQL 2005 that would be something like;
    Declare @From DateTime, @To DateTime

    Set @To = GetDate()
    Set @From = DateAdd(mm, -1, @To)

    Select Qty =  Case When TransactionDate Between @From And @To Then TransactionQty Else 0 End
        From myTable

Doing it this way you are using the SQL function 'DateAdd'.

You could however do this as a couple of report parameters, which can be hidden if you don't want to allow the user to change it. This looks more elegant but would be slightly less efficient.
Create 2 parameters 'From' and 'To'.
In the 'Default' section of the Report Parameter Properties dialog for 'From', choose the Non-query option and in the formula enter;
    =DateAdd(DateInterval.Month, -1, Today())
For 'To', do the same but with this expression instead;
    =Today()
In the cell that shows the quantity you can use the following expression;
    =IIf(TransactionDate >= @From AndAlso TransactionDate <= @To, TransactionQty, 0)

Note that all the functions we are using here are VB.Net functions.

Cheers
Chris


if {IM5_ARN_ALL.TransactionDate} in dr then luse:={IM5_ARN_ALL.TransactionQty} else luse:=0;
Assisted Solution
 
03.04.2008 at 08:15AM PST, ID: 21042299
terrific.  thanks.
 
 
20080236-EE-VQP-29 / EE_QW_2_20070628