2017 1.0 可用版
|
@ -0,0 +1,16 @@
|
|||
#.idea/
|
||||
out/
|
||||
ipch/
|
||||
win32/
|
||||
win64/
|
||||
Debug/
|
||||
Release/
|
||||
GeneratedFiles/
|
||||
*.~sql
|
||||
*.pkg
|
||||
*.suo
|
||||
*.sdf
|
||||
*.opensdf
|
||||
workspace.xml
|
||||
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TelSalePolicyInfoManager", "TelSalePolicyInfoManager\TelSalePolicyInfoManager.vcxproj", "{D8C5BD12-F9A9-48B7-B02E-F3ACF2431DBD}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{D8C5BD12-F9A9-48B7-B02E-F3ACF2431DBD}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{D8C5BD12-F9A9-48B7-B02E-F3ACF2431DBD}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{D8C5BD12-F9A9-48B7-B02E-F3ACF2431DBD}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{D8C5BD12-F9A9-48B7-B02E-F3ACF2431DBD}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,602 @@
|
|||
|
||||
#include <SQLAPI.h>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <exception>
|
||||
#include <stdlib.h>
|
||||
#include <libxl.h>
|
||||
#include "DataManipulation.h"
|
||||
#include "SystemDataQuery.h"
|
||||
#include "StringCodeConverter.h"
|
||||
|
||||
|
||||
#pragma comment( lib, "user32.lib")
|
||||
#pragma comment( lib, "version.lib")
|
||||
#pragma comment( lib, "oleaut32.lib")
|
||||
#pragma comment( lib, "ole32.lib")
|
||||
#pragma comment( lib, "libxl.lib")
|
||||
|
||||
#ifdef _DEBUG
|
||||
#pragma comment( lib, "sqlapisd.lib")
|
||||
#else
|
||||
#pragma comment( lib, "sqlapis.lib")
|
||||
#endif
|
||||
|
||||
const char g_cszConnectStringIDS6[] =
|
||||
"DRIVER={};"
|
||||
"PROTOCOL=onsoctcp;"
|
||||
"SERVICE=16191;"
|
||||
"SERVER=xmcx1;"
|
||||
"HOST=10.39.0.91;"
|
||||
"DATABASE=ids6;"
|
||||
"DB_LOCALE=en_US.819;";
|
||||
|
||||
const static char g_szUserNameIDS6[] = "ccx99";
|
||||
const static char g_szPasswordIDS6[] = "c91IT09";
|
||||
|
||||
const static char g_cszConnstringYwgl[] =
|
||||
"DRIVER={};"
|
||||
"PROTOCOL=onsoctcp;"
|
||||
"SERVICE=16192;"
|
||||
"SERVER=xmcx2;"
|
||||
"HOST=10.39.0.92;"
|
||||
"DATABASE=ywgl_xm;"
|
||||
"DB_LOCALE=en_US.819;";
|
||||
|
||||
const static char g_cszUserNameYwgl[] = "ccx99";
|
||||
const static char g_cszPasswordYwgl[] = "c92IT09";
|
||||
|
||||
void queryTelsalePolicyGifts( vector<TelSalePolicyGift> &giftList )
|
||||
{
|
||||
SAConnection connection;
|
||||
SACommand command;
|
||||
|
||||
string strSQL = "select id, trim(name), default_price from w_dx_gifts";
|
||||
|
||||
command.setConnection( &connection );
|
||||
command.setCommandText( strSQL.c_str() );
|
||||
|
||||
try
|
||||
{
|
||||
connection.Connect(
|
||||
g_cszConnstringYwgl,
|
||||
g_cszUserNameYwgl,
|
||||
g_cszPasswordYwgl,
|
||||
SA_Informix_Client );
|
||||
|
||||
command.Execute();
|
||||
}
|
||||
catch ( SAException &error )
|
||||
{
|
||||
throw runtime_error( error.ErrText() );
|
||||
}
|
||||
|
||||
while ( command.FetchNext() )
|
||||
{
|
||||
TelSalePolicyGift gift;
|
||||
|
||||
gift.Id( command.Field(1).asLong() );
|
||||
gift.GiftName( (const char *)(command.Field(2).asString()) );
|
||||
gift.GiftDefaultPrice( (const char *)(command.Field(3).asString()) );
|
||||
|
||||
giftList.push_back( gift );
|
||||
}
|
||||
|
||||
connection.Disconnect();
|
||||
}
|
||||
|
||||
void SaveTelSalePolicyInfo(const SPolicyRecord & policy, const vector<TelSalePolicyGift> & giftList)
|
||||
{
|
||||
if ( policy.strPolicySerial.empty() == true )
|
||||
{
|
||||
throw invalid_argument( "保单号为空!" );
|
||||
}
|
||||
|
||||
if ( policy.strSalerCode.empty() == true )
|
||||
{
|
||||
throw invalid_argument( "保单号为空!" );
|
||||
}
|
||||
|
||||
ostringstream ostrCommand;
|
||||
string strAutotraderCall;
|
||||
|
||||
//车店联呼
|
||||
if ( policy.bIsAutotraderCall == true )
|
||||
{
|
||||
strAutotraderCall = "1";
|
||||
}
|
||||
else
|
||||
{
|
||||
strAutotraderCall = "0";
|
||||
}
|
||||
|
||||
ostrCommand << "insert into w_dxbd_i ( jjbj, khjl, khjllx, bdh, zhjywy, zhjywymc, zhjywybm, zhjywybmm, kshdm, kshmc, czydm, czrq , chdlh, chshdm, chshmc, khmc, chph, chjh, fdjh ) "
|
||||
"values( 1, 0, 0, "
|
||||
<< "trim('" << policy.strPolicySerial << "'), "
|
||||
<< "trim('" << policy.strSalerCode << "'), "
|
||||
<< "trim('" << policy.strSalerName << "'), "
|
||||
<< "trim('" << policy.strSalerDeptCode << "'), "
|
||||
<< "trim('" << policy.strSalerDeptName << "'), "
|
||||
<< "trim('" << policy.strSalerOfficeCode << "'), "
|
||||
<< "trim('" << policy.strSalerOfficeName << "'), "
|
||||
<< "trim('" << policy.strOperatorCode << "'), "
|
||||
<< "today, "
|
||||
<< "'" << strAutotraderCall << "'";
|
||||
|
||||
if ( policy.strAutoTraderCode.empty() == false )
|
||||
{
|
||||
ostrCommand << ", '" << policy.strAutoTraderCode << "'";
|
||||
ostrCommand << ", '" << policy.strAutoTraderName << "'";
|
||||
}
|
||||
else
|
||||
{
|
||||
ostrCommand << ", NULL, NULL";
|
||||
}
|
||||
|
||||
if ( policy.strCustomerName.empty() == false )
|
||||
{
|
||||
ostrCommand << ", '" << policy.strCustomerName << "'";
|
||||
}
|
||||
else
|
||||
{
|
||||
ostrCommand << ", NULL";
|
||||
}
|
||||
|
||||
if ( policy.strPlateSerial.empty() == false )
|
||||
{
|
||||
ostrCommand << ", '" << policy.strPlateSerial << "'";
|
||||
}
|
||||
else
|
||||
{
|
||||
ostrCommand << ", NULL";
|
||||
}
|
||||
|
||||
if ( policy.strFrameSerial.empty() == false )
|
||||
{
|
||||
ostrCommand << ", '" << policy.strFrameSerial << "'";
|
||||
}
|
||||
else
|
||||
{
|
||||
ostrCommand << ", NULL";
|
||||
}
|
||||
|
||||
if ( policy.strEngineSerial.empty() == false )
|
||||
{
|
||||
ostrCommand << ", '" << policy.strEngineSerial << "'";
|
||||
}
|
||||
else
|
||||
{
|
||||
ostrCommand << ", NULL";
|
||||
}
|
||||
|
||||
ostrCommand << " )";
|
||||
|
||||
string strCommand = ostrCommand.str();
|
||||
|
||||
SAConnection conn;
|
||||
SACommand command;
|
||||
|
||||
command.setConnection( &conn );
|
||||
command.setCommandText( strCommand.c_str() );
|
||||
|
||||
try
|
||||
{
|
||||
conn.Connect(
|
||||
g_cszConnstringYwgl,
|
||||
g_cszUserNameYwgl,
|
||||
g_cszPasswordYwgl,
|
||||
SA_Informix_Client );
|
||||
//conn.setAutoCommit( SA_AutoCommitOff ); //导致锁表
|
||||
|
||||
//保存保单
|
||||
command.Execute();
|
||||
|
||||
//保存礼品列表,先删除旧数据
|
||||
command.setCommandText( "delete w_dxbd_gift_i where bdh = :1 " );
|
||||
command.Param( 1 ).setAsString() = policy.strPolicySerial.c_str();
|
||||
command.Execute();
|
||||
|
||||
command.setCommandText( "insert into w_dxbd_gift_i ( bdh, gift_name, gift_price ) values ( :1, :2, :3 )" );
|
||||
|
||||
for ( vector<TelSalePolicyGift>::const_iterator iter = giftList.begin(); iter != giftList.end(); ++iter )
|
||||
{
|
||||
command.Param( 1 ).setAsString() = policy.strPolicySerial.c_str();
|
||||
command.Param( 2 ).setAsString() = iter->GiftName().c_str();
|
||||
command.Param( 3 ).setAsString() = iter->GiftDefaultPrice().c_str();
|
||||
|
||||
command.Execute();
|
||||
}
|
||||
|
||||
conn.Commit();
|
||||
}
|
||||
catch ( SAException &error )
|
||||
{
|
||||
conn.Rollback();
|
||||
conn.Disconnect();
|
||||
|
||||
throw runtime_error( error.ErrText() );
|
||||
}
|
||||
|
||||
conn.Disconnect();
|
||||
}
|
||||
|
||||
void QueryTelSalePolicyInfo( const string & strPolicyNo,
|
||||
const string & strOperatorCode,
|
||||
const string & strStartDate,
|
||||
const string & strEndDate,
|
||||
vector<SPolicyQuery> & vPolicyInfo )
|
||||
{
|
||||
SACommand command;
|
||||
SAConnection connection;
|
||||
SPolicyQuery policy;
|
||||
|
||||
string strSQL =
|
||||
"select trim(bdh) bdh, trim(zhjywy) zhjywy, to_char(czrq, '%Y年%m月%d日') czrq, trim(czydm) czydm, chdlh, zhjywybmm, kshmc, chshdm, chshmc "
|
||||
" from w_dxbd_i "
|
||||
" where 1=1 ";
|
||||
|
||||
if ( !strPolicyNo.empty() )
|
||||
{
|
||||
strSQL.append( "and bdh = '" );
|
||||
strSQL.append( strPolicyNo );
|
||||
strSQL.append( "' " );
|
||||
}
|
||||
|
||||
if ( !strOperatorCode.empty() )
|
||||
{
|
||||
strSQL.append( "and czydm = '" );
|
||||
strSQL.append( strOperatorCode );
|
||||
strSQL.append( "' " );
|
||||
}
|
||||
|
||||
if ( !strStartDate.empty() )
|
||||
{
|
||||
strSQL.append( "and czrq >= '" );
|
||||
strSQL.append( strStartDate );
|
||||
strSQL.append( "' " );
|
||||
}
|
||||
|
||||
if ( !strEndDate.empty() )
|
||||
{
|
||||
strSQL.append( "and czrq <= '" );
|
||||
strSQL.append( strEndDate );
|
||||
strSQL.append( "' " );
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
command.setCommandText( strSQL.c_str() );
|
||||
command.setConnection( &connection );
|
||||
|
||||
connection.Connect(
|
||||
g_cszConnstringYwgl,
|
||||
g_cszUserNameYwgl,
|
||||
g_cszPasswordYwgl,
|
||||
SA_Informix_Client );
|
||||
|
||||
command.Execute();
|
||||
|
||||
while ( command.FetchNext() )
|
||||
{
|
||||
policy.strPolicySerial = command.Field("bdh").asString();
|
||||
policy.strSalerCode = command.Field("zhjywy").asString();
|
||||
policy.strDeptName = command.Field("zhjywybmm").asString();
|
||||
policy.strOfficeName = command.Field("kshmc").asString();
|
||||
policy.strAutoTraderCode = command.Field("chshdm").asString();
|
||||
policy.strAutoTraderName = command.Field("chshmc").asString();
|
||||
policy.strInputDate = command.Field("czrq").asString();
|
||||
policy.strCDLH = command.Field("chdlh").asString();
|
||||
|
||||
QueryPolicyGifts( policy.strPolicySerial, policy.strGifts, policy.dGiftPriceSum );
|
||||
|
||||
vPolicyInfo.push_back( policy );
|
||||
}
|
||||
|
||||
connection.Disconnect();
|
||||
}
|
||||
catch ( SAException & error )
|
||||
{
|
||||
throw runtime_error( error.ErrText() );
|
||||
}
|
||||
}
|
||||
|
||||
void QueryPolicyGifts(const string & strPolicyNo, string & strGifts, double dGiftPriceSum )
|
||||
{
|
||||
SAConnection connection;
|
||||
SACommand command;
|
||||
|
||||
string strSQL =
|
||||
"select gift_name, gift_price "
|
||||
" from w_dxbd_gift_i "
|
||||
" where bdh = '" + strPolicyNo + "'";
|
||||
|
||||
string strSQLSum =
|
||||
"select sum( gift_price ) "
|
||||
" from w_dxbd_gift_i "
|
||||
" where bdh = '" + strPolicyNo + "'";
|
||||
|
||||
try
|
||||
{
|
||||
command.setConnection( &connection );
|
||||
command.setCommandText( strSQL.c_str() );
|
||||
|
||||
connection.Connect( g_cszConnstringYwgl,
|
||||
g_cszUserNameYwgl,
|
||||
g_cszPasswordYwgl,
|
||||
SA_Informix_Client );
|
||||
|
||||
command.Execute();
|
||||
|
||||
strGifts.clear();
|
||||
dGiftPriceSum = 0.0;
|
||||
|
||||
while ( command.FetchNext() )
|
||||
{
|
||||
if ( !strGifts.empty() )
|
||||
{
|
||||
strGifts.append( "; " );
|
||||
}
|
||||
|
||||
strGifts.append( command.Field("gift_name").asString() );
|
||||
strGifts.append( " " );
|
||||
strGifts.append( command.Field("gift_price").asString() );
|
||||
strGifts.append( "元" );
|
||||
|
||||
dGiftPriceSum += command.Field("gift_price").asDouble();
|
||||
}
|
||||
|
||||
/*command.setCommandText( strSQLSum.c_str() );
|
||||
command.Execute();
|
||||
|
||||
if ( command.FetchNext() )
|
||||
{
|
||||
strGiftPriceSum = command.Field( 0 ).asString();
|
||||
}*/
|
||||
|
||||
connection.Disconnect();
|
||||
}
|
||||
catch ( SAException & error )
|
||||
{
|
||||
throw runtime_error( error.ErrText() );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void readTelsaleXlsFile(const string strFilePath, vector<SPolicyRecord> & listPolicy, bool hasTitle, bool isXML )
|
||||
{
|
||||
IBookT<char> * pBook = NULL;
|
||||
ISheetT<char> * pSheet = NULL;
|
||||
|
||||
int iRowCount = 0;
|
||||
int iRowIndex = 0;
|
||||
|
||||
|
||||
if ( isXML == true )
|
||||
{
|
||||
pBook = xlCreateXMLBook();
|
||||
}
|
||||
else
|
||||
{
|
||||
pBook = xlCreateBook();
|
||||
}
|
||||
|
||||
|
||||
if ( pBook == NULL )
|
||||
{
|
||||
throw string("");
|
||||
}
|
||||
|
||||
if ( pBook->load(strFilePath.c_str()) == NULL )
|
||||
{
|
||||
string strMessage = pBook->errorMessage();
|
||||
throw string( strMessage );
|
||||
}
|
||||
|
||||
pSheet = pBook->getSheet( 0 );
|
||||
|
||||
if ( pSheet == NULL )
|
||||
{
|
||||
throw string( "读取sheet失败!" );
|
||||
}
|
||||
|
||||
iRowCount = pSheet->lastRow();
|
||||
|
||||
if ( hasTitle == true )
|
||||
{
|
||||
iRowIndex = 1;
|
||||
}
|
||||
|
||||
//读取数据
|
||||
while ( iRowIndex < iRowCount )
|
||||
{
|
||||
SPolicyRecord policy;
|
||||
|
||||
CellType type = pSheet->cellType( iRowIndex, 4 );
|
||||
|
||||
policy.strSignDate = readXlsCell( pSheet, iRowIndex, 0 );
|
||||
policy.strPolicySerial = readXlsCell( pSheet, iRowIndex, 1 );
|
||||
policy.strPlateSerial = readXlsCell( pSheet, iRowIndex, 2 );
|
||||
policy.strCustomerName = readXlsCell( pSheet, iRowIndex, 3 );
|
||||
policy.strSalerCode = readXlsCell( pSheet, iRowIndex, 4 );
|
||||
//policy.strAutoTraderName = readXlsCell( pSheet, iRowIndex, 5 );
|
||||
policy.strAutoTraderCode = readXlsCell( pSheet, iRowIndex, 6 );
|
||||
|
||||
//补齐工号
|
||||
if ( policy.strSalerCode.length() == 1 )
|
||||
{
|
||||
policy.strSalerCode = string("00") + policy.strSalerCode;
|
||||
}
|
||||
|
||||
if ( policy.strSalerCode.length() == 2 )
|
||||
{
|
||||
policy.strSalerCode = string("0") + policy.strSalerCode;
|
||||
}
|
||||
|
||||
policy.strOperatorCode = getUserCode();
|
||||
|
||||
queryAutoTraderInfo( policy.strAutoTraderCode, policy.strAutoTraderName );
|
||||
|
||||
queryStaffInfo( policy.strSalerCode,
|
||||
policy.strSalerName,
|
||||
policy.strSalerDeptCode,
|
||||
policy.strSalerDeptName,
|
||||
policy.strSalerOfficeCode,
|
||||
policy.strSalerOfficeName );
|
||||
|
||||
listPolicy.push_back( policy );
|
||||
|
||||
iRowIndex++;
|
||||
}
|
||||
|
||||
pBook->release();
|
||||
}
|
||||
|
||||
string readXlsCell(ISheetT<char> * pSheet, int iRowIndex, int iColIndex)
|
||||
{
|
||||
string strCell;
|
||||
char szNum[40];
|
||||
int iCell;
|
||||
|
||||
if ( pSheet == NULL )
|
||||
{
|
||||
throw string("");
|
||||
}
|
||||
|
||||
CellType cellType = pSheet->cellType( iRowIndex, iColIndex );
|
||||
|
||||
switch( cellType )
|
||||
{
|
||||
case libxl::CELLTYPE_STRING:
|
||||
strCell = pSheet->readStr( iRowIndex, iColIndex );
|
||||
break;
|
||||
case libxl::CELLTYPE_NUMBER:
|
||||
memset( szNum, NULL, 40 );
|
||||
|
||||
iCell = pSheet->readNum( iRowIndex, iColIndex );
|
||||
sprintf( szNum, "%d", iCell );
|
||||
strCell = szNum;
|
||||
|
||||
break;
|
||||
default:
|
||||
strCell = "";
|
||||
}
|
||||
|
||||
return strCell;
|
||||
}
|
||||
|
||||
string readXlsxCell(ISheetT<wchar_t> * pSheet, int iRowIndex, int iColIndex)
|
||||
{
|
||||
wstring strCell;
|
||||
string strReturn;
|
||||
|
||||
char szNum[40];
|
||||
int iCell;
|
||||
|
||||
if ( pSheet == NULL )
|
||||
{
|
||||
throw string("");
|
||||
}
|
||||
|
||||
CellType cellType = pSheet->cellType( iRowIndex, iColIndex );
|
||||
|
||||
switch( cellType )
|
||||
{
|
||||
case libxl::CELLTYPE_STRING:
|
||||
strCell = pSheet->readStr( iRowIndex, iColIndex );
|
||||
break;
|
||||
case libxl::CELLTYPE_NUMBER:
|
||||
memset( szNum, NULL, 40 );
|
||||
|
||||
iCell = pSheet->readNum( iRowIndex, iColIndex );
|
||||
sprintf( szNum, "%d", iCell );
|
||||
strReturn = szNum;
|
||||
|
||||
break;
|
||||
default:
|
||||
strReturn = "";
|
||||
}
|
||||
|
||||
StringCodeConverter::unicode2mbs( strCell, strReturn );
|
||||
|
||||
return strReturn;
|
||||
}
|
||||
|
||||
void readTelsaleXlsxFile(wchar_t * wszFilePath, vector<SPolicyRecord> & listPolicy, bool hasTitle)
|
||||
{
|
||||
IBookT<wchar_t> * pBook = NULL;
|
||||
ISheetT<wchar_t> * pSheet = NULL;
|
||||
|
||||
int iRowCount = 0;
|
||||
int iRowIndex = 0;
|
||||
|
||||
|
||||
pBook = xlCreateXMLBookW();
|
||||
|
||||
if ( pBook == NULL )
|
||||
{
|
||||
throw string("");
|
||||
}
|
||||
|
||||
if ( pBook->load(L"D:/1111.xlsx") == false )
|
||||
{
|
||||
throw string("打开文件失败!" );
|
||||
}
|
||||
|
||||
pSheet = pBook->getSheet( 0 );
|
||||
|
||||
if ( pSheet == NULL )
|
||||
{
|
||||
throw string( "读取sheet失败!" );
|
||||
}
|
||||
|
||||
iRowCount = pSheet->lastRow();
|
||||
|
||||
if ( hasTitle == true )
|
||||
{
|
||||
iRowIndex = 1;
|
||||
}
|
||||
|
||||
//读取数据
|
||||
while ( iRowIndex < iRowCount )
|
||||
{
|
||||
SPolicyRecord policy;
|
||||
|
||||
CellType type = pSheet->cellType( iRowIndex, 4 );
|
||||
|
||||
policy.strSignDate = readXlsxCell( pSheet, iRowIndex, 0 );
|
||||
policy.strPolicySerial = readXlsxCell( pSheet, iRowIndex, 1 );
|
||||
policy.strPlateSerial = readXlsxCell( pSheet, iRowIndex, 2 );
|
||||
policy.strCustomerName = readXlsxCell( pSheet, iRowIndex, 3 );
|
||||
policy.strSalerCode = readXlsxCell( pSheet, iRowIndex, 4 );
|
||||
policy.strAutoTraderName = readXlsxCell( pSheet, iRowIndex, 6 );
|
||||
|
||||
//补齐工号
|
||||
if ( policy.strSalerCode.length() == 1 )
|
||||
{
|
||||
policy.strSalerCode = string("00") + policy.strSalerCode;
|
||||
}
|
||||
|
||||
if ( policy.strSalerCode.length() == 2 )
|
||||
{
|
||||
policy.strSalerCode = string("0") + policy.strSalerCode;
|
||||
}
|
||||
|
||||
policy.strOperatorCode = getUserCode();
|
||||
|
||||
queryStaffInfo(
|
||||
policy.strSalerCode,
|
||||
policy.strSalerName,
|
||||
policy.strSalerDeptCode,
|
||||
policy.strSalerDeptName,
|
||||
policy.strSalerOfficeCode,
|
||||
policy.strSalerOfficeName );
|
||||
|
||||
listPolicy.push_back( policy );
|
||||
|
||||
iRowIndex++;
|
||||
}
|
||||
|
||||
pBook->release();
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,143 @@
|
|||
/*!
|
||||
* \file DataManipulation.h
|
||||
* \date 2014/08/18 15:43
|
||||
*
|
||||
* \author Kane
|
||||
* Contact: user@company.com
|
||||
*
|
||||
* \brief 转介绍数据处理
|
||||
*
|
||||
* TODO: long description
|
||||
*
|
||||
* \note
|
||||
*/
|
||||
|
||||
#ifndef DataManipulation_h__
|
||||
#define DataManipulation_h__
|
||||
|
||||
#include <libxl.h>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "SystemData.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace libxl;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
string strPolicySerial;
|
||||
string strSignDate;
|
||||
string strSalerCode;
|
||||
string strSalerName;
|
||||
string strSalerDeptCode;
|
||||
string strSalerDeptName;
|
||||
string strSalerOfficeCode;
|
||||
string strSalerOfficeName;
|
||||
string strAutoTraderCode;
|
||||
string strAutoTraderName;
|
||||
string strCustomerName;
|
||||
string strPlateSerial;
|
||||
string strFrameSerial;
|
||||
string strEngineSerial;
|
||||
string strOperatorDate;
|
||||
string strOperatorCode;
|
||||
bool bIsAutotraderCall;
|
||||
} SPolicyRecord;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
string strPolicySerial;
|
||||
string strSalerCode;
|
||||
string strDeptName;
|
||||
string strOfficeName;
|
||||
string strCDLH;
|
||||
string strAutoTraderCode;
|
||||
string strAutoTraderName;
|
||||
double dGiftPriceSum;
|
||||
string strGifts;
|
||||
string strInputDate;
|
||||
} SPolicyQuery;
|
||||
|
||||
class TelSalePolicyGift
|
||||
{
|
||||
public:
|
||||
TelSalePolicyGift() {};
|
||||
TelSalePolicyGift( int id, string & name, string & defaultPrice ) : m_id( id ), m_giftName( name ), m_giftDefaultPrice( defaultPrice ) {}
|
||||
|
||||
inline int Id() const { return m_id; }
|
||||
void Id(int val) { m_id = val; }
|
||||
|
||||
string GiftName() const { return m_giftName; }
|
||||
void GiftName(string val) { m_giftName = val; }
|
||||
|
||||
string GiftDefaultPrice() const { return m_giftDefaultPrice; }
|
||||
void GiftDefaultPrice(string val) { m_giftDefaultPrice = val; }
|
||||
|
||||
private:
|
||||
int m_id;
|
||||
string m_giftName;
|
||||
string m_giftDefaultPrice;
|
||||
};
|
||||
|
||||
|
||||
|
||||
//************************************
|
||||
// Method: queryTelsalePolicyGifts
|
||||
// FullName: queryTelsalePolicyGifts
|
||||
// Access: public
|
||||
// Returns: void
|
||||
// Qualifier: 查询礼品信息
|
||||
// Parameter: vector<TelSalePolicyGift> & giftList 礼品列表
|
||||
//************************************
|
||||
void queryTelsalePolicyGifts( vector<TelSalePolicyGift> &giftList );
|
||||
|
||||
//************************************
|
||||
// Method: SaveTelSalePolicyInfo
|
||||
// FullName: SaveTelSalePolicyInfo
|
||||
// Access: public
|
||||
// Returns: void
|
||||
// Qualifier:
|
||||
// Parameter: const SPolicyRecord & policy
|
||||
// Parameter: const vector<TelSalePolicyGift> & giftList
|
||||
//************************************
|
||||
void SaveTelSalePolicyInfo( const SPolicyRecord & policy, const vector<TelSalePolicyGift> & giftList );
|
||||
|
||||
//************************************
|
||||
// Method: QueryTelSalePolicyInfo
|
||||
// FullName: QueryTelSalePolicyInfo
|
||||
// Access: public
|
||||
// Returns: void
|
||||
// Qualifier:
|
||||
// Parameter: const string & strPolicyNo
|
||||
// Parameter: const string & strOperatorCode
|
||||
// Parameter: const string & strStartDate
|
||||
// Parameter: const string & strEndDate
|
||||
// Parameter: vector<SPolicyQuery> & vPolicyInfo
|
||||
//************************************
|
||||
void QueryTelSalePolicyInfo( const string & strPolicyNo,
|
||||
const string & strOperatorCode,
|
||||
const string & strStartDate,
|
||||
const string & strEndDate,
|
||||
vector<SPolicyQuery> & vPolicyInfo );
|
||||
|
||||
//************************************
|
||||
// Method: QueryPolicyGifts
|
||||
// FullName: QueryPolicyGifts
|
||||
// Access: public
|
||||
// Returns: void
|
||||
// Qualifier: 查询礼品列表,生成字符串
|
||||
// Parameter: const string & strPolicyNo
|
||||
// Parameter: string & strGifts
|
||||
//************************************
|
||||
void QueryPolicyGifts( const string & strPolicyNo,
|
||||
string & strGifts,
|
||||
double dGiftPriceSum );
|
||||
|
||||
void readTelsaleXlsFile( const string strFilePath, vector<SPolicyRecord> & listPolicy, bool hasTitle, bool isXML );
|
||||
|
||||
void readTelsaleXlsxFile( wchar_t * wszFilePath, vector<SPolicyRecord> & listPolicy, bool hasTitle );
|
||||
|
||||
string readXlsCell( ISheetT<char> * pSheet, int iRowIndex, int iColIndex );
|
||||
string readXlsxCell( ISheetT<wchar_t> * pSheet, int iRowIndex, int iColIndex);
|
||||
|
||||
#endif // DataManipulation_h__
|
|
@ -0,0 +1,102 @@
|
|||
|
||||
#include <exception>
|
||||
#include "Parameters.h"
|
||||
#include "sqlite/sqlite3.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
Parameters::Parameters(void)
|
||||
{
|
||||
}
|
||||
|
||||
Parameters::Parameters(const string & strFilePath)
|
||||
{
|
||||
sqlite3 * pdbParameter;
|
||||
|
||||
int returnCode;
|
||||
int nRowCount;
|
||||
int nColCount;
|
||||
|
||||
char ** result;
|
||||
char * pszMessage;
|
||||
char szSQL[] =
|
||||
"select name, value from sys_parameter ";
|
||||
|
||||
returnCode = sqlite3_open( strFilePath.c_str(), &pdbParameter );
|
||||
|
||||
if ( returnCode != SQLITE_OK )
|
||||
{
|
||||
throw runtime_error( sqlite3_errmsg(pdbParameter) );
|
||||
}
|
||||
|
||||
//查询
|
||||
returnCode = sqlite3_get_table( pdbParameter, szSQL, &result, &nRowCount, &nColCount, &pszMessage );
|
||||
|
||||
if ( returnCode != SQLITE_OK )
|
||||
{
|
||||
throw runtime_error( sqlite3_errmsg( pdbParameter ));
|
||||
}
|
||||
|
||||
for ( int nRowIndex = nColCount; nRowIndex < nColCount*(nRowCount+1); nRowIndex += nColCount )
|
||||
{
|
||||
string strName = result[nRowIndex];
|
||||
string strValue = result[nRowIndex+1];
|
||||
|
||||
m_parameters[strName] = strValue;
|
||||
}
|
||||
|
||||
//清理
|
||||
sqlite3_free_table( result );
|
||||
sqlite3_close( pdbParameter );
|
||||
|
||||
//保存文件路径
|
||||
m_strDbFilePath = strFilePath;
|
||||
}
|
||||
|
||||
|
||||
Parameters::~Parameters(void)
|
||||
{
|
||||
}
|
||||
|
||||
string Parameters::getParameter(const string & strParaName)
|
||||
{
|
||||
return m_parameters[strParaName];
|
||||
}
|
||||
|
||||
void Parameters::setParameter(const string & strParaName, const string & strParaValue)
|
||||
{
|
||||
if ( m_parameters.find( strParaName) == m_parameters.end() )
|
||||
{
|
||||
throw runtime_error( "参数名称错误!" );
|
||||
}
|
||||
|
||||
m_parameters[strParaName] = strParaValue;
|
||||
|
||||
sqlite3 * pDb = NULL;
|
||||
int iReturnCode;
|
||||
char * szMsg;
|
||||
string strSQL =
|
||||
"update sys_parameter set value = '";
|
||||
|
||||
strSQL.append( strParaValue );
|
||||
strSQL.append( "' where name = '" );
|
||||
strSQL.append( strParaName );
|
||||
strSQL.append( "' " );
|
||||
|
||||
iReturnCode = sqlite3_open( m_strDbFilePath.c_str(), &pDb );
|
||||
|
||||
if ( iReturnCode != SQLITE_OK )
|
||||
{
|
||||
throw runtime_error( sqlite3_errmsg( pDb ));
|
||||
}
|
||||
|
||||
iReturnCode = sqlite3_exec( pDb, strSQL.c_str(), NULL, NULL, &szMsg );
|
||||
|
||||
if ( iReturnCode != SQLITE_OK )
|
||||
{
|
||||
throw runtime_error( szMsg );
|
||||
}
|
||||
|
||||
sqlite3_close( pDb );
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
/*!
|
||||
* \file Parameters.h
|
||||
* \date 2014/08/25 11:44
|
||||
*
|
||||
* \author Kane
|
||||
* Contact: user@company.com
|
||||
*
|
||||
* \brief
|
||||
*
|
||||
* TODO: long description
|
||||
*
|
||||
* \note
|
||||
*/
|
||||
|
||||
#ifndef Parameters_h__
|
||||
#define Parameters_h__
|
||||
|
||||
#include <string>
|
||||
#include <hash_map>
|
||||
|
||||
using std::string;
|
||||
using std::hash_map;
|
||||
|
||||
class Parameters
|
||||
{
|
||||
public:
|
||||
Parameters( const string & strFilePath );
|
||||
virtual ~Parameters(void);
|
||||
|
||||
string getParameter( const string & strParaName );
|
||||
void setParameter( const string & strParaName, const string & strParaValue );
|
||||
|
||||
private:
|
||||
Parameters();
|
||||
|
||||
private:
|
||||
string m_strDbFilePath;
|
||||
hash_map<string, string> m_parameters;
|
||||
};
|
||||
|
||||
#endif // Parameters_h__
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
#include <Qtwidgets/QtWidgets>
|
||||
#include "QConfigurationWidget.h"
|
||||
#include "SystemDataQuery.h"
|
||||
#include "SystemData.h"
|
||||
|
||||
QConfigurationWidget::QConfigurationWidget(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
setupUi(this);
|
||||
|
||||
init();
|
||||
initWidget();
|
||||
initSignal();
|
||||
initData();
|
||||
}
|
||||
|
||||
QConfigurationWidget::~QConfigurationWidget()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void QConfigurationWidget::init()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void QConfigurationWidget::initWidget()
|
||||
{
|
||||
setLayout( pLayoutMain );
|
||||
|
||||
setMaximumWidth( 800 );
|
||||
}
|
||||
|
||||
void QConfigurationWidget::initSignal()
|
||||
{
|
||||
connect( pEditAutoTraderCode, SIGNAL(editingFinished()), this, SLOT(onAutoTraderCodeEdited()));
|
||||
connect( pEditAutoTraderCode, SIGNAL(textChanged(const QString &)), this, SLOT(onAutoTraderCodeChanged()) );
|
||||
connect( pButtonSave, SIGNAL(clicked()), this, SLOT(onSave()) );
|
||||
connect( pButtonReset, SIGNAL(clicked()), this, SLOT(onReset()) );
|
||||
}
|
||||
|
||||
void QConfigurationWidget::initData()
|
||||
{
|
||||
pEditAutoTraderCode->setText( QString::fromLocal8Bit( parameters.getParameter("默认车商代码").c_str() ));
|
||||
|
||||
emit pEditAutoTraderCode->editingFinished();
|
||||
}
|
||||
|
||||
void QConfigurationWidget::onAutoTraderCodeEdited()
|
||||
{
|
||||
string strAutoTraderCode = pEditAutoTraderCode->text().trimmed().toUpper().toLocal8Bit().data();
|
||||
string strAutoTraderName;
|
||||
|
||||
queryAutoTraderInfo( strAutoTraderCode, strAutoTraderName );
|
||||
|
||||
pEditAutoTraderName->setText( QString::fromLocal8Bit( strAutoTraderName.c_str() ));
|
||||
}
|
||||
|
||||
void QConfigurationWidget::onAutoTraderCodeChanged()
|
||||
{
|
||||
pEditAutoTraderName->clear();
|
||||
}
|
||||
|
||||
void QConfigurationWidget::onSave()
|
||||
{
|
||||
if ( pEditAutoTraderName->text().isEmpty() )
|
||||
{
|
||||
emit pEditAutoTraderCode->editingFinished();
|
||||
}
|
||||
|
||||
if ( pEditAutoTraderName->text().isEmpty() )
|
||||
{
|
||||
QMessageBox::critical( this, QString::fromLocal8Bit("错误!"), QString::fromLocal8Bit("车商代码错误!") );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
parameters.setParameter( "默认车商代码", pEditAutoTraderCode->text().toLocal8Bit().data() );
|
||||
}
|
||||
|
||||
void QConfigurationWidget::onReset()
|
||||
{
|
||||
initData();
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
#ifndef QCONFIGURATIONWIDGET_H
|
||||
#define QCONFIGURATIONWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <string>
|
||||
#include "ui_QConfigurationWidget.h"
|
||||
|
||||
using std::string;
|
||||
|
||||
class QConfigurationWidget : public QWidget, public Ui::QConfigurationWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QConfigurationWidget(QWidget *parent = 0);
|
||||
~QConfigurationWidget();
|
||||
|
||||
protected Q_SLOTS:
|
||||
void onAutoTraderCodeEdited();
|
||||
void onAutoTraderCodeChanged();
|
||||
void onSave();
|
||||
void onReset();
|
||||
|
||||
private:
|
||||
void init();
|
||||
void initWidget();
|
||||
void initSignal();
|
||||
void initData();
|
||||
};
|
||||
|
||||
#endif // QCONFIGURATIONWIDGET_H
|
|
@ -0,0 +1,224 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>QConfigurationWidget</class>
|
||||
<widget class="QWidget" name="QConfigurationWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>843</width>
|
||||
<height>527</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>QConfigurationWidget</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>55</x>
|
||||
<y>95</y>
|
||||
<width>571</width>
|
||||
<height>208</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="pLayoutMain">
|
||||
<property name="leftMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>默认车商代码:</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_20">
|
||||
<property name="text">
|
||||
<string>车商代码:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="pEditAutoTraderCode">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>90</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>90</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid red;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="label_21">
|
||||
<property name="text">
|
||||
<string>车商名称:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QLineEdit" name="pEditAutoTraderName">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid silver;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_4">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>操作</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_6">
|
||||
<item row="0" column="3">
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>301</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>301</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QToolButton" name="pButtonSave">
|
||||
<property name="toolTip">
|
||||
<string>保存信息</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>保存</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/save2.png</normaloff>:/QMainFrame/Resources/save2.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>64</width>
|
||||
<height>64</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonIconOnly</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QToolButton" name="pButtonReset">
|
||||
<property name="toolTip">
|
||||
<string>重置所有</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>重置</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/clean.png</normaloff>:/QMainFrame/Resources/clean.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>64</width>
|
||||
<height>64</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonIconOnly</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<resources>
|
||||
<include location="resource.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
|
@ -0,0 +1,86 @@
|
|||
|
||||
//#include <occi.h>
|
||||
#include <QTextCodec>
|
||||
#include <QtWidgets/QMessageBox>
|
||||
#include "QLoginWidget.h"
|
||||
#include "SystemData.h"
|
||||
#include "SystemDataQuery.h"
|
||||
|
||||
QLoginWidget::QLoginWidget(QWidget *parent)
|
||||
: QDialog(parent)
|
||||
{
|
||||
ui.setupUi(this);
|
||||
|
||||
init();
|
||||
}
|
||||
|
||||
QLoginWidget::~QLoginWidget()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void QLoginWidget::init()
|
||||
{
|
||||
initWidget();
|
||||
initSignal();
|
||||
|
||||
pCodecLocal = QTextCodec::codecForLocale();
|
||||
pCodecUTF8 = QTextCodec::codecForName( "UTF-8" );
|
||||
|
||||
m_isLoginSuccess = false;
|
||||
}
|
||||
|
||||
void QLoginWidget::initWidget()
|
||||
{
|
||||
setLayout( ui.pLayoutMain );
|
||||
}
|
||||
|
||||
void QLoginWidget::initSignal()
|
||||
{
|
||||
connect( ui.pButtonLogin, SIGNAL(clicked()), this, SLOT(login()) );
|
||||
connect( ui.pButtonCancel, SIGNAL(clicked()), this, SLOT(cancel()) );
|
||||
connect( ui.pEditUserCode, SIGNAL(editingFinished()), this, SLOT(getUserName()) );
|
||||
}
|
||||
|
||||
void QLoginWidget::login()
|
||||
{
|
||||
string strPassword( (char *)ui.pEditPassword->text().toLocal8Bit().data() );
|
||||
|
||||
if ( strPassword == m_userPassword )
|
||||
{
|
||||
m_isLoginSuccess = true;
|
||||
|
||||
//保存用户名和密码
|
||||
setUserCode( m_userCode );
|
||||
setUserName( m_userName );
|
||||
|
||||
close();
|
||||
}
|
||||
else
|
||||
{
|
||||
QMessageBox::warning( this, QString::fromLocal8Bit("错误"), QString::fromLocal8Bit("密码错误!") );
|
||||
}
|
||||
}
|
||||
|
||||
void QLoginWidget::cancel()
|
||||
{
|
||||
m_isLoginSuccess = false;
|
||||
|
||||
close();
|
||||
}
|
||||
|
||||
void QLoginWidget::getUserName()
|
||||
{
|
||||
m_userCode = ui.pEditUserCode->text().toLocal8Bit().data();
|
||||
|
||||
try
|
||||
{
|
||||
QueryUserInfo( m_userCode, m_userName, m_userPassword );
|
||||
|
||||
ui.pEditUserName->setText( QString::fromLocal8Bit(m_userName.c_str()));
|
||||
}
|
||||
catch ( runtime_error & exp )
|
||||
{
|
||||
QMessageBox::critical( this, "错误", QString::fromUtf8( exp.what() ));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
#ifndef QLOGINWIDGET_H
|
||||
#define QLOGINWIDGET_H
|
||||
|
||||
#include <string>
|
||||
#include <QDialog>
|
||||
#include <QTextCodec>
|
||||
#include "ui_QLoginWidget.h"
|
||||
//#include "DataManipulate.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
class QLoginWidget : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QLoginWidget(QWidget *parent = 0);
|
||||
~QLoginWidget();
|
||||
|
||||
bool isLogin() const { return m_isLoginSuccess; }
|
||||
|
||||
private:
|
||||
void init();
|
||||
void initWidget();
|
||||
void initSignal();
|
||||
|
||||
protected Q_SLOTS:
|
||||
void login();
|
||||
void cancel();
|
||||
|
||||
void getUserName();
|
||||
|
||||
private:
|
||||
Ui::QLoginWidget ui;
|
||||
QTextCodec * pCodecLocal;
|
||||
QTextCodec * pCodecUTF8;
|
||||
|
||||
private:
|
||||
string m_userCode;
|
||||
string m_userName;
|
||||
string m_userPassword;
|
||||
|
||||
bool m_isLoginSuccess;
|
||||
};
|
||||
|
||||
#endif // QLOGINWIDGET_H
|
|
@ -0,0 +1,290 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>QLoginWidget</class>
|
||||
<widget class="QDialog" name="QLoginWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>764</width>
|
||||
<height>480</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>登录</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/CPIC.png</normaloff>:/QMainFrame/Resources/CPIC.png</iconset>
|
||||
</property>
|
||||
<widget class="QWidget" name="gridLayoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>40</x>
|
||||
<y>40</y>
|
||||
<width>369</width>
|
||||
<height>164</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="pLayoutMain">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetFixedSize</enum>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="leftMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>104</width>
|
||||
<height>104</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>104</width>
|
||||
<height>104</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="resource.qrc">:/QMainFrame/Resources/login.png</pixmap>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>245</width>
|
||||
<height>104</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>245</width>
|
||||
<height>104</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>登录信息:</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetFixedSize</enum>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string> 工号:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="pEditUserCode">
|
||||
<property name="maxLength">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="clearButtonEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>名称:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="pEditUserName">
|
||||
<property name="maxLength">
|
||||
<number>20</number>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="clearButtonEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>密码:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="pEditPassword">
|
||||
<property name="maxLength">
|
||||
<number>999</number>
|
||||
</property>
|
||||
<property name="echoMode">
|
||||
<enum>QLineEdit::Password</enum>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="clearButtonEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="pButtonLogin">
|
||||
<property name="text">
|
||||
<string>登录</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/ok.png</normaloff>:/QMainFrame/Resources/ok.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonTextBesideIcon</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>5</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="pButtonCancel">
|
||||
<property name="text">
|
||||
<string>放弃</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/x.png</normaloff>:/QMainFrame/Resources/x.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonTextBesideIcon</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>5</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<resources>
|
||||
<include location="resource.qrc"/>
|
||||
<include location="resources.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
|
@ -0,0 +1,109 @@
|
|||
#include <QtWidgets/QtWidgets>
|
||||
#include <QStatusBar>
|
||||
#include <QtWidgets/QtWidgets>
|
||||
#include "QMainFrame.h"
|
||||
|
||||
QMainFrame::QMainFrame(QWidget *parent)
|
||||
: QMainWindow(parent)
|
||||
{
|
||||
setupUi(this);
|
||||
|
||||
init();
|
||||
}
|
||||
|
||||
QMainFrame::~QMainFrame()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void QMainFrame::init()
|
||||
{
|
||||
initWidget();
|
||||
initSignal();
|
||||
initStatusBar();
|
||||
}
|
||||
|
||||
void QMainFrame::initWidget()
|
||||
{
|
||||
//标题栏
|
||||
setWindowTitle( windowTitle() + QString::fromLocal8Bit(" - 版本号:v") + QString::fromLocal8Bit( getVersion().c_str()) );
|
||||
|
||||
//工具栏
|
||||
//ui.pActionDataManage->setEnabled( false );
|
||||
|
||||
//层叠窗口
|
||||
m_pWidgetStack = new QMyStackedWidget( this );
|
||||
|
||||
setCentralWidget( m_pWidgetStack );
|
||||
|
||||
//加入信息录入窗口
|
||||
m_pWidgetInfoInput = new QTelSalePolicyInfoInputWidget();
|
||||
|
||||
m_pWidgetStack->addWidget( m_pWidgetInfoInput, QString::fromLocal8Bit("电销转介绍信息录入窗口") );
|
||||
m_pWidgetStack->showWidget( QString::fromLocal8Bit("电销转介绍信息录入窗口") );
|
||||
|
||||
//加入查询窗口
|
||||
m_pWidgetQuery = new QTelSalePolicyInfoQuery();
|
||||
|
||||
m_pWidgetStack->addWidget( m_pWidgetQuery, QString::fromLocal8Bit("信息查询窗口") );
|
||||
|
||||
//加入参数设置窗口
|
||||
QScrollArea * pScrollArea = new QScrollArea();
|
||||
|
||||
m_pWidgetConfiguration = new QConfigurationWidget();
|
||||
|
||||
pScrollArea->setWidget( m_pWidgetConfiguration );
|
||||
pScrollArea->setAlignment( Qt::AlignLeft | Qt::AlignTop );
|
||||
pScrollArea->setObjectName( QString::fromLocal8Bit("pScrollAreaInput") );
|
||||
pScrollArea->setStyleSheet( QString::fromLocal8Bit( "#pScrollAreaInput\n{\n border: none;\n}" ));
|
||||
|
||||
m_pWidgetStack->addWidget( pScrollArea, QString::fromLocal8Bit("参数配置窗口") );
|
||||
}
|
||||
|
||||
void QMainFrame::initSignal()
|
||||
{
|
||||
connect( pActionInput, SIGNAL(triggered()), this, SLOT(onShowInputWidget()) );
|
||||
connect( pActionQuery, SIGNAL(triggered()), this, SLOT(onShowQueryWidget()) );
|
||||
connect( pActionSetParameter, SIGNAL(triggered()), this, SLOT(onShowSetParameterWidget()) );
|
||||
}
|
||||
|
||||
void QMainFrame::resizeEvent( QResizeEvent * pEvent )
|
||||
{
|
||||
QMainWindow::resizeEvent( pEvent );
|
||||
}
|
||||
|
||||
void QMainFrame::initStatusBar()
|
||||
{
|
||||
//验证
|
||||
QStatusBar * pStatusBar = this->statusBar();
|
||||
|
||||
if ( pStatusBar == NULL )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
QString strDate = QDate::currentDate().toString( QString::fromLocal8Bit("当前日期:yyyy年MM月dd日 ") );
|
||||
QString strUserName = QString::fromLocal8Bit("操作员:") + QString::fromLocal8Bit( getUserName().c_str() ) + QString(" ");
|
||||
QString strUserCode = QString::fromLocal8Bit("工号:") + QString::fromLocal8Bit( getUserCode().c_str() ) + QString(" ");
|
||||
|
||||
//strUser.
|
||||
|
||||
pStatusBar->addPermanentWidget( new QLabel(strDate) );
|
||||
pStatusBar->addPermanentWidget( new QLabel(strUserName) );
|
||||
pStatusBar->addPermanentWidget( new QLabel(strUserCode) );
|
||||
}
|
||||
|
||||
void QMainFrame::onShowInputWidget()
|
||||
{
|
||||
m_pWidgetStack->showWidget( QString::fromLocal8Bit("电销转介绍信息录入窗口") );
|
||||
}
|
||||
|
||||
void QMainFrame::onShowQueryWidget()
|
||||
{
|
||||
m_pWidgetStack->showWidget( QString::fromLocal8Bit("信息查询窗口") );
|
||||
}
|
||||
|
||||
void QMainFrame::onShowSetParameterWidget()
|
||||
{
|
||||
m_pWidgetStack->showWidget( QString::fromLocal8Bit("参数配置窗口") );
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
#ifndef QMAINFRAME_H
|
||||
#define QMAINFRAME_H
|
||||
|
||||
#include <QMainWindow>
|
||||
#include "SystemData.h"
|
||||
#include "QMyStackedWidget.h"
|
||||
#include "QTelSalePolicyInfoInputWidget.h"
|
||||
#include "QTelSalePolicyInfoQuery.h"
|
||||
#include "QConfigurationWidget.h"
|
||||
#include "ui_QMainFrame.h"
|
||||
|
||||
class QMainFrame : public QMainWindow, public Ui::QMainFrame
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QMainFrame(QWidget *parent = 0);
|
||||
~QMainFrame();
|
||||
|
||||
protected Q_SLOTS:
|
||||
void onShowInputWidget();
|
||||
void onShowQueryWidget();
|
||||
void onShowSetParameterWidget();
|
||||
|
||||
protected:
|
||||
void resizeEvent(QResizeEvent * pEvent);
|
||||
|
||||
private:
|
||||
void init();
|
||||
void initWidget();
|
||||
void initSignal();
|
||||
|
||||
void initStatusBar();
|
||||
|
||||
private:
|
||||
QMyStackedWidget * m_pWidgetStack;
|
||||
|
||||
QTelSalePolicyInfoInputWidget * m_pWidgetInfoInput;
|
||||
QTelSalePolicyInfoQuery * m_pWidgetQuery;
|
||||
QConfigurationWidget * m_pWidgetConfiguration;
|
||||
};
|
||||
|
||||
#endif // QMAINFRAME_H
|
|
@ -0,0 +1,129 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>QMainFrame</class>
|
||||
<widget class="QMainWindow" name="QMainFrame">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>768</width>
|
||||
<height>534</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>电销转介绍信息管理系统</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/telephone.png</normaloff>:/QMainFrame/Resources/telephone.png</iconset>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralWidget"/>
|
||||
<widget class="QMenuBar" name="menuBar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>768</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="menu">
|
||||
<property name="title">
|
||||
<string>系统</string>
|
||||
</property>
|
||||
<addaction name="pActionExit"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menu_2">
|
||||
<property name="title">
|
||||
<string>帮助</string>
|
||||
</property>
|
||||
<addaction name="pActionAbout"/>
|
||||
</widget>
|
||||
<addaction name="menu"/>
|
||||
<addaction name="menu_2"/>
|
||||
</widget>
|
||||
<widget class="QToolBar" name="mainToolBar">
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonIconOnly</enum>
|
||||
</property>
|
||||
<attribute name="toolBarArea">
|
||||
<enum>TopToolBarArea</enum>
|
||||
</attribute>
|
||||
<attribute name="toolBarBreak">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<addaction name="pActionInput"/>
|
||||
<addaction name="pActionQuery"/>
|
||||
<addaction name="pActionSetParameter"/>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="pStatusBar"/>
|
||||
<action name="pActionExit">
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/x.png</normaloff>:/QMainFrame/Resources/x.png</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>退出</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>退出程序</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="pActionAbout">
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/CPIC.png</normaloff>:/QMainFrame/Resources/CPIC.png</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>关于</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="pActionInput">
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/edit.png</normaloff>:/QMainFrame/Resources/edit.png</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>录入</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>转介绍信息录入</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="pActionQuery">
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/find.png</normaloff>:/QMainFrame/Resources/find.png</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>查询</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>转介绍信息查询</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="pActionSetParameter">
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/gear.png</normaloff>:/QMainFrame/Resources/gear.png</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>参数设置</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>参数设置</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<resources>
|
||||
<include location="resource.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
|
@ -0,0 +1,12 @@
|
|||
#include "QMainWidget.h"
|
||||
|
||||
QMainWidget::QMainWidget(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
ui.setupUi(this);
|
||||
}
|
||||
|
||||
QMainWidget::~QMainWidget()
|
||||
{
|
||||
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
#ifndef QMAINWIDGET_H
|
||||
#define QMAINWIDGET_H
|
||||
|
||||
#include <QtWidgets/QWidget>
|
||||
#include "ui_QMainWidget.h"
|
||||
|
||||
class QMainWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QMainWidget(QWidget *parent = 0);
|
||||
~QMainWidget();
|
||||
|
||||
private:
|
||||
Ui::QMainWidgetClass ui;
|
||||
};
|
||||
|
||||
#endif // QMAINWIDGET_H
|
|
@ -0,0 +1,25 @@
|
|||
<UI version="4.0" >
|
||||
<class>QMainWidgetClass</class>
|
||||
<widget class="QWidget" name="QMainWidgetClass" >
|
||||
<property name="objectName" >
|
||||
<string notr="true">QMainWidgetClass</string>
|
||||
</property>
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>600</width>
|
||||
<height>400</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<string>QMainWidget</string>
|
||||
</property>
|
||||
</widget>
|
||||
<layoutDefault spacing="6" margin="11" />
|
||||
<pixmapfunction></pixmapfunction>
|
||||
<resources>
|
||||
<include location="resource.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</UI>
|
|
@ -0,0 +1,60 @@
|
|||
#include "QMyStackedWidget.h"
|
||||
|
||||
QMyStackedWidget::QMyStackedWidget(QWidget *parent)
|
||||
: QStackedWidget(parent)
|
||||
{
|
||||
//ui.setupUi(this);
|
||||
}
|
||||
|
||||
QMyStackedWidget::~QMyStackedWidget()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void QMyStackedWidget::addWidget(QWidget * pWidget, const QString & strWidgetName)
|
||||
{
|
||||
//防御性验证
|
||||
if ( pWidget == NULL )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
m_subWidgetTable[strWidgetName] = pWidget;
|
||||
|
||||
QStackedWidget::addWidget( pWidget );
|
||||
}
|
||||
|
||||
void QMyStackedWidget::removeWidget(QWidget * pWidget)
|
||||
{
|
||||
const QString & strWidgetName = m_subWidgetTable.key( pWidget );
|
||||
|
||||
//判断一下列表中是否有这个widget
|
||||
if ( strWidgetName.length() != 0 )
|
||||
{
|
||||
QStackedWidget::removeWidget( pWidget );
|
||||
m_subWidgetTable.remove( strWidgetName );
|
||||
}
|
||||
}
|
||||
|
||||
void QMyStackedWidget::removeWidget(const QString & strWidgetName)
|
||||
{
|
||||
if ( m_subWidgetTable.contains(strWidgetName) == true )
|
||||
{
|
||||
QStackedWidget::removeWidget( m_subWidgetTable[strWidgetName] );
|
||||
|
||||
m_subWidgetTable.remove( strWidgetName );
|
||||
}
|
||||
}
|
||||
|
||||
void QMyStackedWidget::showWidget(const QString & strWidgetName)
|
||||
{
|
||||
if ( m_subWidgetTable.contains(strWidgetName) == true )
|
||||
{
|
||||
setCurrentWidget( m_subWidgetTable[strWidgetName] );
|
||||
}
|
||||
}
|
||||
|
||||
void QMyStackedWidget::showWidget(int index)
|
||||
{
|
||||
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
#ifndef QMYSTACKEDWIDGET_H
|
||||
#define QMYSTACKEDWIDGET_H
|
||||
|
||||
#include <QHash>
|
||||
#include <QtWidgets/QStackedWidget>
|
||||
|
||||
class QMyStackedWidget : public QStackedWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QMyStackedWidget(QWidget *parent = 0);
|
||||
~QMyStackedWidget();
|
||||
|
||||
void addWidget( QWidget * pWidget, const QString & strWidgetName );
|
||||
void removeWidget( QWidget * pWidget );
|
||||
void removeWidget( const QString & strWidgetName );
|
||||
|
||||
void showWidget( const QString & strWidgetName );
|
||||
void showWidget( int index );
|
||||
|
||||
protected Q_SLOTS:
|
||||
|
||||
private:
|
||||
|
||||
|
||||
private:
|
||||
//Ui::QMyStackedWidget ui;
|
||||
|
||||
QHash<QString, QWidget *> m_subWidgetTable; //×Ó´°¿Úhash±í
|
||||
};
|
||||
|
||||
#endif // QMYSTACKEDWIDGET_H
|
|
@ -0,0 +1,248 @@
|
|||
#include "QRapidInputWidget.h"
|
||||
#include "DataManipulation.h"
|
||||
|
||||
QRapidInputWidget::QRapidInputWidget(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
ui.setupUi(this);
|
||||
|
||||
init();
|
||||
}
|
||||
|
||||
QRapidInputWidget::~QRapidInputWidget()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void QRapidInputWidget::init()
|
||||
{
|
||||
initWidget();
|
||||
initSignal();
|
||||
initData();
|
||||
}
|
||||
|
||||
void QRapidInputWidget::initWidget()
|
||||
{
|
||||
setLayout( ui.pLayoutMain );
|
||||
|
||||
setAcceptDrops( true );
|
||||
}
|
||||
|
||||
void QRapidInputWidget::initSignal()
|
||||
{
|
||||
connect( ui.pButtonSave,SIGNAL(clicked()), this, SLOT(onSaveTelSalePolicy()) );
|
||||
connect( ui.pButtonClean,SIGNAL(clicked()), this, SLOT(onCleanTable()) );
|
||||
connect( ui.pButtonOpenFile,SIGNAL(clicked()), this, SLOT(onOpenFile()) );
|
||||
}
|
||||
|
||||
void QRapidInputWidget::initData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void QRapidInputWidget::dragEnterEvent(QDragEnterEvent * pEvent)
|
||||
{
|
||||
if ( pEvent->mimeData()->hasUrls() )
|
||||
{
|
||||
pEvent->acceptProposedAction();
|
||||
}
|
||||
}
|
||||
|
||||
void QRapidInputWidget::dropEvent(QDropEvent * pEvent)
|
||||
{
|
||||
QList<QUrl> listURL = pEvent->mimeData()->urls();
|
||||
QString strFilePath;
|
||||
|
||||
//正则表达式判断文件类型
|
||||
QRegularExpression regXlsx( QString::fromLocal8Bit(".xlsx$"), QRegularExpression::PatternOption::CaseInsensitiveOption );
|
||||
QRegularExpression regXls( QString::fromLocal8Bit(".xls$"), QRegularExpression::PatternOption::CaseInsensitiveOption );
|
||||
QRegularExpressionMatch match;
|
||||
|
||||
if ( listURL.size() == 0 )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
strFilePath = listURL[0].toLocalFile();
|
||||
|
||||
//是xlsx文件
|
||||
match = regXlsx.match( strFilePath );
|
||||
|
||||
if ( match.hasMatch() )
|
||||
{
|
||||
readTelsaleXlsFile( strFilePath.toLocal8Bit().data(), m_vPolicy, ui.pCheckBoxHasTitle->isChecked(), true );
|
||||
}
|
||||
|
||||
//是xls文件
|
||||
match = regXls.match( strFilePath );
|
||||
|
||||
if ( match.hasMatch() )
|
||||
{
|
||||
readTelsaleXlsFile( strFilePath.toLocal8Bit().data(), m_vPolicy, ui.pCheckBoxHasTitle->isChecked(), false );
|
||||
}
|
||||
|
||||
|
||||
showPolicy();
|
||||
}
|
||||
|
||||
void QRapidInputWidget::showPolicy()
|
||||
{
|
||||
int iRowCount = m_vPolicy.size();
|
||||
QTableWidgetItem * pItem = NULL;
|
||||
|
||||
ui.pTableWidgetPolicy->setRowCount( iRowCount );
|
||||
|
||||
for ( int iRowIndex = 0; iRowIndex < iRowCount; iRowIndex++ )
|
||||
{
|
||||
//保单号
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( m_vPolicy[iRowIndex].strPolicySerial.c_str()) );
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
pItem->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled );
|
||||
|
||||
ui.pTableWidgetPolicy->setItem( iRowIndex, 0, pItem );
|
||||
|
||||
//签单日期
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( m_vPolicy[iRowIndex].strSignDate.c_str()) );
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
pItem->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled );
|
||||
|
||||
ui.pTableWidgetPolicy->setItem( iRowIndex, 1, pItem );
|
||||
|
||||
//车牌号
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( m_vPolicy[iRowIndex].strPlateSerial.c_str()) );
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
pItem->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled );
|
||||
|
||||
ui.pTableWidgetPolicy->setItem( iRowIndex, 2, pItem );
|
||||
|
||||
//被保险人
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( m_vPolicy[iRowIndex].strCustomerName.c_str()) );
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
pItem->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled );
|
||||
|
||||
ui.pTableWidgetPolicy->setItem( iRowIndex, 3, pItem );
|
||||
|
||||
//车商代码
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( m_vPolicy[iRowIndex].strAutoTraderCode.c_str()) );
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
pItem->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled );
|
||||
|
||||
ui.pTableWidgetPolicy->setItem( iRowIndex, 4, pItem );
|
||||
|
||||
//经办人代码
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( m_vPolicy[iRowIndex].strSalerCode.c_str()) );
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
pItem->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable );
|
||||
|
||||
ui.pTableWidgetPolicy->setItem( iRowIndex, 5, pItem );
|
||||
|
||||
//经办人名称
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( m_vPolicy[iRowIndex].strSalerName.c_str()) );
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
pItem->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled );
|
||||
|
||||
ui.pTableWidgetPolicy->setItem( iRowIndex, 6, pItem );
|
||||
|
||||
//部门
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( m_vPolicy[iRowIndex].strSalerDeptName.c_str()) );
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
pItem->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled );
|
||||
|
||||
ui.pTableWidgetPolicy->setItem( iRowIndex, 7, pItem );
|
||||
|
||||
//科室
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( m_vPolicy[iRowIndex].strSalerOfficeName.c_str()) );
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
pItem->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled );
|
||||
|
||||
ui.pTableWidgetPolicy->setItem( iRowIndex, 8, pItem );
|
||||
}
|
||||
|
||||
ui.pTableWidgetPolicy->resizeColumnsToContents();
|
||||
}
|
||||
|
||||
void QRapidInputWidget::onSaveTelSalePolicy()
|
||||
{
|
||||
vector<TelSalePolicyGift> vGifts;
|
||||
|
||||
m_vErrorPolicy.clear();
|
||||
|
||||
for ( vector<SPolicyRecord>::iterator iter = m_vPolicy.begin(); iter != m_vPolicy.end(); ++iter )
|
||||
{
|
||||
try
|
||||
{
|
||||
SaveTelSalePolicyInfo( *iter, vGifts );
|
||||
}
|
||||
catch( runtime_error &excpt )
|
||||
{
|
||||
m_vErrorPolicy.push_back( *iter );
|
||||
|
||||
QString strInfo = QString::fromLocal8Bit("保单") + QString::fromLocal8Bit( (*iter).strPolicySerial.c_str() ) + QString::fromLocal8Bit("保存错误!\n") +
|
||||
QString::fromLocal8Bit("错误信息:") + QString::fromLocal8Bit( excpt.what() );
|
||||
|
||||
QMessageBox::critical( this, QString::fromLocal8Bit("保存错误"), strInfo );
|
||||
}
|
||||
}
|
||||
|
||||
m_vPolicy = m_vErrorPolicy;
|
||||
|
||||
showPolicy();
|
||||
}
|
||||
|
||||
void QRapidInputWidget::onCleanTable()
|
||||
{
|
||||
m_vErrorPolicy.clear();
|
||||
m_vPolicy.clear();
|
||||
|
||||
ui.pTableWidgetPolicy->setRowCount(0);
|
||||
ui.pTableWidgetPolicy->clearContents();
|
||||
}
|
||||
|
||||
void QRapidInputWidget::onOpenFile()
|
||||
{
|
||||
QSettings reg( "HKEY_CURRENT_USER\\Software\\TelsalePolicyInfoManager", QSettings::NativeFormat);
|
||||
QString strPath = reg.value( QString::fromLocal8Bit("打开地址") ).toString();
|
||||
|
||||
QStringList listFileNames = QFileDialog::getOpenFileNames( this,
|
||||
QString::fromLocal8Bit("打开Excel文件"),
|
||||
strPath,
|
||||
QString::fromLocal8Bit("Excel文件 (*.xls *.xlsx)") );
|
||||
|
||||
//记录一下打开的路径
|
||||
if ( listFileNames.size() > 0 )
|
||||
{
|
||||
strPath = listFileNames[0].left( listFileNames[0].lastIndexOf( QString::fromLocal8Bit("/") ) + 1 );
|
||||
|
||||
reg.setValue( QString::fromLocal8Bit("打开地址"), strPath );
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//正则表达式判断文件类型
|
||||
QRegularExpression regXlsx( QString::fromLocal8Bit(".xlsx$"), QRegularExpression::PatternOption::CaseInsensitiveOption );
|
||||
QRegularExpression regXls( QString::fromLocal8Bit(".xls$"), QRegularExpression::PatternOption::CaseInsensitiveOption );
|
||||
QRegularExpressionMatch match;
|
||||
|
||||
strPath = listFileNames[0];
|
||||
|
||||
//是xlsx文件
|
||||
match = regXlsx.match( strPath );
|
||||
|
||||
if ( match.hasMatch() )
|
||||
{
|
||||
readTelsaleXlsFile( strPath.toLocal8Bit().data(), m_vPolicy, ui.pCheckBoxHasTitle->isChecked(), true );
|
||||
}
|
||||
|
||||
//是xls文件
|
||||
match = regXls.match( strPath );
|
||||
|
||||
if ( match.hasMatch() )
|
||||
{
|
||||
readTelsaleXlsFile( strPath.toLocal8Bit().data(), m_vPolicy, ui.pCheckBoxHasTitle->isChecked(), false );
|
||||
}
|
||||
|
||||
|
||||
showPolicy();
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
#ifndef QRAPIDINPUTWIDGET_H
|
||||
#define QRAPIDINPUTWIDGET_H
|
||||
|
||||
#include <QtWidgets/QtWidgets>
|
||||
#include <QWidget>
|
||||
#include <vector>
|
||||
#include "ui_QRapidInputWidget.h"
|
||||
#include "DataManipulation.h"
|
||||
|
||||
class QRapidInputWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QRapidInputWidget(QWidget *parent = 0);
|
||||
~QRapidInputWidget();
|
||||
|
||||
protected:
|
||||
virtual void dragEnterEvent( QDragEnterEvent * pEvent );
|
||||
virtual void dropEvent( QDropEvent * pEvent );
|
||||
|
||||
protected Q_SLOTS:
|
||||
void onSaveTelSalePolicy();
|
||||
void onCleanTable();
|
||||
void onOpenFile();
|
||||
|
||||
private:
|
||||
void init();
|
||||
void initWidget();
|
||||
void initSignal();
|
||||
void initData();
|
||||
|
||||
void showPolicy();
|
||||
|
||||
private:
|
||||
Ui::QRapidInputWidget ui;
|
||||
std::vector<SPolicyRecord> m_vPolicy;
|
||||
std::vector<SPolicyRecord> m_vErrorPolicy;
|
||||
};
|
||||
|
||||
#endif // QRAPIDINPUTWIDGET_H
|
|
@ -0,0 +1,203 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>QRapidInputWidget</class>
|
||||
<widget class="QWidget" name="QRapidInputWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>917</width>
|
||||
<height>529</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>QRapidInputWidget</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>120</x>
|
||||
<y>90</y>
|
||||
<width>541</width>
|
||||
<height>318</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="pLayoutMain">
|
||||
<property name="leftMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>操作:</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="2">
|
||||
<widget class="QToolButton" name="pButtonSave">
|
||||
<property name="text">
|
||||
<string>保存数据</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/save2.png</normaloff>:/QMainFrame/Resources/save2.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonTextBesideIcon</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QToolButton" name="pButtonOpenFile">
|
||||
<property name="text">
|
||||
<string>打开文件</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/excel.png</normaloff>:/QMainFrame/Resources/excel.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonTextBesideIcon</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QToolButton" name="pButtonClean">
|
||||
<property name="text">
|
||||
<string>清空列表</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/clean.png</normaloff>:/QMainFrame/Resources/clean.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonTextBesideIcon</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>导入参数:</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="pCheckBoxHasTitle">
|
||||
<property name="text">
|
||||
<string>包含标题</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>191</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTableWidget" name="pTableWidgetPolicy">
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>保单号</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>签单日期</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>车牌号</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>被保险人</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>车商代码</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>经办人代码</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>经办人名称</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>部门</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>科室</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<resources>
|
||||
<include location="resource.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
|
@ -0,0 +1,410 @@
|
|||
#include <QtWidgets/QtWidgets>
|
||||
#include "QTelSalePolicyInfoInputWidget.h"
|
||||
#include "QRapidInputWidget.h"
|
||||
#include "SystemDataQuery.h"
|
||||
#include "SystemData.h"
|
||||
|
||||
QTelSalePolicyInfoInputWidget::QTelSalePolicyInfoInputWidget(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
setupUi(this);
|
||||
|
||||
init();
|
||||
initWidget();
|
||||
initSignal();
|
||||
initData();
|
||||
}
|
||||
|
||||
QTelSalePolicyInfoInputWidget::~QTelSalePolicyInfoInputWidget()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoInputWidget::init()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoInputWidget::initWidget()
|
||||
{
|
||||
setLayout( pLayoutMain );
|
||||
|
||||
//单笔录入窗口
|
||||
pTabWidget->widget( 0 )->setLayout( pLayoutInputMain );
|
||||
|
||||
pScrollAreaInput->setWidget( pWidgetInput );
|
||||
|
||||
pWidgetInput->setLayout( pLayoutInfoDetail );
|
||||
pWidgetInput->setMaximumWidth( 820 );
|
||||
pWidgetInput->setMinimumWidth( 820 );
|
||||
|
||||
//批量录入
|
||||
QRapidInputWidget * pWidgetRapid = new QRapidInputWidget;
|
||||
|
||||
pScrollAreaRapid->setWidget( pWidgetRapid );
|
||||
|
||||
pTabWidget->widget( 1 )->setLayout( pLayoutRapid );
|
||||
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoInputWidget::initSignal()
|
||||
{
|
||||
connect( pEditSalerCode, SIGNAL(editingFinished()), this, SLOT(onQuerySalerName()));
|
||||
connect( pEditSalerCode, SIGNAL(textChanged(const QString &)), this, SLOT(onSalerCodeChanged()) );
|
||||
connect( pEditAutoTraderCode, SIGNAL(editingFinished()), this, SLOT(onQueryAutoTraderName()));
|
||||
connect( pEditAutoTraderCode, SIGNAL(textChanged(const QString &)), this, SLOT(onAutoTraderCodeChanged()) );
|
||||
connect( pButtonSave, SIGNAL(clicked()), this, SLOT(onSavePolicy()) );
|
||||
connect( pButtonResetGift, SIGNAL(clicked()), this, SLOT(onResetGiftsTable()) );
|
||||
connect( pButtonReset, SIGNAL(clicked()), this, SLOT(onReset()) );
|
||||
connect( pTableGifts, SIGNAL(cellChanged(int,int)), this, SLOT(onGiftTableItemChanged(int, int)) );
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoInputWidget::initData()
|
||||
{
|
||||
//默认的车商代码
|
||||
pEditAutoTraderCode->setText( QString::fromLocal8Bit(parameters.getParameter("默认车商代码").c_str() ));
|
||||
|
||||
emit pEditAutoTraderCode->editingFinished();
|
||||
|
||||
//初始化礼品列表
|
||||
InitGiftTable();
|
||||
|
||||
pEditQjxPolicySerial->clear();
|
||||
pEditBizPolicySerial->clear();
|
||||
pEditSalerCode->clear();
|
||||
pEditSalerName->clear();
|
||||
pEditDeptCode->clear();
|
||||
pEditDeptName->clear();
|
||||
pEditOfficeCode->clear();
|
||||
pEditOfficeName->clear();
|
||||
pComboBoxAutotraderCall->setCurrentIndex( 0 );
|
||||
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoInputWidget::InitGiftTable()
|
||||
{
|
||||
//设置标志位
|
||||
m_initing = true;
|
||||
|
||||
m_giftsList.clear();
|
||||
|
||||
try
|
||||
{
|
||||
queryTelsalePolicyGifts( m_giftsList );
|
||||
}
|
||||
catch ( runtime_error &error )
|
||||
{
|
||||
QMessageBox::critical( this, "获取礼品列表出错!", error.what() );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
pTableGifts->clearContents();
|
||||
pTableGifts->setColumnWidth( 0, 200 );
|
||||
pTableGifts->setRowCount( m_giftsList.size() + 2 );
|
||||
|
||||
vector<TelSalePolicyGift>::iterator iter = m_giftsList.begin();
|
||||
|
||||
for ( unsigned int rowIndex = 0; iter != m_giftsList.end(); rowIndex++ )
|
||||
{
|
||||
QTableWidgetItem *pItem = new QTableWidgetItem();
|
||||
|
||||
pItem->setCheckState( Qt::Unchecked );
|
||||
pItem->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled );
|
||||
pItem->setText( QString::fromLocal8Bit(iter->GiftName().c_str()) );
|
||||
pItem->setTextAlignment( Qt::AlignLeft | Qt::AlignVCenter );
|
||||
|
||||
pTableGifts->setItem( rowIndex, 0, pItem );
|
||||
|
||||
pItem = new QTableWidgetItem();
|
||||
|
||||
pItem->setFlags( Qt::ItemIsEnabled | Qt::ItemIsEditable );
|
||||
pItem->setText( QString::fromLocal8Bit(iter->GiftDefaultPrice().c_str()) );
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
|
||||
pTableGifts->setItem( rowIndex, 1, pItem );
|
||||
|
||||
++iter;
|
||||
}
|
||||
|
||||
//其他
|
||||
QTableWidgetItem * pItemOther = new QTableWidgetItem();
|
||||
QTableWidgetItem * pItemOtherPrice = new QTableWidgetItem();
|
||||
|
||||
pItemOther->setText( QString::fromLocal8Bit("其他") );
|
||||
pItemOther->setCheckState( Qt::Unchecked );
|
||||
pItemOther->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled );
|
||||
pItemOther->setTextAlignment( Qt::AlignLeft | Qt::AlignVCenter );
|
||||
|
||||
pItemOtherPrice->setText( "0" );
|
||||
pItemOtherPrice->setFlags( Qt::ItemIsEnabled | Qt::ItemIsEditable );
|
||||
pItemOtherPrice->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
|
||||
pTableGifts->setItem( m_giftsList.size(), 0, pItemOther );
|
||||
pTableGifts->setItem( m_giftsList.size(), 1, pItemOtherPrice );
|
||||
|
||||
//礼品总价值
|
||||
QTableWidgetItem * pItemTotalPrice = new QTableWidgetItem();
|
||||
QTableWidgetItem * pItemTotalPriceAmount = new QTableWidgetItem();
|
||||
|
||||
pItemTotalPrice->setText( QString::fromLocal8Bit("礼品总价值") );
|
||||
pItemTotalPrice->setTextColor( Qt::red );
|
||||
pItemTotalPrice->setFlags( Qt::ItemIsEnabled );
|
||||
pItemTotalPrice->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
|
||||
pItemTotalPriceAmount->setText( QString::fromLocal8Bit("0 元") );
|
||||
pItemTotalPriceAmount->setTextColor( Qt::red );
|
||||
pItemTotalPriceAmount->setFlags( Qt::ItemIsEnabled );
|
||||
pItemTotalPriceAmount->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
|
||||
pTableGifts->setItem( m_giftsList.size() + 1, 0, pItemTotalPrice );
|
||||
pTableGifts->setItem( m_giftsList.size() + 1, 1, pItemTotalPriceAmount );
|
||||
|
||||
pTableGifts->resizeColumnsToContents();
|
||||
|
||||
m_initing = false;
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoInputWidget::readGiftTable(vector<TelSalePolicyGift> & giftList)
|
||||
{
|
||||
int rowCount = pTableGifts->rowCount();
|
||||
|
||||
for ( int rowIndex = 0; rowIndex < rowCount; rowIndex++ )
|
||||
{
|
||||
QTableWidgetItem * pItemName = pTableGifts->item( rowIndex, 0 );
|
||||
QTableWidgetItem * pItemPrice = pTableGifts->item( rowIndex, 1 );
|
||||
|
||||
if ( pItemName->checkState() == Qt::Unchecked )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
TelSalePolicyGift gift( rowIndex, string(pItemName->text().toLocal8Bit().data()), string( pItemPrice->text().toLocal8Bit().data() ));
|
||||
|
||||
giftList.push_back( gift );
|
||||
}
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoInputWidget::onSalerCodeChanged()
|
||||
{
|
||||
pEditSalerName->clear();
|
||||
pEditDeptName->clear();
|
||||
pEditDeptCode->clear();
|
||||
pEditOfficeName->clear();
|
||||
pEditOfficeCode->clear();
|
||||
|
||||
m_strSalerCode.clear();
|
||||
m_strSalerName.clear();
|
||||
m_strSalerDeptCode.clear();
|
||||
m_strSalerDeptName.clear();
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoInputWidget::onQuerySalerName()
|
||||
{
|
||||
m_strSalerCode = pEditSalerCode->text().trimmed().toUpper().toLocal8Bit().data();
|
||||
|
||||
queryStaffInfo( m_strSalerCode, m_strSalerName, m_strSalerDeptCode, m_strSalerDeptName, m_strSalerOfficeCode, m_strSalerOfficeName );
|
||||
|
||||
pEditSalerName->setText( QString::fromLocal8Bit( m_strSalerName.c_str() ));
|
||||
pEditOfficeCode->setText( QString::fromLocal8Bit( m_strSalerOfficeCode.c_str() ));
|
||||
pEditOfficeName->setText( QString::fromLocal8Bit( m_strSalerOfficeName.c_str() ));
|
||||
pEditDeptCode->setText( QString::fromLocal8Bit( m_strSalerDeptCode.c_str() ));
|
||||
pEditDeptName->setText( QString::fromLocal8Bit( m_strSalerDeptName.c_str() ));
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoInputWidget::onSavePolicy()
|
||||
{
|
||||
string strJqxPolicySerial = pEditQjxPolicySerial->text().trimmed().toLocal8Bit().data();
|
||||
string strBizPolicySerial = pEditBizPolicySerial->text().trimmed().toLocal8Bit().data();
|
||||
|
||||
int iAutotraderCallIndex = pComboBoxAutotraderCall->currentIndex();
|
||||
|
||||
vector<TelSalePolicyGift> giftsList; //用户选择的礼品清单
|
||||
|
||||
//触发信号
|
||||
emit pEditSalerCode->editingFinished();
|
||||
emit pEditAutoTraderCode->editingFinished();
|
||||
|
||||
if ( strJqxPolicySerial.empty() && strBizPolicySerial.empty() )
|
||||
{
|
||||
QMessageBox::critical( this, QString::fromLocal8Bit("必须输入保单号"), QString::fromLocal8Bit("交强险、商业险保单号皆为空,\n必须输入一个保单号!"), QMessageBox::Yes );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ( m_strSalerName.empty() == true )
|
||||
{
|
||||
QMessageBox::critical( this, QString::fromLocal8Bit("必须输入经办人代码"), QString::fromLocal8Bit("经办人代码不正确!"), QMessageBox::Yes );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ( iAutotraderCallIndex == 0 )
|
||||
{
|
||||
QMessageBox::critical( this, QString::fromLocal8Bit("输入错误"), QString::fromLocal8Bit("未选择是否车店联呼!"), QMessageBox::Yes );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ( pEditAutoTraderName->text().isEmpty() )
|
||||
{
|
||||
QMessageBox::critical( this, QString::fromLocal8Bit("输入错误"), QString::fromLocal8Bit("车商代码错误!"), QMessageBox::Yes );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ( pGroupBoxGift->isChecked() == true )
|
||||
{
|
||||
readGiftTable( giftsList );
|
||||
|
||||
if ( giftsList.size() == 0 )
|
||||
{
|
||||
QMessageBox::critical( this, QString::fromLocal8Bit("输入错误"), QString::fromLocal8Bit("未选择礼品!"), QMessageBox::Yes );
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
SPolicyRecord policy;//保单信息
|
||||
|
||||
policy.strSalerCode = m_strSalerCode;
|
||||
policy.strSalerName = m_strSalerName;
|
||||
policy.strSalerDeptCode = m_strSalerDeptCode;
|
||||
policy.strSalerDeptName = m_strSalerDeptName;
|
||||
policy.strSalerOfficeCode = m_strSalerOfficeCode;
|
||||
policy.strSalerOfficeName = m_strSalerOfficeName;
|
||||
policy.strOperatorCode = getUserCode();
|
||||
policy.strCustomerName = pEditCustomerName->text().trimmed().toLocal8Bit().data();
|
||||
policy.strPlateSerial = pEditPlateSerial->text().trimmed().toLocal8Bit().data();
|
||||
policy.strFrameSerial = pEditFrameSerial->text().trimmed().toLocal8Bit().data();
|
||||
policy.strEngineSerial = pEditEngineSerial->text().trimmed().toLocal8Bit().data();
|
||||
policy.strOperatorDate = QDate::currentDate().toString( QString::fromLocal8Bit("MM/dd/yyyy")).toLocal8Bit().data();
|
||||
|
||||
if ( iAutotraderCallIndex == 2 )
|
||||
{
|
||||
policy.bIsAutotraderCall = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
policy.bIsAutotraderCall = false;
|
||||
}
|
||||
|
||||
//车商代码
|
||||
if ( m_strAutoTraderName.empty() == false )
|
||||
{
|
||||
policy.strAutoTraderCode = m_strAutoTraderCode;
|
||||
policy.strAutoTraderName = m_strAutoTraderName;
|
||||
}
|
||||
|
||||
if ( strJqxPolicySerial.empty() == false )
|
||||
{
|
||||
//处理交强险保单
|
||||
policy.strPolicySerial = strJqxPolicySerial;
|
||||
|
||||
try
|
||||
{
|
||||
SaveTelSalePolicyInfo( policy, giftsList );
|
||||
|
||||
QMessageBox::information( this, QString::fromLocal8Bit("保存成功!"), QString::fromLocal8Bit("交强险保单保存成功!"), QMessageBox::Yes );
|
||||
}
|
||||
catch ( runtime_error & error )
|
||||
{
|
||||
QMessageBox::critical( this, QString::fromLocal8Bit("保存交强险保单失败!"), QString::fromLocal8Bit(error.what()), QMessageBox::Yes );
|
||||
}
|
||||
}
|
||||
|
||||
if ( strBizPolicySerial.empty() == false )
|
||||
{
|
||||
//处理交强险保单
|
||||
policy.strPolicySerial = strBizPolicySerial;
|
||||
|
||||
try
|
||||
{
|
||||
SaveTelSalePolicyInfo( policy, giftsList );
|
||||
|
||||
QMessageBox::information( this, QString::fromLocal8Bit("保存成功!"), QString::fromLocal8Bit("商业险保单保存成功!"), QMessageBox::Yes );
|
||||
}
|
||||
catch ( runtime_error & error )
|
||||
{
|
||||
QMessageBox::critical( this, QString::fromLocal8Bit("保存商业险保单失败!"), QString::fromLocal8Bit(error.what()), QMessageBox::Yes );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoInputWidget::onResetGiftsTable()
|
||||
{
|
||||
InitGiftTable();
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoInputWidget::onGiftTableItemChanged(int row, int column)
|
||||
{
|
||||
if ( m_initing == true )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int rowCount = pTableGifts->rowCount() - 1;
|
||||
QTableWidgetItem * pItem = NULL;
|
||||
QTableWidgetItem * pItemPrice = NULL;
|
||||
bool isSuccess = false;
|
||||
double giftPrice = 0.0l;
|
||||
|
||||
if ( column == 1 && row != rowCount )
|
||||
{
|
||||
pItem = pTableGifts->item( row, 0 );
|
||||
pItemPrice = pTableGifts->item( row, column );
|
||||
|
||||
pItemPrice->text().toDouble( &isSuccess );
|
||||
|
||||
if ( isSuccess == false )
|
||||
{
|
||||
QMessageBox::critical( this, QString::fromLocal8Bit("输入错误!"), pItem->text() + QString::fromLocal8Bit("价格有误!") );
|
||||
|
||||
pItemPrice->setText( "0" );
|
||||
}
|
||||
}
|
||||
|
||||
for ( int rowIndex = 0; rowIndex < rowCount; rowIndex++ )
|
||||
{
|
||||
pItem = pTableGifts->item( rowIndex, 0 );
|
||||
pItemPrice = pTableGifts->item( rowIndex, 1 );
|
||||
|
||||
if ( pItem->checkState() == Qt::Unchecked )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
giftPrice += pItemPrice->text().toDouble( &isSuccess );
|
||||
|
||||
if ( isSuccess == false )
|
||||
{
|
||||
QMessageBox::critical( this, QString::fromLocal8Bit("输入错误!"), pItem->text() + QString::fromLocal8Bit("价格有误!") );
|
||||
|
||||
pItemPrice->setText( "0" );
|
||||
}
|
||||
}
|
||||
|
||||
pTableGifts->item( pTableGifts->rowCount() - 1, 1 )->setText( QString::fromLocal8Bit("%1 元").arg(giftPrice) );
|
||||
pTableGifts->resizeColumnsToContents();
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoInputWidget::onAutoTraderCodeChanged()
|
||||
{
|
||||
pEditAutoTraderName->clear();
|
||||
|
||||
m_strAutoTraderName.clear();
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoInputWidget::onQueryAutoTraderName()
|
||||
{
|
||||
m_strAutoTraderCode = pEditAutoTraderCode->text().trimmed().toUpper().toLocal8Bit().data();
|
||||
|
||||
queryAutoTraderInfo( m_strAutoTraderCode, m_strAutoTraderName );
|
||||
|
||||
pEditAutoTraderName->setText( QString::fromLocal8Bit( m_strAutoTraderName.c_str() ));
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoInputWidget::onReset()
|
||||
{
|
||||
initData();
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
#ifndef QTELSALEPOLICYINFOINPUTWIDGET_H
|
||||
#define QTELSALEPOLICYINFOINPUTWIDGET_H
|
||||
|
||||
#include <vector>
|
||||
#include <QWidget>
|
||||
#include "DataManipulation.h"
|
||||
#include "ui_QTelSalePolicyInfoInputWidget.h"
|
||||
|
||||
class QTelSalePolicyInfoInputWidget : public QWidget, public Ui::QTelSalePolicyInfoInputWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QTelSalePolicyInfoInputWidget(QWidget *parent = 0);
|
||||
~QTelSalePolicyInfoInputWidget();
|
||||
|
||||
public Q_SLOTS:
|
||||
void onSalerCodeChanged();
|
||||
void onQuerySalerName();
|
||||
void onAutoTraderCodeChanged();
|
||||
void onQueryAutoTraderName();
|
||||
void onSavePolicy();
|
||||
void onResetGiftsTable();
|
||||
void onGiftTableItemChanged( int row, int column );
|
||||
void onReset();
|
||||
|
||||
private:
|
||||
void init();
|
||||
void initWidget();
|
||||
void initSignal();
|
||||
void initData();
|
||||
void InitGiftTable();
|
||||
void readGiftTable( vector<TelSalePolicyGift> & giftList );
|
||||
|
||||
private:
|
||||
string m_strSalerCode;
|
||||
string m_strSalerName;
|
||||
string m_strSalerDeptCode;
|
||||
string m_strSalerDeptName;
|
||||
string m_strSalerOfficeCode;
|
||||
string m_strSalerOfficeName;
|
||||
string m_strAutoTraderCode;
|
||||
string m_strAutoTraderName;
|
||||
|
||||
vector<TelSalePolicyGift> m_giftsList;
|
||||
|
||||
bool m_initing;
|
||||
};
|
||||
|
||||
#endif // QTELSALEPOLICYINFOINPUTWIDGET_H
|
|
@ -0,0 +1,890 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>QTelSalePolicyInfoInputWidget</class>
|
||||
<widget class="QWidget" name="QTelSalePolicyInfoInputWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1007</width>
|
||||
<height>872</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>QTelSalePolicyInfoInputWidget</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="gridLayoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>60</x>
|
||||
<y>30</y>
|
||||
<width>271</width>
|
||||
<height>181</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="pLayoutMain">
|
||||
<property name="leftMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QTabWidget" name="pTabWidget">
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="documentMode">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/edit.png</normaloff>:/QMainFrame/Resources/edit.png</iconset>
|
||||
</attribute>
|
||||
<attribute name="title">
|
||||
<string>转介绍信息录入</string>
|
||||
</attribute>
|
||||
<widget class="QWidget" name="gridLayoutWidget_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>20</y>
|
||||
<width>160</width>
|
||||
<height>80</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="pLayoutInputMain">
|
||||
<item row="0" column="0">
|
||||
<widget class="QScrollArea" name="pScrollAreaInput">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">#pScrollAreaInput
|
||||
{
|
||||
border: none;
|
||||
}</string>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>100</width>
|
||||
<height>30</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_2">
|
||||
<attribute name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/excel.png</normaloff>:/QMainFrame/Resources/excel.png</iconset>
|
||||
</attribute>
|
||||
<attribute name="title">
|
||||
<string>批量录入</string>
|
||||
</attribute>
|
||||
<widget class="QWidget" name="gridLayoutWidget_3">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>50</x>
|
||||
<y>20</y>
|
||||
<width>160</width>
|
||||
<height>80</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="pLayoutRapid">
|
||||
<item row="0" column="0">
|
||||
<widget class="QScrollArea" name="pScrollAreaRapid">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">#pScrollAreaRapid
|
||||
{
|
||||
border: none;
|
||||
}</string>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>158</width>
|
||||
<height>78</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="pWidgetInput" native="true">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>390</x>
|
||||
<y>70</y>
|
||||
<width>71</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>45</x>
|
||||
<y>225</y>
|
||||
<width>861</width>
|
||||
<height>580</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="pLayoutInfoDetail">
|
||||
<property name="leftMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>保单信息</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">font:rgb(255, 0, 0)</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>交强险保单号:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" colspan="3">
|
||||
<widget class="QLineEdit" name="pEditQjxPolicySerial">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid red;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="maxLength">
|
||||
<number>20</number>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_9">
|
||||
<property name="text">
|
||||
<string>商业险保单号:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" colspan="3">
|
||||
<widget class="QLineEdit" name="pEditBizPolicySerial">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid red;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="maxLength">
|
||||
<number>20</number>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_20">
|
||||
<property name="text">
|
||||
<string>车商代码:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="pEditAutoTraderCode">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>70</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>70</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid red;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QLabel" name="label_21">
|
||||
<property name="text">
|
||||
<string>车商名称:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<widget class="QLineEdit" name="pEditAutoTraderName">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid silver;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="text">
|
||||
<string>车店联呼:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1" colspan="3">
|
||||
<widget class="QComboBox" name="pComboBoxAutotraderCall">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">text-align: center;</string>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContents</enum>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>否</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>是</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>经办人信息</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_10">
|
||||
<property name="text">
|
||||
<string>经办人代码:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" colspan="3">
|
||||
<widget class="QLineEdit" name="pEditSalerCode">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid red;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="maxLength">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_11">
|
||||
<property name="text">
|
||||
<string>经办人名称:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" colspan="3">
|
||||
<widget class="QLineEdit" name="pEditSalerName">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid silver;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_12">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>部门代码:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="pEditDeptCode">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>70</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>70</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid silver;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QLabel" name="label_23">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>部门名称:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<widget class="QLineEdit" name="pEditDeptName">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid silver;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_19">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>72</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>科室代码:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="pEditOfficeCode">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>70</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>70</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid silver;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QLabel" name="label_22">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>科室名称:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="3">
|
||||
<widget class="QLineEdit" name="pEditOfficeName">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid silver;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>车辆信息</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_14">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>84</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>客户名称:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" colspan="3">
|
||||
<widget class="QLineEdit" name="pEditCustomerName">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid silver;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_15">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>84</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>车牌号:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="pEditPlateSerial">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid silver;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QLabel" name="label_16">
|
||||
<property name="text">
|
||||
<string>车架号:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QLineEdit" name="pEditFrameSerial">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid silver;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_17">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>84</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>发动机号:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="pEditEngineSerial">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid silver;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2" colspan="2">
|
||||
<widget class="QLabel" name="label_18">
|
||||
<property name="text">
|
||||
<string>* 此部分内容可以不填</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="pGroupBoxGift">
|
||||
<property name="title">
|
||||
<string>礼品清单:</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_8">
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QTableWidget" name="pTableGifts">
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="verticalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>新建行</string>
|
||||
</property>
|
||||
</row>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>礼品名称</string>
|
||||
</property>
|
||||
<property name="textAlignment">
|
||||
<set>AlignCenter</set>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/8218_box1.png</normaloff>:/QMainFrame/Resources/8218_box1.png</iconset>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>礼品价值</string>
|
||||
</property>
|
||||
<property name="textAlignment">
|
||||
<set>AlignCenter</set>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/CNY_Red.png</normaloff>:/QMainFrame/Resources/CNY_Red.png</iconset>
|
||||
</property>
|
||||
</column>
|
||||
<item row="0" column="0">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="checkState">
|
||||
<enum>Unchecked</enum>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_4">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>操作</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_6">
|
||||
<item row="0" column="2">
|
||||
<widget class="QToolButton" name="pButtonReset">
|
||||
<property name="toolTip">
|
||||
<string>重置所有</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>重置</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/clean.png</normaloff>:/QMainFrame/Resources/clean.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>64</width>
|
||||
<height>64</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonIconOnly</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>301</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>301</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QToolButton" name="pButtonSave">
|
||||
<property name="toolTip">
|
||||
<string>保存信息</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>保存</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/save2.png</normaloff>:/QMainFrame/Resources/save2.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>64</width>
|
||||
<height>64</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonIconOnly</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QToolButton" name="pButtonResetGift">
|
||||
<property name="toolTip">
|
||||
<string>重置礼品列表</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>重置</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/8218_box1.png</normaloff>:/QMainFrame/Resources/8218_box1.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>64</width>
|
||||
<height>64</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonIconOnly</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<resources>
|
||||
<include location="resource.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
|
@ -0,0 +1,198 @@
|
|||
|
||||
#include <vector>
|
||||
#include <Qtwidgets/QtWidgets>
|
||||
#include "SystemDataQuery.h"
|
||||
#include "SystemData.h"
|
||||
#include "QTelSalePolicyInfoQuery.h"
|
||||
|
||||
|
||||
using namespace std;
|
||||
|
||||
QTelSalePolicyInfoQuery::QTelSalePolicyInfoQuery(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
setupUi(this);
|
||||
|
||||
init();
|
||||
initWidget();
|
||||
initSignal();
|
||||
}
|
||||
|
||||
QTelSalePolicyInfoQuery::~QTelSalePolicyInfoQuery()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoQuery::init()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoQuery::initWidget()
|
||||
{
|
||||
setLayout( pLayoutMain );
|
||||
|
||||
//录入时间
|
||||
pDateEditStart->setDate( QDate::currentDate().addDays(-1) );
|
||||
pDateEditEnd->setDate( QDate::currentDate() );
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoQuery::initSignal()
|
||||
{
|
||||
connect( pEditOperatorCode, SIGNAL(editingFinished()), this, SLOT(onOperatorCodeEdited()) );
|
||||
connect( pEditOperatorCode, SIGNAL(textChanged(const QString &)), this, SLOT(onOperatorCodeEditing(const QString &)) );
|
||||
connect( pButtonQuery, SIGNAL(clicked()), this, SLOT(onQuery()) );
|
||||
connect( pButtonReset, SIGNAL(clicked()), this, SLOT(onReset()) );
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoQuery::onOperatorCodeEditing(const QString & text)
|
||||
{
|
||||
pEditOperatorName->clear();
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoQuery::onOperatorCodeEdited()
|
||||
{
|
||||
string strStaffCode = pEditOperatorCode->text().toLocal8Bit().data();
|
||||
string strStaffName;
|
||||
|
||||
queryStaffInfo( strStaffCode, strStaffName );
|
||||
|
||||
pEditOperatorName->setText( QString::fromLocal8Bit( strStaffName.c_str() ));
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoQuery::onQuery()
|
||||
{
|
||||
string strPolicyNo = pEditPolicyNo->text().toLocal8Bit().data();
|
||||
string strOperatorCode;
|
||||
string strStartDate;
|
||||
string strEndDate;
|
||||
|
||||
vector<SPolicyQuery> vPolicyInfo;
|
||||
|
||||
if ( !pEditOperatorName->text().isEmpty() )
|
||||
{
|
||||
strOperatorCode = pEditOperatorCode->text().toLocal8Bit().data();
|
||||
}
|
||||
else
|
||||
{
|
||||
//自动使用操作员的工号为条件
|
||||
strOperatorCode = getUserCode();
|
||||
}
|
||||
|
||||
if ( pGroupBoxDate->isChecked() )
|
||||
{
|
||||
strStartDate = pDateEditStart->date().toString( QString::fromLocal8Bit("MM/dd/yyyy") ).toLocal8Bit().data();
|
||||
strEndDate = pDateEditEnd->date().toString( QString::fromLocal8Bit("MM/dd/yyyy") ).toLocal8Bit().data();
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
QueryTelSalePolicyInfo( strPolicyNo,
|
||||
strOperatorCode,
|
||||
strStartDate,
|
||||
strEndDate,
|
||||
vPolicyInfo );
|
||||
|
||||
showData( vPolicyInfo );
|
||||
}
|
||||
catch ( runtime_error & error )
|
||||
{
|
||||
QMessageBox::critical( this, QString::fromLocal8Bit("查询错误!"), QString::fromLocal8Bit(error.what()) );
|
||||
}
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoQuery::onReset()
|
||||
{
|
||||
//录入时间
|
||||
pDateEditStart->setDate( QDate::currentDate().addDays(-1) );
|
||||
pDateEditEnd->setDate( QDate::currentDate() );
|
||||
|
||||
pEditPolicyNo->clear();
|
||||
pEditOperatorCode->clear();
|
||||
pEditOperatorName->clear();
|
||||
}
|
||||
|
||||
void QTelSalePolicyInfoQuery::showData(std::vector<SPolicyQuery> & vPolicy)
|
||||
{
|
||||
QTableWidgetItem * pItem = NULL;
|
||||
QLabel * pLabel = NULL;
|
||||
unsigned int nRowIndex = 0;
|
||||
|
||||
pTableWidgetInfo->setRowCount( vPolicy.size() );
|
||||
|
||||
for ( vector<SPolicyQuery>::iterator iter = vPolicy.begin(); iter != vPolicy.end(); ++iter )
|
||||
{
|
||||
//保单号
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( iter->strPolicySerial.c_str() ));
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
|
||||
pTableWidgetInfo->setItem( nRowIndex, 0, pItem );
|
||||
|
||||
//经办人
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( iter->strSalerCode.c_str() ));
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
|
||||
pTableWidgetInfo->setItem( nRowIndex, 1, pItem );
|
||||
|
||||
//部门
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( iter->strDeptName.c_str() ));
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
|
||||
pTableWidgetInfo->setItem( nRowIndex, 2, pItem );
|
||||
|
||||
//科室
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( iter->strOfficeName.c_str() ));
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
|
||||
pTableWidgetInfo->setItem( nRowIndex, 3, pItem );
|
||||
|
||||
//车店联呼
|
||||
if ( iter->strCDLH == "1" )
|
||||
{
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( "是" ));
|
||||
}
|
||||
else
|
||||
{
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( "否" ));
|
||||
}
|
||||
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
|
||||
pTableWidgetInfo->setItem( nRowIndex, 4, pItem );
|
||||
|
||||
//车商代码
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( iter->strAutoTraderCode.c_str() ));
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
|
||||
pTableWidgetInfo->setItem( nRowIndex, 5, pItem );
|
||||
|
||||
//车商名称
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( iter->strAutoTraderName.c_str() ));
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
|
||||
pTableWidgetInfo->setItem( nRowIndex, 6, pItem );
|
||||
|
||||
//礼品总价值
|
||||
pItem = new QTableWidgetItem( QString::number(iter->dGiftPriceSum, 'f', 2) );
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
|
||||
pTableWidgetInfo->setItem( nRowIndex, 7, pItem );
|
||||
|
||||
//礼品
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( iter->strGifts.c_str() ));
|
||||
pItem->setTextAlignment( Qt::AlignLeft | Qt::AlignVCenter );
|
||||
|
||||
pTableWidgetInfo->setItem( nRowIndex, 8, pItem );
|
||||
|
||||
//录入日期
|
||||
pItem = new QTableWidgetItem( QString::fromLocal8Bit( iter->strInputDate.c_str() ));
|
||||
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
||||
|
||||
pTableWidgetInfo->setItem( nRowIndex, 9, pItem );
|
||||
|
||||
++nRowIndex;
|
||||
|
||||
}
|
||||
|
||||
pTableWidgetInfo->resizeColumnsToContents();
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
#ifndef QTELSALEPOLICYINFOQUERY_H
|
||||
#define QTELSALEPOLICYINFOQUERY_H
|
||||
|
||||
#include <vector>
|
||||
#include <QWidget>
|
||||
#include "DataManipulation.h"
|
||||
#include "ui_QTelSalePolicyInfoQuery.h"
|
||||
|
||||
class QTelSalePolicyInfoQuery : public QWidget, public Ui::QTelSalePolicyInfoQuery
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QTelSalePolicyInfoQuery(QWidget *parent = 0);
|
||||
~QTelSalePolicyInfoQuery();
|
||||
|
||||
protected Q_SLOTS:
|
||||
void onOperatorCodeEditing(const QString & text);
|
||||
void onOperatorCodeEdited();
|
||||
|
||||
void onQuery();
|
||||
void onReset();
|
||||
|
||||
private:
|
||||
void init();
|
||||
void initWidget();
|
||||
void initSignal();
|
||||
|
||||
void showData( std::vector<SPolicyQuery> & vPolicy );
|
||||
};
|
||||
|
||||
#endif // QTELSALEPOLICYINFOQUERY_H
|
|
@ -0,0 +1,392 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>QTelSalePolicyInfoQuery</class>
|
||||
<widget class="QWidget" name="QTelSalePolicyInfoQuery">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>917</width>
|
||||
<height>624</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>QTelSalePolicyInfoQuery</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>50</y>
|
||||
<width>756</width>
|
||||
<height>280</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="pLayoutMain">
|
||||
<property name="leftMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>保单信息:</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_9">
|
||||
<property name="text">
|
||||
<string>保单号:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" colspan="3">
|
||||
<widget class="QLineEdit" name="pEditPolicyNo">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid red;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="maxLength">
|
||||
<number>20</number>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_20">
|
||||
<property name="text">
|
||||
<string>操作员代码:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="pEditOperatorCode">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>90</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>90</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid red;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QLabel" name="label_21">
|
||||
<property name="text">
|
||||
<string>操作员名称:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QLineEdit" name="pEditOperatorName">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border: 1px solid silver;
|
||||
height: 1.5em;</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="pGroupBoxDate">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>录入日期:</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_22">
|
||||
<property name="text">
|
||||
<string>起始日期:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QDateEdit" name="pDateEditStart">
|
||||
<property name="displayFormat">
|
||||
<string>yyyy年MM月dd日</string>
|
||||
</property>
|
||||
<property name="calendarPopup">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_23">
|
||||
<property name="text">
|
||||
<string>终止日期:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QDateEdit" name="pDateEditEnd">
|
||||
<property name="displayFormat">
|
||||
<string>yyyy年MM月dd日</string>
|
||||
</property>
|
||||
<property name="calendarPopup">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="pButtonQuery">
|
||||
<property name="toolTip">
|
||||
<string>查询</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/find.png</normaloff>:/QMainFrame/Resources/find.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>48</width>
|
||||
<height>48</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="pButtonReset">
|
||||
<property name="toolTip">
|
||||
<string>重置</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/clean.png</normaloff>:/QMainFrame/Resources/clean.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>48</width>
|
||||
<height>48</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTableWidget" name="pTableWidgetInfo">
|
||||
<property name="editTriggers">
|
||||
<set>QAbstractItemView::NoEditTriggers</set>
|
||||
</property>
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SingleSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="gridStyle">
|
||||
<enum>Qt::SolidLine</enum>
|
||||
</property>
|
||||
<attribute name="horizontalHeaderVisible">
|
||||
<bool>true</bool>
|
||||
</attribute>
|
||||
<attribute name="verticalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>保单号</string>
|
||||
</property>
|
||||
<property name="textAlignment">
|
||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/CPIC.png</normaloff>:/QMainFrame/Resources/CPIC.png</iconset>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>经办人代码</string>
|
||||
</property>
|
||||
<property name="textAlignment">
|
||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>部门</string>
|
||||
</property>
|
||||
<property name="textAlignment">
|
||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>科室</string>
|
||||
</property>
|
||||
<property name="textAlignment">
|
||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>车店联呼</string>
|
||||
</property>
|
||||
<property name="textAlignment">
|
||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>车商代码</string>
|
||||
</property>
|
||||
<property name="textAlignment">
|
||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>车商名称</string>
|
||||
</property>
|
||||
<property name="textAlignment">
|
||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>礼品总价值</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/CNY_Red.png</normaloff>:/QMainFrame/Resources/CNY_Red.png</iconset>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>礼品</string>
|
||||
</property>
|
||||
<property name="textAlignment">
|
||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/QMainFrame/Resources/8218_box1.png</normaloff>:/QMainFrame/Resources/8218_box1.png</iconset>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>录入日期</string>
|
||||
</property>
|
||||
<property name="textAlignment">
|
||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<resources>
|
||||
<include location="resource.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 8.4 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 542 B |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 952 B |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 24 KiB |
|
@ -0,0 +1,366 @@
|
|||
//#include "stdafx.h"
|
||||
#include "StringCodeConverter.h"
|
||||
#include <locale.h>
|
||||
#include <stdlib.h>
|
||||
//#include <stdio.h>
|
||||
#include <string>
|
||||
#include <cstring>
|
||||
|
||||
using namespace std;
|
||||
|
||||
size_t StringCodeConverter::mbslen( const char *pcszSource )
|
||||
{
|
||||
string strCurLocale = setlocale( LC_ALL, NULL );
|
||||
setlocale( LC_ALL, "chinese-simplified" );
|
||||
|
||||
int mbl = 0;
|
||||
size_t cnt = 0;
|
||||
|
||||
for (cnt = 0; *pcszSource; ++cnt)
|
||||
{
|
||||
mbl = mblen( pcszSource, MB_CUR_MAX );
|
||||
pcszSource += mbl;
|
||||
}
|
||||
|
||||
setlocale( LC_ALL, strCurLocale.c_str() );
|
||||
|
||||
return cnt;
|
||||
}
|
||||
|
||||
wstring StringCodeConverter::mbs2unicode( const string &cstrSource )
|
||||
{
|
||||
string strCurLocale = setlocale( LC_ALL, NULL );
|
||||
setlocale( LC_ALL, "chinese-simplified" ); //改成中文环境,如果接受的参数不是中文字符串,得注意结果
|
||||
|
||||
const char *pcszSource = cstrSource.c_str();
|
||||
|
||||
size_t iCount = cstrSource.size() + 1;
|
||||
wchar_t *pwszBuffer = new wchar_t[ iCount ];
|
||||
|
||||
wmemset( pwszBuffer, 0, iCount );
|
||||
size_t iConvertedCount = mbstowcs( pwszBuffer, pcszSource, iCount );
|
||||
|
||||
if ( iConvertedCount == -1 )
|
||||
{
|
||||
delete [] pwszBuffer;
|
||||
throw string( "mbs2unicode参数有非中英文字符" );
|
||||
}
|
||||
|
||||
wstring wstrDest( pwszBuffer );
|
||||
delete [] pwszBuffer;
|
||||
|
||||
setlocale( LC_ALL, strCurLocale.c_str() );
|
||||
|
||||
return wstrDest;
|
||||
}
|
||||
|
||||
void StringCodeConverter::mbs2unicode(const string &strSource, wstring &wstrDest)
|
||||
{
|
||||
const char *pcszSource = strSource.c_str();
|
||||
string strCurLocale( setlocale(LC_ALL, NULL) );//先保存当前的locale设置
|
||||
|
||||
setlocale( LC_ALL, "chs" );//设置为中文
|
||||
|
||||
size_t iCharCount = strSource.size() + 1;//unicode字符串所需要的字符数
|
||||
wchar_t *pwszBuffer = new wchar_t[ iCharCount ];
|
||||
|
||||
wmemset( pwszBuffer, 0, iCharCount );
|
||||
mbstowcs( pwszBuffer, pcszSource, iCharCount );
|
||||
|
||||
setlocale( LC_ALL, strCurLocale.c_str() );//改回原来的locale设置
|
||||
|
||||
wstrDest = pwszBuffer;
|
||||
delete [] pwszBuffer;
|
||||
}
|
||||
|
||||
void StringCodeConverter::mbs2unicode( const char *pcszSource, wchar_t *pwszDest ) throw (string)
|
||||
{
|
||||
if ( pcszSource == NULL || pwszDest == NULL )
|
||||
{
|
||||
throw string( "参数指针为NULL" );
|
||||
}
|
||||
|
||||
string strCurLocale = setlocale( LC_ALL, NULL );
|
||||
setlocale( LC_ALL, "chinese-simplified" ); //改成中文环境,如果接受的参数不是中文字符串,得注意结果
|
||||
|
||||
size_t iCharCount = mbslen( pcszSource ) + 1;
|
||||
|
||||
if ( iCharCount == -1 )
|
||||
{
|
||||
throw string( "源字符串的编码有非中英文字符" );
|
||||
}
|
||||
|
||||
wmemset( pwszDest, 0, iCharCount );
|
||||
size_t iConvertedCount = mbstowcs( pwszDest, pcszSource, iCharCount );
|
||||
|
||||
if ( iConvertedCount == -1 )
|
||||
{
|
||||
throw string( "源字符串的编码有非中英文字符" );
|
||||
}
|
||||
|
||||
*( pwszDest + iConvertedCount ) = NULL;
|
||||
|
||||
setlocale( LC_ALL, strCurLocale.c_str() );
|
||||
}
|
||||
|
||||
void StringCodeConverter::mbs2utf8( const string &cstrSource, char *pszDest )
|
||||
{
|
||||
const char *pcszSource = cstrSource.c_str();
|
||||
|
||||
string strCurLocale( setlocale( LC_ALL, NULL ) );
|
||||
setlocale( LC_ALL, "chinese-simplified" ); //改成中文环境,如果接受的参数不是中文字符串,得注意结果
|
||||
|
||||
while ( *pcszSource != NULL )
|
||||
{
|
||||
if ( *pcszSource > 0 )
|
||||
{
|
||||
//英文字符,可以直接复制
|
||||
*pszDest = *pcszSource;
|
||||
|
||||
pcszSource++;
|
||||
pszDest++;
|
||||
}
|
||||
else
|
||||
{
|
||||
//非ascii英文字符,先转换成unicode,再转换utf8
|
||||
int iLen = 0;
|
||||
wchar_t wUnicode = 0;
|
||||
char *pcUnicode = (char *)&wUnicode;
|
||||
|
||||
//转换成unicode,返回mb字符的长度
|
||||
iLen = mbtowc( &wUnicode, pcszSource, MB_CUR_MAX );
|
||||
|
||||
pszDest[0] = (0xE0 | ((pcUnicode[1] & 0xF0) >> 4));
|
||||
pszDest[1] = (0x80 | ((pcUnicode[1] & 0x0F) << 2)) + ((pcUnicode[0] & 0xC0) >> 6);
|
||||
pszDest[2] = (0x80 | (pcUnicode[0] & 0x3F));
|
||||
|
||||
pszDest += 3;
|
||||
pcszSource += iLen;
|
||||
}
|
||||
}
|
||||
|
||||
setlocale( LC_ALL, strCurLocale.c_str() );
|
||||
|
||||
*pszDest = NULL;
|
||||
}
|
||||
|
||||
string StringCodeConverter::unicode2mbs( const wstring &wstrSource )
|
||||
{
|
||||
string strCurLocale = setlocale( LC_ALL, NULL );
|
||||
setlocale( LC_ALL, "chinese-simplified" ); //改成中文环境,如果接受的参数不是中文字符串,得注意结果
|
||||
|
||||
const wchar_t *pcwszSource = wstrSource.c_str();
|
||||
|
||||
size_t iCount = wstrSource.size() * 2 + 1;
|
||||
char *pszBuffer = new char[ iCount ];
|
||||
memset( pszBuffer, 0, iCount );
|
||||
|
||||
size_t iConvertedCount = wcstombs( pszBuffer, pcwszSource, iCount );
|
||||
|
||||
if ( iConvertedCount == -1 )
|
||||
{
|
||||
throw string( "unicode2mbs源字符串的编码有非中英文字符" );
|
||||
}
|
||||
|
||||
setlocale( LC_ALL, strCurLocale.c_str() );
|
||||
|
||||
string strDest( pszBuffer );
|
||||
delete [] pszBuffer;
|
||||
|
||||
return strDest;
|
||||
}
|
||||
|
||||
void StringCodeConverter::unicode2mbs( const wstring &wstrSource, string &strDest )
|
||||
{
|
||||
string strCurLocale = setlocale( LC_ALL, NULL );
|
||||
setlocale( LC_ALL, "chs" );
|
||||
|
||||
size_t iCount = wstrSource.size() + 1;
|
||||
char *pszBuffer = new char[ iCount ];
|
||||
const wchar_t *pcwszSource = wstrSource.c_str();
|
||||
|
||||
memset( pszBuffer, 0, iCount );
|
||||
size_t iConvertedCount = wcstombs( pszBuffer, pcwszSource , iCount );
|
||||
|
||||
if ( iConvertedCount == -1 )
|
||||
{
|
||||
delete [] pszBuffer;
|
||||
throw string( "unicode2mbs转换失败,字符串中有非中英文字符!" );
|
||||
}
|
||||
|
||||
strDest = pszBuffer;
|
||||
delete [] pszBuffer;
|
||||
|
||||
setlocale( LC_ALL, strCurLocale.c_str() );
|
||||
}
|
||||
|
||||
void StringCodeConverter::unicode2mbs( const wchar_t *pcwszSource, char *pszDest )
|
||||
{
|
||||
if ( pcwszSource == NULL || pszDest == NULL )
|
||||
{
|
||||
throw string( "unicode2mbs函数,参数值为NULL" );
|
||||
}
|
||||
|
||||
string strCurLocale = setlocale( LC_ALL, NULL );
|
||||
setlocale( LC_ALL, "chinese-simplified" ); //改成中文环境,如果接受的参数不是中文字符串,得注意结果
|
||||
|
||||
size_t iCount = wcslen( pcwszSource )*2 + 1;
|
||||
memset( pszDest, 0, iCount );
|
||||
|
||||
size_t iConvertedCount = wcstombs( pszDest, pcwszSource, iCount );
|
||||
|
||||
if ( iConvertedCount == -1 )
|
||||
{
|
||||
throw string( "unicode2mbs转换失败,字符串中有非中英文字符!" );
|
||||
}
|
||||
|
||||
setlocale( LC_ALL, strCurLocale.c_str() );
|
||||
}
|
||||
|
||||
void StringCodeConverter::unicode2utf8( const wstring &cwstrSource, char *pszDest )
|
||||
{
|
||||
if ( pszDest == NULL )
|
||||
{
|
||||
throw string( "参数为NULL" );
|
||||
}
|
||||
|
||||
const wchar_t *pcwszSource = cwstrSource.c_str();
|
||||
|
||||
while ( *pcwszSource != NULL )
|
||||
{
|
||||
unsigned short int iUnicode = *pcwszSource;
|
||||
|
||||
if ( iUnicode < 128 )
|
||||
{
|
||||
//小于128是英文字符,不需要转换
|
||||
*pszDest = (char)iUnicode;
|
||||
pszDest++;
|
||||
pcwszSource++;
|
||||
}
|
||||
else
|
||||
{
|
||||
//大于128是mbs字符,需要转换
|
||||
const char *pcszUnicode = (const char *)pcwszSource;
|
||||
|
||||
pszDest[0] = (0xE0 | ((pcszUnicode[1] & 0xF0) >> 4 ));
|
||||
pszDest[1] = (0x80 | ((pcszUnicode[1] & 0x0F) << 2)) + ((pcszUnicode[0] & 0xC0) >> 6);
|
||||
pszDest[2] = (0x80 | (pcszUnicode[0] & 0x3F));
|
||||
|
||||
pszDest = pszDest + 3;
|
||||
pcwszSource++;
|
||||
}
|
||||
}
|
||||
|
||||
*pszDest = NULL;//末尾的NULL字符
|
||||
}
|
||||
|
||||
string StringCodeConverter::utf8tombs( const char *pcszSource )
|
||||
{
|
||||
if ( pcszSource == NULL )
|
||||
{
|
||||
throw string( "参数为NULL" );
|
||||
}
|
||||
|
||||
string strCurLocale( setlocale( LC_ALL, NULL ) );
|
||||
setlocale( LC_ALL, "chinese-simplified" ); //改成中文环境,如果接受的参数不是中文字符串,得注意结果
|
||||
|
||||
char *pszDest = new char[ strlen( pcszSource ) ];
|
||||
char *pszBuffer = pszDest;
|
||||
|
||||
while ( *pcszSource != 0 )
|
||||
{
|
||||
if ( *pcszSource > 0 )
|
||||
{
|
||||
//是ASCII字符
|
||||
*pszDest = *pcszSource;
|
||||
|
||||
pszDest++;
|
||||
pcszSource++;
|
||||
}
|
||||
else
|
||||
{
|
||||
wchar_t wUnicode = 0;
|
||||
char *pcUnicode = (char *)&wUnicode;
|
||||
|
||||
pcUnicode[1] = ((pcszSource[0] & 0x0F) << 4) + ((pcszSource[1] >> 2) & 0x0F);
|
||||
pcUnicode[0] = ((pcszSource[1] & 0x03) << 6) + (pcszSource[2] & 0x3F);
|
||||
|
||||
wchar_t wMcb;
|
||||
char *pcMbs = (char *)&wMcb;
|
||||
int iLen = 0;
|
||||
|
||||
iLen = wctomb( pcMbs, wUnicode );
|
||||
|
||||
if ( iLen == 1 )
|
||||
{
|
||||
*pszDest = *pcMbs;
|
||||
}
|
||||
else
|
||||
{
|
||||
pszDest[0] = pcMbs[0];
|
||||
pszDest[1] = pcMbs[1];
|
||||
}
|
||||
|
||||
pszDest += iLen;
|
||||
pcszSource += 3;
|
||||
}
|
||||
}
|
||||
|
||||
*pszDest = NULL;
|
||||
|
||||
setlocale( LC_ALL, strCurLocale.c_str() );
|
||||
strCurLocale = pszBuffer; //废物利用
|
||||
|
||||
return strCurLocale;
|
||||
}
|
||||
|
||||
wstring StringCodeConverter::utf8tounicode( const char *pcszSource )
|
||||
{
|
||||
if ( pcszSource == NULL )
|
||||
{
|
||||
throw string( "参数为NULL" );
|
||||
}
|
||||
|
||||
string strCurLocale = setlocale( LC_ALL, NULL );
|
||||
setlocale( LC_ALL, "chinese-simplified" ); //改成中文环境,如果接受的参数不是中文字符串,得注意结果
|
||||
|
||||
wchar_t *pwszBuffer = new wchar_t[ strlen( pcszSource ) ];
|
||||
wchar_t *pwszDest = pwszBuffer;
|
||||
|
||||
while ( *pcszSource != NULL )
|
||||
{
|
||||
if ( *pcszSource > 0 )
|
||||
{
|
||||
//是ASCII字符
|
||||
wchar_t wUnicode;
|
||||
|
||||
mbtowc( &wUnicode, pcszSource, 1 );
|
||||
|
||||
*pwszDest = wUnicode;
|
||||
|
||||
pwszDest++;
|
||||
pcszSource++;
|
||||
}
|
||||
else
|
||||
{
|
||||
//中文字符,3个字节
|
||||
wchar_t wUnicode;
|
||||
char *pcUnicode = (char *)&wUnicode;
|
||||
|
||||
pcUnicode[1] = ((pcszSource[0] & 0x0F) << 4) + ((pcszSource[1] >> 2) & 0x0F);
|
||||
pcUnicode[0] = ((pcszSource[1] & 0x03) << 6) + (pcszSource[2] & 0x3F);
|
||||
|
||||
*pwszDest = wUnicode;
|
||||
|
||||
pwszDest++;
|
||||
pcszSource += 3;
|
||||
}
|
||||
}
|
||||
|
||||
setlocale( LC_ALL, strCurLocale.c_str() );
|
||||
|
||||
*pwszDest = NULL;//末尾空字符
|
||||
wstring wstrDest( pwszBuffer );
|
||||
|
||||
return wstrDest;
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace StringCodeConverter
|
||||
{
|
||||
using std::string;
|
||||
using std::wstring;
|
||||
|
||||
size_t mbslen( const char *pcszSource );
|
||||
|
||||
wstring mbs2unicode( const string &strSource );
|
||||
void mbs2unicode(const string &strSource, wstring &wstrDest);
|
||||
void mbs2unicode(const char *pcszSource, wchar_t *pwszDest) throw ( string );
|
||||
|
||||
void mbs2utf8( const string &cstrSource, char *pszDest );
|
||||
|
||||
string unicode2mbs( const wstring &wstrSource );
|
||||
void unicode2mbs( const wstring &wstrSource, string &strDest );
|
||||
void unicode2mbs( const wchar_t *pwszSource, char *pszDest );
|
||||
void unicode2utf8( const wstring &wstrSource, char *pszDest );
|
||||
|
||||
string utf8tombs( const char *pcszSource );
|
||||
wstring utf8tounicode( const char *pcszSource );
|
||||
};
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
|
||||
#include "SystemData.h"
|
||||
|
||||
//hash_map<string, string> parameters; //存放参数的hashmap
|
||||
|
||||
//版本号
|
||||
const string cstrVersion = "0.99";
|
||||
|
||||
string strUserCode;
|
||||
string strUserName;
|
||||
string strUserPassword;
|
||||
|
||||
//参数
|
||||
Parameters parameters( "config.db" );
|
||||
|
||||
//bool checkVersion()
|
||||
//{
|
||||
// bool result = false;
|
||||
// hash_map<string,string>::iterator iter = parameters.find( string("版本号") );
|
||||
//
|
||||
// if ( iter != parameters.end() && iter->second == cstrVersion )
|
||||
// {
|
||||
// result = true;
|
||||
// }
|
||||
//
|
||||
// return result;
|
||||
//}
|
||||
|
||||
string getUserCode()
|
||||
{
|
||||
return strUserCode;
|
||||
}
|
||||
|
||||
string getUserName()
|
||||
{
|
||||
return strUserName;
|
||||
}
|
||||
|
||||
void setUserCode(const string & cstrUserCode)
|
||||
{
|
||||
strUserCode = cstrUserCode;
|
||||
}
|
||||
|
||||
void setUserName(const string & cstrUserName)
|
||||
{
|
||||
strUserName = cstrUserName;
|
||||
}
|
||||
|
||||
string getVersion()
|
||||
{
|
||||
return parameters.getParameter("版本号");
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
/*!
|
||||
* \file SystemData.h
|
||||
* \date 2014/08/18 13:23
|
||||
*
|
||||
* \author Kane
|
||||
* Contact: user@company.com
|
||||
*
|
||||
* \brief
|
||||
*
|
||||
* TODO: long description
|
||||
*
|
||||
* \note
|
||||
*/
|
||||
|
||||
#ifndef SystemData_h__
|
||||
#define SystemData_h__
|
||||
|
||||
#include <hash_map>
|
||||
#include <string>
|
||||
#include "Parameters.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
//extern hash_map<string, string> parameters;
|
||||
extern Parameters parameters;
|
||||
|
||||
//bool checkVersion();
|
||||
|
||||
string getUserCode();
|
||||
string getUserName();
|
||||
|
||||
void setUserCode( const string & cstrUserCode );
|
||||
void setUserName( const string & cstrUserName );
|
||||
|
||||
string getVersion();
|
||||
|
||||
|
||||
#endif // SystemData_h__
|
|
@ -0,0 +1,205 @@
|
|||
|
||||
|
||||
|
||||
#include <SQLAPI.h>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
//#include <libxl.h>
|
||||
//#include "StringCodeConverter.h"
|
||||
#include "SystemDataQuery.h"
|
||||
|
||||
//using namespace libxl;
|
||||
using namespace std;
|
||||
|
||||
#pragma comment( lib, "user32.lib")
|
||||
#pragma comment( lib, "version.lib")
|
||||
#pragma comment( lib, "oleaut32.lib")
|
||||
#pragma comment( lib, "ole32.lib")
|
||||
#pragma comment( lib, "libxl.lib")
|
||||
|
||||
#ifdef _DEBUG
|
||||
#pragma comment( lib, "sqlapisd.lib")
|
||||
#else
|
||||
#pragma comment( lib, "sqlapis.lib")
|
||||
#endif
|
||||
|
||||
const char g_cszConnectStringIDS6[] =
|
||||
"DRIVER={};"
|
||||
"PROTOCOL=onsoctcp;"
|
||||
"SERVICE=16191;"
|
||||
"SERVER=xmcx1;"
|
||||
"HOST=10.39.0.91;"
|
||||
"DATABASE=ids6;"
|
||||
"DB_LOCALE=en_US.819;";
|
||||
|
||||
const static char g_szUserNameIDS6[] = "ccx99";
|
||||
const static char g_szPasswordIDS6[] = "c91IT09";
|
||||
|
||||
const static char g_cszConnectStringIDSt0[] =
|
||||
"DRIVER={};"
|
||||
"PROTOCOL=onsoctcp;"
|
||||
"SERVICE=16193;"
|
||||
"SERVER=xmcx3;"
|
||||
"HOST=10.39.0.93;"
|
||||
"DATABASE=idst0;"
|
||||
"DB_LOCALE=en_US.819;";
|
||||
|
||||
const static char g_szUserNameIDSt0[] = "ccx99";
|
||||
const static char g_szPasswordIDSt0[] = "c93IT09";
|
||||
|
||||
const static char g_cszConnstringYwgl[] =
|
||||
"DRIVER={};"
|
||||
"PROTOCOL=onsoctcp;"
|
||||
"SERVICE=16192;"
|
||||
"SERVER=xmcx2;"
|
||||
"HOST=10.39.0.92;"
|
||||
"DATABASE=ywgl_xm;"
|
||||
"DB_LOCALE=en_US.819;";
|
||||
|
||||
const static char g_cszUserNameYwgl[] = "ccx99";
|
||||
const static char g_cszPasswordYwgl[] = "c92IT09";
|
||||
|
||||
void QueryUserInfo(const string & strCode, string & strName, string & strPassword)
|
||||
{
|
||||
SAConnection conn;
|
||||
SACommand command;
|
||||
|
||||
string strCommand( "select rymc, rymm from rydm where rydm='" );
|
||||
|
||||
strCommand += strCode;
|
||||
strCommand += "'";
|
||||
|
||||
command.setConnection( &conn );
|
||||
command.setCommandText( strCommand.c_str() );
|
||||
|
||||
try
|
||||
{
|
||||
conn.Connect(
|
||||
g_cszConnstringYwgl,
|
||||
g_cszUserNameYwgl,
|
||||
g_cszPasswordYwgl,
|
||||
SA_Informix_Client );
|
||||
|
||||
command.Execute();
|
||||
}
|
||||
catch ( SAException &error )
|
||||
{
|
||||
//SAString strError = error.ErrText();
|
||||
|
||||
throw runtime_error( error.ErrText() );
|
||||
}
|
||||
|
||||
if ( command.FetchNext() == true )
|
||||
{
|
||||
//Ãû×Ö
|
||||
SAString sastrResult = command.Field("rymc").asString();
|
||||
sastrResult.TrimRight();
|
||||
|
||||
strName = (const char *)sastrResult;
|
||||
|
||||
//ÃÜÂë
|
||||
sastrResult = command.Field("rymm").asString();
|
||||
sastrResult.TrimRight();
|
||||
|
||||
strPassword = (const char *)sastrResult;
|
||||
}
|
||||
|
||||
conn.Disconnect();
|
||||
}
|
||||
|
||||
void queryStaffInfo(const string & strOperatorCode, string & strOperatorName, string & strDeptCode, string & strDeptName, string & strOfficeCode, string & strOfficeName)
|
||||
{
|
||||
SAConnection connection;
|
||||
SACommand command;
|
||||
|
||||
if ( strOperatorCode.size() == 0 )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
string strCommand =
|
||||
"select a.staff_name, "
|
||||
" b.department_code, "
|
||||
" b.department_name, "
|
||||
" c.section_office_c01, "
|
||||
" c.section_office_n01 "
|
||||
"from rydm_t a, bm_t b, ks_t c "
|
||||
"where a.department_code = b.department_code "
|
||||
" and a.section_office_c01 = c.section_office_c01 "
|
||||
" and a.staff_code = '";
|
||||
|
||||
strCommand.append( strOperatorCode );
|
||||
strCommand.append( "'" );
|
||||
|
||||
try
|
||||
{
|
||||
connection.Connect(
|
||||
g_cszConnectStringIDSt0,
|
||||
g_szUserNameIDSt0,
|
||||
g_szPasswordIDSt0,
|
||||
SA_Informix_Client );
|
||||
|
||||
command.setConnection( &connection );
|
||||
command.setCommandText( strCommand.c_str() );
|
||||
|
||||
command.Execute();
|
||||
|
||||
if ( command.FetchNext() == true )
|
||||
{
|
||||
strOperatorName = (const char *)( command.Field( "staff_name").asString() );
|
||||
strDeptCode = (const char *)( command.Field( "department_code").asString() );
|
||||
strDeptName = (const char *)( command.Field( "department_name").asString() );
|
||||
strOfficeCode = (const char *)( command.Field( "section_office_c01").asString() );
|
||||
strOfficeName = (const char *)( command.Field( "section_office_n01").asString() );
|
||||
}
|
||||
|
||||
connection.Disconnect();
|
||||
}
|
||||
catch ( SAException & sqlError )
|
||||
{
|
||||
runtime_error error( sqlError.ErrText() );
|
||||
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
void queryAutoTraderInfo(const string & strAutoTraderCode, string & strAutoTraderName)
|
||||
{
|
||||
SAConnection connection;
|
||||
SACommand command;
|
||||
|
||||
string strCommand =
|
||||
"select name "
|
||||
" from shop_code_t "
|
||||
" where code = '";
|
||||
|
||||
strCommand.append( strAutoTraderCode );
|
||||
strCommand.append( "'" );
|
||||
|
||||
try
|
||||
{
|
||||
connection.Connect(
|
||||
g_cszConnectStringIDSt0,
|
||||
g_szUserNameIDSt0,
|
||||
g_szPasswordIDSt0,
|
||||
SA_Informix_Client );
|
||||
|
||||
command.setConnection( &connection );
|
||||
command.setCommandText( strCommand.c_str() );
|
||||
|
||||
command.Execute();
|
||||
|
||||
if ( command.FetchNext() == true )
|
||||
{
|
||||
strAutoTraderName = (const char *)( command.Field( "name").asString() );
|
||||
}
|
||||
|
||||
connection.Disconnect();
|
||||
}
|
||||
catch ( SAException & sqlError )
|
||||
{
|
||||
runtime_error error( sqlError.ErrText() );
|
||||
|
||||
throw error;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
|
||||
#ifndef DataQuery_h__
|
||||
#define DataQuery_h__
|
||||
|
||||
#include <string>
|
||||
|
||||
using std::string;
|
||||
|
||||
//************************************
|
||||
// Method: QueryOperatorInfo
|
||||
// FullName: QueryOperatorInfo
|
||||
// Access: public
|
||||
// Returns: void
|
||||
// Qualifier: 查询系统用户的信息
|
||||
// Parameter: const string & strCode 工号
|
||||
// Parameter: string & strName 名字
|
||||
// Parameter: string & strPassword 密码
|
||||
//************************************
|
||||
void QueryUserInfo( const string & strCode,
|
||||
string & strName,
|
||||
string & strPassword );
|
||||
|
||||
|
||||
//************************************
|
||||
// Method: queryOperatorInfo
|
||||
// FullName: queryOperatorInfo
|
||||
// Access: public
|
||||
// Returns: void
|
||||
// Qualifier: 查询经办人的信息
|
||||
// Parameter: const string & strOperatorCode 经办人代码
|
||||
// Parameter: string & strOperatorName 经办人名称
|
||||
// Parameter: string & strDeptCode 部门代码
|
||||
// Parameter: string & strDeptName 部门名称
|
||||
// Parameter: string & strOfficeCode 科室代码
|
||||
// Parameter: string & strOfficeName 科室名称
|
||||
//************************************
|
||||
void queryStaffInfo( const string & strOperatorCode,
|
||||
string & strOperatorName,
|
||||
string & strDeptCode = string(),
|
||||
string & strDeptName = string(),
|
||||
string & strOfficeCode = string(),
|
||||
string & strOfficeName = string());
|
||||
|
||||
//************************************
|
||||
// Method: queryAutoTraderInfo
|
||||
// FullName: queryAutoTraderInfo
|
||||
// Access: public
|
||||
// Returns: void
|
||||
// Qualifier: 查询车商信息
|
||||
// Parameter: const string & strAutoTraderCode
|
||||
// Parameter: string & strAutoTraderName
|
||||
//************************************
|
||||
void queryAutoTraderInfo( const string & strAutoTraderCode,
|
||||
string & strAutoTraderName );
|
||||
|
||||
#endif // DataQuery_h__
|
After Width: | Height: | Size: 66 KiB |
|
@ -0,0 +1,2 @@
|
|||
IDI_ICON1 ICON DISCARDABLE "TelSalePolicyInfoManager.ico"
|
||||
|
|
@ -0,0 +1,334 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{D8C5BD12-F9A9-48B7-B02E-F3ACF2431DBD}</ProjectGuid>
|
||||
<Keyword>Qt4VSv1.0</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="libxl.props" />
|
||||
<Import Project="sql_api.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="sql_api.props" />
|
||||
<Import Project="libxl.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(QTDIR)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>qtmaind.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>
|
||||
</DebugInformationFormat>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(QTDIR)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<AdditionalDependencies>qtmain.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DataManipulation.cpp" />
|
||||
<ClCompile Include="GeneratedFiles\Debug\moc_QConfigurationWidget.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Debug\moc_QMainFrame.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Debug\moc_QMyStackedWidget.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Debug\moc_QRapidInputWidget.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Debug\moc_QTelSalePolicyInfoInputWidget.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Debug\moc_QTelSalePolicyInfoQuery.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Release\moc_QConfigurationWidget.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Release\moc_QMainFrame.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Release\moc_QMyStackedWidget.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Release\moc_QRapidInputWidget.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Release\moc_QTelSalePolicyInfoInputWidget.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Release\moc_QTelSalePolicyInfoQuery.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Parameters.cpp" />
|
||||
<ClCompile Include="QConfigurationWidget.cpp" />
|
||||
<ClCompile Include="QMainFrame.cpp" />
|
||||
<ClCompile Include="QMyStackedWidget.cpp" />
|
||||
<ClCompile Include="QRapidInputWidget.cpp" />
|
||||
<ClCompile Include="QTelSalePolicyInfoInputWidget.cpp" />
|
||||
<ClCompile Include="QTelSalePolicyInfoQuery.cpp" />
|
||||
<ClCompile Include="sqlite\sqlite3.c" />
|
||||
<ClCompile Include="SystemData.cpp" />
|
||||
<ClCompile Include="SystemDataQuery.cpp" />
|
||||
<ClCompile Include="GeneratedFiles\Debug\moc_QLoginWidget.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\qrc_resource.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Release\moc_QLoginWidget.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="main.cpp" />
|
||||
<ClCompile Include="QLoginWidget.cpp" />
|
||||
<ClCompile Include="StringCodeConverter.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="QMainFrame.h">
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing QMainFrame.h...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing QMainFrame.h...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets"</Command>
|
||||
</CustomBuild>
|
||||
<ClInclude Include="DataManipulation.h" />
|
||||
<ClInclude Include="GeneratedFiles\ui_QConfigurationWidget.h" />
|
||||
<ClInclude Include="GeneratedFiles\ui_QMainFrame.h" />
|
||||
<CustomBuild Include="QMyStackedWidget.h">
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing QMyStackedWidget.h...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing QMyStackedWidget.h...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets"</Command>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="QTelSalePolicyInfoInputWidget.h">
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing QTelSalePolicyInfoInputWidget.h...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing QTelSalePolicyInfoInputWidget.h...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets"</Command>
|
||||
</CustomBuild>
|
||||
<ClInclude Include="GeneratedFiles\ui_QRapidInputWidget.h" />
|
||||
<ClInclude Include="GeneratedFiles\ui_QTelSalePolicyInfoInputWidget.h" />
|
||||
<CustomBuild Include="QTelSalePolicyInfoQuery.h">
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing QTelSalePolicyInfoQuery.h...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing QTelSalePolicyInfoQuery.h...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets"</Command>
|
||||
</CustomBuild>
|
||||
<ClInclude Include="GeneratedFiles\ui_QTelSalePolicyInfoQuery.h" />
|
||||
<CustomBuild Include="QConfigurationWidget.h">
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing QConfigurationWidget.h...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing QConfigurationWidget.h...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets"</Command>
|
||||
</CustomBuild>
|
||||
<ClInclude Include="Parameters.h" />
|
||||
<CustomBuild Include="QRapidInputWidget.h">
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing QRapidInputWidget.h...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing QRapidInputWidget.h...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets"</Command>
|
||||
</CustomBuild>
|
||||
<ClInclude Include="sqlite\sqlite3.h" />
|
||||
<ClInclude Include="sqlite\sqlite3ext.h" />
|
||||
<ClInclude Include="SystemData.h" />
|
||||
<ClInclude Include="SystemDataQuery.h" />
|
||||
<ClInclude Include="GeneratedFiles\ui_QLoginWidget.h" />
|
||||
<ClInclude Include="StringCodeConverter.h" />
|
||||
<CustomBuild Include="QLoginWidget.h">
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing QLoginWidget.h...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing QLoginWidget.h...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets"</Command>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="resource.qrc">
|
||||
<FileType>Document</FileType>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(FullPath);%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Rcc%27ing %(Identity)...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(FullPath);%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Rcc%27ing %(Identity)...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp</Command>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="TelSalePolicyInfoManager.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="QLoginWidget.ui">
|
||||
<FileType>Document</FileType>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Uic%27ing %(Identity)...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Uic%27ing %(Identity)...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="QMainFrame.ui">
|
||||
<FileType>Document</FileType>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Uic%27ing %(Identity)...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Uic%27ing %(Identity)...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="QTelSalePolicyInfoInputWidget.ui">
|
||||
<FileType>Document</FileType>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Uic%27ing %(Identity)...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Uic%27ing %(Identity)...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="QTelSalePolicyInfoQuery.ui">
|
||||
<FileType>Document</FileType>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Uic%27ing %(Identity)...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Uic%27ing %(Identity)...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="QConfigurationWidget.ui">
|
||||
<FileType>Document</FileType>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Uic%27ing %(Identity)...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Uic%27ing %(Identity)...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="QRapidInputWidget.ui">
|
||||
<FileType>Document</FileType>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Uic%27ing %(Identity)...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Uic%27ing %(Identity)...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
<UserProperties UicDir=".\GeneratedFiles" MocDir=".\GeneratedFiles\$(ConfigurationName)" MocOptions="" RccDir=".\GeneratedFiles" lupdateOnBuild="0" lupdateOptions="" lreleaseOptions="" Qt5Version_x0020_Win32="qt_5.5.1_msvc2010" />
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
|
@ -0,0 +1,259 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;cxx;c;def</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Form Files">
|
||||
<UniqueIdentifier>{99349809-55BA-4b9d-BF79-8FDBB0286EB3}</UniqueIdentifier>
|
||||
<Extensions>ui</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
|
||||
<Extensions>qrc;*</Extensions>
|
||||
<ParseFiles>false</ParseFiles>
|
||||
</Filter>
|
||||
<Filter Include="Generated Files">
|
||||
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
|
||||
<Extensions>moc;h;cpp</Extensions>
|
||||
<SourceControlFiles>False</SourceControlFiles>
|
||||
</Filter>
|
||||
<Filter Include="Generated Files\Debug">
|
||||
<UniqueIdentifier>{2f05627f-c9a4-41eb-8269-986c611a4a70}</UniqueIdentifier>
|
||||
<Extensions>cpp;moc</Extensions>
|
||||
<SourceControlFiles>False</SourceControlFiles>
|
||||
</Filter>
|
||||
<Filter Include="Generated Files\Release">
|
||||
<UniqueIdentifier>{23ebc876-b36b-4b8a-aca1-c20ddcd759df}</UniqueIdentifier>
|
||||
<Extensions>cpp;moc</Extensions>
|
||||
<SourceControlFiles>False</SourceControlFiles>
|
||||
</Filter>
|
||||
<Filter Include="窗口">
|
||||
<UniqueIdentifier>{4b5d1eb3-d75c-45ce-849e-d975d9176d47}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="窗口\登录">
|
||||
<UniqueIdentifier>{14282a62-a912-4020-9aa1-5f8a6ba3d84e}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="数据">
|
||||
<UniqueIdentifier>{84685d90-5aa0-480b-86f0-475cc2f3a0ba}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="数据\参数">
|
||||
<UniqueIdentifier>{fbb675bb-b6bd-4f58-8f9a-1a5e63fa0a2d}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="数据\查询">
|
||||
<UniqueIdentifier>{08b69d0e-8e0d-4249-8507-6be7a059c7e2}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="窗口\主窗口">
|
||||
<UniqueIdentifier>{733f4377-a6f4-4496-bfdf-24b35b0dded7}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="窗口\层叠窗口">
|
||||
<UniqueIdentifier>{65cbf2bf-63a8-4a1b-b041-e9175dfd6e42}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="窗口\转介绍信息录入窗口">
|
||||
<UniqueIdentifier>{3de6178c-206c-4ef5-ab72-ceb40d8dc62b}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="窗口\转介绍信息录入窗口\批量录入">
|
||||
<UniqueIdentifier>{ec5c49a9-dfc7-432d-9185-f24cc4b7d78c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="窗口\转介绍信息录入窗口\录入明细">
|
||||
<UniqueIdentifier>{545fa5ee-5e2d-4063-9985-49a4851a0dcf}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="数据\电销转介绍数据处理">
|
||||
<UniqueIdentifier>{52e0cfaa-1ffc-4dc4-95c1-3b87c4f8d4bc}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="窗口\转介绍信息查询窗口">
|
||||
<UniqueIdentifier>{be3e6d91-bc4f-4512-b3ba-7d10d1933856}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="窗口\参数设置窗口">
|
||||
<UniqueIdentifier>{3d67d9b7-1ea3-42dd-ab1c-271850dd8916}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="sqlite">
|
||||
<UniqueIdentifier>{cd9a9d44-84fe-4891-b349-fb8d5181094b}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="数据\系统参数类">
|
||||
<UniqueIdentifier>{d5cc7801-9099-4b65-ad33-1f3af434922e}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="main.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\qrc_resource.cpp">
|
||||
<Filter>Generated Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="QLoginWidget.cpp">
|
||||
<Filter>窗口\登录</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Debug\moc_QLoginWidget.cpp">
|
||||
<Filter>Generated Files\Debug</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Release\moc_QLoginWidget.cpp">
|
||||
<Filter>Generated Files\Release</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="StringCodeConverter.cpp">
|
||||
<Filter>数据\查询</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="SystemDataQuery.cpp">
|
||||
<Filter>数据\查询</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="SystemData.cpp">
|
||||
<Filter>数据\参数</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Debug\moc_QMainFrame.cpp">
|
||||
<Filter>Generated Files\Debug</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Release\moc_QMainFrame.cpp">
|
||||
<Filter>Generated Files\Release</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="QMainFrame.cpp">
|
||||
<Filter>窗口\主窗口</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="QMyStackedWidget.cpp">
|
||||
<Filter>窗口\层叠窗口</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Debug\moc_QMyStackedWidget.cpp">
|
||||
<Filter>Generated Files\Debug</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Release\moc_QMyStackedWidget.cpp">
|
||||
<Filter>Generated Files\Release</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Debug\moc_QTelSalePolicyInfoInputWidget.cpp">
|
||||
<Filter>Generated Files\Debug</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Release\moc_QTelSalePolicyInfoInputWidget.cpp">
|
||||
<Filter>Generated Files\Release</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="QTelSalePolicyInfoInputWidget.cpp">
|
||||
<Filter>窗口\转介绍信息录入窗口</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DataManipulation.cpp">
|
||||
<Filter>数据\电销转介绍数据处理</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Debug\moc_QTelSalePolicyInfoQuery.cpp">
|
||||
<Filter>Generated Files\Debug</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Release\moc_QTelSalePolicyInfoQuery.cpp">
|
||||
<Filter>Generated Files\Release</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="QTelSalePolicyInfoQuery.cpp">
|
||||
<Filter>窗口\转介绍信息查询窗口</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Debug\moc_QConfigurationWidget.cpp">
|
||||
<Filter>Generated Files\Debug</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Release\moc_QConfigurationWidget.cpp">
|
||||
<Filter>Generated Files\Release</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="QConfigurationWidget.cpp">
|
||||
<Filter>窗口\参数设置窗口</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="sqlite\sqlite3.c">
|
||||
<Filter>sqlite</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Parameters.cpp">
|
||||
<Filter>数据\系统参数类</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Debug\moc_QRapidInputWidget.cpp">
|
||||
<Filter>Generated Files\Debug</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="GeneratedFiles\Release\moc_QRapidInputWidget.cpp">
|
||||
<Filter>Generated Files\Release</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="QRapidInputWidget.cpp">
|
||||
<Filter>窗口\转介绍信息录入窗口\批量录入</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="resource.qrc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="QLoginWidget.h">
|
||||
<Filter>窗口\登录</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="QLoginWidget.ui">
|
||||
<Filter>窗口\登录</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="QMainFrame.ui">
|
||||
<Filter>窗口\主窗口</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="QMainFrame.h">
|
||||
<Filter>窗口\主窗口</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="QMyStackedWidget.h">
|
||||
<Filter>窗口\层叠窗口</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="QTelSalePolicyInfoInputWidget.ui">
|
||||
<Filter>窗口\转介绍信息录入窗口</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="QTelSalePolicyInfoInputWidget.h">
|
||||
<Filter>窗口\转介绍信息录入窗口</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="QTelSalePolicyInfoQuery.ui">
|
||||
<Filter>窗口\转介绍信息查询窗口</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="QTelSalePolicyInfoQuery.h">
|
||||
<Filter>窗口\转介绍信息查询窗口</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="QConfigurationWidget.ui">
|
||||
<Filter>窗口\参数设置窗口</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="QConfigurationWidget.h">
|
||||
<Filter>窗口\参数设置窗口</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="QRapidInputWidget.ui">
|
||||
<Filter>窗口\转介绍信息录入窗口\批量录入</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="QRapidInputWidget.h">
|
||||
<Filter>窗口\转介绍信息录入窗口\批量录入</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="GeneratedFiles\ui_QLoginWidget.h">
|
||||
<Filter>Generated Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="StringCodeConverter.h">
|
||||
<Filter>数据\查询</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="SystemDataQuery.h">
|
||||
<Filter>数据\查询</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="SystemData.h">
|
||||
<Filter>数据\参数</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="GeneratedFiles\ui_QMainFrame.h">
|
||||
<Filter>Generated Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="GeneratedFiles\ui_QTelSalePolicyInfoInputWidget.h">
|
||||
<Filter>Generated Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DataManipulation.h">
|
||||
<Filter>数据\电销转介绍数据处理</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="GeneratedFiles\ui_QTelSalePolicyInfoQuery.h">
|
||||
<Filter>Generated Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="GeneratedFiles\ui_QConfigurationWidget.h">
|
||||
<Filter>Generated Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="sqlite\sqlite3.h">
|
||||
<Filter>sqlite</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="sqlite\sqlite3ext.h">
|
||||
<Filter>sqlite</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Parameters.h">
|
||||
<Filter>数据\系统参数类</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="GeneratedFiles\ui_QRapidInputWidget.h">
|
||||
<Filter>Generated Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="TelSalePolicyInfoManager.rc" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<QTDIR>D:\develop\sdk\qt\qt_5.5.1_msvc2010\5.5\msvc2010</QTDIR>
|
||||
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<QTDIR>D:\develop\sdk\qt\qt_5.5.1_msvc2010\5.5\msvc2010</QTDIR>
|
||||
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,537 @@
|
|||
#include "TelSalePolicyManager.h"
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <exception>
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
using namespace std;
|
||||
using namespace StringCodeConverter;
|
||||
|
||||
#ifndef _UNICODE
|
||||
#define _UNICODE
|
||||
#endif
|
||||
|
||||
const char g_cszConnectStringIDS6[] =
|
||||
"DRIVER={};"
|
||||
"PROTOCOL=onsoctcp;"
|
||||
"SERVICE=16191;"
|
||||
"SERVER=xmcx1;"
|
||||
"HOST=10.39.0.91;"
|
||||
"DATABASE=ids6;"
|
||||
"DB_LOCALE=en_US.819;";
|
||||
|
||||
const static char g_szUserNameIDS6[] = "ccx99";
|
||||
const static char g_szPasswordIDS6[] = "c91IT09";
|
||||
|
||||
const static char g_cszConnstringYwgl[] =
|
||||
"DRIVER={};"
|
||||
"PROTOCOL=onsoctcp;"
|
||||
"SERVICE=16192;"
|
||||
"SERVER=xmcx2;"
|
||||
"HOST=10.39.0.92;"
|
||||
"DATABASE=ywgl_xm;"
|
||||
"DB_LOCALE=en_US.819;";
|
||||
|
||||
const static char g_cszUserNameYwgl[] = "ccx99";
|
||||
const static char g_cszPasswordYwgl[] = "c92IT09";
|
||||
|
||||
CTelSalePolicyManager::CTelSalePolicyManager(void)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
CTelSalePolicyManager::~CTelSalePolicyManager(void)
|
||||
{
|
||||
}
|
||||
|
||||
void CTelSalePolicyManager::Query( SPolicyQuery &policy, std::vector<SPolicyRecord> &vPolicy )
|
||||
{
|
||||
SAConnection conn;
|
||||
SACommand command;
|
||||
|
||||
|
||||
//生成查询字符串
|
||||
string strCommand;
|
||||
|
||||
strCommand.reserve( 1024 );
|
||||
strCommand.append( "select bdh, zhjywy, to_char(czrq, '%Y年%m月%d日') from w_dxbd_i where 1=1 and czrq >='" );
|
||||
|
||||
strCommand += policy.strStartDate;
|
||||
strCommand += "' and czrq <= '";
|
||||
strCommand += policy.strEndDate;
|
||||
strCommand += "'";
|
||||
|
||||
if ( policy.strPolicySerial.empty() == false )
|
||||
{
|
||||
strCommand += " and bdh = '";
|
||||
strCommand += policy.strPolicySerial;
|
||||
strCommand += "'";
|
||||
}
|
||||
|
||||
if ( policy.strSalerCode.empty() == false )
|
||||
{
|
||||
strCommand += " and zhjywy = '";
|
||||
strCommand += policy.strSalerCode;
|
||||
strCommand += "'";
|
||||
}
|
||||
|
||||
if ( policy.strPlateSerial.empty() == false )
|
||||
{
|
||||
strCommand += " and chph = '";
|
||||
strCommand += policy.strPlateSerial;
|
||||
strCommand += "'";
|
||||
}
|
||||
|
||||
if ( policy.strFrameSerial.empty() == false )
|
||||
{
|
||||
strCommand += " and chjh = '";
|
||||
strCommand += policy.strFrameSerial;
|
||||
strCommand += "'";
|
||||
}
|
||||
|
||||
if ( policy.strEngineSerial.empty() == false )
|
||||
{
|
||||
strCommand += " and fdjh = '";
|
||||
strCommand += policy.strEngineSerial;
|
||||
strCommand += "'";
|
||||
}
|
||||
|
||||
command.setConnection( &conn );
|
||||
command.setCommandText( strCommand.c_str() );
|
||||
|
||||
try
|
||||
{
|
||||
conn.Connect(
|
||||
g_cszConnstringYwgl,
|
||||
g_cszUserNameYwgl,
|
||||
g_cszPasswordYwgl,
|
||||
SA_Informix_Client );
|
||||
|
||||
command.Execute();
|
||||
}
|
||||
catch ( SAException &error )
|
||||
{
|
||||
string strError = error.ErrText();
|
||||
|
||||
throw strError;
|
||||
}
|
||||
|
||||
while ( command.FetchNext() == true )
|
||||
{
|
||||
SPolicyRecord policyQuery;
|
||||
|
||||
SAString strCol = command.Field( 1 ).asString();
|
||||
strCol.TrimRight();
|
||||
|
||||
policyQuery.strPolicySerial = strCol;
|
||||
|
||||
strCol = command.Field( 2 ).asString();
|
||||
strCol.TrimRight();
|
||||
policyQuery.strSalerCode = strCol;
|
||||
|
||||
strCol = (SAString)command.Field( 3 ).asString();
|
||||
strCol.TrimRight();
|
||||
policyQuery.strOperatorDate = strCol;
|
||||
|
||||
vPolicy.push_back( policyQuery );
|
||||
}
|
||||
|
||||
conn.Disconnect();
|
||||
}
|
||||
|
||||
string QueryOperatorName( string strOperatorCode )
|
||||
{
|
||||
SAConnection conn;
|
||||
SACommand command;
|
||||
|
||||
string strCommand( "select rymc from rydm where rydm='" );
|
||||
string strResult;
|
||||
|
||||
strCommand += strOperatorCode;
|
||||
strCommand += "'";
|
||||
|
||||
command.setConnection( &conn );
|
||||
command.setCommandText( strCommand.c_str() );
|
||||
|
||||
try
|
||||
{
|
||||
conn.Connect(
|
||||
"DRIVER={};"
|
||||
"PROTOCOL=onsoctcp;" // protocol in lower case
|
||||
"SERVICE=7777;"
|
||||
"SERVER=xmtb1;"
|
||||
"HOST=10.39.0.80;"
|
||||
"DATABASE=datacenter;",
|
||||
"ccxuser",
|
||||
"ccx99",
|
||||
SA_Informix_Client );
|
||||
|
||||
command.Execute();
|
||||
}
|
||||
catch ( SAException &error )
|
||||
{
|
||||
SAString strError = error.ErrText();
|
||||
}
|
||||
|
||||
if ( command.FetchNext() == true )
|
||||
{
|
||||
SAString sastrResult = command.Field("rymc").asString();
|
||||
sastrResult.TrimRight();
|
||||
|
||||
strResult = (const char *)sastrResult;
|
||||
}
|
||||
|
||||
conn.Disconnect();
|
||||
|
||||
return strResult;
|
||||
}
|
||||
|
||||
void QueryOperatorInfo( const string & cstrOperatorCode,
|
||||
string & strOperatorName,
|
||||
string & strDeptCode,
|
||||
string & strDeptName )
|
||||
{
|
||||
SAConnection connection;
|
||||
SACommand command;
|
||||
|
||||
string strCommand = "select a.staff_name, "
|
||||
" a.department_code,"
|
||||
" b.department_name "
|
||||
"from rydm_t a, bm_t b "
|
||||
"where a.department_code = b.department_code "
|
||||
"and a.staff_code = '";
|
||||
|
||||
strCommand.append( cstrOperatorCode );
|
||||
strCommand.append( "'" );
|
||||
|
||||
try
|
||||
{
|
||||
connection.Connect( g_cszConnectStringIDS6,
|
||||
g_szUserNameIDS6,
|
||||
g_szPasswordIDS6,
|
||||
SA_Informix_Client );
|
||||
|
||||
command.setConnection( &connection );
|
||||
command.setCommandText( strCommand.c_str() );
|
||||
|
||||
command.Execute();
|
||||
|
||||
if ( command.FetchNext() == true )
|
||||
{
|
||||
strOperatorName = (const char *)( command.Field( "staff_name").asString() );
|
||||
strDeptCode = (const char *)( command.Field( "department_code").asString() );
|
||||
strDeptName = (const char *)( command.Field( "department_name").asString() );
|
||||
}
|
||||
|
||||
connection.Disconnect();
|
||||
}
|
||||
catch ( SAException & sqlError )
|
||||
{
|
||||
runtime_error error( sqlError.ErrText() );
|
||||
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
void CTelSalePolicyManager::SavePolicy( const SPolicyRecord & policy,
|
||||
const vector<TelSalePolicyGift> giftList )
|
||||
{
|
||||
if ( policy.strPolicySerial.empty() == true )
|
||||
{
|
||||
throw invalid_argument( "保单号为空!" );
|
||||
}
|
||||
|
||||
if ( policy.strSalerCode.empty() == true )
|
||||
{
|
||||
throw invalid_argument( "保单号为空!" );
|
||||
}
|
||||
|
||||
ostringstream ostrCommand;
|
||||
string strAutotraderCall;
|
||||
|
||||
//车店联呼
|
||||
if ( policy.bIsAutotraderCall == true )
|
||||
{
|
||||
strAutotraderCall = "1";
|
||||
}
|
||||
else
|
||||
{
|
||||
strAutotraderCall = "0";
|
||||
}
|
||||
|
||||
ostrCommand << "insert into w_dxbd_i ( khjl, khjllx, bdh, zhjywy, zhjywymc, zhjywybm, zhjywybmm, czydm, czrq , chdlh, khmc, chph, chjh, fdjh ) "
|
||||
"values( 0, 0, "
|
||||
<< "'" << policy.strPolicySerial << "', "
|
||||
<< "'" << policy.strSalerCode << "', "
|
||||
<< "'" << policy.strSalerName << "', "
|
||||
<< "'" << policy.strSalerDeptCode << "', "
|
||||
<< "'" << policy.strSalerDeptName << "', "
|
||||
<< "'" << policy.strOperatorCode << "', "
|
||||
<< "'" << policy.strOperatorDate << "', "
|
||||
<< "'" << strAutotraderCall << "'";
|
||||
|
||||
if ( policy.strCustomerName.empty() == false )
|
||||
{
|
||||
ostrCommand << ", '" << policy.strCustomerName << "'";
|
||||
}
|
||||
else
|
||||
{
|
||||
ostrCommand << ", NULL";
|
||||
}
|
||||
|
||||
if ( policy.strPlateSerial.empty() == false )
|
||||
{
|
||||
ostrCommand << ", '" << policy.strPlateSerial << "'";
|
||||
}
|
||||
else
|
||||
{
|
||||
ostrCommand << ", NULL";
|
||||
}
|
||||
|
||||
if ( policy.strFrameSerial.empty() == false )
|
||||
{
|
||||
ostrCommand << ", '" << policy.strFrameSerial << "'";
|
||||
}
|
||||
else
|
||||
{
|
||||
ostrCommand << ", NULL";
|
||||
}
|
||||
|
||||
if ( policy.strEngineSerial.empty() == false )
|
||||
{
|
||||
ostrCommand << ", '" << policy.strEngineSerial << "'";
|
||||
}
|
||||
else
|
||||
{
|
||||
ostrCommand << ", NULL";
|
||||
}
|
||||
|
||||
ostrCommand << " )";
|
||||
|
||||
string strCommand = ostrCommand.str();
|
||||
|
||||
SAConnection conn;
|
||||
SACommand command;
|
||||
|
||||
command.setConnection( &conn );
|
||||
command.setCommandText( strCommand.c_str() );
|
||||
|
||||
try
|
||||
{
|
||||
conn.Connect(
|
||||
g_cszConnstringYwgl,
|
||||
g_cszUserNameYwgl,
|
||||
g_cszPasswordYwgl,
|
||||
SA_Informix_Client );
|
||||
//conn.setAutoCommit( SA_AutoCommitOff ); //导致锁表
|
||||
|
||||
//保存保单
|
||||
command.Execute();
|
||||
|
||||
//保存礼品列表,先删除旧数据
|
||||
command.setCommandText( "delete w_dxbd_gift_i where bdh = :1 " );
|
||||
command.Param( 1 ).setAsString() = policy.strPolicySerial.c_str();
|
||||
command.Execute();
|
||||
|
||||
command.setCommandText( "insert into w_dxbd_gift_i ( bdh, gift_name, gift_price ) values ( :1, :2, :3 )" );
|
||||
|
||||
for ( vector<TelSalePolicyGift>::const_iterator iter = giftList.begin(); iter != giftList.end(); ++iter )
|
||||
{
|
||||
command.Param( 1 ).setAsString() = policy.strPolicySerial.c_str();
|
||||
command.Param( 2 ).setAsString() = iter->GiftName().c_str();
|
||||
command.Param( 3 ).setAsString() = iter->GiftDefaultPrice().c_str();
|
||||
|
||||
command.Execute();
|
||||
}
|
||||
|
||||
conn.Commit();
|
||||
}
|
||||
catch ( SAException &error )
|
||||
{
|
||||
conn.Rollback();
|
||||
conn.Disconnect();
|
||||
|
||||
throw runtime_error( error.ErrText() );
|
||||
}
|
||||
|
||||
conn.Disconnect();
|
||||
}
|
||||
|
||||
void CTelSalePolicyManager::LoadFromExcelFile( const char *pcszFilePath, vector< SPolicyRecord > *pvPolicy )
|
||||
{
|
||||
if ( pvPolicy == NULL )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
wchar_t pwszFilePath[1024];
|
||||
|
||||
mbs2unicode( pcszFilePath, pwszFilePath );
|
||||
|
||||
IBookT<wchar_t> *pBookPolicy = xlCreateXMLBookW();
|
||||
|
||||
if ( pBookPolicy == NULL )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !(pBookPolicy->load( pwszFilePath )) )
|
||||
{
|
||||
const char *pcszError = pBookPolicy->errorMessage();
|
||||
|
||||
pBookPolicy->release();
|
||||
}
|
||||
|
||||
ISheetT<wchar_t> *pSheet = pBookPolicy->getSheet( 0 );
|
||||
|
||||
if ( pSheet == NULL )
|
||||
{
|
||||
pBookPolicy->release();
|
||||
return;
|
||||
}
|
||||
|
||||
int iStartRow = pSheet->firstRow();
|
||||
int iEndROw = pSheet->lastRow();
|
||||
|
||||
for ( iStartRow++; iStartRow <= iEndROw; iStartRow++ )
|
||||
{
|
||||
SPolicyRecord policy;
|
||||
|
||||
policy.strPolicySerial = getCellString( pSheet, iStartRow, 0 );
|
||||
|
||||
if ( policy.strPolicySerial.empty() == true )
|
||||
{
|
||||
iStartRow++;
|
||||
continue;
|
||||
}
|
||||
|
||||
policy.strSalerCode = getCellString( pSheet, iStartRow, 1 );
|
||||
policy.strCustomerName = getCellString( pSheet, iStartRow, 2 );
|
||||
policy.strPlateSerial = getCellString( pSheet, iStartRow, 3 );
|
||||
policy.strFrameSerial = getCellString( pSheet, iStartRow, 4 );
|
||||
policy.strEngineSerial = getCellString( pSheet, iStartRow, 5 );
|
||||
|
||||
pvPolicy->push_back( policy );
|
||||
}
|
||||
|
||||
pBookPolicy->release();
|
||||
}
|
||||
|
||||
void CTelSalePolicyManager::SavePolicyGift( const string & strPolicyNo, const vector<TelSalePolicyGift> & giftsList )
|
||||
{
|
||||
if ( strPolicyNo.empty() )
|
||||
{
|
||||
throw invalid_argument( "strPolicyNo" );
|
||||
}
|
||||
|
||||
if ( giftsList.empty() )
|
||||
{
|
||||
throw invalid_argument( "礼品列表为空!" );
|
||||
}
|
||||
|
||||
SAConnection conn;
|
||||
SACommand command;
|
||||
|
||||
command.setConnection( &conn );
|
||||
command.setCommandText( "insert into w_dxbd_gift_i ( bdh, gift_name, gift_price ) values ( :1, :2, :3 )" );
|
||||
|
||||
try
|
||||
{
|
||||
conn.Connect( g_cszConnstringYwgl,
|
||||
g_cszUserNameYwgl,
|
||||
g_cszPasswordYwgl,
|
||||
SA_Informix_Client );
|
||||
|
||||
for ( vector<TelSalePolicyGift>::const_iterator iter = giftsList.begin(); iter != giftsList.end(); ++iter )
|
||||
{
|
||||
command.Param( 1 ).setAsString() = strPolicyNo.c_str();
|
||||
command.Param( 2 ).setAsString() = iter->GiftName().c_str();
|
||||
command.Param( 3 ).setAsString() = iter->GiftDefaultPrice().c_str();
|
||||
|
||||
command.Execute();
|
||||
}
|
||||
}
|
||||
catch ( SAException &error )
|
||||
{
|
||||
throw runtime_error( error.ErrText() );
|
||||
}
|
||||
|
||||
conn.Disconnect();
|
||||
}
|
||||
|
||||
|
||||
string getCellString( ISheetT<wchar_t> *pSheet, int iRowIndex, int iColIndex )
|
||||
{
|
||||
if ( pSheet == NULL )
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
string strCell;
|
||||
int iCellValue;
|
||||
const char *pcszBuffer = NULL;
|
||||
char pszNumber[100];
|
||||
|
||||
CellType celltype = pSheet->cellType( iRowIndex, iColIndex );
|
||||
|
||||
switch ( celltype )
|
||||
{
|
||||
case CELLTYPE_STRING:
|
||||
//字符串
|
||||
strCell = unicode2mbs( pSheet->readStr( iRowIndex, iColIndex ) );
|
||||
break;
|
||||
|
||||
case CELLTYPE_NUMBER:
|
||||
//数字
|
||||
iCellValue = pSheet->readNum( iRowIndex, iColIndex );
|
||||
|
||||
sprintf( pszNumber,"%d", iCellValue );
|
||||
strCell = pszNumber;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return strCell;
|
||||
}
|
||||
|
||||
void queryTelsalePolicyGifts( vector<TelSalePolicyGift> &giftList )
|
||||
{
|
||||
SAConnection connection;
|
||||
SACommand command;
|
||||
|
||||
string strSQL = "select id, trim(name), default_price from w_dx_gifts";
|
||||
|
||||
command.setConnection( &connection );
|
||||
command.setCommandText( strSQL.c_str() );
|
||||
|
||||
try
|
||||
{
|
||||
connection.Connect(
|
||||
g_cszConnstringYwgl,
|
||||
g_cszUserNameYwgl,
|
||||
g_cszPasswordYwgl,
|
||||
SA_Informix_Client );
|
||||
|
||||
command.Execute();
|
||||
}
|
||||
catch ( SAException &error )
|
||||
{
|
||||
throw runtime_error( error.ErrText() );
|
||||
}
|
||||
|
||||
while ( command.FetchNext() )
|
||||
{
|
||||
TelSalePolicyGift gift;
|
||||
|
||||
gift.Id( command.Field(1).asLong() );
|
||||
gift.GiftName( (const char *)(command.Field(2).asString()) );
|
||||
gift.GiftDefaultPrice( (const char *)(command.Field(3).asString()) );
|
||||
|
||||
giftList.push_back( gift );
|
||||
}
|
||||
|
||||
connection.Disconnect();
|
||||
}
|
|
@ -0,0 +1,96 @@
|
|||
#pragma once
|
||||
|
||||
#include <SQLAPI.h>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <libxl.h>
|
||||
#include "StringCodeConverter.h"
|
||||
|
||||
using namespace libxl;
|
||||
using namespace std;
|
||||
|
||||
#pragma comment( lib, "user32.lib")
|
||||
#pragma comment( lib, "version.lib")
|
||||
#pragma comment( lib, "oleaut32.lib")
|
||||
#pragma comment( lib, "ole32.lib")
|
||||
#pragma comment( lib, "libxl.lib")
|
||||
|
||||
#ifdef _DEBUG
|
||||
#pragma comment( lib, "sqlapisd.lib")
|
||||
#else
|
||||
#pragma comment( lib, "sqlapis.lib")
|
||||
#endif
|
||||
|
||||
typedef struct
|
||||
{
|
||||
std::string strPolicySerial;
|
||||
std::string strSalerCode;
|
||||
std::string strSalerName;
|
||||
std::string strSalerDeptCode;
|
||||
std::string strSalerDeptName;
|
||||
std::string strCustomerName;
|
||||
std::string strPlateSerial;
|
||||
std::string strFrameSerial;
|
||||
std::string strEngineSerial;
|
||||
std::string strOperatorDate;
|
||||
std::string strOperatorCode;
|
||||
bool bIsAutotraderCall;
|
||||
} SPolicyRecord;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
std::string strPolicySerial;
|
||||
std::string strSalerCode;
|
||||
std::string strPlateSerial;
|
||||
std::string strFrameSerial;
|
||||
std::string strEngineSerial;
|
||||
std::string strStartDate;
|
||||
std::string strEndDate;
|
||||
} SPolicyQuery;
|
||||
|
||||
class TelSalePolicyGift
|
||||
{
|
||||
public:
|
||||
TelSalePolicyGift() {};
|
||||
TelSalePolicyGift( int id, string & name, string & defaultPrice ) : m_id( id ), m_giftName( name ), m_giftDefaultPrice( defaultPrice ) {}
|
||||
|
||||
int Id() const { return m_id; }
|
||||
void Id(int val) { m_id = val; }
|
||||
|
||||
string GiftName() const { return m_giftName; }
|
||||
void GiftName(string val) { m_giftName = val; }
|
||||
|
||||
string GiftDefaultPrice() const { return m_giftDefaultPrice; }
|
||||
void GiftDefaultPrice(string val) { m_giftDefaultPrice = val; }
|
||||
|
||||
private:
|
||||
int m_id;
|
||||
string m_giftName;
|
||||
string m_giftDefaultPrice;
|
||||
|
||||
};
|
||||
|
||||
class CTelSalePolicyManager
|
||||
{
|
||||
public:
|
||||
CTelSalePolicyManager(void);
|
||||
virtual ~CTelSalePolicyManager(void);
|
||||
|
||||
public:
|
||||
static void Query( SPolicyQuery &policy, std::vector<SPolicyRecord> &vPolicy );
|
||||
static void SavePolicy( const SPolicyRecord & policy, const vector<TelSalePolicyGift> giftList );
|
||||
static void SavePolicyGift( const string & strPolicyNo, const vector<TelSalePolicyGift> & giftsList );
|
||||
static void LoadFromExcelFile( const char *pcszFilePath, std::vector<SPolicyRecord> *pvPolicy );
|
||||
};
|
||||
|
||||
|
||||
|
||||
std::string QueryOperatorName( std::string strOperatorCode );
|
||||
void QueryOperatorInfo( const string & cstrOperatorCode,
|
||||
string & strOperatorName,
|
||||
string & strDeptCode,
|
||||
string & strDeptName );
|
||||
|
||||
std::string getCellString( ISheetT<wchar_t> *pSheet, int iRowIndex, int iColIndex );
|
||||
|
||||
void queryTelsalePolicyGifts( vector<TelSalePolicyGift> &giftList );
|
|
@ -0,0 +1,49 @@
|
|||
|
||||
#include "check.h"
|
||||
|
||||
hash_map<string, string> parameters; //存放参数的hashmap
|
||||
|
||||
//版本号
|
||||
const string cstrVersion = "0.99";
|
||||
|
||||
string strUserCode;
|
||||
string strUserName;
|
||||
string strUserPassword;
|
||||
|
||||
bool checkVersion()
|
||||
{
|
||||
bool result = false;
|
||||
hash_map<string,string>::iterator iter = parameters.find( string("版本号") );
|
||||
|
||||
if ( iter != parameters.end() && iter->second == cstrVersion )
|
||||
{
|
||||
result = true;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
string getUserCode()
|
||||
{
|
||||
return strUserCode;
|
||||
}
|
||||
|
||||
string getUserName()
|
||||
{
|
||||
return strUserName;
|
||||
}
|
||||
|
||||
void setUserCode(const string & cstrUserCode)
|
||||
{
|
||||
strUserCode = cstrUserCode;
|
||||
}
|
||||
|
||||
void setUserName(const string & cstrUserName)
|
||||
{
|
||||
strUserName = cstrUserName;
|
||||
}
|
||||
|
||||
string getVersion()
|
||||
{
|
||||
return cstrVersion;
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
|
||||
#ifndef check_h__
|
||||
#define check_h__
|
||||
|
||||
#include <hash_map>
|
||||
#include <string>
|
||||
|
||||
using namespace std;
|
||||
|
||||
extern hash_map<string, string> parameters;
|
||||
|
||||
bool checkVersion();
|
||||
|
||||
string getUserCode();
|
||||
string getUserName();
|
||||
|
||||
void setUserCode( const string & cstrUserCode );
|
||||
void setUserName( const string & cstrUserName );
|
||||
|
||||
string getVersion();
|
||||
|
||||
#endif // check_h__
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets" />
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<ExecutablePath>D:\SDK\libxl\libxl_3.1.0\bin;$(ExecutablePath)</ExecutablePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<IncludePath>D:\SDK\libxl\libxl_3.1.0\include_cpp;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<LibraryPath>D:\SDK\libxl\libxl_3.1.0\lib;$(LibraryPath)</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup />
|
||||
<ItemGroup />
|
||||
</Project>
|
|
@ -0,0 +1,67 @@
|
|||
|
||||
|
||||
#include <QTextCodec>
|
||||
#include <QString>
|
||||
#include <QtWidgets/QMessageBox.h>
|
||||
#include <QtWidgets/QApplication>
|
||||
#include <exception>
|
||||
#include "QMainFrame.h"
|
||||
#include "QLoginWidget.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
//用于编码转换
|
||||
QTextCodec * pCodecLocal = QTextCodec::codecForLocale();
|
||||
|
||||
QApplication a(argc, argv);
|
||||
QLoginWidget login;
|
||||
|
||||
int iReturnCode = 0;
|
||||
|
||||
/*try
|
||||
{
|
||||
initConnectionPool();
|
||||
queryParameters();
|
||||
|
||||
if ( checkVersion() == false )
|
||||
{
|
||||
QMessageBox::warning( NULL,
|
||||
pCodecLocal->toUnicode( "版本错误" ),
|
||||
pCodecLocal->toUnicode( "程序版本过低!\n请联系信息技术部更新程序!" ));
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
catch ( std::runtime_error & error )
|
||||
{
|
||||
releaseConnectionPool();
|
||||
QMessageBox::critical( NULL,
|
||||
"错误",
|
||||
pCodecLocal->toUnicode(error.what()) );
|
||||
|
||||
return iReturnCode;
|
||||
}
|
||||
catch ( std::exception &error )
|
||||
{
|
||||
releaseConnectionPool();
|
||||
QMessageBox::critical( NULL,
|
||||
"未知错误",
|
||||
pCodecLocal->toUnicode( error.what() ));
|
||||
|
||||
return iReturnCode;
|
||||
}*/
|
||||
|
||||
login.exec();
|
||||
|
||||
if ( login.isLogin() == true )
|
||||
{
|
||||
QMainFrame w;
|
||||
w.showMaximized();
|
||||
|
||||
iReturnCode = a.exec();
|
||||
}
|
||||
|
||||
//releaseConnectionPool();
|
||||
|
||||
return iReturnCode;
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
<RCC>
|
||||
<qresource prefix="/QMainFrame">
|
||||
<file>Resources/car.png</file>
|
||||
<file>Resources/car2.png</file>
|
||||
<file>Resources/clean.png</file>
|
||||
<file>Resources/CPIC.png</file>
|
||||
<file>Resources/dec.png</file>
|
||||
<file>Resources/edit.png</file>
|
||||
<file>Resources/excel.png</file>
|
||||
<file>Resources/find.png</file>
|
||||
<file>Resources/gear.png</file>
|
||||
<file>Resources/login.png</file>
|
||||
<file>Resources/manager.png</file>
|
||||
<file>Resources/new.png</file>
|
||||
<file>Resources/ok.png</file>
|
||||
<file>Resources/plus.png</file>
|
||||
<file>Resources/save.png</file>
|
||||
<file>Resources/save2.png</file>
|
||||
<file>Resources/tongji.png</file>
|
||||
<file>Resources/x.png</file>
|
||||
<file>Resources/telephone.png</file>
|
||||
<file>Resources/8218_box1.png</file>
|
||||
<file>Resources/CNY_Red.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets" />
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<ExecutablePath>D:\SDK\sqlapi\sqlapi_msvc2010_3.8.1\bin;$(ExecutablePath)</ExecutablePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<IncludePath>D:\SDK\sqlapi\sqlapi_msvc2010_3.8.1\include;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<LibraryPath>D:\SDK\sqlapi\sqlapi_msvc2010_3.8.1\lib;$(LibraryPath)</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup />
|
||||
<ItemGroup />
|
||||
</Project>
|
|
@ -0,0 +1,487 @@
|
|||
/*
|
||||
** 2006 June 7
|
||||
**
|
||||
** The author disclaims copyright to this source code. In place of
|
||||
** a legal notice, here is a blessing:
|
||||
**
|
||||
** May you do good and not evil.
|
||||
** May you find forgiveness for yourself and forgive others.
|
||||
** May you share freely, never taking more than you give.
|
||||
**
|
||||
*************************************************************************
|
||||
** This header file defines the SQLite interface for use by
|
||||
** shared libraries that want to be imported as extensions into
|
||||
** an SQLite instance. Shared libraries that intend to be loaded
|
||||
** as extensions by SQLite should #include this file instead of
|
||||
** sqlite3.h.
|
||||
*/
|
||||
#ifndef _SQLITE3EXT_H_
|
||||
#define _SQLITE3EXT_H_
|
||||
#include "sqlite3.h"
|
||||
|
||||
typedef struct sqlite3_api_routines sqlite3_api_routines;
|
||||
|
||||
/*
|
||||
** The following structure holds pointers to all of the SQLite API
|
||||
** routines.
|
||||
**
|
||||
** WARNING: In order to maintain backwards compatibility, add new
|
||||
** interfaces to the end of this structure only. If you insert new
|
||||
** interfaces in the middle of this structure, then older different
|
||||
** versions of SQLite will not be able to load each others' shared
|
||||
** libraries!
|
||||
*/
|
||||
struct sqlite3_api_routines {
|
||||
void * (*aggregate_context)(sqlite3_context*,int nBytes);
|
||||
int (*aggregate_count)(sqlite3_context*);
|
||||
int (*bind_blob)(sqlite3_stmt*,int,const void*,int n,void(*)(void*));
|
||||
int (*bind_double)(sqlite3_stmt*,int,double);
|
||||
int (*bind_int)(sqlite3_stmt*,int,int);
|
||||
int (*bind_int64)(sqlite3_stmt*,int,sqlite_int64);
|
||||
int (*bind_null)(sqlite3_stmt*,int);
|
||||
int (*bind_parameter_count)(sqlite3_stmt*);
|
||||
int (*bind_parameter_index)(sqlite3_stmt*,const char*zName);
|
||||
const char * (*bind_parameter_name)(sqlite3_stmt*,int);
|
||||
int (*bind_text)(sqlite3_stmt*,int,const char*,int n,void(*)(void*));
|
||||
int (*bind_text16)(sqlite3_stmt*,int,const void*,int,void(*)(void*));
|
||||
int (*bind_value)(sqlite3_stmt*,int,const sqlite3_value*);
|
||||
int (*busy_handler)(sqlite3*,int(*)(void*,int),void*);
|
||||
int (*busy_timeout)(sqlite3*,int ms);
|
||||
int (*changes)(sqlite3*);
|
||||
int (*close)(sqlite3*);
|
||||
int (*collation_needed)(sqlite3*,void*,void(*)(void*,sqlite3*,
|
||||
int eTextRep,const char*));
|
||||
int (*collation_needed16)(sqlite3*,void*,void(*)(void*,sqlite3*,
|
||||
int eTextRep,const void*));
|
||||
const void * (*column_blob)(sqlite3_stmt*,int iCol);
|
||||
int (*column_bytes)(sqlite3_stmt*,int iCol);
|
||||
int (*column_bytes16)(sqlite3_stmt*,int iCol);
|
||||
int (*column_count)(sqlite3_stmt*pStmt);
|
||||
const char * (*column_database_name)(sqlite3_stmt*,int);
|
||||
const void * (*column_database_name16)(sqlite3_stmt*,int);
|
||||
const char * (*column_decltype)(sqlite3_stmt*,int i);
|
||||
const void * (*column_decltype16)(sqlite3_stmt*,int);
|
||||
double (*column_double)(sqlite3_stmt*,int iCol);
|
||||
int (*column_int)(sqlite3_stmt*,int iCol);
|
||||
sqlite_int64 (*column_int64)(sqlite3_stmt*,int iCol);
|
||||
const char * (*column_name)(sqlite3_stmt*,int);
|
||||
const void * (*column_name16)(sqlite3_stmt*,int);
|
||||
const char * (*column_origin_name)(sqlite3_stmt*,int);
|
||||
const void * (*column_origin_name16)(sqlite3_stmt*,int);
|
||||
const char * (*column_table_name)(sqlite3_stmt*,int);
|
||||
const void * (*column_table_name16)(sqlite3_stmt*,int);
|
||||
const unsigned char * (*column_text)(sqlite3_stmt*,int iCol);
|
||||
const void * (*column_text16)(sqlite3_stmt*,int iCol);
|
||||
int (*column_type)(sqlite3_stmt*,int iCol);
|
||||
sqlite3_value* (*column_value)(sqlite3_stmt*,int iCol);
|
||||
void * (*commit_hook)(sqlite3*,int(*)(void*),void*);
|
||||
int (*complete)(const char*sql);
|
||||
int (*complete16)(const void*sql);
|
||||
int (*create_collation)(sqlite3*,const char*,int,void*,
|
||||
int(*)(void*,int,const void*,int,const void*));
|
||||
int (*create_collation16)(sqlite3*,const void*,int,void*,
|
||||
int(*)(void*,int,const void*,int,const void*));
|
||||
int (*create_function)(sqlite3*,const char*,int,int,void*,
|
||||
void (*xFunc)(sqlite3_context*,int,sqlite3_value**),
|
||||
void (*xStep)(sqlite3_context*,int,sqlite3_value**),
|
||||
void (*xFinal)(sqlite3_context*));
|
||||
int (*create_function16)(sqlite3*,const void*,int,int,void*,
|
||||
void (*xFunc)(sqlite3_context*,int,sqlite3_value**),
|
||||
void (*xStep)(sqlite3_context*,int,sqlite3_value**),
|
||||
void (*xFinal)(sqlite3_context*));
|
||||
int (*create_module)(sqlite3*,const char*,const sqlite3_module*,void*);
|
||||
int (*data_count)(sqlite3_stmt*pStmt);
|
||||
sqlite3 * (*db_handle)(sqlite3_stmt*);
|
||||
int (*declare_vtab)(sqlite3*,const char*);
|
||||
int (*enable_shared_cache)(int);
|
||||
int (*errcode)(sqlite3*db);
|
||||
const char * (*errmsg)(sqlite3*);
|
||||
const void * (*errmsg16)(sqlite3*);
|
||||
int (*exec)(sqlite3*,const char*,sqlite3_callback,void*,char**);
|
||||
int (*expired)(sqlite3_stmt*);
|
||||
int (*finalize)(sqlite3_stmt*pStmt);
|
||||
void (*free)(void*);
|
||||
void (*free_table)(char**result);
|
||||
int (*get_autocommit)(sqlite3*);
|
||||
void * (*get_auxdata)(sqlite3_context*,int);
|
||||
int (*get_table)(sqlite3*,const char*,char***,int*,int*,char**);
|
||||
int (*global_recover)(void);
|
||||
void (*interruptx)(sqlite3*);
|
||||
sqlite_int64 (*last_insert_rowid)(sqlite3*);
|
||||
const char * (*libversion)(void);
|
||||
int (*libversion_number)(void);
|
||||
void *(*malloc)(int);
|
||||
char * (*mprintf)(const char*,...);
|
||||
int (*open)(const char*,sqlite3**);
|
||||
int (*open16)(const void*,sqlite3**);
|
||||
int (*prepare)(sqlite3*,const char*,int,sqlite3_stmt**,const char**);
|
||||
int (*prepare16)(sqlite3*,const void*,int,sqlite3_stmt**,const void**);
|
||||
void * (*profile)(sqlite3*,void(*)(void*,const char*,sqlite_uint64),void*);
|
||||
void (*progress_handler)(sqlite3*,int,int(*)(void*),void*);
|
||||
void *(*realloc)(void*,int);
|
||||
int (*reset)(sqlite3_stmt*pStmt);
|
||||
void (*result_blob)(sqlite3_context*,const void*,int,void(*)(void*));
|
||||
void (*result_double)(sqlite3_context*,double);
|
||||
void (*result_error)(sqlite3_context*,const char*,int);
|
||||
void (*result_error16)(sqlite3_context*,const void*,int);
|
||||
void (*result_int)(sqlite3_context*,int);
|
||||
void (*result_int64)(sqlite3_context*,sqlite_int64);
|
||||
void (*result_null)(sqlite3_context*);
|
||||
void (*result_text)(sqlite3_context*,const char*,int,void(*)(void*));
|
||||
void (*result_text16)(sqlite3_context*,const void*,int,void(*)(void*));
|
||||
void (*result_text16be)(sqlite3_context*,const void*,int,void(*)(void*));
|
||||
void (*result_text16le)(sqlite3_context*,const void*,int,void(*)(void*));
|
||||
void (*result_value)(sqlite3_context*,sqlite3_value*);
|
||||
void * (*rollback_hook)(sqlite3*,void(*)(void*),void*);
|
||||
int (*set_authorizer)(sqlite3*,int(*)(void*,int,const char*,const char*,
|
||||
const char*,const char*),void*);
|
||||
void (*set_auxdata)(sqlite3_context*,int,void*,void (*)(void*));
|
||||
char * (*snprintf)(int,char*,const char*,...);
|
||||
int (*step)(sqlite3_stmt*);
|
||||
int (*table_column_metadata)(sqlite3*,const char*,const char*,const char*,
|
||||
char const**,char const**,int*,int*,int*);
|
||||
void (*thread_cleanup)(void);
|
||||
int (*total_changes)(sqlite3*);
|
||||
void * (*trace)(sqlite3*,void(*xTrace)(void*,const char*),void*);
|
||||
int (*transfer_bindings)(sqlite3_stmt*,sqlite3_stmt*);
|
||||
void * (*update_hook)(sqlite3*,void(*)(void*,int ,char const*,char const*,
|
||||
sqlite_int64),void*);
|
||||
void * (*user_data)(sqlite3_context*);
|
||||
const void * (*value_blob)(sqlite3_value*);
|
||||
int (*value_bytes)(sqlite3_value*);
|
||||
int (*value_bytes16)(sqlite3_value*);
|
||||
double (*value_double)(sqlite3_value*);
|
||||
int (*value_int)(sqlite3_value*);
|
||||
sqlite_int64 (*value_int64)(sqlite3_value*);
|
||||
int (*value_numeric_type)(sqlite3_value*);
|
||||
const unsigned char * (*value_text)(sqlite3_value*);
|
||||
const void * (*value_text16)(sqlite3_value*);
|
||||
const void * (*value_text16be)(sqlite3_value*);
|
||||
const void * (*value_text16le)(sqlite3_value*);
|
||||
int (*value_type)(sqlite3_value*);
|
||||
char *(*vmprintf)(const char*,va_list);
|
||||
/* Added ??? */
|
||||
int (*overload_function)(sqlite3*, const char *zFuncName, int nArg);
|
||||
/* Added by 3.3.13 */
|
||||
int (*prepare_v2)(sqlite3*,const char*,int,sqlite3_stmt**,const char**);
|
||||
int (*prepare16_v2)(sqlite3*,const void*,int,sqlite3_stmt**,const void**);
|
||||
int (*clear_bindings)(sqlite3_stmt*);
|
||||
/* Added by 3.4.1 */
|
||||
int (*create_module_v2)(sqlite3*,const char*,const sqlite3_module*,void*,
|
||||
void (*xDestroy)(void *));
|
||||
/* Added by 3.5.0 */
|
||||
int (*bind_zeroblob)(sqlite3_stmt*,int,int);
|
||||
int (*blob_bytes)(sqlite3_blob*);
|
||||
int (*blob_close)(sqlite3_blob*);
|
||||
int (*blob_open)(sqlite3*,const char*,const char*,const char*,sqlite3_int64,
|
||||
int,sqlite3_blob**);
|
||||
int (*blob_read)(sqlite3_blob*,void*,int,int);
|
||||
int (*blob_write)(sqlite3_blob*,const void*,int,int);
|
||||
int (*create_collation_v2)(sqlite3*,const char*,int,void*,
|
||||
int(*)(void*,int,const void*,int,const void*),
|
||||
void(*)(void*));
|
||||
int (*file_control)(sqlite3*,const char*,int,void*);
|
||||
sqlite3_int64 (*memory_highwater)(int);
|
||||
sqlite3_int64 (*memory_used)(void);
|
||||
sqlite3_mutex *(*mutex_alloc)(int);
|
||||
void (*mutex_enter)(sqlite3_mutex*);
|
||||
void (*mutex_free)(sqlite3_mutex*);
|
||||
void (*mutex_leave)(sqlite3_mutex*);
|
||||
int (*mutex_try)(sqlite3_mutex*);
|
||||
int (*open_v2)(const char*,sqlite3**,int,const char*);
|
||||
int (*release_memory)(int);
|
||||
void (*result_error_nomem)(sqlite3_context*);
|
||||
void (*result_error_toobig)(sqlite3_context*);
|
||||
int (*sleep)(int);
|
||||
void (*soft_heap_limit)(int);
|
||||
sqlite3_vfs *(*vfs_find)(const char*);
|
||||
int (*vfs_register)(sqlite3_vfs*,int);
|
||||
int (*vfs_unregister)(sqlite3_vfs*);
|
||||
int (*xthreadsafe)(void);
|
||||
void (*result_zeroblob)(sqlite3_context*,int);
|
||||
void (*result_error_code)(sqlite3_context*,int);
|
||||
int (*test_control)(int, ...);
|
||||
void (*randomness)(int,void*);
|
||||
sqlite3 *(*context_db_handle)(sqlite3_context*);
|
||||
int (*extended_result_codes)(sqlite3*,int);
|
||||
int (*limit)(sqlite3*,int,int);
|
||||
sqlite3_stmt *(*next_stmt)(sqlite3*,sqlite3_stmt*);
|
||||
const char *(*sql)(sqlite3_stmt*);
|
||||
int (*status)(int,int*,int*,int);
|
||||
int (*backup_finish)(sqlite3_backup*);
|
||||
sqlite3_backup *(*backup_init)(sqlite3*,const char*,sqlite3*,const char*);
|
||||
int (*backup_pagecount)(sqlite3_backup*);
|
||||
int (*backup_remaining)(sqlite3_backup*);
|
||||
int (*backup_step)(sqlite3_backup*,int);
|
||||
const char *(*compileoption_get)(int);
|
||||
int (*compileoption_used)(const char*);
|
||||
int (*create_function_v2)(sqlite3*,const char*,int,int,void*,
|
||||
void (*xFunc)(sqlite3_context*,int,sqlite3_value**),
|
||||
void (*xStep)(sqlite3_context*,int,sqlite3_value**),
|
||||
void (*xFinal)(sqlite3_context*),
|
||||
void(*xDestroy)(void*));
|
||||
int (*db_config)(sqlite3*,int,...);
|
||||
sqlite3_mutex *(*db_mutex)(sqlite3*);
|
||||
int (*db_status)(sqlite3*,int,int*,int*,int);
|
||||
int (*extended_errcode)(sqlite3*);
|
||||
void (*log)(int,const char*,...);
|
||||
sqlite3_int64 (*soft_heap_limit64)(sqlite3_int64);
|
||||
const char *(*sourceid)(void);
|
||||
int (*stmt_status)(sqlite3_stmt*,int,int);
|
||||
int (*strnicmp)(const char*,const char*,int);
|
||||
int (*unlock_notify)(sqlite3*,void(*)(void**,int),void*);
|
||||
int (*wal_autocheckpoint)(sqlite3*,int);
|
||||
int (*wal_checkpoint)(sqlite3*,const char*);
|
||||
void *(*wal_hook)(sqlite3*,int(*)(void*,sqlite3*,const char*,int),void*);
|
||||
int (*blob_reopen)(sqlite3_blob*,sqlite3_int64);
|
||||
int (*vtab_config)(sqlite3*,int op,...);
|
||||
int (*vtab_on_conflict)(sqlite3*);
|
||||
/* Version 3.7.16 and later */
|
||||
int (*close_v2)(sqlite3*);
|
||||
const char *(*db_filename)(sqlite3*,const char*);
|
||||
int (*db_readonly)(sqlite3*,const char*);
|
||||
int (*db_release_memory)(sqlite3*);
|
||||
const char *(*errstr)(int);
|
||||
int (*stmt_busy)(sqlite3_stmt*);
|
||||
int (*stmt_readonly)(sqlite3_stmt*);
|
||||
int (*stricmp)(const char*,const char*);
|
||||
int (*uri_boolean)(const char*,const char*,int);
|
||||
sqlite3_int64 (*uri_int64)(const char*,const char*,sqlite3_int64);
|
||||
const char *(*uri_parameter)(const char*,const char*);
|
||||
char *(*vsnprintf)(int,char*,const char*,va_list);
|
||||
int (*wal_checkpoint_v2)(sqlite3*,const char*,int,int*,int*);
|
||||
};
|
||||
|
||||
/*
|
||||
** The following macros redefine the API routines so that they are
|
||||
** redirected throught the global sqlite3_api structure.
|
||||
**
|
||||
** This header file is also used by the loadext.c source file
|
||||
** (part of the main SQLite library - not an extension) so that
|
||||
** it can get access to the sqlite3_api_routines structure
|
||||
** definition. But the main library does not want to redefine
|
||||
** the API. So the redefinition macros are only valid if the
|
||||
** SQLITE_CORE macros is undefined.
|
||||
*/
|
||||
#ifndef SQLITE_CORE
|
||||
#define sqlite3_aggregate_context sqlite3_api->aggregate_context
|
||||
#ifndef SQLITE_OMIT_DEPRECATED
|
||||
#define sqlite3_aggregate_count sqlite3_api->aggregate_count
|
||||
#endif
|
||||
#define sqlite3_bind_blob sqlite3_api->bind_blob
|
||||
#define sqlite3_bind_double sqlite3_api->bind_double
|
||||
#define sqlite3_bind_int sqlite3_api->bind_int
|
||||
#define sqlite3_bind_int64 sqlite3_api->bind_int64
|
||||
#define sqlite3_bind_null sqlite3_api->bind_null
|
||||
#define sqlite3_bind_parameter_count sqlite3_api->bind_parameter_count
|
||||
#define sqlite3_bind_parameter_index sqlite3_api->bind_parameter_index
|
||||
#define sqlite3_bind_parameter_name sqlite3_api->bind_parameter_name
|
||||
#define sqlite3_bind_text sqlite3_api->bind_text
|
||||
#define sqlite3_bind_text16 sqlite3_api->bind_text16
|
||||
#define sqlite3_bind_value sqlite3_api->bind_value
|
||||
#define sqlite3_busy_handler sqlite3_api->busy_handler
|
||||
#define sqlite3_busy_timeout sqlite3_api->busy_timeout
|
||||
#define sqlite3_changes sqlite3_api->changes
|
||||
#define sqlite3_close sqlite3_api->close
|
||||
#define sqlite3_collation_needed sqlite3_api->collation_needed
|
||||
#define sqlite3_collation_needed16 sqlite3_api->collation_needed16
|
||||
#define sqlite3_column_blob sqlite3_api->column_blob
|
||||
#define sqlite3_column_bytes sqlite3_api->column_bytes
|
||||
#define sqlite3_column_bytes16 sqlite3_api->column_bytes16
|
||||
#define sqlite3_column_count sqlite3_api->column_count
|
||||
#define sqlite3_column_database_name sqlite3_api->column_database_name
|
||||
#define sqlite3_column_database_name16 sqlite3_api->column_database_name16
|
||||
#define sqlite3_column_decltype sqlite3_api->column_decltype
|
||||
#define sqlite3_column_decltype16 sqlite3_api->column_decltype16
|
||||
#define sqlite3_column_double sqlite3_api->column_double
|
||||
#define sqlite3_column_int sqlite3_api->column_int
|
||||
#define sqlite3_column_int64 sqlite3_api->column_int64
|
||||
#define sqlite3_column_name sqlite3_api->column_name
|
||||
#define sqlite3_column_name16 sqlite3_api->column_name16
|
||||
#define sqlite3_column_origin_name sqlite3_api->column_origin_name
|
||||
#define sqlite3_column_origin_name16 sqlite3_api->column_origin_name16
|
||||
#define sqlite3_column_table_name sqlite3_api->column_table_name
|
||||
#define sqlite3_column_table_name16 sqlite3_api->column_table_name16
|
||||
#define sqlite3_column_text sqlite3_api->column_text
|
||||
#define sqlite3_column_text16 sqlite3_api->column_text16
|
||||
#define sqlite3_column_type sqlite3_api->column_type
|
||||
#define sqlite3_column_value sqlite3_api->column_value
|
||||
#define sqlite3_commit_hook sqlite3_api->commit_hook
|
||||
#define sqlite3_complete sqlite3_api->complete
|
||||
#define sqlite3_complete16 sqlite3_api->complete16
|
||||
#define sqlite3_create_collation sqlite3_api->create_collation
|
||||
#define sqlite3_create_collation16 sqlite3_api->create_collation16
|
||||
#define sqlite3_create_function sqlite3_api->create_function
|
||||
#define sqlite3_create_function16 sqlite3_api->create_function16
|
||||
#define sqlite3_create_module sqlite3_api->create_module
|
||||
#define sqlite3_create_module_v2 sqlite3_api->create_module_v2
|
||||
#define sqlite3_data_count sqlite3_api->data_count
|
||||
#define sqlite3_db_handle sqlite3_api->db_handle
|
||||
#define sqlite3_declare_vtab sqlite3_api->declare_vtab
|
||||
#define sqlite3_enable_shared_cache sqlite3_api->enable_shared_cache
|
||||
#define sqlite3_errcode sqlite3_api->errcode
|
||||
#define sqlite3_errmsg sqlite3_api->errmsg
|
||||
#define sqlite3_errmsg16 sqlite3_api->errmsg16
|
||||
#define sqlite3_exec sqlite3_api->exec
|
||||
#ifndef SQLITE_OMIT_DEPRECATED
|
||||
#define sqlite3_expired sqlite3_api->expired
|
||||
#endif
|
||||
#define sqlite3_finalize sqlite3_api->finalize
|
||||
#define sqlite3_free sqlite3_api->free
|
||||
#define sqlite3_free_table sqlite3_api->free_table
|
||||
#define sqlite3_get_autocommit sqlite3_api->get_autocommit
|
||||
#define sqlite3_get_auxdata sqlite3_api->get_auxdata
|
||||
#define sqlite3_get_table sqlite3_api->get_table
|
||||
#ifndef SQLITE_OMIT_DEPRECATED
|
||||
#define sqlite3_global_recover sqlite3_api->global_recover
|
||||
#endif
|
||||
#define sqlite3_interrupt sqlite3_api->interruptx
|
||||
#define sqlite3_last_insert_rowid sqlite3_api->last_insert_rowid
|
||||
#define sqlite3_libversion sqlite3_api->libversion
|
||||
#define sqlite3_libversion_number sqlite3_api->libversion_number
|
||||
#define sqlite3_malloc sqlite3_api->malloc
|
||||
#define sqlite3_mprintf sqlite3_api->mprintf
|
||||
#define sqlite3_open sqlite3_api->open
|
||||
#define sqlite3_open16 sqlite3_api->open16
|
||||
#define sqlite3_prepare sqlite3_api->prepare
|
||||
#define sqlite3_prepare16 sqlite3_api->prepare16
|
||||
#define sqlite3_prepare_v2 sqlite3_api->prepare_v2
|
||||
#define sqlite3_prepare16_v2 sqlite3_api->prepare16_v2
|
||||
#define sqlite3_profile sqlite3_api->profile
|
||||
#define sqlite3_progress_handler sqlite3_api->progress_handler
|
||||
#define sqlite3_realloc sqlite3_api->realloc
|
||||
#define sqlite3_reset sqlite3_api->reset
|
||||
#define sqlite3_result_blob sqlite3_api->result_blob
|
||||
#define sqlite3_result_double sqlite3_api->result_double
|
||||
#define sqlite3_result_error sqlite3_api->result_error
|
||||
#define sqlite3_result_error16 sqlite3_api->result_error16
|
||||
#define sqlite3_result_int sqlite3_api->result_int
|
||||
#define sqlite3_result_int64 sqlite3_api->result_int64
|
||||
#define sqlite3_result_null sqlite3_api->result_null
|
||||
#define sqlite3_result_text sqlite3_api->result_text
|
||||
#define sqlite3_result_text16 sqlite3_api->result_text16
|
||||
#define sqlite3_result_text16be sqlite3_api->result_text16be
|
||||
#define sqlite3_result_text16le sqlite3_api->result_text16le
|
||||
#define sqlite3_result_value sqlite3_api->result_value
|
||||
#define sqlite3_rollback_hook sqlite3_api->rollback_hook
|
||||
#define sqlite3_set_authorizer sqlite3_api->set_authorizer
|
||||
#define sqlite3_set_auxdata sqlite3_api->set_auxdata
|
||||
#define sqlite3_snprintf sqlite3_api->snprintf
|
||||
#define sqlite3_step sqlite3_api->step
|
||||
#define sqlite3_table_column_metadata sqlite3_api->table_column_metadata
|
||||
#define sqlite3_thread_cleanup sqlite3_api->thread_cleanup
|
||||
#define sqlite3_total_changes sqlite3_api->total_changes
|
||||
#define sqlite3_trace sqlite3_api->trace
|
||||
#ifndef SQLITE_OMIT_DEPRECATED
|
||||
#define sqlite3_transfer_bindings sqlite3_api->transfer_bindings
|
||||
#endif
|
||||
#define sqlite3_update_hook sqlite3_api->update_hook
|
||||
#define sqlite3_user_data sqlite3_api->user_data
|
||||
#define sqlite3_value_blob sqlite3_api->value_blob
|
||||
#define sqlite3_value_bytes sqlite3_api->value_bytes
|
||||
#define sqlite3_value_bytes16 sqlite3_api->value_bytes16
|
||||
#define sqlite3_value_double sqlite3_api->value_double
|
||||
#define sqlite3_value_int sqlite3_api->value_int
|
||||
#define sqlite3_value_int64 sqlite3_api->value_int64
|
||||
#define sqlite3_value_numeric_type sqlite3_api->value_numeric_type
|
||||
#define sqlite3_value_text sqlite3_api->value_text
|
||||
#define sqlite3_value_text16 sqlite3_api->value_text16
|
||||
#define sqlite3_value_text16be sqlite3_api->value_text16be
|
||||
#define sqlite3_value_text16le sqlite3_api->value_text16le
|
||||
#define sqlite3_value_type sqlite3_api->value_type
|
||||
#define sqlite3_vmprintf sqlite3_api->vmprintf
|
||||
#define sqlite3_overload_function sqlite3_api->overload_function
|
||||
#define sqlite3_prepare_v2 sqlite3_api->prepare_v2
|
||||
#define sqlite3_prepare16_v2 sqlite3_api->prepare16_v2
|
||||
#define sqlite3_clear_bindings sqlite3_api->clear_bindings
|
||||
#define sqlite3_bind_zeroblob sqlite3_api->bind_zeroblob
|
||||
#define sqlite3_blob_bytes sqlite3_api->blob_bytes
|
||||
#define sqlite3_blob_close sqlite3_api->blob_close
|
||||
#define sqlite3_blob_open sqlite3_api->blob_open
|
||||
#define sqlite3_blob_read sqlite3_api->blob_read
|
||||
#define sqlite3_blob_write sqlite3_api->blob_write
|
||||
#define sqlite3_create_collation_v2 sqlite3_api->create_collation_v2
|
||||
#define sqlite3_file_control sqlite3_api->file_control
|
||||
#define sqlite3_memory_highwater sqlite3_api->memory_highwater
|
||||
#define sqlite3_memory_used sqlite3_api->memory_used
|
||||
#define sqlite3_mutex_alloc sqlite3_api->mutex_alloc
|
||||
#define sqlite3_mutex_enter sqlite3_api->mutex_enter
|
||||
#define sqlite3_mutex_free sqlite3_api->mutex_free
|
||||
#define sqlite3_mutex_leave sqlite3_api->mutex_leave
|
||||
#define sqlite3_mutex_try sqlite3_api->mutex_try
|
||||
#define sqlite3_open_v2 sqlite3_api->open_v2
|
||||
#define sqlite3_release_memory sqlite3_api->release_memory
|
||||
#define sqlite3_result_error_nomem sqlite3_api->result_error_nomem
|
||||
#define sqlite3_result_error_toobig sqlite3_api->result_error_toobig
|
||||
#define sqlite3_sleep sqlite3_api->sleep
|
||||
#define sqlite3_soft_heap_limit sqlite3_api->soft_heap_limit
|
||||
#define sqlite3_vfs_find sqlite3_api->vfs_find
|
||||
#define sqlite3_vfs_register sqlite3_api->vfs_register
|
||||
#define sqlite3_vfs_unregister sqlite3_api->vfs_unregister
|
||||
#define sqlite3_threadsafe sqlite3_api->xthreadsafe
|
||||
#define sqlite3_result_zeroblob sqlite3_api->result_zeroblob
|
||||
#define sqlite3_result_error_code sqlite3_api->result_error_code
|
||||
#define sqlite3_test_control sqlite3_api->test_control
|
||||
#define sqlite3_randomness sqlite3_api->randomness
|
||||
#define sqlite3_context_db_handle sqlite3_api->context_db_handle
|
||||
#define sqlite3_extended_result_codes sqlite3_api->extended_result_codes
|
||||
#define sqlite3_limit sqlite3_api->limit
|
||||
#define sqlite3_next_stmt sqlite3_api->next_stmt
|
||||
#define sqlite3_sql sqlite3_api->sql
|
||||
#define sqlite3_status sqlite3_api->status
|
||||
#define sqlite3_backup_finish sqlite3_api->backup_finish
|
||||
#define sqlite3_backup_init sqlite3_api->backup_init
|
||||
#define sqlite3_backup_pagecount sqlite3_api->backup_pagecount
|
||||
#define sqlite3_backup_remaining sqlite3_api->backup_remaining
|
||||
#define sqlite3_backup_step sqlite3_api->backup_step
|
||||
#define sqlite3_compileoption_get sqlite3_api->compileoption_get
|
||||
#define sqlite3_compileoption_used sqlite3_api->compileoption_used
|
||||
#define sqlite3_create_function_v2 sqlite3_api->create_function_v2
|
||||
#define sqlite3_db_config sqlite3_api->db_config
|
||||
#define sqlite3_db_mutex sqlite3_api->db_mutex
|
||||
#define sqlite3_db_status sqlite3_api->db_status
|
||||
#define sqlite3_extended_errcode sqlite3_api->extended_errcode
|
||||
#define sqlite3_log sqlite3_api->log
|
||||
#define sqlite3_soft_heap_limit64 sqlite3_api->soft_heap_limit64
|
||||
#define sqlite3_sourceid sqlite3_api->sourceid
|
||||
#define sqlite3_stmt_status sqlite3_api->stmt_status
|
||||
#define sqlite3_strnicmp sqlite3_api->strnicmp
|
||||
#define sqlite3_unlock_notify sqlite3_api->unlock_notify
|
||||
#define sqlite3_wal_autocheckpoint sqlite3_api->wal_autocheckpoint
|
||||
#define sqlite3_wal_checkpoint sqlite3_api->wal_checkpoint
|
||||
#define sqlite3_wal_hook sqlite3_api->wal_hook
|
||||
#define sqlite3_blob_reopen sqlite3_api->blob_reopen
|
||||
#define sqlite3_vtab_config sqlite3_api->vtab_config
|
||||
#define sqlite3_vtab_on_conflict sqlite3_api->vtab_on_conflict
|
||||
/* Version 3.7.16 and later */
|
||||
#define sqlite3_close_v2 sqlite3_api->close_v2
|
||||
#define sqlite3_db_filename sqlite3_api->db_filename
|
||||
#define sqlite3_db_readonly sqlite3_api->db_readonly
|
||||
#define sqlite3_db_release_memory sqlite3_api->db_release_memory
|
||||
#define sqlite3_errstr sqlite3_api->errstr
|
||||
#define sqlite3_stmt_busy sqlite3_api->stmt_busy
|
||||
#define sqlite3_stmt_readonly sqlite3_api->stmt_readonly
|
||||
#define sqlite3_stricmp sqlite3_api->stricmp
|
||||
#define sqlite3_uri_boolean sqlite3_api->uri_boolean
|
||||
#define sqlite3_uri_int64 sqlite3_api->uri_int64
|
||||
#define sqlite3_uri_parameter sqlite3_api->uri_parameter
|
||||
#define sqlite3_uri_vsnprintf sqlite3_api->vsnprintf
|
||||
#define sqlite3_wal_checkpoint_v2 sqlite3_api->wal_checkpoint_v2
|
||||
#endif /* SQLITE_CORE */
|
||||
|
||||
#ifndef SQLITE_CORE
|
||||
/* This case when the file really is being compiled as a loadable
|
||||
** extension */
|
||||
# define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api=0;
|
||||
# define SQLITE_EXTENSION_INIT2(v) sqlite3_api=v;
|
||||
# define SQLITE_EXTENSION_INIT3 \
|
||||
extern const sqlite3_api_routines *sqlite3_api;
|
||||
#else
|
||||
/* This case when the file is being statically linked into the
|
||||
** application */
|
||||
# define SQLITE_EXTENSION_INIT1 /*no-op*/
|
||||
# define SQLITE_EXTENSION_INIT2(v) (void)v; /* unused parameter */
|
||||
# define SQLITE_EXTENSION_INIT3 /*no-op*/
|
||||
#endif
|
||||
|
||||
#endif /* _SQLITE3EXT_H_ */
|
After Width: | Height: | Size: 6.6 KiB |