?? qtsylib.c
字號:
/******************************************
qtsylib.c
前臺收銀程序的 DB-Library 函數(shù)庫
****************************************** */
#define DBMSDOS
#include <sqlfront.h>
#include <sqldb.h>
#include <dos.h>
#include <errno.h>
#include <bios.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <math.h>
#include <time.h>
#include <fcntl.h>
#include <stdarg.h>
#include <user.h>
#include <publ.h>
#include "direct.h"
#include "conscard.h"
//
/*全局變量定義*/
char Syy_No[5]; //收銀員代碼
char Syy_mm[7]; //收銀員密碼
char Syy_Name[9] = "于小蓉"; //收銀員名稱
char Bc_Name[11] = "01"; //班次
int g_lsh = 1; //流水號
int g_jycs = 0; //交易次數(shù)
int g_xsbs = 0; //銷售筆數(shù)
int g_dyys = 1000; //打印延時
char g_lsdh[5]; //連鎖店號
char g_lsdhex[5];
char g_qt_lsdh[3]; //缺省連鎖店號前兩位
char g_gzrq[6] = "00"; //工作日期
char g_scjbsj[30]; //上次交班時間
char g_fkfs[2], g_bc[7], g_now[30], g_tm[2]; // 付款方式,班次,時間變量
char g_pos[2] = "1"; //收銀機(jī)類型
//1-普通 (兼容機(jī),串口打印機(jī))
//2-普通 (兼容機(jī),并口打印機(jī))
//3-IBM收銀機(jī)
//4-富士通收銀機(jī)
double g_bx; //補(bǔ)現(xiàn)
double g_flhj[6]; //分類合計
char g_xyksy[2];
XYKLB _XykLb[20];
char *g_sjwj = "s";
char g_gz_mode[2] = "0"; //工作方式
char g_gz_modeex[5];
char g_cashcode[11] = "ytpos"; //管理員密碼
char g_scmc[81] = ""; //用戶簡稱
char g_server_thk[21]; //遠(yuǎn)程提貨卡
char g_customer[2]; //商場類型
char g_VIPsw[2]; //VIP卡首位
char g_VIPyhl[5]; //VIP卡優(yōu)惠率
double g_sl[4] =
{
1.00, 1.00, 1.00, 1.00
}; //四種稅率
char __LoginUser[11]; //登錄數(shù)據(jù)庫的用戶
char __bvalue[300];
//本地銷售單記錄格式化字符串
char __pxsd[120] = "%7d.00%8s%-20s%14.3f%19.4f%19.4f%19.4f%19.4f%1s%19.4f%6s" "%3s%6s%4s%4s%2s%1s%2s%5s%3s%1s%1s%4s%8s%8.2f%4s ";
char __xsdbuf[300]; //本地銷售單記錄緩沖區(qū)
int _hour, _minute, _second; //當(dāng)前時,小時、分、秒
long __prostart, __pronow;
short __sqlerrormark = 0; // sql錯誤標(biāo)記,當(dāng)出現(xiàn)網(wǎng)絡(luò)錯誤是置為1
short __sqlok = 0; // 0-不連SQL,1-已連SQL,3-并且已連遠(yuǎn)程提貨卡
short __syfs = 2; // 收銀方式,0-單機(jī),1-半單機(jī),2-聯(lián)機(jī)
char _jxc_xsdb[10] = "jxc_xsdb"; // 提交表
char _OrigXsd[80]; // 當(dāng)前數(shù)據(jù)存儲路徑
// 等于Data\\班次前4位\\x班次.dbf
char _OrigWqb[80]; // ...\\w班次.dbf
char Yyy_No[5]; // 當(dāng)前營業(yè)員編碼
extern char p_Formats[31][61];
extern char _pFeedLine;
extern void Trim(char *s);
//bank
long recno = 0;
//字段結(jié)構(gòu)
typedef struct
{
char FieldName[11]; //字段名稱
char DataType[2]; //字段類型
int Size; //字段寬度
int Dec; //小數(shù)位數(shù)
int xOff; //在記錄緩沖中的偏余量
} TField;
//數(shù)據(jù)集結(jié)構(gòu)
typedef struct
{
char TableName[40]; //表名稱
int hLen; //文件頭長度
int rLen; //記錄長度
int FieldCount; //字段數(shù)
long int RCount; //記錄數(shù)
int xOff; //關(guān)鍵字段在記錄緩沖中的偏余量
int fLen; //關(guān)鍵字段長度
char *buffer; //記錄緩沖指針
} TDataSet;
char _tbuffer[220]; //公共記錄緩沖
PTOH ptoh;
HTOP htop;
extern int _spmcws;
extern int _nFormat;
extern int _nFormatx;
//
extern TOption Param;
/*商品數(shù)據(jù)結(jié)構(gòu)*/
extern _SPLists *SPLists;
extern _SPLists __SPLists[];
//
extern int MsgBoxEx(char *, int);
extern void ResetAll(void);
extern void Reset(_SPLists *lp);
extern void SleepEx(clock_t nDelay);
extern void Printf(char *String, unsigned char Co);
extern void dbf_TranToServer(char *File1, char *File2, int hLen1, int rLen1, int hLen2, int rLen2);
extern int CreateXspz(_SPLists *_SPList, int Att, char *_Time, int Fixed);
extern void ShowBc_Name(void);
extern int ValidCheck(char *s);
//
DBPROCESS *dbproc, *dbproc_thk; // 與SQL Server的聯(lián)結(jié)
RETCODE result_code; // SQL命令執(zhí)行的結(jié)果代碼
int sql_connectdb(char *user, char *pass, char *server, int flag);
//單機(jī)收銀系列函數(shù)
TField _SPBFields[12];
TDataSet _SPBDataSet;
TField _SYSFields[2];
TDataSet _SYSDataSet;
TField _SDBFields[10];
TDataSet _SDBDataSet;
TField _SYJFields[16];
TDataSet _SYJDataSet;
TField _SYYFields[12];
TDataSet _SYYDataSet;
TField _DTMFields[7];
TDataSet _DTMDataSet;
TField _LBBFields[3];
TDataSet _LBBDataSet;
TField _TMCFields[9];
TDataSet _TMCDataSet;
TField _WQBFields[26];
TDataSet _WQBDataSet;
TField _XSDFields[26]; //銷售單表
TDataSet _XSDDataSet;
TField _XSBFields[10]; //銷售單簡表,
TDataSet _XSBDataSet; //用來存儲從服務(wù)器下載的銷售單關(guān)鍵詞,
//以決定需要上傳的本地數(shù)據(jù)
double uf_round(double num, double dig) // 四舍五入(數(shù),位數(shù)),返回舍入后的數(shù)
{
char buf[30];
sprintf(buf, "%.2f", num);
return atof(buf);
}
void __process(char *sour)
{
int i, j = 0;
char value[81];
unsigned char c;
strcpy(value, sour);
for (i = 0; i <= (int) strlen(value); i++)
{
if (value[i] == '%')
{
sour[j++] = (char)0xa3;
sour[j++] = (char)0xa5;
}
else
{
sour[j++] = value[i];
}
}
j = 0;
for (i = 0; i <= (int) strlen(sour); i++)
{
c = (unsigned char) sour[i];
if (c >= 0xa0) // 是漢字
{
if (!j) // 高8
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -