HighAley wrote: ↑Tue Dec 17, 2019 2:53 pm
Hello.
Please, send us a sample by email with a link to this topic.
Thank you.
Hello,
Please check this code that resolve the problem but i know that is not a proper way.
after that if the problem not found, i try to prepare sample.
Thank you.
Code: Select all
import React from 'react';
import { getSoftRequests } from '../../../actions/softRequests/softReqActions';
import { connect } from 'react-redux';
import PleaseWait from '../../Utils/PleaseWait'
import Alert from '../../../components/CustomComponent/MySnackbarContent'
import { MESSAGE_TYPE } from '../../../constants/modalType'
import SoftRequestFilters from '../SoftRequestFilter'
import getVisibleSoftRequests from '../../../selectors/softRequestSel'
class SoftRequestsRPT1 extends React.Component {
constructor(props) {
super(props);
}
//Actually i want to have a correct version of this function
setData = () => {
let vC = document.getElementById("viewerContent")
if (vC) {
vC.innerHTML = "";
this.report = new window.Stimulsoft.Report.StiReport()
this.report.loadFile("reports/RequestRPT1.mrt");
const { sRequests } = this.props;
var dsSRC = new window.Stimulsoft.System.Data.DataSet();
dsSRC.readJson(sRequests);
this.report.regData("SRC", null, dsSRC);
var options = new window.Stimulsoft.Viewer.StiViewerOptions();
this.viewer = new window.Stimulsoft.Viewer.StiViewer(options, "StiViewer", false);
this.viewer.report = this.report;
this.viewer.renderHtml("viewerContent");
}
}
componentDidMount() {
this.props.getSoftRequests();//load data
}
render() {
const { loading, error, message } = this.props;
if (!error)
return (
<div>
<SoftRequestFilters />{/* Filter Component with button to refresh the loaded data,at here named 'sRequests' */}
<br />
{loading ? <PleaseWait /> : <div id="viewerContent"></div>}
</div>
)
//error in load data
else if (message && message.messageType && (message.messageType === MESSAGE_TYPE.SOFTREQUEST_FAILED)) {
return (<Alert className=" mr-3" variant={'error'} message={error} />)
}
else {
return <h1></h1>
}
}
componentDidUpdate(prevProps) {
//check if new data from user requested
if (prevProps.loading === true && this.props.loading === false)
this.setData()
}
}
export default connect(
state =>
({
loading: state.softReq.loading,
sRequests: getVisibleSoftRequests(state.softReq.items, state.softRequestStatus),
error: state.softReq.error,
message: state.messages,
})
,
dispatch =>
({
getSoftRequests() {
dispatch(getSoftRequests())
}
})
)(SoftRequestsRPT1)