|
Sorry to ask a Crystal Report question in this forum, but it is being used in a C# application. When I preview a report using the viewer, and then hit the print button...for some reason the viewer is squaring the number of copies I am trying to print. For instance, if I try to print 1 copy, I get 1 copy. 2 copies will print 4 documents. 3 copies will print 9 documents, and so on. Now I'm not doing anything special in my code, just using the print features that are embedded into the Crystal Report Viewer. Has anybody had this happen? Any ideas on what I might do to remedy this? Am I just an idiot? A little help please.
Also, along those same lines...some reports are created in landscape mode. Any clue how to set the print dialog to automatically print in landscape using the Crystal Report Viewer?
Thanks, that's all the questions I have for now...hope somebody can help me out! 
|
|
|
|
|
Im converting some older vb code to c#. In the visual basic code, there is a select case statement that evaluates whether or not a single character is equal to multiple chr() statements, such as chr(243), ect. I can't remember exactly how to do this in c#, replace the chr() function I mean. If anyone could jog my memory it would be greatly appreciated.
Thanks,
Ryan
|
|
|
|
|
You could use something like this:
char myChar = something;
switch(myChar)
{
case (char)88:
break;
case (char)98:
break;
case (char)100:
case (char)101:
case (char)102:
break;
default:
break;
}
RageInTheMachine9532
"...a pungent, gastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
It would be faster to convert the char to an int used in the switch statement. Far less casts would be required.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
True...I hadn't thought of that. Thanks! That's what I get for writing code on an empty stomach!
RageInTheMachine9532
"...a pungent, gastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
|
How did you implement the interface? If you used an explicit interface implementation like so:
void UCOMIPersistFile.GetClassID(out Guid pClassID)
{
} ...then you need to cast your class (this ) to UCOMIPersistFile in order to call the methods:
((UCOMIPersistFile)this).GetClassID(out someGuid); Note that you really don't use this interface in your own class, though. Your class implements this interface so that COM clients can get persisted data or write persisted data that your implementation saves to a file (hence IPersistFile ). If you want your class to use your implementation instead of duplicating it, then I recommend you define protected or private methods that actually read/write data and have your Load and Save methods call those from your explicit interface implementation. This will avoid the performance penalties of casting your object to UCOMIPersistFile just to call the method.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Following from the responses I got yesterday, here and elsewhere, I have now managed to create an EventLog by using the System.Diagnostics.EventLogInstaller class in my Windows Service. I have overridden the Install method to write out a method to the EventLog saying that the service is being installed. This works.
However, when I attempt to call SourceExists while the service is running it throws a SecurityException that says "Requested registry access is not allowed". (The service is running in a restricted account, and I would prefer not to use impersonation because that would open up extra security holes that I'd rather not deal with)
If I try again, but without the check for SourceExists I get the same exception when I use WriteEntry().
Any help would be appreciated.
Cheers,
Andy.
|
|
|
|
|
Your going to have to give the account the rights it needs. Either through impersonation or by increasing the rights of the account the service runs under.
How is this user account being restricted? Group Policy? Are there any other services/users using this account?
RageInTheMachine9532
"...a pungent, gastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
At the moment the account is based on a standard user. We want to restrict it as much as possible for security so it should only be able to run the service, access two directories and their subdirectoris where it gets and puts files, access to SQL Server and it must be able to write to the EventLog. The account will be used for nothing else. Essentially, it exists to do one job and one job only.
I cannot believe that it requires SYSTEM privileges to write to a custom log. I could understand if the situation was: creating a custom log and telling it that only users of a specific account or role are permitted to write to it.
|
|
|
|
|
It doesn't require SYSTEM priv's. Is this user account a member of any of the local User's groups?. The 'User' group is probably the minimum it needs to do this. If the user is not a member of any groups, I could see this problem occuring. but, of course, I can't test it where I'm at right now...
RageInTheMachine9532
"...a pungent, gastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Hello,
I'm trying to delete a node in my Xml-file like this:
xml.Load(filePath);
string pad = "//exceptions[@company='RLS']";
XmlNode delete = xml.SelectSingleNode(pad);
xml.DocumentElement.RemoveChild(delete);
but then i get a mistake like "The node to be removed is not a child of this node."
What can i do to delete the node?
The xml-file looks like this
<pack version="1.0">
<com>
<main>
<tests>
<test name="programs">independent</test>
</tests>
</main>
<exceptions company="RLS">
<tests>
<extest name="settings">independent</extest>
</tests>
</exceptions>
</com>
</pack>
|
|
|
|
|
Try the following:
<br />
doc.Load(filePath);<br />
string pad = "//exceptions[@company='RLS']";<br />
XmlNode node = doc.SelectSingleNode(pad);<br />
node.ParentNode.RemoveChild(node);<br />
Good luck.
[Modified Version]
<br />
doc.Load(filePath);<br />
string pad = "//exceptions[@company='RLS']";<br />
XmlNode node = doc.SelectSingleNode(pad);<br />
if(node!=null)<br />
{<br />
XmlNode parent = node.ParentNode;<br />
if(parent!=null) parent.RemoveChild(node);<br />
}<br />
My articles and software tools
|
|
|
|
|
|
using sql2000 reporting services?
|
|
|
|
|
If it's in the toolbox for the report designer, yes. You should read the documentation. If Reporting Services allows you to use ASP.NET web controls, then you could add the ASP.NET CheckBox web control.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I have a panel, on the panel I have a lot of buttons.
The buttons has Images on them.
I want to create a button with "myButton.BackColor = Color.Transparent;" over the other buttons.
The problem is that I get transparency all the way back to the panel, if a button is between it doesn't show in the transparent button.
Anyone knows how I can solve this?
Thanks
Thomas
|
|
|
|
|
|
Not shore what you meen. Should I let the transparent button be an image of the rectangel it has?
The thing is that all the buttons on the panel is movable and resizeable.
I've created my own button class FCButton(derived from System.Windows.Forms.Button) with some extra functions ++. The transparent button shall have all of the functions as FCButton.
The transparent button shall be placed on other buttons, but still be a control of the panel, as the other buttons.
So is this somehow possible, I realy don't want to change all of the coding I've done.
Thanks
Thomas
|
|
|
|
|
You could mask the button using the PaintEventArgs.Graphics property and using the Graphics.Clip property to set a Region that will clip the actual image. There is several classes in the System.Drawing and child namespaces that can help create the Region for that image (which you should cache until the image changes). This ensures that the rest of the button is not visible at all - just the image. This is the technique that many application use, though many today that target Windows 2000 and newer use layered windows (which the transparency does), but that only works on Windows 2000 and newer.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Drawing Vertical Text.
The article below is taken from the .NET Framework SDK Documentation
[C#]
string text = "Vertical text";
FontFamily fontFamily = new FontFamily("Lucida Console");
Font font = new Font(fontFamily, 14, FontStyle.Regular, GraphicsUnit.Point);
PointF pointF = new PointF(40, 10);
StringFormat stringFormat = new StringFormat();
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255));
stringFormat.FormatFlags = StringFormatFlags.DirectionVertical;
e.Graphics.DrawString(text, font, solidBrush, pointF, stringFormat);
The attached illustration shows the vertical text, with the word "Vertical" at the top, ant the word "text" below.
How does one code to have the words appesr in the reverse direction, "Vertical" at the bottom, "test" at th top.
Regards,
Fred.
Fred S. Parker
Email: fred@fsparker.com.au
|
|
|
|
|
You need to apply a transform or two to your Graphics object. You could use Graphics.RotateTransform to rotate your text, but you'll need to also use Graphics.TranslateTransform to translate the coordinates since the text is rotated on an axis (the beginning of the string). Unfortunately, I'm not too good with matrices when it comes to graphics, but those are the two methods you should look into in the .NET Framework SDK.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
You can use ScaleTransform to do horizontal or vertical flip.
To draw vertical text going the other way (vertically) do:
g.TranslateTransform(0, y*2+height)
g.ScaleTransform(1, -1)
you need the translate because scale will flip your text to negative values, so you're moving it by y*2 (one y would move it to 0), plus height of the object. y is the y coordinate of the text and height is the height. If you don't know the height, you'd have to use MesageString method.
If you have any other drawing code after the text, you have to either reset the transoformation or best way is to remember it and then set it back:
Matrix saveM = g.Transform;
g.TranslateTransform(0, y*2+height)
g.ScaleTransform(1, -1)
g.DrawString(...)
g.Transform = saveM;
If you use rotate, then your text will be flipped in both y and x, and depending on your needs you might want it or not.
|
|
|
|
|
Is there something like a MessageBox, that don't have MessageBoxButtons but is showing for 3-4 sec. before it closes
Thanks
Thomas
|
|
|
|
|
No.
You can probably customize a form to behave like that, though
"if you vote me down, I shall become more powerful than you can possibly imagine" - Michael P. Butler.
|
|
|
|