简体   繁体   English

使用Java将日期参数传递给Crystal报表

[英]passing date parameters to crystal reports with java

I'm a newby with java and crysal reports. 我是Java和crysal报告的新手。 Since two days I try to create a crystal reports pdf with java and jsf. 两天以来,我尝试使用java和jsf创建水晶报表pdf。 All works fine, but when I include the passing of parameters in the code, I get the error 一切正常,但是当我在代码中包含参数传递时,出现错误

 *HTTP Status 500 - com.crystaldecisions.sdk.occa.report.lib.ReportSDKLogonException: Fehler bei der Anmeldung: Fehler bei der Anmeldung für den Benutzer 'ipc'. ClientConnectionId:b09ff5cf-3e6c-4446-9a74-21464b23ded9---- Error code:-2147217393 Error code name:dbLogonFailed*

(complete mesage see below) (完整消息见下文)

I use MSSQL Server 2008 Express. 我使用MSSQL Server 2008 Express。

Here is the Java Code: 这是Java代码:

public void openReport(String report) throws IOException, ReportSDKException, ParseException {
            System.out.println("Aufruf Open Report: " + report);
            int Project_Nr = ProjektCriteriaBean.getInstance().getSelectedProjekt().getProjekt_Nr();
            java.util.Date StartDate = ProjektCriteriaBean.getInstance().getStartDate();
            java.util.Date EndDate = ProjektCriteriaBean.getInstance().getEndDate();


            FacesContext facesContext = FacesContext.getCurrentInstance();
            ExternalContext externalContext = facesContext.getExternalContext();
            HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();
                BufferedInputStream input = null;
            BufferedOutputStream output = null;
            ReportClientDocument reportClientDoc = new ReportClientDocument();

            reportClientDoc.open("/reports/" + report, OpenReportOptions._retrieveNoReportDefinition);
            ParameterFieldController paramController = reportClientDoc.getDataDefController().getParameterFieldController();

            paramController.setCurrentValue("","Projekt",Project_Nr);
            paramController.setCurrentValue("","StartDate", StartDate);
            paramController.setCurrentValue("","EndDate",EndDate);


            try {

                input = new BufferedInputStream( (ByteArrayInputStream) reportClientDoc.getPrintOutputController().export(ReportExportFormat.PDF));
                // Init servlet response.
                response.reset();
                response.setHeader("Content-Type", "application/pdf");

                output = new BufferedOutputStream(response.getOutputStream(), DEFAULT_BUFFER_SIZE);
                // Write file contents to response.
                byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
                int length;
                while ((length = input.read(buffer)) > 0) {
                    output.write(buffer, 0, length);
                }
                // Finalize task.
                output.flush();
            } finally {
                // Gently close streams.
                close(output);
                close(input);
            }
            // Inform JSF that it doesn't need to handle response.
            // This is very important, otherwise you will get the following exception in the logs:
            // java.lang.IllegalStateException: Cannot forward after response has been committed.
            facesContext.responseComplete();
        }

It seems that that here is a problem withe the date format, passed to the parameter StartDate and EndDate. 似乎这是传递给参数StartDate和EndDate的日期格式存在的问题。 I use this parameter for the following filter in crystal reports: 我将此参数用于Crystal报表中的以下过滤器:

Datensatzfilter
{View_ProjectOverview.Auftragseingang} >= {?StartDate} and
 {View_ProjectOverview.Auftragseingang} <= {?EndDate} and
 {View_ProjectOverview.Status} = 1  

When I delete this filter, all works fine. 当我删除此过滤器时,一切正常。 When I use a sql-user without password, ll works fine, too. 当我使用不带密码的sql-user时,ll也可以正常工作。 When I use paramters without date format, all works fine, too. 当我使用不带日期格式的参数时,所有参数也可以正常工作。

Please help me, I become desperate… 请帮助我,我拼死了...

Thank you so much for your help. 非常感谢你的帮助。

