【delphi开源代码栏目提醒】:本文主要为网学会员提供BKJZ_Browser_u.pas,希望对需要BKJZ_Browser_u.pas网友有所帮助,学习一下!
{
unit name : BKJZ_Browser_U
Author : 李涛
Create date: 2005-06-28 11:20:33
description: 结帐管理单元
}
unit BKJZ_Browser_U;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BaseBrowser_Form_U, StdCtrls, Buttons, ExtCtrls, Grids, Mask, Public_Unit_U,
Menus, DB, ADODB, printers;
type
TBKJZ_Browser = class(TBaseBrowser_Form)
GroupBox2: TGroupBox;
JZFS_StringGrid: TStringGrid;
GroupBox3: TGroupBox;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit1: TEdit;
Edit2: TEdit;
FKFS_List: TComboBox;
Label1: TLabel;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
Label9: TLabel;
Label10: TLabel;
ListBox1: TListBox;
Pro_ADO: TADOQuery;
GroupBox1: TGroupBox;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label2: TLabel;
Label7: TLabel;
Label3: TLabel;
Label8: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Print_Save: TMemo;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FKFS_ListEnter(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit1Enter(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
procedure JZFS_StringGridKeyPress(Sender: TObject; var Key: Char);
procedure JZFS_StringGridSelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
procedure FKFS_ListKeyPress(Sender: TObject; var Key: Char);
procedure FKFS_ListKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FKFS_ListExit(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure ADD_BitClick(Sender: TObject);
procedure JZFS_StringGridKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
TStringGrid_temp: TComponent;
procedure Sum_je; //结算金额信息
Function jc : String; //结账信息检查
procedure xsjz; //销售结账
procedure POS_xfxx_add; //添加POS消费信息
procedure POS_thxx_add; //添加POS退货信息
procedure cjkc; //冲减库存
procedure xpdy; //小票打印
procedure savexpinfo; //存储当前销售信息。已备外围程序调用打印.
public
//JZ_State: String; //全部结算,单据结算,消费项目结算
Com_y : integer; //Commond控件的Top调整. 默认35
CRect : TRect; //光标位置
C_code_Z: String; //主账单号
C_xsdd: string; //销售站点编号
Dec_id: integer; //id
C_code_son:String; //子账单号
Room: String; //结帐房间
//-------消费信息--------------
Dec_zd_sl,Dec_zdje: Real; //增单数量,增单金额
yj: Real;
dec_xj: Real; //结账收取的现金
Dec_Zxfje,Dec_zkl,Dec_xfys,Dec_sjsq,Dec_zl,Dec_ml,dec_yjje,dec_wjje,Dec_yj: Real; //消费总金额,折扣率,消费应收,实际收取,找零,抹零,已结金额,未结金额,押金
dec_cbhj,dec_slhj: Real;//消费成本合计,数量合计
POS_State: String; //POS销售状态: O销售1退货
{ Public declarations }
end;
var
BKJZ_Browser: TBKJZ_Browser;
implementation
uses MainDataModule_U, MainForm_U, POS_THYY_set_u;
{$R *.dfm}
procedure TBKJZ_Browser.savexpinfo;
var
LogFile:TextFile;
LogFileName:string;
path: string;
I,L: integer;
xfbm,xfxm,xfsl,xfje,spce: string;
begin
with Print_Save do
begin
Lines.Clear;
L:=(40-length(MySelf.Print_Company)) div 4;
For I:=0 to L do
begin
spce:=spce+' ';
end;
Lines.Add(Spce+MySelf.Print_Company);
Lines.Add('-------------------------------');
Lines.Add('条码\名称 数量 金额 ');
Lines.Add('-------------------------------');
with TStringGrid(TStringGrid_Temp) do
For I:=1 to RowCount -1 do
begin
if length(Cells[1,I])=0 then
begin
Break;
end
else
begin
//商品条码
xfbm:=copy(Cells[1,I],0,15);
while Length(xfbm)<31 do
xfbm:=xfbm+' ';
Lines.Add(xfbm);
//商品名称
xfxm:=copy(Cells[2,I],0,15);
while Length(xfxm)<15 do
xfxm:=xfxm+' ';
//数量
xfsl:=Cells[6,I];
while Length(xfsl)<7 do
xfsl:=' '+xfsl;
//合计金额
xfje:=Cells[7,I];
while Length(xfje)<7 do
xfje:=' '+xfje;
end;
Lines.Add(xfxm+xfsl+xfje);
xfxm:='';
xfsl:='';
xfje:='';
Next;
end;
Lines.Add('-------------------------------');
Lines.Add('应收总额:'+FloatTOStr(Dec_zxfje)+' 收款员:'+MySelf.User_name);
with JZFS_StringGrid do
For I:=1 to Rowcount-1 do
begin
if Length(Cells[1,I])=0 then Break;
Lines.Add(Cells[1,I]+' '+Cells[2,I]);
end;
Lines.Add('找零:'+Label10.Caption);
Lines.Add('-------------------------------');
Lines.Add('交易时间:'+DateTimeToStr(now));
Lines.Add('据号:'+C_code_z);
Lines.Add('-------------------------------');
Lines.Add(' 欢迎光临 ');
Lines.Add('-------------------------------');
Lines.Add('MySelf.Print_Company');
Lines.Add('电话:'+MySelf.Print_Phone);
//当前应用程序路径
getdir(0,path);
LogFileName:=path+'\Printinfo.txt';
Print_Save.Lines.SaveToFile(LogFileName);
end;
end;
procedure TBKJZ_Browser.xpdy;
var
I,L: integer;
xfbm,xfxm,xfsl,xfje,spce: string;
procedure SetPaperHeight(Value:integer);
var
Device : array[0..255] of char;
Driver : array[0..255] of char;
Port : array[0..255] of char;
hDMode : THandle;
PDMode : PDEVMODE;
begin
//file:// 自定义纸张最小高度 127mm
//if Value < 127 then Value := 127;
// file:// 自定义纸张最大高度 432mm
//if Value > 432 then Value := 432;
Printer.PrinterIndex := -1; //-1使默认打印机
Printer.GetPrinter(Device, Driver, Port, hDMode);
if hDMode <> 0 then
begin
pDMode := GlobalLock(hDMode);
if pDMode <> nil then
begin
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERSIZE or DM_PAPERLENGTH;
//打印页大小
pDMode^.dmPaperSize := DMPAPER_USER;
//打印页长度
pDMode^.dmPaperLength := Value * 10;
pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
//默认打印源
pDMode^.dmDefaultSource := DMBIN_MANUAL;
Printer.SetPrinter(Device,Driver,Port,hDMode);
GlobalUnlock(hDMode);
end;
end;
Printer.PrinterIndex := -1;
end;
begin
SetPaperHeight(200);
Printer.BeginDoc;
printer.canvas.Font.Name:='Courier 10Cpi';
L:=(40-length(MySelf.Print_Company)) div 4;
Printer.Canvas.Font.Size:=10; //字体大小
printer.Canvas.Font.Style:=[fsBold]; //粗体
For I:=0 to L do
begin
spce:=spce+' ';
end;
printer.Canvas.TextOut(0,15,Spce+MySelf.Print_Company);
Printer.Canvas.Font.Size:=9; //TextOut(列,行)
printer.Canvas.Font.Style:=[];
printer.Canvas.TextOut(0,50,'-------------------------------');
printer.Canvas.TextOut(0,75,'条码\名称 数量 金额 ');
printer.Canvas.TextOut(0,115,'-------------------------------');
L:=130;
with TStringGrid(TStringGrid_Temp) do
For I:=1 to RowCount -1 do
begin
if length(Cells[1,I])=0 then
begin
Break;
end
else
begin
//商品条码
xfbm:=copy(Cells[1,I],0,15);
while Length(xfbm)<31 do
xfbm:=xfbm+' ';
printer.Canvas.TextOut(0,L,xfbm);
Inc(L,
上一篇:
frmBasicSetting.frm
下一篇:
“政治先于社会”:认同政治学的政治与社会概念