点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我正在使用 VB.Net ,MS Sql和Crystal Reports开发小型POS系统。 我可以使用Cry Rep Viewer轻松查看报告。 但是,当我尝试在运行时打印帐单时,报告将为空。 以下是我在该过程中执行的顺序。
- 生成账单编号
- 从库存中扣除数量
- 将交易从临时表添加到最终销售表
- 打印账单
- 删除临时表事务
- 清除下一笔交易
但是我的问题出在票据打印过程中。 Bill不会从销售表中提取必要的记录。 以下是我的打印账单和最终交易的完整代码。 (我正在使用自己的一些方法和函数,这些方法和函数是来自另一个类的,并且我还使用了用于测试的修订单)
我还要附上2张钞票。 第一个是从Cry Report Viewer中查看和导出的一个。 第二个是有问题的,即使表中存在记录,它也为空。 有人可以在这件事上给我建议吗?
'打印帐单 现金不足,余额则加倍 Dim crepBill作为新的repBill crepBill.SetDatabaseLogon(" sa",dbPwd) 现金= Val(Me.txtCash.Text) 余额= Val(Me.txtBalance.Text) crepBill.RecordSelectionFormula =" {TB_SALES.bill_no} ='"&" 000015"&"'" crepBill.DataDefinition.FormulaFields(" txtCash")。Text = Format(cash,"#0.00") crepBill.DataDefinition.FormulaFields(" txtBal")。Text = Format(balance,"#0.00") crepBill.PrintToPrinter(1,False,0,0) crepBill.Dispose()
私人子endCurrentTransaction() 尝试 Dim sqlTempBill As String =" SELECT * FROM tb_transactions其中cur_user ='"&curUser&"'" Dim sqlSales As String =" SELECT * FROM tb_sales where bill_no ="" '获取帐单号 昏暗的newBillNo作为字符串= generateBillNo() '减少IT数量 Dim tempBill作为DataTable tempBill = myTbClass.myFunctionFetchTbData(sqlTempBill) Dim i As Integer = 0 双倍的暗淡数量= 0 Double的Dim trQty = 0 昏暗更新数量为双精度= 0 对于i = 0到tempBill.Rows.Count-1 当前数量= 0 '获取当前库存数量 Dim sqlgetCurQty As String ="从tb_stock中选择cur_qty,其中it_batch_code ='"&tempBill.Rows(i).Item(" it_batch_code")&"' conn.Open() 昏暗的SqlCmdCurQty作为新的SqlCommand(sqlgetCurQty,conn) Dim DataReadercurQty为SqlDataReader = SqlCmdCurQty.ExecuteReader 而DataReadercurQty.Read() curQty = DataReadercurQty.Item(0) 结束时间 DataReadercurQty.Close() conn.Close() trQty = tempBill.Rows(i).Item(" qty") UpdatedQty = curQty-trQty Dim sqlUpdateQtyString As String =" UPDATE tb_stock SET cur_qty ="&Math.Round((updatedQty),3)&" where it_batch_code ='"&tempBill.Rows(i).Item(" it_batch_code")&"'" conn.Open() 昏暗的SqlCmdQty作为新的SqlCommand(sqlUpdateQtyString,conn) SqlCmdQty.ExecuteNonQuery() conn.Close() '增加销售 昏暗的tempTbSales作为数据表 tempTbSales = myTbClass.myFunctionFetchTbData(sqlSales) Dim dataRow为DataRow = tempTbSales.NewRow dataRow(" it_code")=修剪(tempBill.Rows(i).Item(" it_code")) dataRow(" it_batch_code")=修剪(tempBill.Rows(i).Item(" it_batch_code")) dataRow(" it_name")=修剪(tempBill.Rows(i).Item(" it_name")) dataRow(" buy_price")= Math.Round(tempBill.Rows(i).Item(" buy_price"),3) dataRow(" sell_price")= Math.Round(tempBill.Rows(i).Item(" sell_price"),3) dataRow(" qty")= Math.Round(tempBill.Rows(i).Item(" qty"),3) dataRow(" gross_val")= Math.Round(tempBill.Rows(i).Item(" gross_val"),3) dataRow(" discount_val")= Math.Round(tempBill.Rows(i).Item(" discount_val"),3) dataRow(" net_val")= Math.Round(tempBill.Rows(i).Item(" net_val"),3) dataRow(" profit_profile")=修剪(tempBill.Rows(i).Item(" profit_profile")) dataRow(" discount_profile")=修剪(tempBill.Rows(i).Item(" discount_profile")) dataRow(" cus_name")=修剪(tempBill.Rows(i).Item(" cus_name")) dataRow(" tr_type")=修剪(cmbTrans.Text) dataRow(" cr_card_type")=修剪(cmbCardType.Text) dataRow(" card_no")=修剪(txtCardNo.Text) dataRow(" bill_no")= newBillNo dataRow(" discount_profile")=修剪(tempBill.Rows(i).Item(" cus_name")) dataRow(" cur_user")= curUser dataRow(" added_date")= curServerDateTime tempTbSales.Rows.Add(dataRow) 调用myTbClass.MyMethodUpdateTable(sqlSales,tempTbSales) 下一个 我= 0 '打印帐单 现金不足,余额则加倍 Dim crepBill作为新的repBill crepBill.SetDatabaseLogon(" sa",dbPwd) 现金= Val(Me.txtCash.Text) 余额= Val(Me.txtBalance.Text) crepBill.RecordSelectionFormula =" {TB_SALES.bill_no} ='"&" 000015"&"'" crepBill.DataDefinition.FormulaFields(" txtCash")。Text = Format(cash,"#0.00") crepBill.DataDefinition.FormulaFields(" txtBal")。Text = Format(balance,"#0.00") crepBill.PrintToPrinter(1,False,0,0) crepBill.Dispose() '删除临时账单表 对于i = 0到tempBill.Rows.Count-1 tempBill.Rows(i).Delete() 下一个 调用myTbClass.MyMethodUpdateTable(sqlTempBill,tempBill) 重置前端 调用loadBill() 调用clearCurrentTransaction() 调用clearCurrentSubTotals() 调用clearCurCashBalance() '将账单号增加1 调用gainBillNo() txtItCode.Focus() 异常捕获 MsgBox("此错误是在endCurrentTransaction()处生成的) 结束尝试 结束
(15.8 kB)
在调用
之前,您需要添加以下行:
这实际上将运行报表,以便在其中包含数据。
-Dell
谢谢。 我会尝试
一周热门 更多>