Here the complete error message from Java: 这里是来自Java的完整错误消息:

 Feb 12, 2014 12:58:25 AM com.sun.faces.lifecycle.InvokeApplicationPhase execute
    WARNING: #{crystal.openReport('Projektübersicht.rpt')}: com.crystaldecisions.sdk.occa.report.lib.ReportSDKLogonException: Fehler bei der Anmeldung: Fehler bei der Anmeldung für den Benutzer 'ipc'. ClientConnectionId:b09ff5cf-3e6c-4446-9a74-21464b23ded9---- Error code:-2147217393 Error code name:dbLogonFailed
    javax.faces.FacesException: #{crystal.openReport('Projektübersicht.rpt')}: com.crystaldecisions.sdk.occa.report.lib.ReportSDKLogonException: Fehler bei der Anmeldung: Fehler bei der Anmeldung für den Benutzer 'ipc'. ClientConnectionId:b09ff5cf-3e6c-4446-9a74-21464b23ded9---- Error code:-2147217393 Error code name:dbLogonFailed
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
        at javax.faces.component.UICommand.broadcast(UICommand.java:315)
        at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
        at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
    Caused by: javax.faces.el.EvaluationException: com.crystaldecisions.sdk.occa.report.lib.ReportSDKLogonException: Fehler bei der Anmeldung: Fehler bei der Anmeldung für den Benutzer 'ipc'. ClientConnectionId:b09ff5cf-3e6c-4446-9a74-21464b23ded9---- Error code:-2147217393 Error code name:dbLogonFailed
        at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
        ... 26 more
    Caused by: com.crystaldecisions.sdk.occa.report.lib.ReportSDKLogonException: Fehler bei der Anmeldung: Fehler bei der Anmeldung für den Benutzer 'ipc'. ClientConnectionId:b09ff5cf-3e6c-4446-9a74-21464b23ded9---- Error code:-2147217393 Error code name:dbLogonFailed
        at com.crystaldecisions.sdk.occa.report.application.PrintOutputController.if(SourceFile:237)
        at com.crystaldecisions.sdk.occa.report.application.PrintOutputController.export(SourceFile:147)
        at com.crystaldecisions.sdk.occa.report.application.PrintOutputController.export(SourceFile:128)
        at com.crystaldecisions.sdk.occa.report.application.PrintOutputController.export(SourceFile:111)
        at imbpc.bean.crystal.openReport(crystal.java:132)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.el.parser.AstValue.invoke(AstValue.java:278)
        at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
        at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
        at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
        ... 27 more
    Caused by: com.crystaldecisions.reports.common.LogonFailureException: Fehler bei der Anmeldung: Fehler bei der Anmeldung für den Benutzer 'ipc'. ClientConnectionId:b09ff5cf-3e6c-4446-9a74-21464b23ded9
        at com.crystaldecisions.reports.queryengine.Connection.br(SourceFile:1799)
        at com.crystaldecisions.reports.queryengine.Connection.bs(SourceFile:505)
        at com.crystaldecisions.reports.queryengine.Connection.t4(SourceFile:2993)
        at com.crystaldecisions.reports.dataengine.dfadapter.DFAdapter.a(SourceFile:696)
        at com.crystaldecisions.reports.dataengine.dfadapter.DFAdapter.for(SourceFile:706)
        at com.crystaldecisions.reports.reportdefinition.ReportHelper.a(SourceFile:198)
        at com.businessobjects.reports.sdk.requesthandler.ReportViewingRequestHandler.long(SourceFile:957)
        at com.businessobjects.reports.sdk.requesthandler.ReportViewingRequestHandler.a(SourceFile:635)
        at com.businessobjects.reports.sdk.requesthandler.ReportViewingRequestHandler.int(SourceFile:672)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter.do(SourceFile:1943)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:660)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:166)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.a(SourceFile:528)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.call(SourceFile:526)
        at com.crystaldecisions.reports.common.ThreadGuard.syncExecute(SourceFile:102)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter.for(SourceFile:524)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter.int(SourceFile:423)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter.request(SourceFile:351)
        at com.businessobjects.sdk.erom.jrc.a.a(SourceFile:54)
        at com.businessobjects.sdk.erom.jrc.a.execute(SourceFile:67)
        at com.crystaldecisions.proxy.remoteagent.RemoteAgent$a.execute(SourceFile:716)
        at com.crystaldecisions.proxy.remoteagent.CommunicationChannel.a(SourceFile:125)
        at com.crystaldecisions.proxy.remoteagent.RemoteAgent.a(SourceFile:537)
        at com.crystaldecisions.sdk.occa.report.application.ds.a(SourceFile:186)
        at com.crystaldecisions.sdk.occa.report.application.ReportSource.a(SourceFile:1558)
        at com.crystaldecisions.sdk.occa.report.application.ReportSource.a(SourceFile:337)
        at com.crystaldecisions.sdk.occa.report.application.PrintOutputController.if(SourceFile:223)
        ... 39 more
    Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Fehler bei der Anmeldung für den Benutzer 'ipc'. ClientConnectionId:b09ff5cf-3e6c-4446-9a74-21464b23ded9
        at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
        at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254)
        at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)
        at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
        at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
        at com.crystaldecisions.reports.queryengine.driverImpl.jdbc.JDBCConnection.Open(Unknown Source)
        at com.crystaldecisions.reports.queryengine.JDBConnectionWrapper.Open(SourceFile:123)
        at com.crystaldecisions.reports.queryengine.Connection.br(SourceFile:1786)
        ... 65 more

    Feb 12, 2014 12:58:25 AM org.apache.catalina.core.StandardWrapperValve invoke
    SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/IMBProject] threw exception [com.crystaldecisions.sdk.occa.report.lib.ReportSDKLogonException: Fehler bei der Anmeldung: Fehler bei der Anmeldung für den Benutzer 'ipc'. ClientConnectionId:b09ff5cf-3e6c-4446-9a74-21464b23ded9---- Error code:-2147217393 Error code name:dbLogonFailed] with root cause
    com.microsoft.sqlserver.jdbc.SQLServerException: Fehler bei der Anmeldung für den Benutzer 'ipc'. ClientConnectionId:b09ff5cf-3e6c-4446-9a74-21464b23ded9
        at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
        at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254)
        at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)
        at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
        at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
        at com.crystaldecisions.reports.queryengine.driverImpl.jdbc.JDBCConnection.Open(Unknown Source)
        at com.crystaldecisions.reports.queryengine.JDBConnectionWrapper.Open(SourceFile:123)
        at com.crystaldecisions.reports.queryengine.Connection.br(SourceFile:1786)
        at com.crystaldecisions.reports.queryengine.Connection.bs(SourceFile:505)
        at com.crystaldecisions.reports.queryengine.Connection.t4(SourceFile:2993)
        at com.crystaldecisions.reports.dataengine.dfadapter.DFAdapter.a(SourceFile:696)
        at com.crystaldecisions.reports.dataengine.dfadapter.DFAdapter.for(SourceFile:706)
        at com.crystaldecisions.reports.reportdefinition.ReportHelper.a(SourceFile:198)
        at com.businessobjects.reports.sdk.requesthandler.ReportViewingRequestHandler.long(SourceFile:957)
        at com.businessobjects.reports.sdk.requesthandler.ReportViewingRequestHandler.a(SourceFile:635)
        at com.businessobjects.reports.sdk.requesthandler.ReportViewingRequestHandler.int(SourceFile:672)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter.do(SourceFile:1943)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:660)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:166)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.a(SourceFile:528)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.call(SourceFile:526)
        at com.crystaldecisions.reports.common.ThreadGuard.syncExecute(SourceFile:102)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter.for(SourceFile:524)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter.int(SourceFile:423)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter.request(SourceFile:351)
        at com.businessobjects.sdk.erom.jrc.a.a(SourceFile:54)
        at com.businessobjects.sdk.erom.jrc.a.execute(SourceFile:67)
        at com.crystaldecisions.proxy.remoteagent.RemoteAgent$a.execute(SourceFile:716)
        at com.crystaldecisions.proxy.remoteagent.CommunicationChannel.a(SourceFile:125)
        at com.crystaldecisions.proxy.remoteagent.RemoteAgent.a(SourceFile:537)
        at com.crystaldecisions.sdk.occa.report.application.ds.a(SourceFile:186)
        at com.crystaldecisions.sdk.occa.report.application.ReportSource.a(SourceFile:1558)
        at com.crystaldecisions.sdk.occa.report.application.ReportSource.a(SourceFile:337)
        at com.crystaldecisions.sdk.occa.report.application.PrintOutputController.if(SourceFile:223)
        at com.crystaldecisions.sdk.occa.report.application.PrintOutputController.export(SourceFile:147)
        at com.crystaldecisions.sdk.occa.report.application.PrintOutputController.export(SourceFile:128)
        at com.crystaldecisions.sdk.occa.report.application.PrintOutputController.export(SourceFile:111)
        at imbpc.bean.crystal.openReport(crystal.java:132)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.el.parser.AstValue.invoke(AstValue.java:278)
        at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
        at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
        at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
        at javax.faces.component.UICommand.broadcast(UICommand.java:315)
        at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
        at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

I got the solution: I missed to set the password in connection infos. 我得到了解决方案:我错过了在连接信息中设置密码的步骤。 So the report only works, when it uses the data from cache (no database connection needed) By passing new parameters, crystal report try to connect the database, and then the error message appears. 因此,报表仅在使用缓存中的数据时才起作用(无需数据库连接)。通过传递新参数,Crystal报表尝试连接数据库,然后出现错误消息。 I solved the problem by adding this code: 我通过添加以下代码解决了该问题:

  ConnectionInfos infos = reportClientDoc.getDatabaseController().getConnectionInfos(null);
            IConnectionInfo oldCon = infos.get(0);
            IConnectionInfo newCon = new ConnectionInfo();
            PropertyBag bag = new PropertyBag(oldCon.getAttributes());
          //  changePropertyBag(bag);
            newCon.setAttributes(bag);
            newCon.setUserName("username");
            newCon.setPassword("password");
//            newCon.setKind(ConnectionInfoKind.SQL);
            reportClientDoc.getDatabaseController().replaceConnection (oldCon, newCon, null,0);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM