-1
我试图打印出的收据拿给这样有高利润的顶部由它没有显示的方式这样在其他打印机也显示了在某些打印机正常的形状就这样表示的PIC我发布,这是在水晶报表设计,这是这部分收据具有高利润率最高在某些打印机
DataTable Receipt_Invoice = new DataTable("Receipt_Invoice");
string SQL_Str = " SELECT INVC.INVC_ID, INVC.INVC_No, INVC.INVC_TYPE, INVC.INVC_Date, INVC.Status, INVC.Reverse, INVC.Comment, INVC.Hold, INVC.CreateDate, " +
" INVC.Post, INVC.PostedDate, INVC.Cust_ID, C.Code AS Cust_Code, C.First_Name, C.Phone, INVC.Cashier_ID, UC.Name AS Cashier_Name, INVC.SCom_ID, INVC.Store_ID, INVC.WS, INVC.Seller_ID, " +
" II.Serial, II.Seller_ID AS ItemSeller, U.Name AS Seller_Name, II.Item_ID, dbo.Items.Name AS Item_Name, dbo.Items.UPC, dbo.Items.ALU, II.Item_Serial, II.Qty, II.Cost, " +
" II.PriceLvl_ID, II.Orig_Price, II.Tax_ID, II.Tax_Perc, II.Tax_Amt, II.Price, II.Price_WOT, II.Taxable, II.Non_Invn, II.Sale_ID, { fn IFNULL ((SELECT Name FROM dbo.Sale WHERE (SCom_ID = " + Function.SCom_Active_ID.ToString() + ") AND (Sale_ID = II.Sale_ID)), 0) } AS Sale_Name, INVC.Num_Print, INVCT.Tax_Amt AS Tax_Amt_INVC, " +
" INVCT.SubTotal, INVCT.Disc_Amt, INVCT.Disc_Perc, INVCT.NetTotal, INVCT.Fee_Amt, INVCT.Amt, INVCT.Taken, INVCT.Given, INVCT.Paid_Total, INVCT.Rimining_Total, " +
" dbo.Items.Name2 AS Items_Name2, dbo.Items.Description AS Item_Desc, dbo.Items.Grid1, dbo.Items.Grid2, dbo.Items.Grid3, INVC.Source_Type, INVC.SO_ID, { fn IFNULL ((SELECT SO_No FROM dbo.Sales_Order WHERE (SO_ID = INVC.SO_ID)), 0) } AS SO_No, II.Item_Disc_Amt, II.Item_Disc_Perc, Itu.UDF1, Itu.UDF2, Itu.UDF3, Itu.UDF4, Itu.UDF5, Itu.UDF6, Itu.UDF7, Itu.UDF8, Itu.UDF9, Itu.UDF10, C.Last_Name, C.Full_Name, C.Address, C.Address2, C.Email " +
" FROM dbo.UserDefnation AS U RIGHT OUTER JOIN dbo.Invoice_Item AS II ON U.ID = II.Seller_ID LEFT OUTER JOIN dbo.Items ON II.Item_ID = dbo.Items.Item_ID RIGHT OUTER JOIN " +
" dbo.Invoice AS INVC ON II.INVC_ID = INVC.INVC_ID LEFT OUTER JOIN dbo.Invoice_Tender AS INVCT ON INVC.INVC_ID = INVCT.INVC_ID LEFT OUTER JOIN dbo.UserDefnation AS UC ON INVC.Cashier_ID = UC.ID LEFT OUTER JOIN " +
" dbo.Customers AS C ON INVC.Cust_ID = C.Cust_ID RIGHT OUTER JOIN dbo.Item_UDF Itu ON Itu.Item_ID = dbo.Items.Item_ID WHERE (INVC.INVC_ID = " + INVC_ID + ") ORDER BY II.Serial";
SqlDataAdapter myAd = new SqlDataAdapter(SQL_Str, mycn);
myAd.Fill(Receipt_Invoice);
DataTable Receipt_Details = new DataTable("Receipt_Details");
SQL_Str = "SELECT dbo.Stores.Store_ID, dbo.Stores.Code, dbo.Stores.Name, dbo.Stores.Name2, dbo.Stores.Address, dbo.Stores.Phone, dbo.Stores.Mobile, dbo.Stores.Fax, " +
" dbo.Stores.Email, dbo.Stores.Logo AS LogoPhoto, dbo.Setup_Store.Header1, dbo.Setup_Store.Header2, dbo.Setup_Store.Header3, dbo.Setup_Store.Header4, " +
" dbo.Setup_Store.Header5, dbo.Setup_Store.Footer1, dbo.Setup_Store.Footer2, dbo.Setup_Store.Footer3, dbo.Setup_Store.Footer4, dbo.Setup_Store.Footer5 " +
" FROM dbo.Setup_Store INNER JOIN dbo.Stores ON dbo.Setup_Store.Store_ID = dbo.Stores.Store_ID Where dbo.Stores.Store_ID = " + Receipt_Invoice.Rows[0]["Store_ID"].ToString();
myAd = new SqlDataAdapter(SQL_Str, mycn);
myAd.Fill(Receipt_Details);
DataTable Receipt_Invoice_Settles = new DataTable("Receipt_Invoice_Settles");
SQL_Str = " SELECT IMOP.MOP_ID, dbo.PaymentMethodes.Code, dbo.PaymentMethodes.Name, dbo.PaymentMethodes.Name2, IMOP.MOP_Serial, IMOP.MOP_Date, " +
" IMOP.MOP_Value, IMOP.INVC_ID, IMOP.Serial FROM dbo.Invoice_MOP AS IMOP INNER JOIN dbo.PaymentMethodes ON IMOP.MOP_ID = dbo.PaymentMethodes.ID " +
" WHERE (IMOP.Voided = 0) AND (IMOP.INVC_ID = " + INVC_ID + ") ORDER BY IMOP.Serial ";
myAd = new SqlDataAdapter(SQL_Str, mycn);
myAd.Fill(Receipt_Invoice_Settles);
CrystalDecisions.CrystalReports.Engine.ReportDocument Rcp = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
if (System.IO.File.Exists(Application.StartupPath + @"\Reports\CR_Receipt_Invoice.rpt"))
Rcp.Load(Application.StartupPath + @"\Reports\CR_Receipt_Invoice.rpt");
else
{
Rcp = new Reports.CR_Receipt_Invoice();
}
Rcp.Database.Tables["Receipt_Invoice"].SetDataSource(Receipt_Invoice);
Rcp.Database.Tables["Receipt_Details"].SetDataSource(Receipt_Details);
Rcp.Subreports["Settles"].SetDataSource(Receipt_Invoice_Settles);
Rcp.PrintOptions.PrinterName = drs[0]["Printer_IP"].ToString().Trim();
Rcp.PrintToPrinter(1, true, 1, 1);
希望这是很清楚