|
We have some rdlc reports, which I present on a web form report viewer.
I've used .Net Framework for all our live apps, so I'm not familiar with all the new tools.
I've been trying to find a way forward into Core, but can't find a solution to the report viewer.
It seems Microsoft abandoned this feature.
I've Googled, all I see are 3rd party libraries which cost.
Am I stuck on Framework? I've even tried exporting the report to pdf, and using an iframe or div to display, but it's messy, and overflowed somehow. There are no page controls, etc.
Senior Developer
|
|
|
|
|
It's an absolute mess. After years of complaining about the lack of SSRS support in MVC, then in .NET Core, and now in .NET, Microsoft's official response[^] is that you have to pay for PowerBI Premium, and move all of your reports to their portal.
There are some free third-party libraries which provide limited SSRS support - for example:
- lkosson/reportviewercore[^] - No interactive web control for previewing or entering parameters; no SQL Spatial types support; workaround required for image support on Linux;
- alanjuden/MvcReportViewer[^] - Not updated in the last five years; interactive web viewer uses Bootstrap 3; there are a few forks[^], but I've not seen anything newer that the original;
So far, we've stuck with MVC5 and embedded the WebForms control. If we want to update to .NET 6/7/+, we'll probably try to piece something together from those libraries.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Thanks. Has anyone tried the 3rd party ones like Syncfusion?
|
|
|
|
|
We are in the process of developing an online permitting application that collects data and allows the client to make payment(s). I have been tasked with determining what the best option(s)/version(s) are for UI and backend development.
Some suggested technologies include .NET 5.0-7.0; .NET core 2.0; .NET framework 4.5.2-4.8; Java 15-16; JavaScript ESMA Script 2020-2022; and VB.NET 15.5-16.9.
I am a novice and am not very familiar with any of these newer technologies.
Any suggestions for best resources for seeking guidance would be appreciated. If this is not the proper forum for such a request, please advise.
Thanks.
|
|
|
|
|
.NET and .NET Core official support policy[^]
.NET Core 2.x is out of support, and should not be used - support for 2.2 ended in December 2019.
The same goes for .NET 5 - support ended in May last year.
If you decide to go with .NET, your choices are:
- .NET 6 - The current "long-term support" release, supported until November 2024;
- .NET 7 - The current "short-term support" release, supported until May 2024;
- .NET 8 - Due to be released in November 2023, this will be the next LTS release;
NB: "Support" in this case means actively receiving security patches. The out-of-support versions will still work, but they may contain security vulnerabilities which will remain unpatched. It's always best to keep your application up-to-date, and updates tend to be reasonably easy.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Richard, thank you! This is very helpful and I appreciate you taking the time to respond.
|
|
|
|
|
Most folks on here are going to suggest a Microsoft solution. But, I won't. Muwahahaha.
This is a very open ended discussion that could go on for weeks. But, if you're a novice that's just overkill and will only kill the vibe. Start with a minimal framework and eventually learn how it works under the hood. Emphasis on minimal. So many web developers think they're web developers but they have no idea how React works under the hood for instance.
Anyway, I would suggest a MERN stack for a novice. Mainly because it's popular enough to Google how-tos and you should be learning React and Node anyway. Forget .NET for now and master JavaScript first. People never do. Master it and set yourself apart.
Udemy has several courses on it, etc. too. Eventually, you'll want to learn proper relational DB design, etc. but save that for later. Because you'll have a lot to learn right now, including polyfills, ponyfills, browser quirks, accessibility, etc.
Note: Stay far, far away from Angular if you want to be a good web developer.
Jeremy Falcon
|
|
|
|
|
Thank you, Jeremy! I appreciate your assistance.
|
|
|
|
|
|
Thank you, Taazaa Inc! Lots of good references!
|
|
|
|
|
learning this concept.
when do i want to use min / max heights / widths?
inside css grid and outside
kindly provide a codpen with some examples
a real world example
thank you
|
|
|
|
|
|
thanks, Richard... my first post here
when there are 2 values say width: min(300px, 500px) 300px is applied because its smallest.
got that
my struggle is understanding when i would want to use a min()?
under what circumstances would a min() or min(300px, 500px) be useful?
my appologies if i am confusing this. it is simply a tough concept for me
maybe go slow for me simplify as much as possible
|
|
|
|
|
You would not choose min(300px, 500px) , as that makes no sense: 300 is always smaller than 500. It is used when you want to select the smallest of a set of different value types. See the example at CSS min() function[^], which will select either 50% of the width of the div element, or 300 pixels if that is smaller. So the selected element will not be larger than 300 pixels wide.
|
|
|
|
|
The reason you got downvoted most likely is that you asked for a lot of work in the reply (real world code examples), but you didn't put a great amount of effort into the question yourself. Remember, we're happy to help but nobody here works for free. Our time is also valuable.
That being said, the most common reason people need to deal with a minimum value of anything in web development is with responsiveness and scaling as a result of it. The browser (and thus viewport) can be resized when using a desktop computer. If the user sizes the browser too small, sometimes you need a guarantee an element/container maintains at least a certain size. Or maybe you want to scale down font size with a smaller viewport while ensuring it doesn't get too small, etc. Whatever the case, responsiveness is the usual reason they are used.
The max size is used less in practice. But sometimes it can useful when going in the opposite direction and making sure things don't scale too large, if say the user is on an 8K display, etc.
Jeremy Falcon
|
|
|
|
|
Jeremy Falcon wrote: but nobody here works for free. ER, quite the opposite really.
|
|
|
|
|
Touché
Jeremy Falcon
|
|
|
|
|
Hello,
I am creating a User registration form using React JS and as I have defined the fields and its validations along with the submit handler, it does not console log Hello World after pressing submit button. It doesn't seem to function at all. I am sharing my code below:
import React, { useState } from "react";
import { useForm } from "react-hook-form";
import * as yup from "yup";
import { yupResolver } from "@hookform/resolvers/yup";
import "./Userform.css";
import axios from "axios";
function Userform() {
const schema = yup.object().shape({
name: yup.string().required("Name is required"),
dobOrAge: yup.string().required("Age is required"),
sex: yup.string().required("Sex is required"),
mobile: yup
.string()
.matches(
/^[6-9]\d{9}$/,
"Mobile number must be a valid Indian mobile number"
)
.nullable(),
idType: yup.string().required("ID type is required"),
id: yup.string().when("idType", {
is: "Aadhar",
then: yup
.string()
.matches(/^\d{12}$/, "Govt Id must be a valid 12-digit numeric string"),
otherwise: yup
.string()
.matches(
/^[A-Za-z]{5}\d{4}[A-Za-z]{1}$/,
"Govt Id must be a valid 10-digit alpha-numeric string"
),
}),
email: yup.string("Email must be a valid email address").nullable(),
emergencyContactNumber: yup
.string()
.matches(
/^[6-9]\d{9}$/,
"Emergency Contact Number must be a valid Indian mobile number"
)
.nullable(),
guardianTitle: yup.string().nullable(),
guardianName: yup.string().nullable(),
address: yup.string().nullable(),
country: yup.string().nullable(),
state: yup.string().nullable(),
pincode: yup.string().nullable(),
city: yup.string().nullable(),
occupation: yup.string().nullable(),
nationality: yup.string().nullable(),
religion: yup.string().nullable(),
maritalStatus: yup.string().nullable(),
bloodGroup: yup.string().nullable(),
});
const resolver = yupResolver(schema);
const {
register,
handleSubmit,
reset,
formState: { errors },
} = useForm({
resolver,
});
const [message, setMessage] = useState(null);
const onSubmithandler = (data) => {
console.log(data);
};
return (
<div className="form-container">
<form onSubmit={handleSubmit(onSubmithandler)}>
<div>
<h2 className="form-heading">Personal Details</h2>
<label className="form-label"> Name: </label>
<input
className="form-input"
type="text"
placeholder="Enter your full name"
{...register("name", { required: true })}
/>
{errors.name && <p className="form-error">{errors.name.message}</p>}
</div>
<div>
<label className="form-label">Sex :</label>
<input
className="form-input"
type="text"
{...register("sex", { required: true })}
/>
{errors.sex && <p className="form-error">{errors.sex.message}</p>}
</div>
<div>
<label className="form-label">Mobile:</label>
<input className="form-input" type="text" {...register("mobile")} />
{errors.mobile && (
<p className="form-error">{errors.mobile.message}</p>
)}
</div>
<div>
<label>
ID Type:
<select {...register("idType")}>
<option value="">Select ID Type</option>
<option value="Aadhar">Aadhar</option>
<option value="PAN">PAN</option>
</select>
{errors.idType && <p>{errors.idType.message}</p>}
</label>
<label>
Govt Issued ID:
<input type="text" {...register("id")} />
{errors.id && <p>{errors.id.message}</p>}
</label>
</div>
<h2 className="form-heading">Contact Details</h2>
<div>
<label className="form-label">Email:</label>
<input className="form-input" type="email" {...register("email")} />
{errors.email && <p className="form-error">{errors.email.message}</p>}
<label className="form-label">Emergency contact number:</label>
<input
className="form-input"
type="text"
{...register("emergencyContactNumber")}
/>
{errors.emergencyContactNumber && (
<p className="form-error">
{errors.emergencyContactNumber.message}
</p>
)}
</div>
<div>
<label className="form-label">Guardian Details:</label>
<select className="form-select" {...register("guardianTitle")}>
<option value="Mr.">Mr.</option>
<option value="Mrs.">Mrs.</option>
</select>
<input
className="form-input"
type="text"
{...register("guardianName")}
/>
{errors.guardianName && (
<p className="form-error">{errors.guardianName.message}</p>
)}
</div>
<h2 className="form-heading">Address Details</h2>
<div>
<label className="form-label">Address:</label>
<input className="form-input" type="text" {...register("address")} />
{errors.address && (
<p className="form-error">{errors.address.message}</p>
)}
<label className="form-label">Country:</label>
<input className="form-input" type="text" {...register("country")} />
{errors.country && (
<p className="form-error">{errors.country.message}</p>
)}
</div>
<div>
<label className="form-label">State:</label>
<input className="form-input" type="text" {...register("state")} />
{errors.state && <p className="form-error">{errors.state.message}</p>}
</div>
<div>
<label className="form-label">Pincode:</label>
<input className="form-input" type="text" {...register("pincode")} />
{errors.pincode && (
<p className="form-error">{errors.pincode.message}</p>
)}
</div>
<div>
<label className="form-label">City:</label>
<input className="form-input" type="text" {...register("city")} />
{errors.city && <p className="form-error">{errors.city.message}</p>}
</div>
<h2 className="form-heading">Other Details</h2>
<div>
<label className="form-label">Occupation</label>
<input
className="form-input"
type="text"
{...register("occupation")}
/>
{errors.occupation && (
<p className="form-error">{errors.occupation.message}</p>
)}
</div>
<div>
<label className="form-label">Religion</label>
<select className="form-select" {...register("religion")}>
<option value="Hindu">Hindu</option>
<option value="Muslim">Muslim</option>
<option value="Christian">Christian</option>
<option value="Sikh">Sikh</option>
<option value="Jain">Jain</option>
<option value="Buddhist">Buddhist</option>
</select>
</div>
<div>
<label className="form-label">Marital status</label>
<select className="form-select" {...register("marital")}>
<option value="Married">Married</option>
<option value="Unmarried">Unmarried</option>
</select>
</div>
<div>
<label className="form-label">Blood Group</label>
<select className="form-select" {...register("blood")}>
<option value="A">A</option>
<option value="B">B</option>
<option value="AB">AB</option>
<option value="O">O</option>
</select>
</div>
<div>
<label className="form-label">Nationality</label>
<input
className="form-input"
type="text"
{...register("nationality")}
/>
{errors.nationality && (
<p className="form-error">{errors.nationality.message}</p>
)}
</div>
<button type="submit">Submit</button>
{message && <p>{message}</p>}
</form>
</div>
);
}
export default Userform;
I am filling in the form but as I submit it is not showing Hello World. Please help as to what should be done.
|
|
|
|
|
Hello friends,
I'm testing sciter (very impressed so far!) for a wrapper around a local intranet web page.
The intranet page's ssl certificate (https://intranet.local) is signed with the local Windows CA; the CA's root certificate is installed in Windows.
When I open the intranet page in Firefox etc. the site's certificate is accepted just fine.
Using scapp.exe with main.html <iframe src="https://intranet.local/"></iframe> it complains about the cerificate and even accepting the cert does not work.
Anything I can do here?
TIA!
|
|
|
|
|
You may have noticed this is a forum for web development. It sounds like you're having issues with a third-party application. If this is what you're referring to, then you may have better luck posting your question in the article's comments.
It could be that this app, scapp.exe, is within a different environment. For instance, you can use curl on Windows, but that doesn't mean it'll use the Windows CA store by default. But again, you'd have better luck asking for help with the author of the application and/or support for the application, rather than asking a general web development forum for help.
Jeremy Falcon
|
|
|
|
|
Hi Jeremy,
thanks for your reply.
Actually, scapp.exe is from the sciter examples itself as referred at https://sciter.com/scapp/
"ScApp – standalone Sciter executable". Sorry for not mentioning that. I suppose it's not a third party app?
What forum do you suggest I can ask for help here?
TIA!
|
|
|
|
|
|
I need to center a text vertically (and horizontally) along the whole page, and for that I need to setup the height property as relative, respectively whole page. I have tried:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
</script>
<style>
body {
font-family: Arial;
color: #f9f9ff;
background-color:#293138;
}
.center-text {
height:100%;
display: flex;
flex-direction: column;
justify-content: center;
}
</style>
</head>
<body>
<div class="center-text">
Test
</div>
</body>
</html>
How can I achieve this ?
|
|
|
|
|
|
Excellent ! It works. Thanks!
|
|
|
|
|