Crystal reports Crystal报告正在与Com端口通话

Crystal reports Crystal报告正在与Com端口通话,crystal-reports,serial-port,Crystal Reports,Serial Port,我们使用Crystal创建收据,使用打印机的USB端口连接器。我们现在希望Crystal“ping”串行端口以打开现金提取。有没有办法让Crystal做到这一点?这取决于连接、使用的打印机类型和现金抽屉。既然您没有提供crystal可以与什么语言交互(activex、dll)?一旦提供更多信息,我将再次编辑此答案 编辑:好的,可能值得使用串行activex,例如,并通过MSComm.ocx写入串行端口。弹出现金抽屉的相应代码取决于硬件。(你能提供更多关于这方面的信息吗?)我还需要知道crysta

我们使用Crystal创建收据,使用打印机的USB端口连接器。我们现在希望Crystal“ping”串行端口以打开现金提取。有没有办法让Crystal做到这一点?

这取决于连接、使用的打印机类型和现金抽屉。既然您没有提供crystal可以与什么语言交互(activex、dll)?一旦提供更多信息,我将再次编辑此答案

编辑:好的,可能值得使用串行activex,例如,并通过MSComm.ocx写入串行端口。弹出现金抽屉的相应代码取决于硬件。(你能提供更多关于这方面的信息吗?)我还需要知道crystal报告是如何生成的-是否有第三方源代码可供你访问以生成报告(同样,请提供一个示例代码,突出显示报告生成的位置?例如下面的伪代码)

加载水晶报告 打印出来 ; 这里是您需要发出代码发送到串行端口以打开现金抽屉的地方 希望这有帮助, 顺致敬意,
Tom。

如果您将收据打印到USB端口,您将无法通过ping COM端口从Crystal打开抽屉

您可以尝试创建一个连接到COM端口的windows通用文本打印机。然后转到“属性”并选择“打印机命令”选项卡,然后在“开始打印”作业中输入打开抽屉的代码。这将在每次向打印机发送作业时发送代码。然后在收到收据后立即向新打印机发送一份空报告。那把戏对我有用


您必须使用的代码取决于抽屉/打印机品牌

打印机是否连接到现金抽屉上?不,打印机与现金抽屉无关。我想问的是,“crystal能用什么语言交流…”。假设Crystal can talk COM有人有串行端口代码吗?@Jose:很好的解决方案,但是…这意味着Crystal reports将使用一台打印机,这意味着需要两次打印作业,一个用于报告,另一个使用某种转义码序列通过通用文本打印机打开抽屉。请注意,剩下的问题是报告是如何生成的-是通过调用ActiveX crystal reports的另一个程序(如VB.NET/C)生成的吗…@Tommieb75:我假设是这样的MrTelly无法修改调用报表的程序。我曾经定制过不能更改的罐装POS软件,并提出了一些解决此类问题的方法。如果现金抽屉连接到打印机,则他可以使用“开始打印”作业通过打印机驱动程序发送代码。但在这种情况下,他将不得不向不同的打印机发送两份打印作业。参见Telly先生在问题上方的评论,现金抽屉没有连接到打印机,你认为如何?:)Jose的经验和我的情况是一样的,我们不能改变代码,在这种情况下,两份打印工作可能就是答案。它很难看,但当你没有来源的时候有点优雅。 load crystal report print it ; Here is where you need to emit a code to send to serial port to open cash drawer