医院收费小票打印简易版
function printSffp(sfsb) {
var parm = "sfsb=" + sfsb + "&fplx=1";
$.ajax({
type: "POST", //必须要用POST
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
url: "../mzsf/fpcx.aspx/printSfXP?" + parm,
success: function (result) {
if (result != false) { }
else { $.messager.alert('打印提醒', '收费记录不存在'); }
}
});
}
public bool printSfXP(string fplx, string sfsb)
{
bool result = true;
decimal decTotal = 0;
StringBuilder sb = new StringBuilder();
ResultObject mzsf1 = new BPL.mzsf.MzsfManager().GetMzsfk1(long.Parse(sfsb));
DataTable ksxxdt = DBVisitor.ExecuteTable(SqlLoad.GetFormat("ZJXP_GetKSZGxx_CF", sfsb));
if (ksxxdt.Rows.Count < 1)
{
ksxxdt = DBVisitor.ExecuteTable(SqlLoad.GetFormat("ZJXP_GetKSZGxx_YJ", sfsb));
}
DataTable dtmzsf1 = null;
ResultObject ObjBrxx = new ResultObject();
if (mzsf1.RTable.Rows.Count > 0)//收费记录存在 mz_mzsfk1
{
sb.Append(" " + Yljgmc + "\n");
sb.Append(" 结算电子凭证\n\n\n");
dtmzsf1 = mzsf1.RTable;
ObjBrxx = new BPL.Gy.GyManager().GetComplexBrxxByJzkh(dtmzsf1.Rows[0]["JZKH"].ToString());
sb.Append("就诊卡号:" + dtmzsf1.Rows[0]["JZKH"].ToString() + "\n");
sb.Append("就诊科室:" + ksxxdt.Rows[0]["KSMC"] + "\n");
sb.Append("姓名:" + dtmzsf1.Rows[0]["BRXM"].ToString() + " 性质:" + ObjBrxx.RTable.Rows[0]["XZMC"].ToString() + "\n");
sb.Append("交易日期:" + dtmzsf1.Rows[0]["SFRQ"].ToString() + "\n\n");
}
else
{
result = false;
return result;
}
//费用类型汇总
ResultObject mzsf2 = new BPL.mzsf.MzsfManager().GetMZ_MZSFK2Print(long.Parse(sfsb));
ResultObject mxro = new BPL.mzsf.MzsfManager().GetCFandYJ(long.Parse(sfsb));
StringBuilder sbmx = new StringBuilder();
if (mzsf2.RTable.Rows.Count > 0)
{
DataTable mzsf2dt = mzsf2.RTable;
int i = 0;
foreach (DataRow drsf in mzsf2dt.Rows)
{
DataRow[] dataR = mxro.RTable.Select(" FYGB='" + drsf["SFXM"].ToString() + "'");
decimal free = decimal.Parse(drsf["FYHJ"].ToString());
decTotal = decTotal + free;
i = i + 1;
sb.Append(drsf["YLMC"].ToString() + "\n");
if (dataR.Length > 0)
{
foreach (DataRow dr in dataR)
{
if (i > 14)
break;
float bl = 1.0f;
if (!string.IsNullOrEmpty(dr["zfbl"].ToString()))
bl = float.Parse(dr["zfbl"].ToString());
string strtype = string.Empty;
if (bl == 0)
strtype = "[甲]";
else if (bl == 1.0)
strtype = "[丙]";
else if (bl < 1.0 && bl > 0)
strtype = "[乙]";
bl = bl * 100;
float total = float.Parse(dr["dj"].ToString()) * float.Parse(dr["sl"].ToString());
i++;
sb.Append(SetColunms(1, dr["xmmc"].ToString()) + " " + dr["sl"].ToString() + " " + total.ToString("F2") + "\n");
}
}
}
}
sb.Append("\n");
sb.Append("==========结算信息==========\n");
sb.Append(GetArr(20, dtmzsf1.Rows[0]["DYXX"].ToString()));
sb.Append(GetArr(20, "【打印发票】如需发票请到门诊楼一层收费窗口打印"));
sb.Append("==========导诊信息==========\n");
sb.Append("医生:" + ksxxdt.Rows[0]["XM"] + " 电脑号:" + sfsb + "\n");
result = Print(sb.ToString());
return result;
}
public bool Print(string str)
{
bool result = true;
if (str == "")
{
result = false;
return result;
}
try
{
sr = new StringReader(str);
PrintDocument pd = new PrintDocument();
pd.PrintController = new System.Drawing.Printing.StandardPrintController();
pd.PrinterSettings.PrinterName = "SF";
pd.DefaultPageSettings.Margins.Top = 2;
pd.DefaultPageSettings.Margins.Left = 0;
PaperSize p = new PaperSize();
int count = Regex.Matches(str, @"\n").Count;
foreach (PaperSize ps in pd.PrinterSettings.PaperSizes)
{
int wid = ps.Width;
p.Width = ps.Width;
p.Height = 35 * count + 100;
}
pd.DefaultPageSettings.PaperSize = p;
pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
pd.Print();
}
catch (Exception ex)
{
result = false;
}
finally
{
if (sr != null)
sr.Close();
}
return result;
}
private void pd_PrintPage(object sender, PrintPageEventArgs ev)
{
Font printFont = new Font("Arial", 9);//打印字体
float linesPerPage = 0;
float yPos = 0;
int count = 0;
float leftMargin = ev.MarginBounds.Left;
float topMargin = ev.MarginBounds.Top;
String line = "";
linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics);
while (count < linesPerPage && ((line = sr.ReadLine()) != null))
{
yPos = topMargin + (count * printFont.GetHeight(ev.Graphics));
ev.Graphics.DrawString(line, printFont, Brushes.Black,
leftMargin, yPos, new StringFormat());
count++;
}
if (line != null)
ev.HasMorePages = true;
else
ev.HasMorePages = false;
}
/// <summary>
/// 根据内容进行分行
/// </summary>
/// <param name="linelen">每行字数</param>
/// <param name="text">原文字行(段落)文字</param>
/// <returns></returns>
private string GetArr(int linelen, string text)
{
string list = string.Empty;
int listcount = text.Length % linelen == 0 ? text.Length / linelen : (text.Length / linelen) + 1;
for (int j = 0; j < listcount; j++)
{
try
{
list += text.Substring(j * linelen, linelen) + "\n";
}
catch (Exception)
{
list += text.Substring(j * linelen) + "\n";
}
}
return list;
}
private string SetColunms(int linelen, string text)
{
string list = string.Empty;
string bzzd = " ";
int listcount = 0;
byte[] byte1 = Encoding.Default.GetBytes(text);
byte[] byte2 = Encoding.Default.GetBytes(bzzd);
if (linelen == 1)
{
byte[] byte3 = Encoding.Default.GetBytes("一般诊疗费(社区服务中心和乡");
listcount = byte3.Length <= byte1.Length ? 0 : byte3.Length - byte1.Length;
if (listcount != 0)
{
for (int i = 0; i < listcount; i++)
{
text += bzzd;
}
}
list = text;
}
else if (linelen == 2)
{
byte[] byte3 = Encoding.Default.GetBytes("123");
listcount = byte3.Length <= byte1.Length ? 0 : byte3.Length - byte1.Length;
if (listcount != 0)
{
for (int i = 0; i < listcount; i++)
{
text += bzzd;
}
}
list = text;
}
else
{
list = text;
}
return list;
}
效果图如下:
医院收费小票打印简易版相关推荐
- JAVA打印简易版日历
编写一个应用程序,输出某年某月的日历. package cn.edu.nefu.zhihu;import java.util.Calendar; import java.util.Scanner;pu ...
- 基于web的小票打印
早上搞了半天想做个小票打印,因为系统是基于web的,一直找控件找到一个scriptx,调好了之后发现很多功能视乎不能用,后来一查才发现收费版才有那些功能,坑爹啊 后来发现pazu这个打印控件,测试了一 ...
- oracle医务室管理系统代码,三甲医院管理系统HIS(C#版源代码) 源码大小28M
三甲医院管理系统HIS(C#版源代码) 源码大小28M 源码下载地址: (精品源码有详细软件界面截图) 本站提供几百套大型商业源码,平均一元一套,火爆下载中...... QQ:283072.28367 ...
- python车辆管理系统_Python简易版停车管理系统
本文实例为大家分享了Python简易版停车管理系统的具体代码,供大家参考,具体内容如下 import time # 最大停车数 max_car = 100 # 当前停车数,初始为0 cur_car = ...
- python实现简易版成绩管理系统_Python 实现简易版成绩管理系统!
上一次,公众号介绍了如何使用 Python 实现单链表,下面让我们一探单链表的简单应用:在命令行,实现简易版成绩管理系统. 这次的简易版成绩管理系统,主要有六大功能:增加学生信息.删除学生信息.修改学 ...
- python成绩管理系统界面-python实现简易版学生成绩管理系统
300来行python代码实现简易版学生成绩管理系统,供大家参考,具体内容如下 使用链表来实现 class Node(object): def __init__(self, data, pointer ...
- pyqt5 listview 不默认选中_pyqt5 商店小票打印的实现模板
说明 最近在用pyqt5做商店小票打印,用的是得力DL-581PW(NEW)热敏小票打印机. 商店小票打印,属于escpos打印. 在网上找了很多实现方法,看了很多相关文章,经历了很多困难,最后终于实 ...
- 学生成绩管理系统设计报告python_python实现简易版学生成绩管理系统
300来行python代码实现简易版学生成绩管理系统,供大家参考,具体内容如下 使用链表来实现 class Node(object): def __init__(self, data, pointer ...
- python简易版成绩管理系统_Python 实现简易版成绩管理系统
上一次,公众号介绍了如何使用 Python 实现单链表,下面让我们一探单链表的简单应用:在命令行,实现简易版成绩管理系统. 这次的简易版成绩管理系统,主要有六大功能:增加学生信息.删除学生信息.修改学 ...
最新文章
- element elcolumn 使用本地图片_年末了,教你如何使用Python实现上班摸鱼
- RichText设置高亮 (未完)
- 开源推荐:.Net Core3.1 + EF Core + LayUI 封装的MVC版后台管理系统
- junit 静态方法_预期异常规则和模拟静态方法– JUnit
- java hashMap缓存简单实现
- ffmpeg 下载网上m3u8的视频文件
- 自动控制原理9.4---李雅普诺夫稳定性分析
- Mac怎么读写NTFS格式?Mac电脑重新安装NTFS卷
- 【论文阅读】Generalization in Reinforcement Learning
- 手机网页通过js打开app
- 斯坦福自然语言处理(1)——三元组的使用
- Linux---挂载和卸载移动硬盘、开机自启动机械硬盘
- js 判断是否为 Android IOS IPAD IPHONE 等移动设备访问
- web学习-html(2)
- Sanity Check: SRM, AA test
- 软件测试周刊(第39期):我们必须全力以赴,同时又不抱持任何希望。
- R安装包失败解决办法
- 安装oracle有没有18030,10g 安装没有gb18030字符集
- ubuntu系统中将U盘格式化为exFAT格式
- 监狱人脸识别解决方案