|
Hi,
I struggling here, i have a messy solution but i think is a bad pratice.
I have a application with 1 form and 6 usercontrols, the form has 1 ToolStrip (top) and 1 StatusStrip (down), everything else loads inside the form from the usercontrols.
My ploblem is that i can´t edit the toolStrip and the statusStrip menus by
coding in the usercontrols.
i remembered the "passing data between form method" but a couldn´t change it enought to perform what i want, since you have to create a new form ( etc etc form2 otherform = new form2(); etc etc)
i want to change the toolStrip and statusStrip menus as i enter diferent usercontrols.
Can anyone help me here?
|
|
|
|
|
I'm directly passing the crystal reports parameters through the code, and generating the report but for some obvious reason, I want the records to be stored first of all into a 2-dimensional array and from there writing it back onto Crystal reports.
The actual code before storing it in 2D-array is as given below:
private void btnReport_Click(object sender, System.EventArgs e)
{
try
{
makeReport(report_file);
for (int recordCount=0; recordCount <= myTable.Rows.Count; recordCount++)
{
SetParamValue("@parameter1", myTable.Rows[recordCount]["CLNT#"].ToString());
SetParamValue("@parameter2", myTable.Rows[recordCount]["CNAME"].ToString());
SetParamValue("@parameter3", myTable.Rows[recordCount]["CSEX"].ToString());
SetParamValue("@parameter4", myTable.Rows[recordCount]["CSS#"].ToString());
crystalReportViewer1.ReportSource = ReportDoc;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "EXCEPTION");
}
}
private void SetParamValue (string paramName, string paramValue)
{
for(int i=0;i < ReportDoc.DataDefinition.FormulaFields.Count; i++)
if(ReportDoc.DataDefinition.FormulaFields[i].FormulaName=="{" + paramName + "}")
{
ReportDoc.DataDefinition.FormulaFields[i].Text = "\"" +paramValue +"\"";
}
crystalReportViewer1.ReportSource = ReportDoc;
}
private void makeReport(string ReportFile)
{
ReportDoc.Load(ReportFile);
}
Note : The reason why I'm looking for 2D array is that currently upon execution I'm getting a Crystal Report with repeated records and that too upto the no. of maximum records in table. To be more clear, I'm getting the first record printed 30,000 times. NEED HELP........!!!
|
|
|
|
|
reality_strikes wrote: To be more clear, I'm getting the first record printed 30,000 times.
What? That's your problem and your question is how to do something with a 2D array? I don't get it?
led mike
|
|
|
|
|
led, wht is it tht u didnt understood in this..............i'm struck @ something and need help to move forward.......
|
|
|
|
|
ok, let me make it more clear.........lets say, i have an access database with 100 records and whn i generate the crystal report i'm expecting all 100 records to be displayed row-by-row.
Instead I'm getting the first record repeated 100 times.........u shud have got it by now........
|
|
|
|
|
ROTFLMA Thanks dude, that's the first good laugh I've had today. See what I am thinking is that they didn't design Crystal reports to print out the first row of your table 30,000 times so it's likely your code is incorrect somewhere.
Hey check this out man. I've never used Crystal Reports but I bet the following portions of your code just aren't correct because there is no need to assign the .ReportSource property for every single row and for every single parameter in your table. It also doesn't make sense that you have to set report parameters for every single row in your table.
What do you think? Are you using some tutorial or something or are you just guessing how to use Crystal Reports?
reality_strikes wrote: The actual code before storing it in 2D-array is as given below:
private void btnReport_Click(object sender, System.EventArgs e)
{
try
{
makeReport(report_file);
for (int recordCount=0; recordCount <= myTable.Rows.Count; recordCount++)
{
SetParamValue("@parameter1", myTable.Rows[recordCount]["CLNT#"].ToString());
SetParamValue("@parameter2", myTable.Rows[recordCount]["CNAME"].ToString());
SetParamValue("@parameter3", myTable.Rows[recordCount]["CSEX"].ToString());
SetParamValue("@parameter4", myTable.Rows[recordCount]["CSS#"].ToString());
crystalReportViewer1.ReportSource = ReportDoc;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "EXCEPTION");
}
}
private void SetParamValue (string paramName, string paramValue)
{
for(int i=0;i < ReportDoc.DataDefinition.FormulaFields.Count; i++)
if(ReportDoc.DataDefinition.FormulaFields[i].FormulaName=="{" + paramName + "}")
{
ReportDoc.DataDefinition.FormulaFields[i].Text = "\"" +paramValue +"\"";
}
crystalReportViewer1.ReportSource = ReportDoc;
}
led mike
|
|
|
|
|
led, thanks for the reply. But now i'm facing a rather strange problem............when i replace my code with the changes u made in it.........this is what i'm getting :
I'm getting the first row repeated 30,000 times then the crystal report screen blinks and loads the 2nd line of record from database and displays it 30,000 times and it goes on like the same until it displays all the 30,000 records the same way.
now do u have any clue...........i have tried all this earlier itself..........awaiting reply........
|
|
|
|
|
reality_strikes wrote: when i replace my code with the changes u made in it
I don't know what to say, i did not make any changes to the code, i simply highlighted the parts that I thought were likely to be wrong.
led mike
|
|
|
|
|
Hello.
I have a question..
I have this script:
int mouseDownX;
int mouseDownY;
int width;
int height;
private void Form1_MouseUp(object sender, MouseEventArgs mouseEv)
{
width = mouseEv.X - mouseDownX;
height = mouseEv.Y - mouseDownY;
textBox2.Text = Convert.ToString(mouseEv.Location);
Graphics graphics = this.CreateGraphics();
Rectangle rectangle = new Rectangle(
mouseDownX, mouseDownY, width, height);
graphics.DrawRectangle(Pens.Red, rectangle);
}
private void Form1_MouseDown(object sender, MouseEventArgs mouseEv)
{
textBox1.Text = Convert.ToString(mouseEv.Location);
mouseDownX = mouseEv.X;
mouseDownY = mouseEv.Y;
}
Which works fine if I make a rectangle from the left top corner to the right bottom corner
But is there any easier way of just making rectangles?
Here is a video of what I want:
http://www.youtube.com/watch?v=V5YO4U1UnO0
And here is a download link to my project:
http://peecee.dk/upload/download/123329
So I want to be able to draw rectangles from any angle if you understand?
|
|
|
|
|
Hello,
There is no other way apart from this to draw rectangles. However, the only problem was the
calculation part which was working only when you draw from lefttop to right bottom. However,
while doing vice versa, the height and width was getting negative values.
Try this piece of code in MouseUp event()
private void Form1_MouseUp(object sender, MouseEventArgs mouseEv)
{
textBox2.Text = Convert.ToString(mouseEv.Location);
Graphics graphics = this.CreateGraphics();
Rectangle rectangle;
if (mouseEv.Y > mouseDownY)
{
height = mouseEv.Y - mouseDownY;
}
else
height = mouseDownY - mouseEv.Y;
if (mouseEv.X < mouseDownX)
{
width = mouseDownX - mouseEv.X;
rectangle = new Rectangle(mouseEv.X, mouseEv.Y, width, height);
}
else
{
width = mouseEv.X - mouseDownX;
rectangle = new Rectangle(mouseDownX, mouseDownY, width, height);
}
graphics.DrawRectangle(Pens.Red, rectangle);
}
I believe this should resolve your issue.
Regards,
Allen
Allen Smith
ComponentOne LLC
www.componentone.com
|
|
|
|
|
Almost there.
You must draw a positive distance starting from the smallest value, both for X and width, and for Y and height.
It may be different though in both dimensions, your code assumes it is the same for both.
You really should introduce new variables for Xmin and Ymin.
I typically like to add a method DrawRectangle that hides these limitations,
so it accepts all value combinations for X1,Y1 and X2,Y2
|
|
|
|
|
Hey
I have this project now:
http://peecee.dk/upload/download/123403
It allmost works, the preview thing just doesnt work properly
Could you guys take a look at it?
Because I cant seem to find a soloution
|
|
|
|
|
Hi All,
I am developing simple chat application in c#.I want display animated gif in richtextbox with readonly.When Richtextbox is Readonly it's not Displaying Image.If anyone know which control is using yahoo for diaplaying message in Yahoo Messanger.Thanks In Advance.
SHINOJ K
|
|
|
|
|
This is the piece of code
Random rnd = new Random();
Random rnd2 = new Random();
for (int i = 0; i < 5; i++)
{
myIntegerCollection.Add(i);
myEmployeeCollection.Add(new Employee(100 + i,rnd.Next(50),("name"+ rnd2.Next(50))));
}
both the Random instances rnd and rnd2 are generating the same numbers over and over again, and I dont understand why.
|
|
|
|
|
Use the Next method on your Random instances.
Dave
|
|
|
|
|
Thats what I have done Dave.
rnd.Next(50)
rnd2.Next(50)
|
|
|
|
|
They are both created at the same time, so the seed is the same. Create them with different seeds.
|
|
|
|
|
Even this does not help
Random rnd = new Random();
Random rnd2 = new Random();
int newNo = 0;
for (int i = 0; i < 5; i++)
{
newNo = rnd2.Next(50);
myIntegerCollection.Add(i);
myEmployeeCollection.Add(new Employee(100 + i,rnd.Next(50),("name" + newNo)));
}
|
|
|
|
|
You clearly did not listen to what I said. Now go through the docs and look for seed, and the constructor for the Random class.
|
|
|
|
|
Hey guys why does everyone act so pricy and rude. If I have to go through all that then why the hell do we have this forum. Now tell me how do I plant this seed of yours.
|
|
|
|
|
This[^] 2 page article explains why you're getting the same forboth and the solution is on page 2.
humayunlalzad wrote: why does everyone act so pricy and rude. If I have to go through all that then why the hell do we have this forum.
Because this forum isn't meant to be a substitute for searching MSDN or exploring the internet. It's here to help when those have failed, otherwise it'd be a load of pointless and unstructured repetition.
Dave
|
|
|
|
|
You are wrong Dave. If I have to search, I can even find God. Forums are for sharing your knowledge, so that the other person, does not go through time consuming searches.
Instead of going through all these advices you should do what erfi did, be a lil more specific about the answer.
|
|
|
|
|
humayunlalzad wrote: You are wrong Dave.
Actually, Dave is right.
Forums are for helping out when you when the documentation isn't sufficient or you don't know where to look in the documentation. It is not a replacement for using a search engine or reading documentation however much you might want it to be.
You got an answer which gave you enough information to read the documentation. When you read the documentation you will get a lot of other information along with the answer which will give you greater understanding of that area.
Now, take some time to calm down and understand what you are being told and think about why you are being told that. People here want to help. But, we are only prepared to help those who help themselves. It took me a while to understand that, and once I did it started to open up so many doors to me.
|
|
|
|
|
Thanx Colin. I was wrong. And I have understood that.
|
|
|
|
|
leppie I am sorry for being rude. I should have followed your clue. But I guess I was feeling lazy.
|
|
|
|