Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
FmTakeaway
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
shangshang.dai
FmTakeaway
Commits
db48d2cf
Commit
db48d2cf
authored
Dec 29, 2016
by
ss.dai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复打印机不自动打印的问题
parent
0b74e00d
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
30 additions
and
38 deletions
+30
-38
fmPrinter/fmPrinter.cpp
+11
-8
fmPrinter/fmPrinter.h
+2
-2
fmTakeaway/Control/flowControl.cpp
+15
-27
fmTakeaway/detailForm.cpp
+2
-1
No files found.
fmPrinter/fmPrinter.cpp
View file @
db48d2cf
...
@@ -13,11 +13,11 @@ FmPrinter &FmPrinter::GetInstance()
...
@@ -13,11 +13,11 @@ FmPrinter &FmPrinter::GetInstance()
return
fp
;
return
fp
;
}
}
bool
FmPrinter
::
DoPrint
(
QString
printerName
,
OrderObject
*
pData
)
bool
FmPrinter
::
DoPrint
(
QString
printerName
,
OrderObject
*
pData
,
QString
&
error
)
{
{
foreach
(
QString
data
,
_GetPrintData
(
pData
))
foreach
(
QString
data
,
_GetPrintData
(
pData
))
{
{
if
(
!
_RawDataToPrinter
(
printerName
,
data
))
if
(
!
_RawDataToPrinter
(
printerName
,
data
,
error
))
{
{
return
false
;
return
false
;
}
}
...
@@ -28,7 +28,8 @@ bool FmPrinter::DoPrint(QString printerName, OrderObject *pData)
...
@@ -28,7 +28,8 @@ bool FmPrinter::DoPrint(QString printerName, OrderObject *pData)
bool
FmPrinter
::
TestPrint
(
QString
printerName
,
QString
data
)
bool
FmPrinter
::
TestPrint
(
QString
printerName
,
QString
data
)
{
{
return
_RawDataToPrinter
(
printerName
,
data
);
QString
error
;
return
_RawDataToPrinter
(
printerName
,
data
,
error
);
}
}
QStringList
FmPrinter
::
_GetPrintData
(
OrderObject
*
pData
)
QStringList
FmPrinter
::
_GetPrintData
(
OrderObject
*
pData
)
...
@@ -94,10 +95,9 @@ QStringList FmPrinter::_GetPrintData(OrderObject *pData)
...
@@ -94,10 +95,9 @@ QStringList FmPrinter::_GetPrintData(OrderObject *pData)
return
str_list
;
return
str_list
;
}
}
bool
FmPrinter
::
_RawDataToPrinter
(
QString
printerName
,
QString
data
)
bool
FmPrinter
::
_RawDataToPrinter
(
QString
printerName
,
QString
data
,
QString
&
error
)
{
{
LPTSTR
szPrinterName
=
(
LPTSTR
)
printerName
.
toStdWString
().
c_str
();
LPTSTR
szPrinterName
=
(
LPTSTR
)
printerName
.
toStdWString
().
c_str
();
// 在行尾加上切纸命令
// 在行尾加上切纸命令
QByteArray
tmpData
=
data
.
toLocal8Bit
();
QByteArray
tmpData
=
data
.
toLocal8Bit
();
tmpData
.
append
(
27
);
tmpData
.
append
(
27
);
...
@@ -112,22 +112,25 @@ bool FmPrinter::_RawDataToPrinter(QString printerName, QString data)
...
@@ -112,22 +112,25 @@ bool FmPrinter::_RawDataToPrinter(QString printerName, QString data)
DWORD
dwBytesWritten
=
0L
;
DWORD
dwBytesWritten
=
0L
;
// Open a handle to the printer.
// Open a handle to the printer.
error
+=
QString
::
fromStdWString
(
szPrinterName
);
bStatus
=
OpenPrinter
(
szPrinterName
,
&
hPrinter
,
NULL
);
bStatus
=
OpenPrinter
(
szPrinterName
,
&
hPrinter
,
NULL
);
if
(
bStatus
)
{
if
(
bStatus
)
{
// Fill in the structure with info about this "document."
// Fill in the structure with info about this "document."
DocInfo
.
pDocName
=
(
LPTSTR
)
QString
(
"TakeawayDoc"
).
toStdWString
().
c_str
()
;
DocInfo
.
pDocName
=
(
LPTSTR
)
L"TakeawayDoc"
;
DocInfo
.
pOutputFile
=
NULL
;
DocInfo
.
pOutputFile
=
NULL
;
DocInfo
.
pDatatype
=
(
LPTSTR
)
QString
(
"RAW"
).
toStdWString
().
c_str
()
;
DocInfo
.
pDatatype
=
(
LPTSTR
)
L"RAW"
;
error
+=
"11111"
;
// Inform the spooler the document is beginning.
// Inform the spooler the document is beginning.
dwJob
=
StartDocPrinter
(
hPrinter
,
1
,
(
LPBYTE
)
&
DocInfo
);
dwJob
=
StartDocPrinter
(
hPrinter
,
1
,
(
LPBYTE
)
&
DocInfo
);
if
(
dwJob
>
0
)
{
if
(
dwJob
>
0
)
{
error
+=
"22222"
;
// Start a page.
// Start a page.
bStatus
=
StartPagePrinter
(
hPrinter
);
bStatus
=
StartPagePrinter
(
hPrinter
);
if
(
bStatus
)
{
if
(
bStatus
)
{
// Send the data to the printer.
// Send the data to the printer.
bStatus
=
WritePrinter
(
hPrinter
,
lpData
,
dwCount
,
&
dwBytesWritten
);
bStatus
=
WritePrinter
(
hPrinter
,
lpData
,
dwCount
,
&
dwBytesWritten
);
EndPagePrinter
(
hPrinter
);
EndPagePrinter
(
hPrinter
);
error
+=
"33333"
;
}
}
// Inform the spooler that the document is ending.
// Inform the spooler that the document is ending.
EndDocPrinter
(
hPrinter
);
EndDocPrinter
(
hPrinter
);
...
...
fmPrinter/fmPrinter.h
View file @
db48d2cf
...
@@ -14,7 +14,7 @@ public:
...
@@ -14,7 +14,7 @@ public:
* 参数:[1]物理打印机名[2]订单对象
* 参数:[1]物理打印机名[2]订单对象
* 返回:true成功false失败
* 返回:true成功false失败
* */
* */
bool
DoPrint
(
QString
printerName
,
OrderObject
*
pData
);
bool
DoPrint
(
QString
printerName
,
OrderObject
*
pData
,
QString
&
error
);
/* 功能:打印测试
/* 功能:打印测试
* 参数:[1]物理打印机名[2]信息内容
* 参数:[1]物理打印机名[2]信息内容
* 返回:true成功false失败
* 返回:true成功false失败
...
@@ -35,7 +35,7 @@ private:
...
@@ -35,7 +35,7 @@ private:
* 参数:[1]物理打印机名[2]信息内容
* 参数:[1]物理打印机名[2]信息内容
* 返回:打印数据
* 返回:打印数据
* */
* */
bool
_RawDataToPrinter
(
QString
printerName
,
QString
data
);
bool
_RawDataToPrinter
(
QString
printerName
,
QString
data
,
QString
&
error
);
/* 功能:将【分】转化为【元】
/* 功能:将【分】转化为【元】
* 参数:[1]分
* 参数:[1]分
* 返回:元
* 返回:元
...
...
fmTakeaway/Control/flowControl.cpp
View file @
db48d2cf
...
@@ -152,19 +152,6 @@ bool FlowControl::_PullOrder()
...
@@ -152,19 +152,6 @@ bool FlowControl::_PullOrder()
.
arg
(
orderObject
->
order_id
,
orderObject
->
status_desc
)
.
arg
(
orderObject
->
order_id
,
orderObject
->
status_desc
)
.
arg
(
_GetJsonStr
(
jsonObject
));
.
arg
(
_GetJsonStr
(
jsonObject
));
if
(
orderObject
->
status
==
2
)
{
// 打印
QLOG_INFO
()
<<
QString
(
"[---begin print---]."
);
if
(
FmPrinter
::
GetInstance
().
DoPrint
(
ConfigManger
::
GetInstance
().
GetPrinterName
(),
orderObject
))
{
QLOG_INFO
()
<<
QString
(
"print sucessful"
);
}
else
{
QLOG_INFO
()
<<
QString
(
"print failed"
);
}
}
// 订单完成状态再重新录一遍
// 订单完成状态再重新录一遍
bool
bRed
=
false
;
bool
bRed
=
false
;
...
@@ -194,20 +181,6 @@ bool FlowControl::_PullOrder()
...
@@ -194,20 +181,6 @@ bool FlowControl::_PullOrder()
.
arg
(
orderObject
->
order_id
,
orderObject
->
status_desc
)
.
arg
(
orderObject
->
order_id
,
orderObject
->
status_desc
)
.
arg
(
_GetJsonStr
(
jsonObject
));
.
arg
(
_GetJsonStr
(
jsonObject
));
if
(
oldStatus
==
1
&&
orderObject
->
status
==
2
)
{
// 打印
QLOG_INFO
()
<<
QString
(
"[---begin print---]."
);
if
(
FmPrinter
::
GetInstance
().
DoPrint
(
ConfigManger
::
GetInstance
().
GetPrinterName
(),
orderObject
))
{
QLOG_INFO
()
<<
QString
(
"print sucessful"
);
}
else
{
QLOG_INFO
()
<<
QString
(
"print failed"
);
}
}
// 订单完成状态再重新录一遍
// 订单完成状态再重新录一遍
bool
bRed
=
false
;
bool
bRed
=
false
;
if
(
orderObject
->
status
==
6
||
orderObject
->
status
==
200
)
if
(
orderObject
->
status
==
6
||
orderObject
->
status
==
200
)
...
@@ -245,6 +218,21 @@ bool FlowControl::_PullOrder()
...
@@ -245,6 +218,21 @@ bool FlowControl::_PullOrder()
}
}
}
}
if
(
orderObject
->
status
==
2
&&
orderObject
->
courier_name
.
isEmpty
())
{
// 打印
QString
error
;
QLOG_INFO
()
<<
QString
(
"[---begin print---]."
);
if
(
FmPrinter
::
GetInstance
().
DoPrint
(
ConfigManger
::
GetInstance
().
GetPrinterName
(),
orderObject
,
error
))
{
QLOG_INFO
()
<<
QString
(
"print sucessful"
);
}
else
{
QLOG_INFO
()
<<
QString
(
"print failed, %1"
).
arg
(
error
);
}
}
m_timestamp
=
orderObject
->
timestamp
;
m_timestamp
=
orderObject
->
timestamp
;
}
}
syncTime
=
recvJson
[
JSON_SYNCTIME
].
toInt
()
*
1000
;
syncTime
=
recvJson
[
JSON_SYNCTIME
].
toInt
()
*
1000
;
...
...
fmTakeaway/detailForm.cpp
View file @
db48d2cf
...
@@ -138,7 +138,8 @@ void DetailForm::on_detailBtn1_clicked()
...
@@ -138,7 +138,8 @@ void DetailForm::on_detailBtn1_clicked()
if
(
!
m_orderObject
->
courier_name
.
isEmpty
())
if
(
!
m_orderObject
->
courier_name
.
isEmpty
())
{
{
QLOG_INFO
()
<<
"---------------------"
<<
m_orderObject
->
courier_name
;
QLOG_INFO
()
<<
"---------------------"
<<
m_orderObject
->
courier_name
;
FmPrinter
::
GetInstance
().
DoPrint
(
ConfigManger
::
GetInstance
().
GetPrinterName
(),
m_orderObject
);
QString
error
;
FmPrinter
::
GetInstance
().
DoPrint
(
ConfigManger
::
GetInstance
().
GetPrinterName
(),
m_orderObject
,
error
);
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment