变更一下代码文目录名,防止qt编译中文路径出错。

This commit is contained in:
2020-07-14 11:17:31 +08:00
parent 05dacbfec4
commit fc2d04d57b
119 changed files with 41 additions and 13 deletions

View File

@@ -0,0 +1,202 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<Image Include="..\..\..\source\car_dealer_util.ico" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\source\car_dealer_util.rc" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\source\data\AppParameters\AppParameters.cpp" />
<ClCompile Include="..\..\..\source\Data\DataManipulation\Excel\ExportToExcel.cpp" />
<ClCompile Include="..\..\..\source\Data\DataManipulation\Excel\LoadFromExcel.cpp" />
<ClCompile Include="..\..\..\source\data\DataManipulation\FromExcelToOracle\FromExcelToOracle.cpp" />
<ClCompile Include="..\..\..\source\Data\DataManipulation\oracle\ImportToOracle.cpp" />
<ClCompile Include="..\..\..\source\Data\Datastructure\CarDealerAchievement\CarDealerAchievement.cpp" />
<ClCompile Include="..\..\..\source\Data\Datastructure\CarDealerScheme\CarDealerScheme.cpp" />
<ClCompile Include="..\..\..\source\data\Datastructure\RepairOrder\RepairOrder.cpp" />
<ClCompile Include="..\..\..\source\Data\Datastructure\RepairSuggestion\RepairSuggestionRecord.cpp" />
<ClCompile Include="..\..\..\source\data\Datastructure\UserInfo\UserInfo.cpp" />
<ClCompile Include="..\..\..\source\Data\Datastructure\新送返修监控报表\新送返修监控报表.cpp" />
<ClCompile Include="..\..\..\source\data\excel\excel.cpp" />
<ClCompile Include="..\..\..\source\data\query\query_user.cpp" />
<ClCompile Include="..\..\..\source\db\ocilib\db_oper.cpp" />
<ClCompile Include="..\..\..\source\main.cpp" />
<ClCompile Include="..\..\..\source\system\system_util.cpp" />
<ClCompile Include="..\..\..\source\test\test.cpp" />
<ClCompile Include="..\..\..\source\Widgets\ContentWidget\QCarDealerAchievementWidget\QCarDealerAchievementWidget.cpp" />
<ClCompile Include="..\..\..\source\Widgets\ContentWidget\QCarDealerSchemaWidget\QCarDealerSchemaWidget.cpp" />
<ClCompile Include="..\..\..\source\widgets\ContentWidget\QDataManagementWidget\QDataManagementWidget.cpp" />
<ClCompile Include="..\..\..\source\Widgets\ContentWidget\QRepairOrderWidget\QRepairOrderWidget.cpp" />
<ClCompile Include="..\..\..\source\widgets\LoginWidget\QLoginDialog.cpp" />
<ClCompile Include="..\..\..\source\Widgets\MainFrame\QMainFrame.cpp" />
</ItemGroup>
<ItemGroup>
<QtRcc Include="..\..\..\source\resource.qrc" />
</ItemGroup>
<ItemGroup>
<QtUic Include="..\..\..\source\Widgets\ContentWidget\QCarDealerAchievementWidget\QCarDealerAchievementWidget.ui" />
<QtUic Include="..\..\..\source\Widgets\ContentWidget\QCarDealerSchemaWidget\QCarDealerSchemaWidget.ui" />
<QtUic Include="..\..\..\source\widgets\ContentWidget\QDataManagementWidget\QDataManagementWidget.ui" />
<QtUic Include="..\..\..\source\Widgets\ContentWidget\QRepairOrderWidget\QRepairOrderWidget.ui" />
<QtUic Include="..\..\..\source\widgets\LoginWidget\QLoginDialog.ui" />
<QtUic Include="..\..\..\source\Widgets\MainFrame\QMainFrame.ui" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="..\..\..\source\Widgets\MainFrame\QMainFrame.h" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\source\data\AppParameters\AppParameters.h" />
<ClInclude Include="..\..\..\source\Data\DataManipulation\Excel\ExportToExcel.h" />
<ClInclude Include="..\..\..\source\Data\DataManipulation\Excel\LoadFromExcel.h" />
<ClInclude Include="..\..\..\source\data\DataManipulation\FromExcelToOracle\FromExcelToOracle.h" />
<ClInclude Include="..\..\..\source\Data\DataManipulation\oracle\ImportToOracle.h" />
<ClInclude Include="..\..\..\source\Data\Datastructure\CarDealerAchievement\CarDealerAchievement.h" />
<ClInclude Include="..\..\..\source\Data\Datastructure\CarDealerScheme\CarDealerScheme.h" />
<ClInclude Include="..\..\..\source\data\Datastructure\RepairOrder\RepairOrder.h" />
<ClInclude Include="..\..\..\source\Data\Datastructure\RepairSuggestion\RepairSuggestionRecord.h" />
<ClInclude Include="..\..\..\source\data\Datastructure\UserInfo\UserInfo.h" />
<ClInclude Include="..\..\..\source\Data\Datastructure\新送返修监控报表\新送返修监控报表.h" />
<ClInclude Include="..\..\..\source\data\excel\excel.h" />
<ClInclude Include="..\..\..\source\data\query\query_user.h" />
<ClInclude Include="..\..\..\source\db\ocilib\db_oper.h" />
<ClInclude Include="..\..\..\source\system\system_util.h" />
<ClInclude Include="..\..\..\source\test\test.h" />
<QtMoc Include="..\..\..\source\Widgets\ContentWidget\QCarDealerAchievementWidget\QCarDealerAchievementWidget.h" />
<QtMoc Include="..\..\..\source\Widgets\ContentWidget\QRepairOrderWidget\QRepairOrderWidget.h" />
<QtMoc Include="..\..\..\source\Widgets\ContentWidget\QCarDealerSchemaWidget\QCarDealerSchemaWidget.h" />
<QtMoc Include="..\..\..\source\widgets\ContentWidget\QDataManagementWidget\QDataManagementWidget.h" />
<QtMoc Include="..\..\..\source\widgets\LoginWidget\QLoginDialog.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{B12702AD-ABFB-343A-A199-8E24837244A3}</ProjectGuid>
<Keyword>QtVS_v301</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup Condition="'$(QtMsBuild)'=='' or !Exists('$(QtMsBuild)\qt.targets')">
<QtMsBuild>$(MSBuildProjectDirectory)\QtMsBuild</QtMsBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<SourcePath>.\source\;vs2019\car_dealer_util\source\;$(SourcePath)</SourcePath>
<IncludePath>vs2019\car_dealer_util\source\;$(IncludePath)</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<SourcePath>.\source\;vs2019\car_dealer_util\source\;$(SourcePath)</SourcePath>
<IncludePath>vs2019\car_dealer_util\source\;$(IncludePath)</IncludePath>
</PropertyGroup>
<Target Name="QtMsBuildNotFound" BeforeTargets="CustomBuild;ClCompile" Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
<Message Importance="High" Text="QtMsBuild: could not locate qt.targets, qt.props; project may not build correctly." />
</Target>
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\..\..\..\..\..\..\sdk\cpp\libxl\libxl-3.8.5.0\libxl_3.8.5.0_x64.props" />
<Import Project="..\..\..\..\..\..\..\..\..\sdk\cpp\ocilib\4.6.3\ocilib_4.6.3_x64_vs2019_ansi.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\..\..\..\..\..\..\sdk\cpp\libxl\libxl-3.8.5.0\libxl_3.8.5.0_x64.props" />
<Import Project="..\..\..\..\..\..\..\..\..\sdk\cpp\ocilib\4.6.3\ocilib_4.6.3_x64_vs2019_ansi.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
<Import Project="$(QtMsBuild)\qt_defaults.props" />
</ImportGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QtInstall>5.13.1_msvc2017_x64</QtInstall>
<QtModules>core;gui;widgets</QtModules>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<QtInstall>5.13.1_msvc2017_x64</QtInstall>
<QtModules>core;gui;widgets</QtModules>
</PropertyGroup>
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.props')">
<Import Project="$(QtMsBuild)\qt.props" />
</ImportGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QtMoc>
<PrependInclude>
</PrependInclude>
<QtMocDir>vs2019\car_dealer_util\source\%(RelativeDir)</QtMocDir>
</QtMoc>
<ClCompile>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<Optimization>Disabled</Optimization>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\source\widgets\LoginWidget;..\..\..\source\widgets\ContentWidget\QDataManagementWidget;..\..\..\source\Widgets\ContentWidget\QCarDealerSchemaWidget;..\..\..\source\Widgets\ContentWidget\QCarDealerAchievementWidget;..\..\..\source\Widgets\ContentWidget\QRepairOrderWidget;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EntryPointSymbol>
</EntryPointSymbol>
</Link>
<QtRcc>
<QtRccDir>$(IntDir)\rcc\%(RelativeDir)</QtRccDir>
</QtRcc>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<QtMoc>
<PrependInclude>
</PrependInclude>
<QtMocDir>vs2019\car_dealer_util\source\%(RelativeDir)</QtMocDir>
</QtMoc>
<ClCompile>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<DebugInformationFormat />
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\source\widgets\LoginWidget;..\..\..\source\widgets\ContentWidget\QDataManagementWidget;..\..\..\source\Widgets\ContentWidget\QCarDealerSchemaWidget;..\..\..\source\Widgets\ContentWidget\QCarDealerAchievementWidget;..\..\..\source\Widgets\ContentWidget\QRepairOrderWidget;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<EntryPointSymbol>
</EntryPointSymbol>
</Link>
<QtRcc>
<QtRccDir>$(IntDir)\rcc\%(RelativeDir)</QtRccDir>
</QtRcc>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">
<Import Project="$(QtMsBuild)\qt.targets" />
</ImportGroup>
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,293 @@
<?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;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
<Extensions>qrc;*</Extensions>
<ParseFiles>false</ParseFiles>
</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="窗口">
<UniqueIdentifier>{5c87e659-1421-43a0-a48d-42619f174fc9}</UniqueIdentifier>
</Filter>
<Filter Include="窗口\主窗口">
<UniqueIdentifier>{bcfdef90-7980-4f25-8c6b-e1b05ab76277}</UniqueIdentifier>
</Filter>
<Filter Include="数据">
<UniqueIdentifier>{fc082078-769c-4eb6-a822-e6879fd3a289}</UniqueIdentifier>
</Filter>
<Filter Include="数据\数据结构">
<UniqueIdentifier>{87f39309-91c4-4326-9ed1-7b5851f44ddd}</UniqueIdentifier>
</Filter>
<Filter Include="数据\数据结构\车商方案表">
<UniqueIdentifier>{ad4e7129-bd8d-4793-b7b0-ed3c754f1e8a}</UniqueIdentifier>
</Filter>
<Filter Include="数据\数据结构\车商业绩表">
<UniqueIdentifier>{2c961c49-9981-447f-901d-c449e261fada}</UniqueIdentifier>
</Filter>
<Filter Include="数据\数据管理">
<UniqueIdentifier>{3a2c4541-3486-4b47-9f4d-5aa7355190ed}</UniqueIdentifier>
</Filter>
<Filter Include="数据\数据管理\导入导出">
<UniqueIdentifier>{1aa1a23b-6239-4b36-98be-cd6497547504}</UniqueIdentifier>
</Filter>
<Filter Include="测试">
<UniqueIdentifier>{c6a0a5fd-26f9-4d8d-84a5-ce7edb04eb5f}</UniqueIdentifier>
</Filter>
<Filter Include="excel">
<UniqueIdentifier>{61d5dd61-6b1f-4507-bb22-4ce463ad5b85}</UniqueIdentifier>
</Filter>
<Filter Include="数据\数据结构\送返修工单">
<UniqueIdentifier>{985188c7-d233-46c8-bc1f-f7079c27bb2e}</UniqueIdentifier>
</Filter>
<Filter Include="操作系统">
<UniqueIdentifier>{fe56cbb8-cdae-4845-ba36-378341641817}</UniqueIdentifier>
</Filter>
<Filter Include="数据\数据管理\导入导出\excel">
<UniqueIdentifier>{849ef05c-ca3c-479b-ad38-3b9eae188820}</UniqueIdentifier>
</Filter>
<Filter Include="数据\数据管理\导入导出\oracle">
<UniqueIdentifier>{cfe6b511-cb09-441f-8496-69415615391a}</UniqueIdentifier>
</Filter>
<Filter Include="数据库">
<UniqueIdentifier>{6e142c33-b01c-4c8d-b8a4-beaaee863cee}</UniqueIdentifier>
</Filter>
<Filter Include="数据库\ocilib">
<UniqueIdentifier>{e5f3c3be-5fe7-471e-8dc7-d5889f5f87d9}</UniqueIdentifier>
</Filter>
<Filter Include="窗口\登录窗口">
<UniqueIdentifier>{4aafaac0-1c39-407d-9701-175ad2e441c2}</UniqueIdentifier>
</Filter>
<Filter Include="数据\查询">
<UniqueIdentifier>{ae2625d1-a2b0-48d2-8391-d8f42760e1ff}</UniqueIdentifier>
</Filter>
<Filter Include="数据\数据结构\用户信息">
<UniqueIdentifier>{f51a3f4d-ff6f-4590-b123-b61afde72f0a}</UniqueIdentifier>
</Filter>
<Filter Include="数据\全局对象">
<UniqueIdentifier>{7f951e1f-a198-4833-bbec-853de77c8cfe}</UniqueIdentifier>
</Filter>
<Filter Include="数据\数据管理\导入导出\直接导入导出">
<UniqueIdentifier>{ef490558-0c27-4a12-a626-583699d6a35f}</UniqueIdentifier>
</Filter>
<Filter Include="窗口\内容窗口">
<UniqueIdentifier>{c8f4e91d-d7b8-43e9-98c2-ba4d6336404f}</UniqueIdentifier>
</Filter>
<Filter Include="窗口\内容窗口\数据管理">
<UniqueIdentifier>{c84c9e39-55b1-4672-9565-1fbe35c349a9}</UniqueIdentifier>
</Filter>
<Filter Include="窗口\内容窗口\数据管理\车商方案表">
<UniqueIdentifier>{8590121c-3735-435c-bc37-248e931917d8}</UniqueIdentifier>
</Filter>
<Filter Include="窗口\内容窗口\数据管理\车商业绩表">
<UniqueIdentifier>{5951fafd-9da2-476a-8ef9-bd6825240e55}</UniqueIdentifier>
</Filter>
<Filter Include="数据\数据结构\送返修推荐表">
<UniqueIdentifier>{21e75150-0798-4087-8cc8-8bcad02c0694}</UniqueIdentifier>
</Filter>
<Filter Include="数据\数据结构\新送返修监控报表">
<UniqueIdentifier>{8d1f7b99-d4bb-406c-a9f3-1e0256517982}</UniqueIdentifier>
</Filter>
<Filter Include="窗口\内容窗口\数据管理\送返修工单表">
<UniqueIdentifier>{4f98736e-47b6-4cf8-b9e8-d9f18032e5d5}</UniqueIdentifier>
</Filter>
<Filter Include="窗口\内容窗口\数据管理\新送返修监控表">
<UniqueIdentifier>{59d4a644-9e59-4094-ad3f-875cd1afda21}</UniqueIdentifier>
</Filter>
<Filter Include="窗口\内容窗口\数据管理\卢霖城 - 送返修推荐表">
<UniqueIdentifier>{10df9eca-f59f-4326-aa5c-d925cd47da8d}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\source\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\Widgets\MainFrame\QMainFrame.cpp">
<Filter>窗口\主窗口</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\Data\Datastructure\CarDealerScheme\CarDealerScheme.cpp">
<Filter>数据\数据结构\车商方案表</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\Data\Datastructure\CarDealerAchievement\CarDealerAchievement.cpp">
<Filter>数据\数据结构\车商业绩表</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\Data\DataManipulation\Excel\ExportToExcel.cpp">
<Filter>数据\数据管理\导入导出\excel</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\Data\DataManipulation\Excel\LoadFromExcel.cpp">
<Filter>数据\数据管理\导入导出\excel</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\test\test.cpp">
<Filter>测试</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\data\excel\excel.cpp">
<Filter>excel</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\data\Datastructure\RepairOrder\RepairOrder.cpp">
<Filter>数据\数据结构\送返修工单</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\system\system_util.cpp">
<Filter>操作系统</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\Data\DataManipulation\oracle\ImportToOracle.cpp">
<Filter>数据\数据管理\导入导出\oracle</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\db\ocilib\db_oper.cpp">
<Filter>数据库\ocilib</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\widgets\LoginWidget\QLoginDialog.cpp">
<Filter>窗口\登录窗口</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\data\query\query_user.cpp">
<Filter>数据\查询</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\data\Datastructure\UserInfo\UserInfo.cpp">
<Filter>数据\数据结构\用户信息</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\data\AppParameters\AppParameters.cpp">
<Filter>数据\全局对象</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\data\DataManipulation\FromExcelToOracle\FromExcelToOracle.cpp">
<Filter>数据\数据管理\导入导出\直接导入导出</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\widgets\ContentWidget\QDataManagementWidget\QDataManagementWidget.cpp">
<Filter>窗口\内容窗口\数据管理</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\Widgets\ContentWidget\QCarDealerSchemaWidget\QCarDealerSchemaWidget.cpp">
<Filter>窗口\内容窗口\数据管理\车商方案表</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\Widgets\ContentWidget\QRepairOrderWidget\QRepairOrderWidget.cpp">
<Filter>窗口\内容窗口\数据管理\送返修工单表</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\Widgets\ContentWidget\QCarDealerAchievementWidget\QCarDealerAchievementWidget.cpp">
<Filter>窗口\内容窗口\数据管理\车商业绩表</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\Data\Datastructure\RepairSuggestion\RepairSuggestionRecord.cpp">
<Filter>数据\数据结构\送返修推荐表</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\Data\Datastructure\新送返修监控报表\新送返修监控报表.cpp">
<Filter>数据\数据结构\新送返修监控报表</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<QtRcc Include="..\..\..\source\resource.qrc">
<Filter>Resource Files</Filter>
</QtRcc>
</ItemGroup>
<ItemGroup>
<QtUic Include="..\..\..\source\Widgets\MainFrame\QMainFrame.ui">
<Filter>窗口\主窗口</Filter>
</QtUic>
<QtUic Include="..\..\..\source\widgets\LoginWidget\QLoginDialog.ui">
<Filter>窗口\登录窗口</Filter>
</QtUic>
<QtUic Include="..\..\..\source\widgets\ContentWidget\QDataManagementWidget\QDataManagementWidget.ui">
<Filter>窗口\内容窗口\数据管理</Filter>
</QtUic>
<QtUic Include="..\..\..\source\Widgets\ContentWidget\QCarDealerSchemaWidget\QCarDealerSchemaWidget.ui">
<Filter>窗口\内容窗口\数据管理\车商方案表</Filter>
</QtUic>
<QtUic Include="..\..\..\source\Widgets\ContentWidget\QRepairOrderWidget\QRepairOrderWidget.ui">
<Filter>窗口\内容窗口\数据管理\送返修工单表</Filter>
</QtUic>
<QtUic Include="..\..\..\source\Widgets\ContentWidget\QCarDealerAchievementWidget\QCarDealerAchievementWidget.ui">
<Filter>窗口\内容窗口\数据管理\车商业绩表</Filter>
</QtUic>
</ItemGroup>
<ItemGroup>
<QtMoc Include="..\..\..\source\Widgets\MainFrame\QMainFrame.h">
<Filter>窗口\主窗口</Filter>
</QtMoc>
<QtMoc Include="..\..\..\source\widgets\LoginWidget\QLoginDialog.h">
<Filter>窗口\登录窗口</Filter>
</QtMoc>
<QtMoc Include="..\..\..\source\widgets\ContentWidget\QDataManagementWidget\QDataManagementWidget.h">
<Filter>窗口\内容窗口\数据管理</Filter>
</QtMoc>
<QtMoc Include="..\..\..\source\Widgets\ContentWidget\QCarDealerSchemaWidget\QCarDealerSchemaWidget.h">
<Filter>窗口\内容窗口\数据管理\车商方案表</Filter>
</QtMoc>
<QtMoc Include="..\..\..\source\Widgets\ContentWidget\QRepairOrderWidget\QRepairOrderWidget.h">
<Filter>窗口\内容窗口\数据管理\送返修工单表</Filter>
</QtMoc>
<QtMoc Include="..\..\..\source\Widgets\ContentWidget\QCarDealerAchievementWidget\QCarDealerAchievementWidget.h">
<Filter>窗口\内容窗口\数据管理\车商业绩表</Filter>
</QtMoc>
</ItemGroup>
<ItemGroup>
<Image Include="..\..\..\source\car_dealer_util.ico">
<Filter>Resource Files</Filter>
</Image>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\source\car_dealer_util.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\source\Data\Datastructure\CarDealerScheme\CarDealerScheme.h">
<Filter>数据\数据结构\车商方案表</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\Data\Datastructure\CarDealerAchievement\CarDealerAchievement.h">
<Filter>数据\数据结构\车商业绩表</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\Data\DataManipulation\Excel\ExportToExcel.h">
<Filter>数据\数据管理\导入导出\excel</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\Data\DataManipulation\Excel\LoadFromExcel.h">
<Filter>数据\数据管理\导入导出\excel</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\test\test.h">
<Filter>测试</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\data\excel\excel.h">
<Filter>excel</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\data\Datastructure\RepairOrder\RepairOrder.h">
<Filter>数据\数据结构\送返修工单</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\system\system_util.h">
<Filter>操作系统</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\Data\DataManipulation\oracle\ImportToOracle.h">
<Filter>数据\数据管理\导入导出\oracle</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\db\ocilib\db_oper.h">
<Filter>数据库\ocilib</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\data\query\query_user.h">
<Filter>数据\查询</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\data\Datastructure\UserInfo\UserInfo.h">
<Filter>数据\数据结构\用户信息</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\data\AppParameters\AppParameters.h">
<Filter>数据\全局对象</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\data\DataManipulation\FromExcelToOracle\FromExcelToOracle.h">
<Filter>数据\数据管理\导入导出\直接导入导出</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\Data\Datastructure\RepairSuggestion\RepairSuggestionRecord.h">
<Filter>数据\数据结构\送返修推荐表</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\Data\Datastructure\新送返修监控报表\新送返修监控报表.h">
<Filter>数据\数据结构\新送返修监控报表</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>

View File

@@ -0,0 +1,95 @@
/****************************************************************************
** Meta object code from reading C++ file 'QCarDealerAchievementWidget.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.13.1)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "D:/develop/projects_win/2019/car_dealer_util/代码/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerAchievementWidget/QCarDealerAchievementWidget.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'QCarDealerAchievementWidget.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.13.1. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_QCarDealerAchievementWidget_t {
QByteArrayData data[1];
char stringdata0[28];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_QCarDealerAchievementWidget_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_QCarDealerAchievementWidget_t qt_meta_stringdata_QCarDealerAchievementWidget = {
{
QT_MOC_LITERAL(0, 0, 27) // "QCarDealerAchievementWidget"
},
"QCarDealerAchievementWidget"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_QCarDealerAchievementWidget[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void QCarDealerAchievementWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject QCarDealerAchievementWidget::staticMetaObject = { {
&QWidget::staticMetaObject,
qt_meta_stringdata_QCarDealerAchievementWidget.data,
qt_meta_data_QCarDealerAchievementWidget,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *QCarDealerAchievementWidget::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *QCarDealerAchievementWidget::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_QCarDealerAchievementWidget.stringdata0))
return static_cast<void*>(this);
return QWidget::qt_metacast(_clname);
}
int QCarDealerAchievementWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWidget::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

View File

@@ -0,0 +1,46 @@
/********************************************************************************
** Form generated from reading UI file 'QCarDealerAchievementWidget.ui'
**
** Created by: Qt User Interface Compiler version 5.13.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_QCARDEALERACHIEVEMENTWIDGET_H
#define UI_QCARDEALERACHIEVEMENTWIDGET_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_QCarDealerAchievementWidget
{
public:
void setupUi(QWidget *QCarDealerAchievementWidget)
{
if (QCarDealerAchievementWidget->objectName().isEmpty())
QCarDealerAchievementWidget->setObjectName(QString::fromUtf8("QCarDealerAchievementWidget"));
QCarDealerAchievementWidget->resize(400, 300);
retranslateUi(QCarDealerAchievementWidget);
QMetaObject::connectSlotsByName(QCarDealerAchievementWidget);
} // setupUi
void retranslateUi(QWidget *QCarDealerAchievementWidget)
{
QCarDealerAchievementWidget->setWindowTitle(QCoreApplication::translate("QCarDealerAchievementWidget", "QCarDealerAchievementWidget", nullptr));
} // retranslateUi
};
namespace Ui {
class QCarDealerAchievementWidget: public Ui_QCarDealerAchievementWidget {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_QCARDEALERACHIEVEMENTWIDGET_H

View File

@@ -0,0 +1,95 @@
/****************************************************************************
** Meta object code from reading C++ file 'QCarDealerSchemaWidget.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.13.1)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../../../../../../source/Widgets/ContentWidget/QCarDealerSchemaWidget/QCarDealerSchemaWidget.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'QCarDealerSchemaWidget.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.13.1. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_QCarDealerSchemaWidget_t {
QByteArrayData data[1];
char stringdata0[23];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_QCarDealerSchemaWidget_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_QCarDealerSchemaWidget_t qt_meta_stringdata_QCarDealerSchemaWidget = {
{
QT_MOC_LITERAL(0, 0, 22) // "QCarDealerSchemaWidget"
},
"QCarDealerSchemaWidget"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_QCarDealerSchemaWidget[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void QCarDealerSchemaWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject QCarDealerSchemaWidget::staticMetaObject = { {
&QWidget::staticMetaObject,
qt_meta_stringdata_QCarDealerSchemaWidget.data,
qt_meta_data_QCarDealerSchemaWidget,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *QCarDealerSchemaWidget::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *QCarDealerSchemaWidget::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_QCarDealerSchemaWidget.stringdata0))
return static_cast<void*>(this);
return QWidget::qt_metacast(_clname);
}
int QCarDealerSchemaWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWidget::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

View File

@@ -0,0 +1,46 @@
/********************************************************************************
** Form generated from reading UI file 'QCarDealerSchemaWidget.ui'
**
** Created by: Qt User Interface Compiler version 5.13.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_QCARDEALERSCHEMAWIDGET_H
#define UI_QCARDEALERSCHEMAWIDGET_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_QCarDealerSchemaWidget
{
public:
void setupUi(QWidget *QCarDealerSchemaWidget)
{
if (QCarDealerSchemaWidget->objectName().isEmpty())
QCarDealerSchemaWidget->setObjectName(QString::fromUtf8("QCarDealerSchemaWidget"));
QCarDealerSchemaWidget->resize(725, 508);
retranslateUi(QCarDealerSchemaWidget);
QMetaObject::connectSlotsByName(QCarDealerSchemaWidget);
} // setupUi
void retranslateUi(QWidget *QCarDealerSchemaWidget)
{
QCarDealerSchemaWidget->setWindowTitle(QCoreApplication::translate("QCarDealerSchemaWidget", "QCarDealerSchemaWidget", nullptr));
} // retranslateUi
};
namespace Ui {
class QCarDealerSchemaWidget: public Ui_QCarDealerSchemaWidget {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_QCARDEALERSCHEMAWIDGET_H

View File

@@ -0,0 +1,95 @@
/****************************************************************************
** Meta object code from reading C++ file 'QDataManagementWidget.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.13.1)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../../../../../../source/widgets/ContentWidget/QDataManagementWidget/QDataManagementWidget.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'QDataManagementWidget.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.13.1. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_QDataManagementWidget_t {
QByteArrayData data[1];
char stringdata0[22];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_QDataManagementWidget_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_QDataManagementWidget_t qt_meta_stringdata_QDataManagementWidget = {
{
QT_MOC_LITERAL(0, 0, 21) // "QDataManagementWidget"
},
"QDataManagementWidget"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_QDataManagementWidget[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void QDataManagementWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject QDataManagementWidget::staticMetaObject = { {
&QWidget::staticMetaObject,
qt_meta_stringdata_QDataManagementWidget.data,
qt_meta_data_QDataManagementWidget,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *QDataManagementWidget::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *QDataManagementWidget::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_QDataManagementWidget.stringdata0))
return static_cast<void*>(this);
return QWidget::qt_metacast(_clname);
}
int QDataManagementWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWidget::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

View File

@@ -0,0 +1,87 @@
/********************************************************************************
** Form generated from reading UI file 'QDataManagementWidget.ui'
**
** Created by: Qt User Interface Compiler version 5.13.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_QDATAMANAGEMENTWIDGET_H
#define UI_QDATAMANAGEMENTWIDGET_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QTabWidget>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_QDataManagementWidget
{
public:
QWidget *gridLayoutWidget;
QGridLayout *pLayoutMain;
QTabWidget *tabWidget;
QWidget *tab;
QWidget *tab_2;
QWidget *tab_3;
QWidget *tab_4;
void setupUi(QWidget *QDataManagementWidget)
{
if (QDataManagementWidget->objectName().isEmpty())
QDataManagementWidget->setObjectName(QString::fromUtf8("QDataManagementWidget"));
QDataManagementWidget->resize(759, 487);
gridLayoutWidget = new QWidget(QDataManagementWidget);
gridLayoutWidget->setObjectName(QString::fromUtf8("gridLayoutWidget"));
gridLayoutWidget->setGeometry(QRect(30, 20, 681, 431));
pLayoutMain = new QGridLayout(gridLayoutWidget);
pLayoutMain->setSpacing(6);
pLayoutMain->setContentsMargins(11, 11, 11, 11);
pLayoutMain->setObjectName(QString::fromUtf8("pLayoutMain"));
pLayoutMain->setContentsMargins(5, 5, 5, 0);
tabWidget = new QTabWidget(gridLayoutWidget);
tabWidget->setObjectName(QString::fromUtf8("tabWidget"));
tab = new QWidget();
tab->setObjectName(QString::fromUtf8("tab"));
tabWidget->addTab(tab, QString());
tab_2 = new QWidget();
tab_2->setObjectName(QString::fromUtf8("tab_2"));
tabWidget->addTab(tab_2, QString());
tab_3 = new QWidget();
tab_3->setObjectName(QString::fromUtf8("tab_3"));
tabWidget->addTab(tab_3, QString());
tab_4 = new QWidget();
tab_4->setObjectName(QString::fromUtf8("tab_4"));
tabWidget->addTab(tab_4, QString());
pLayoutMain->addWidget(tabWidget, 0, 0, 1, 1);
retranslateUi(QDataManagementWidget);
tabWidget->setCurrentIndex(3);
QMetaObject::connectSlotsByName(QDataManagementWidget);
} // setupUi
void retranslateUi(QWidget *QDataManagementWidget)
{
QDataManagementWidget->setWindowTitle(QCoreApplication::translate("QDataManagementWidget", "QDataManagementWidget", nullptr));
tabWidget->setTabText(tabWidget->indexOf(tab), QCoreApplication::translate("QDataManagementWidget", "\350\275\246\345\225\206\344\270\232\347\273\251\350\241\250", nullptr));
tabWidget->setTabText(tabWidget->indexOf(tab_2), QCoreApplication::translate("QDataManagementWidget", "\350\275\246\345\225\206\346\226\271\346\241\210\350\241\250", nullptr));
tabWidget->setTabText(tabWidget->indexOf(tab_3), QCoreApplication::translate("QDataManagementWidget", "\351\200\201\350\277\224\344\277\256\345\267\245\345\215\225", nullptr));
tabWidget->setTabText(tabWidget->indexOf(tab_4), QCoreApplication::translate("QDataManagementWidget", "\346\226\260\351\200\201\350\277\224\344\277\256\347\233\221\346\216\247\346\212\245\350\241\250", nullptr));
} // retranslateUi
};
namespace Ui {
class QDataManagementWidget: public Ui_QDataManagementWidget {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_QDATAMANAGEMENTWIDGET_H

View File

@@ -0,0 +1,95 @@
/****************************************************************************
** Meta object code from reading C++ file 'QRepairOrderWidget.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.13.1)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../../../../../../source/Widgets/ContentWidget/QRepairOrderWidget/QRepairOrderWidget.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'QRepairOrderWidget.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.13.1. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_QRepairOrderWidget_t {
QByteArrayData data[1];
char stringdata0[19];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_QRepairOrderWidget_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_QRepairOrderWidget_t qt_meta_stringdata_QRepairOrderWidget = {
{
QT_MOC_LITERAL(0, 0, 18) // "QRepairOrderWidget"
},
"QRepairOrderWidget"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_QRepairOrderWidget[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void QRepairOrderWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject QRepairOrderWidget::staticMetaObject = { {
&QWidget::staticMetaObject,
qt_meta_stringdata_QRepairOrderWidget.data,
qt_meta_data_QRepairOrderWidget,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *QRepairOrderWidget::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *QRepairOrderWidget::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_QRepairOrderWidget.stringdata0))
return static_cast<void*>(this);
return QWidget::qt_metacast(_clname);
}
int QRepairOrderWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWidget::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

View File

@@ -0,0 +1,46 @@
/********************************************************************************
** Form generated from reading UI file 'QRepairOrderWidget.ui'
**
** Created by: Qt User Interface Compiler version 5.13.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_QREPAIRORDERWIDGET_H
#define UI_QREPAIRORDERWIDGET_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_QRepairOrderWidget
{
public:
void setupUi(QWidget *QRepairOrderWidget)
{
if (QRepairOrderWidget->objectName().isEmpty())
QRepairOrderWidget->setObjectName(QString::fromUtf8("QRepairOrderWidget"));
QRepairOrderWidget->resize(400, 300);
retranslateUi(QRepairOrderWidget);
QMetaObject::connectSlotsByName(QRepairOrderWidget);
} // setupUi
void retranslateUi(QWidget *QRepairOrderWidget)
{
QRepairOrderWidget->setWindowTitle(QCoreApplication::translate("QRepairOrderWidget", "QRepairOrderWidget", nullptr));
} // retranslateUi
};
namespace Ui {
class QRepairOrderWidget: public Ui_QRepairOrderWidget {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_QREPAIRORDERWIDGET_H

View File

@@ -0,0 +1,140 @@
/****************************************************************************
** Meta object code from reading C++ file 'QLoginDialog.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.13.1)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../../../../../source/widgets/LoginWidget/QLoginDialog.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'QLoginDialog.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.13.1. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_QLoginDialog_t {
QByteArrayData data[8];
char stringdata0[63];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_QLoginDialog_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_QLoginDialog_t qt_meta_stringdata_QLoginDialog = {
{
QT_MOC_LITERAL(0, 0, 12), // "QLoginDialog"
QT_MOC_LITERAL(1, 13, 4), // "init"
QT_MOC_LITERAL(2, 18, 0), // ""
QT_MOC_LITERAL(3, 19, 8), // "initData"
QT_MOC_LITERAL(4, 28, 10), // "initSignal"
QT_MOC_LITERAL(5, 39, 11), // "initWidgets"
QT_MOC_LITERAL(6, 51, 4), // "onOK"
QT_MOC_LITERAL(7, 56, 6) // "onExit"
},
"QLoginDialog\0init\0\0initData\0initSignal\0"
"initWidgets\0onOK\0onExit"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_QLoginDialog[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
6, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 44, 2, 0x09 /* Protected */,
3, 0, 45, 2, 0x09 /* Protected */,
4, 0, 46, 2, 0x09 /* Protected */,
5, 0, 47, 2, 0x09 /* Protected */,
6, 0, 48, 2, 0x09 /* Protected */,
7, 0, 49, 2, 0x09 /* Protected */,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void QLoginDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<QLoginDialog *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->init(); break;
case 1: _t->initData(); break;
case 2: _t->initSignal(); break;
case 3: _t->initWidgets(); break;
case 4: _t->onOK(); break;
case 5: _t->onExit(); break;
default: ;
}
}
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject QLoginDialog::staticMetaObject = { {
&QDialog::staticMetaObject,
qt_meta_stringdata_QLoginDialog.data,
qt_meta_data_QLoginDialog,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *QLoginDialog::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *QLoginDialog::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_QLoginDialog.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int QLoginDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 6)
qt_static_metacall(this, _c, _id, _a);
_id -= 6;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 6)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 6;
}
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

View File

@@ -0,0 +1,197 @@
/********************************************************************************
** Form generated from reading UI file 'QLoginDialog.ui'
**
** Created by: Qt User Interface Compiler version 5.13.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_QLOGINDIALOG_H
#define UI_QLOGINDIALOG_H
#include <QtCore/QVariant>
#include <QtGui/QIcon>
#include <QtWidgets/QApplication>
#include <QtWidgets/QDialog>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QToolButton>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_QLoginDialog
{
public:
QWidget *layoutWidget;
QVBoxLayout *pLayoutMain;
QHBoxLayout *horizontalLayout;
QLabel *label;
QGroupBox *groupBox;
QGridLayout *gridLayout;
QLabel *label_2;
QLineEdit *pEditSystemUserName;
QLabel *label_3;
QLineEdit *pEditUserName;
QLabel *label_4;
QLineEdit *pEditStaffPost;
QHBoxLayout *horizontalLayout_2;
QSpacerItem *horizontalSpacer;
QToolButton *pButtonExit;
QToolButton *pButtonOK;
void setupUi(QDialog *QLoginDialog)
{
if (QLoginDialog->objectName().isEmpty())
QLoginDialog->setObjectName(QString::fromUtf8("QLoginDialog"));
QLoginDialog->resize(350, 160);
QLoginDialog->setMinimumSize(QSize(350, 160));
QLoginDialog->setMaximumSize(QSize(350, 160));
QIcon icon;
icon.addFile(QString::fromUtf8(":/QMainFrame/Resources/CPIC\351\200\217\346\230\216.png"), QSize(), QIcon::Normal, QIcon::On);
QLoginDialog->setWindowIcon(icon);
layoutWidget = new QWidget(QLoginDialog);
layoutWidget->setObjectName(QString::fromUtf8("layoutWidget"));
layoutWidget->setGeometry(QRect(0, 0, 349, 158));
pLayoutMain = new QVBoxLayout(layoutWidget);
pLayoutMain->setSpacing(6);
pLayoutMain->setContentsMargins(11, 11, 11, 11);
pLayoutMain->setObjectName(QString::fromUtf8("pLayoutMain"));
pLayoutMain->setContentsMargins(5, 5, 5, 5);
horizontalLayout = new QHBoxLayout();
horizontalLayout->setSpacing(6);
horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
label = new QLabel(layoutWidget);
label->setObjectName(QString::fromUtf8("label"));
label->setPixmap(QPixmap(QString::fromUtf8(":/QMainFrame/Resources/cat.png")));
horizontalLayout->addWidget(label);
groupBox = new QGroupBox(layoutWidget);
groupBox->setObjectName(QString::fromUtf8("groupBox"));
gridLayout = new QGridLayout(groupBox);
gridLayout->setSpacing(6);
gridLayout->setContentsMargins(11, 11, 11, 11);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
label_2 = new QLabel(groupBox);
label_2->setObjectName(QString::fromUtf8("label_2"));
label_2->setMinimumSize(QSize(85, 0));
label_2->setMaximumSize(QSize(85, 16777215));
label_2->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_2, 0, 0, 1, 1);
pEditSystemUserName = new QLineEdit(groupBox);
pEditSystemUserName->setObjectName(QString::fromUtf8("pEditSystemUserName"));
pEditSystemUserName->setMinimumSize(QSize(120, 0));
pEditSystemUserName->setMaximumSize(QSize(120, 16777215));
pEditSystemUserName->setStyleSheet(QString::fromUtf8("border: 1px solid silver;"));
pEditSystemUserName->setAlignment(Qt::AlignCenter);
pEditSystemUserName->setReadOnly(true);
gridLayout->addWidget(pEditSystemUserName, 0, 1, 1, 1);
label_3 = new QLabel(groupBox);
label_3->setObjectName(QString::fromUtf8("label_3"));
label_3->setMinimumSize(QSize(85, 0));
label_3->setMaximumSize(QSize(85, 16777215));
label_3->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_3, 1, 0, 1, 1);
pEditUserName = new QLineEdit(groupBox);
pEditUserName->setObjectName(QString::fromUtf8("pEditUserName"));
pEditUserName->setMinimumSize(QSize(120, 0));
pEditUserName->setMaximumSize(QSize(120, 16777215));
pEditUserName->setStyleSheet(QString::fromUtf8("border: 1px solid silver;"));
pEditUserName->setAlignment(Qt::AlignCenter);
pEditUserName->setReadOnly(true);
gridLayout->addWidget(pEditUserName, 1, 1, 1, 1);
label_4 = new QLabel(groupBox);
label_4->setObjectName(QString::fromUtf8("label_4"));
label_4->setMinimumSize(QSize(85, 0));
label_4->setMaximumSize(QSize(85, 16777215));
label_4->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_4, 2, 0, 1, 1);
pEditStaffPost = new QLineEdit(groupBox);
pEditStaffPost->setObjectName(QString::fromUtf8("pEditStaffPost"));
pEditStaffPost->setMinimumSize(QSize(120, 0));
pEditStaffPost->setMaximumSize(QSize(120, 16777215));
pEditStaffPost->setStyleSheet(QString::fromUtf8("border: 1px solid silver;"));
pEditStaffPost->setAlignment(Qt::AlignCenter);
pEditStaffPost->setReadOnly(true);
gridLayout->addWidget(pEditStaffPost, 2, 1, 1, 1);
horizontalLayout->addWidget(groupBox);
pLayoutMain->addLayout(horizontalLayout);
horizontalLayout_2 = new QHBoxLayout();
horizontalLayout_2->setSpacing(6);
horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout_2->addItem(horizontalSpacer);
pButtonExit = new QToolButton(layoutWidget);
pButtonExit->setObjectName(QString::fromUtf8("pButtonExit"));
QIcon icon1;
icon1.addFile(QString::fromUtf8(":/QMainFrame/Resources/quit.png"), QSize(), QIcon::Normal, QIcon::On);
pButtonExit->setIcon(icon1);
pButtonExit->setIconSize(QSize(32, 32));
pButtonExit->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
horizontalLayout_2->addWidget(pButtonExit);
pButtonOK = new QToolButton(layoutWidget);
pButtonOK->setObjectName(QString::fromUtf8("pButtonOK"));
QIcon icon2;
icon2.addFile(QString::fromUtf8(":/QMainFrame/Resources/ok.png"), QSize(), QIcon::Normal, QIcon::On);
pButtonOK->setIcon(icon2);
pButtonOK->setIconSize(QSize(32, 32));
pButtonOK->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
horizontalLayout_2->addWidget(pButtonOK);
pLayoutMain->addLayout(horizontalLayout_2);
retranslateUi(QLoginDialog);
QMetaObject::connectSlotsByName(QLoginDialog);
} // setupUi
void retranslateUi(QDialog *QLoginDialog)
{
QLoginDialog->setWindowTitle(QCoreApplication::translate("QLoginDialog", "\347\214\234\347\214\234\344\275\240\346\230\257\350\260\201~~~~", nullptr));
label->setText(QString());
groupBox->setTitle(QCoreApplication::translate("QLoginDialog", "\344\272\272\345\221\230\344\277\241\346\201\257\357\274\232", nullptr));
label_2->setText(QCoreApplication::translate("QLoginDialog", "\347\263\273\347\273\237\347\224\250\346\210\267\345\220\215\357\274\232", nullptr));
label_3->setText(QCoreApplication::translate("QLoginDialog", "\344\272\272\345\221\230\345\220\215\347\247\260\357\274\232", nullptr));
label_4->setText(QCoreApplication::translate("QLoginDialog", "\345\262\227\344\275\215\357\274\232", nullptr));
pButtonExit->setText(QCoreApplication::translate("QLoginDialog", "\351\200\200\345\207\272", nullptr));
pButtonOK->setText(QCoreApplication::translate("QLoginDialog", "\347\241\256\350\256\244", nullptr));
} // retranslateUi
};
namespace Ui {
class QLoginDialog: public Ui_QLoginDialog {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_QLOGINDIALOG_H

View File

@@ -0,0 +1,95 @@
/****************************************************************************
** Meta object code from reading C++ file 'QMainFrame.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.13.1)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../../../../../source/Widgets/MainFrame/QMainFrame.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'QMainFrame.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.13.1. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_QMainFrame_t {
QByteArrayData data[1];
char stringdata0[11];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_QMainFrame_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_QMainFrame_t qt_meta_stringdata_QMainFrame = {
{
QT_MOC_LITERAL(0, 0, 10) // "QMainFrame"
},
"QMainFrame"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_QMainFrame[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void QMainFrame::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject QMainFrame::staticMetaObject = { {
&QMainWindow::staticMetaObject,
qt_meta_stringdata_QMainFrame.data,
qt_meta_data_QMainFrame,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *QMainFrame::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *QMainFrame::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_QMainFrame.stringdata0))
return static_cast<void*>(this);
return QMainWindow::qt_metacast(_clname);
}
int QMainFrame::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QMainWindow::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

View File

@@ -0,0 +1,113 @@
/********************************************************************************
** Form generated from reading UI file 'QMainFrame.ui'
**
** Created by: Qt User Interface Compiler version 5.13.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_QMAINFRAME_H
#define UI_QMAINFRAME_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenu>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QToolBar>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_QMainFrameClass
{
public:
QAction *pActionExit;
QAction *pActionAbout;
QAction *pActionDataManagement;
QAction *pActionParamentersManagement;
QWidget *centralWidget;
QMenuBar *menuBar;
QMenu *menu;
QMenu *menu_2;
QToolBar *mainToolBar;
QStatusBar *statusBar;
void setupUi(QMainWindow *QMainFrameClass)
{
if (QMainFrameClass->objectName().isEmpty())
QMainFrameClass->setObjectName(QString::fromUtf8("QMainFrameClass"));
QMainFrameClass->resize(796, 558);
pActionExit = new QAction(QMainFrameClass);
pActionExit->setObjectName(QString::fromUtf8("pActionExit"));
QIcon icon;
icon.addFile(QString::fromUtf8(":/QMainFrame/Resources/quit.png"), QSize(), QIcon::Normal, QIcon::Off);
pActionExit->setIcon(icon);
pActionAbout = new QAction(QMainFrameClass);
pActionAbout->setObjectName(QString::fromUtf8("pActionAbout"));
QIcon icon1;
icon1.addFile(QString::fromUtf8(":/QMainFrame/Resources/cat.png"), QSize(), QIcon::Normal, QIcon::Off);
pActionAbout->setIcon(icon1);
pActionDataManagement = new QAction(QMainFrameClass);
pActionDataManagement->setObjectName(QString::fromUtf8("pActionDataManagement"));
QIcon icon2;
icon2.addFile(QString::fromUtf8(":/QMainFrame/Resources/excel.png"), QSize(), QIcon::Normal, QIcon::Off);
pActionDataManagement->setIcon(icon2);
pActionParamentersManagement = new QAction(QMainFrameClass);
pActionParamentersManagement->setObjectName(QString::fromUtf8("pActionParamentersManagement"));
QIcon icon3;
icon3.addFile(QString::fromUtf8(":/QMainFrame/Resources/option.png"), QSize(), QIcon::Normal, QIcon::Off);
pActionParamentersManagement->setIcon(icon3);
centralWidget = new QWidget(QMainFrameClass);
centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
QMainFrameClass->setCentralWidget(centralWidget);
menuBar = new QMenuBar(QMainFrameClass);
menuBar->setObjectName(QString::fromUtf8("menuBar"));
menuBar->setGeometry(QRect(0, 0, 796, 23));
menu = new QMenu(menuBar);
menu->setObjectName(QString::fromUtf8("menu"));
menu_2 = new QMenu(menuBar);
menu_2->setObjectName(QString::fromUtf8("menu_2"));
QMainFrameClass->setMenuBar(menuBar);
mainToolBar = new QToolBar(QMainFrameClass);
mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
mainToolBar->setIconSize(QSize(36, 36));
QMainFrameClass->addToolBar(Qt::TopToolBarArea, mainToolBar);
statusBar = new QStatusBar(QMainFrameClass);
statusBar->setObjectName(QString::fromUtf8("statusBar"));
QMainFrameClass->setStatusBar(statusBar);
menuBar->addAction(menu->menuAction());
menuBar->addAction(menu_2->menuAction());
menu->addAction(pActionExit);
menu_2->addAction(pActionAbout);
mainToolBar->addAction(pActionDataManagement);
mainToolBar->addAction(pActionParamentersManagement);
retranslateUi(QMainFrameClass);
QMetaObject::connectSlotsByName(QMainFrameClass);
} // setupUi
void retranslateUi(QMainWindow *QMainFrameClass)
{
QMainFrameClass->setWindowTitle(QCoreApplication::translate("QMainFrameClass", "QMainFrame", nullptr));
pActionExit->setText(QCoreApplication::translate("QMainFrameClass", "\351\200\200\345\207\272", nullptr));
pActionAbout->setText(QCoreApplication::translate("QMainFrameClass", "\345\205\263\344\272\216", nullptr));
pActionDataManagement->setText(QCoreApplication::translate("QMainFrameClass", "\346\225\260\346\215\256\347\256\241\347\220\206", nullptr));
pActionParamentersManagement->setText(QCoreApplication::translate("QMainFrameClass", "\345\217\202\346\225\260\347\256\241\347\220\206", nullptr));
menu->setTitle(QCoreApplication::translate("QMainFrameClass", "\347\263\273\347\273\237", nullptr));
menu_2->setTitle(QCoreApplication::translate("QMainFrameClass", "\345\270\256\345\212\251", nullptr));
} // retranslateUi
};
namespace Ui {
class QMainFrameClass: public Ui_QMainFrameClass {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_QMAINFRAME_H

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,26 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29609.76
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "car_dealer_util", "car_dealer_util\car_dealer_util.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.ActiveCfg = Debug|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.Build.0 = Debug|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.ActiveCfg = Release|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {7A1F667A-8FB5-4B18-8D74-E810D205DFA9}
Qt5Version = 5.13.1_msvc2017_x64
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,4 @@

#include "AppParameters.h"
UserInfo * pStaffInfo = nullptr;

View File

@@ -0,0 +1,7 @@

#pragma once
#include <iostream>
#include "../Datastructure/UserInfo/UserInfo.h"
extern UserInfo * pStaffInfo;

View File

@@ -0,0 +1,10 @@

#include <libxl.h>
#include "ExportToExcel.h"
using namespace libxl;
using namespace std;

View File

@@ -0,0 +1,2 @@
#pragma once

View File

@@ -0,0 +1,785 @@
#include <libxl.h>
#include <stdexcept>
#include "LoadFromExcel.h"
#include "../../excel/excel.h"
using namespace std;
using namespace libxl;
/************************************************
* \brief 从Excel文件读取车商方案表
* \param filePath Excel文件路径
* \param schemeMap 存放车商方案数据的map
************************************************/
void LoadCarDealerSchemeFromXlsx( const wstring & filePath,
unsigned int sheetIndex,
unsigned int startRowIndex,
vector<CarDealerScheme> & schemeVector )
{
Book * pBook = xlCreateXMLBookW();
Sheet * pSheet = nullptr;
if ( pBook == nullptr )
{
throw runtime_error( "libxl库加载失败" );
}
setKey( pBook );
if ( pBook->load( filePath.c_str() ) != true )
{
string errorMessage = "打开文件失败!";
errorMessage.append( pBook->errorMessage() );
throw runtime_error( errorMessage );
}
pSheet = pBook->getSheet( sheetIndex );
if ( pSheet == nullptr )
{
string errorMessage = "读取sheet失败";
errorMessage.append( pBook->errorMessage() );
pBook->release();
throw runtime_error( errorMessage );
}
int lastRowIndex = pSheet->lastRow();
int firstRowIndex = pSheet->firstRow();
int firstColumnIndex = pSheet->firstCol();
int rowIndex = firstRowIndex + startRowIndex;
while ( rowIndex <= lastRowIndex )
{
int colunmIndex = firstRowIndex;
const wstring && theYear = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex, true );
const wstring && theMonth = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 1, true );
const wstring && carDealerCode = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 2, true );
const wstring && carDealerName = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 3, true );
const wstring && manHourPrice = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 4, true );
const wstring && partPrice = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 5, true );
const wstring && claimSupport = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 6, true );
const wstring && scheme = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 7, true );
const wstring && isQualified = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 8, true );
//空行跳过
if ( carDealerCode.empty() == true )
{
rowIndex++;
continue;
}
CarDealerScheme carDealerScheme( theYear,
theMonth,
carDealerCode,
manHourPrice,
partPrice,
claimSupport,
scheme,
isQualified );
schemeVector.push_back( carDealerScheme );
rowIndex++;
}
pBook->release();
}
void LoadCarDealerAchievementFromXlsx( const std::wstring & filePath,
unsigned sheetIndex,
unsigned startRowIndex,
std::vector<CarDealerAchievement> & achievementVector )
{
Book * pBook = xlCreateXMLBookW();
Sheet * pSheet = nullptr;
if ( pBook == nullptr )
{
throw runtime_error( "libxl库加载失败" );
}
setKey( pBook );
if ( pBook->load( filePath.c_str() ) != true )
{
string errorMessage = "打开文件失败!";
errorMessage.append( pBook->errorMessage() );
throw runtime_error( errorMessage );
}
pSheet = pBook->getSheet( sheetIndex );
if ( pSheet == nullptr )
{
string errorMessage = "读取sheet失败";
errorMessage.append( pBook->errorMessage() );
pBook->release();
throw runtime_error( errorMessage );
}
int lastRowIndex = pSheet->lastRow();
int firstRowIndex = pSheet->firstRow();
int firstColumnIndex = pSheet->firstCol();
int rowIndex = firstRowIndex + startRowIndex;
while ( rowIndex <= lastRowIndex )
{
int colunmIndex = firstRowIndex;
const wstring && theYear = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex, true );
const wstring && theMonth = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 1, true );
const wstring && carDealerCode = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 2, true );
const wstring && carDealerName = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 3, true );
long double checkedAchievement = 0;
int policyAmount = 0;
int cpicAmount = 0;
int piccAmount = 0;
int pinganAmount = 0;
int othersAmount = 0;
//空行跳过
if ( carDealerCode.empty() == true )
{
rowIndex++;
continue;
}
//每个字段都要先判断数据类型再读写,防止填写表格的人填错内容。
CellType type = pSheet->cellType( rowIndex, firstColumnIndex + 4 );
char errorMessage[1000];
//产值
if ( type == CELLTYPE_NUMBER )
{
checkedAchievement = pSheet->readNum( rowIndex, firstColumnIndex + 4 );
}
else
{
pBook->release();
sprintf( errorMessage, "第%d行第%d列格式错误不是数字类型", rowIndex, firstColumnIndex + 4 );
throw runtime_error( errorMessage );
}
//签单数量
type = pSheet->cellType( rowIndex, firstColumnIndex + 5 );
if ( type == CELLTYPE_NUMBER )
{
policyAmount = static_cast<int>(pSheet->readNum( rowIndex, firstColumnIndex + 5 ));
}
else
{
pBook->release();
sprintf( errorMessage, "第%d行第%d列格式错误不是数字类型", rowIndex, firstColumnIndex + 5 );
throw runtime_error( errorMessage );
}
//太平洋保险新车签单台次
type = pSheet->cellType( rowIndex, firstColumnIndex + 6 );
if ( type == CELLTYPE_NUMBER )
{
cpicAmount = static_cast<int>(pSheet->readNum( rowIndex, firstColumnIndex + 6 ));
}
else
{
pBook->release();
sprintf( errorMessage, "第%d行第%d列格式错误不是数字类型", rowIndex, firstColumnIndex + 6 );
throw runtime_error( errorMessage );
}
//中国人保新车签单台次
type = pSheet->cellType( rowIndex, firstColumnIndex + 7 );
if ( type == CELLTYPE_NUMBER )
{
piccAmount = static_cast<int>(pSheet->readNum( rowIndex, firstColumnIndex + 7 ));
}
else
{
pBook->release();
sprintf( errorMessage, "第%d行第%d列格式错误不是数字类型", rowIndex, firstColumnIndex + 7 );
throw runtime_error( errorMessage );
}
//中国平安新车签单台次
type = pSheet->cellType( rowIndex, firstColumnIndex + 8 );
if ( type == CELLTYPE_NUMBER )
{
pinganAmount = static_cast<int>(pSheet->readNum( rowIndex, firstColumnIndex + 8 ));
}
else
{
pBook->release();
sprintf( errorMessage, "第%d行第%d列格式错误不是数字类型", rowIndex, firstColumnIndex + 8 );
throw runtime_error( errorMessage );
}
//其他保险公司新车签单台次
type = pSheet->cellType( rowIndex, firstColumnIndex + 9 );
if ( type == CELLTYPE_NUMBER )
{
othersAmount = static_cast<int>(pSheet->readNum( rowIndex, firstColumnIndex + 9 ));
}
else
{
pBook->release();
sprintf( errorMessage, "第%d行第%d列格式错误不是数字类型", rowIndex, firstColumnIndex + 9 );
throw runtime_error( errorMessage );
}
CarDealerAchievement achievement( theYear,
theMonth,
carDealerCode,
checkedAchievement,
policyAmount,
cpicAmount,
piccAmount,
pinganAmount,
othersAmount );
achievementVector.push_back( achievement );
rowIndex++;
}
pBook->release();
}
void LoadRepairOrderFromXlsx( const std::wstring & filePath,
unsigned sheetIndex,
unsigned startRowIndex,
std::vector<RepairOrder> & orderVector )
{
Book * pBook = xlCreateXMLBookW();
Sheet * pSheet = nullptr;
if ( pBook == nullptr )
{
throw runtime_error( "libxl库加载失败" );
}
setKey( pBook );
if ( pBook->load( filePath.c_str() ) != true )
{
string errorMessage = "打开文件失败!";
errorMessage.append( pBook->errorMessage() );
throw runtime_error( errorMessage );
}
pSheet = pBook->getSheet( sheetIndex );
if ( pSheet == nullptr )
{
string errorMessage = "读取sheet失败";
errorMessage.append( pBook->errorMessage() );
pBook->release();
throw runtime_error( errorMessage );
}
int lastRowIndex = pSheet->lastRow();
int firstRowIndex = pSheet->firstRow();
int rowIndex = firstRowIndex + startRowIndex;
while ( rowIndex <= lastRowIndex )
{
int colunmIndex = pSheet->firstCol();
//报案推荐车商代码在表格中不存在,但在数据库中存在。
const wstring && branchName = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && orderNo = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && orderType = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && notifyNo = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && damageArea = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && damageDate = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && generatingDate = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && policyNo = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && policyNoJQX = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && plateNumber = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && brandName = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && isInsuranceObject = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && isSuccess = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && recommandDealerCode = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && recommandDealerName = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && recommandDealerCodeInNotify = L""; // ReadCellStringFromXlsx(pBook, sheetIndex, rowIndex, colunmIndex, true);
const wstring && recommandDealerNameInNotify = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && recommandDealerNameInSurvey = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && agentName = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && surveyor = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && checkDate = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && repairingStartDate = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && repairingFinishDate = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && status = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && lostItemID = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
const wstring && surveyorRecommandStatus = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
//空行跳过
if ( orderNo.empty() == true )
{
rowIndex++;
continue;
}
RepairOrder order( branchName,
orderNo,
orderType,
notifyNo,
damageArea,
damageDate,
generatingDate,
policyNo,
policyNoJQX,
plateNumber,
brandName,
isInsuranceObject,
isSuccess,
recommandDealerCode,
recommandDealerName,
recommandDealerCodeInNotify,
recommandDealerNameInNotify,
recommandDealerNameInSurvey,
agentName,
surveyor,
checkDate,
repairingStartDate,
repairingFinishDate,
status,
lostItemID,
surveyorRecommandStatus );
orderVector.push_back( order );
rowIndex++;
}
pBook->release();
}
void LoadRepairSuggestionFromXlsx( const std::wstring & filePath,
unsigned sheetIndex,
unsigned startRowIndex,
std::vector<RepairSuggestionRecord> & recordVector )
{
Book * pBook = xlCreateXMLBookW();
Sheet * pSheet = nullptr;
if ( pBook == nullptr )
{
throw runtime_error( "libxl库加载失败" );
}
if ( pBook->load( filePath.c_str() ) != true )
{
string errorMessage = "打开文件失败!";
errorMessage.append( pBook->errorMessage() );
throw runtime_error( errorMessage );
}
setKey( pBook );
pSheet = pBook->getSheet( sheetIndex );
if ( pSheet == nullptr )
{
string errorMessage = "读取sheet失败";
errorMessage.append( pBook->errorMessage() );
pBook->release();
throw runtime_error( errorMessage );
}
int lastRowIndex = pSheet->lastRow();
int firstRowIndex = pSheet->firstRow();
int rowIndex = firstRowIndex + startRowIndex;
while ( rowIndex <= lastRowIndex )
{
//起始列索引
int colunmIndex = pSheet->firstCol();
wstring orderNo = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
wstring orderType = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
wstring notifyNo = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
wstring suggestedCarDealerCode = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
wstring suggestedCarDealerName = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
wstring damageDate = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
wstring plateNumber = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
wstring brandName = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
wstring messageType = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
wstring messageSendingDate = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
wstring dataSource = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
RepairSuggestionRecord record( orderNo,
orderType,
notifyNo,
suggestedCarDealerCode,
suggestedCarDealerName,
damageDate,
plateNumber,
brandName,
messageType,
messageSendingDate,
dataSource );
recordVector.push_back( record );
rowIndex++;
}
pBook->release();
}
void LoadNewRepairMonitorReportFromXlsx( const std::wstring & filePath,
unsigned sheetIndex,
unsigned startRowIndex,
std::vector<NewRepairMonitorReportRecord> & recordVector )
{
Book * pBook = xlCreateXMLBookW();
Sheet * pSheet = nullptr;
if ( pBook == nullptr )
{
throw runtime_error( "libxl库加载失败" );
}
setKey( pBook );
if ( pBook->load( filePath.c_str() ) != true )
{
string errorMessage = "打开文件失败!";
errorMessage.append( pBook->errorMessage() );
throw runtime_error( errorMessage );
}
pSheet = pBook->getSheet( sheetIndex );
if ( pSheet == nullptr )
{
string errorMessage = "读取sheet失败";
errorMessage.append( pBook->errorMessage() );
pBook->release();
throw runtime_error( errorMessage );
}
int lastRowIndex = pSheet->lastRow();
int firstRowIndex = pSheet->firstRow();
int rowIndex = firstRowIndex + startRowIndex;
while ( rowIndex <= lastRowIndex )
{
int colunmIndex = pSheet->firstCol();
NewRepairMonitorReportRecord record;
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record.vin码_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record.使_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._三者车_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record.9_行政用车_家庭自用车_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._当前状态_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._报案环节_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._现场推荐环节_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._核价通过环节_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._结案环节_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._报案_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._报案_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._核价_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._核价_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._结案_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._结案_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._其他推荐信息_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._其他推荐信息_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._其他推荐信息_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
record._ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
recordVector.push_back( record );
rowIndex++;
}
pBook->release();
}
void LoadRepairOrderFromXls( const std::wstring & filePath,
unsigned sheetIndex,
unsigned startRowIndex,
std::vector<RepairOrder> & orderVector )
{
Book * pBook = xlCreateBookW();
Sheet * pSheet = nullptr;
if ( pBook == nullptr )
{
throw runtime_error( "libxl库加载失败" );
}
setKey( pBook );
if ( pBook->load( filePath.c_str() ) != true )
{
string errorMessage = "打开文件失败!";
errorMessage.append( pBook->errorMessage() );
throw runtime_error( errorMessage );
}
pSheet = pBook->getSheet( sheetIndex );
if ( pSheet == nullptr )
{
string errorMessage = "读取sheet失败";
errorMessage.append( pBook->errorMessage() );
pBook->release();
throw runtime_error( errorMessage );
}
int lastRowIndex = pSheet->lastRow();
int firstRowIndex = pSheet->firstRow();
int rowIndex = firstRowIndex + startRowIndex;
while ( rowIndex <= lastRowIndex )
{
int colunmIndex = pSheet->firstCol();
// const wstring && branchName = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && orderNo = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && orderType = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && notifyNo = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && damageArea = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && damageDate = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && generatingDate = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && policyNo = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && policyNoJQX = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && plateNumber = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && brandName = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && isInsuranceObject = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && isSuccess = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && recommandDealerCode = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && recommandDealerName = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && recommandDealerCodeInNotify = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && recommandDealerNameInNotify = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && recommandDealerNameInSurvey = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && agentName = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && surveyor = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && checkDate = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && repairingStartDate = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && repairingFinishDate = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && status = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && lostItemID = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
// const wstring && surveyorRecommandStatus = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
//
// //空行跳过
// if ( orderNo.empty() == true )
// {
// rowIndex++;
//
// continue;
// }
//
// RepairOrder order( branchName,
// orderNo,
// orderType,
// notifyNo,
// damageArea,
// damageDate,
// generatingDate,
// policyNo,
// policyNoJQX,
// plateNumber,
// brandName,
// isInsuranceObject,
// isSuccess,
// recommandDealerCode,
// recommandDealerName,
// recommandDealerCodeInNotify,
// recommandDealerNameInNotify,
// recommandDealerNameInSurvey,
// agentName,
// surveyor,
// checkDate,
// repairingStartDate,
// repairingFinishDate,
// status,
// lostItemID,
// surveyorRecommandStatus );
//
// orderVector.push_back( order );
rowIndex++;
}
pBook->release();
}

View File

@@ -0,0 +1,75 @@
#pragma once
#include <string>
#include <vector>
#include "../../Datastructure/CarDealerScheme/CarDealerScheme.h"
#include "../../Datastructure/CarDealerAchievement/CarDealerAchievement.h"
#include "../../Datastructure/RepairOrder/RepairOrder.h"
#include "../../Datastructure/RepairSuggestion/RepairSuggestionRecord.h"
#include "../../Datastructure/新送返修监控报表/新送返修监控报表.h"
/************************************************
* \brief
* \param filePath
* \param sheetIndex
* \param startRowIndex
* \param schemeVector
************************************************/
void LoadCarDealerSchemeFromXlsx( const std::wstring & filePath,
unsigned int sheetIndex,
unsigned int startRowIndex,
std::vector<CarDealerScheme> & schemeVector );
/************************************************
* \brief
* \param filePath
* \param sheetIndex
* \param startRowIndex
* \param achievementVector
************************************************/
void LoadCarDealerAchievementFromXlsx( const std::wstring & filePath,
unsigned int sheetIndex,
unsigned int startRowIndex,
std::vector<CarDealerAchievement> & achievementVector );
/************************************************
* \brief
* \param filePath
* \param sheetIndex
* \param startRowIndex
* \param orderVector
************************************************/
void LoadRepairOrderFromXlsx( const std::wstring & filePath,
unsigned int sheetIndex,
unsigned int startRowIndex,
std::vector<RepairOrder> & orderVector );
// void LoadRepairOrderFromXls( const std::wstring & filePath,
// unsigned sheetIndex,
// unsigned startRowIndex,
// std::vector<RepairOrder> & orderVector );
/************************************************
* \brief 读取送返修推荐表数据
* \param filePath
* \param sheetIndex
* \param startRowIndex
* \param recordVector
************************************************/
void LoadRepairSuggestionFromXlsx( const std::wstring & filePath,
unsigned int sheetIndex,
unsigned int startRowIndex,
std::vector<RepairSuggestionRecord> & recordVector );
/************************************************
* \brief 读取新送返修监控报表数据
* \param filePath
* \param sheetIndex
* \param startRowIndex
* \param recordVector
************************************************/
void LoadNewRepairMonitorReportFromXlsx( const std::wstring & filePath,
unsigned int sheetIndex,
unsigned int startRowIndex,
std::vector<NewRepairMonitorReportRecord> & recordVector );

View File

@@ -0,0 +1,106 @@
#include <map>
#include <stdexcept>
#include <exception>
#include <ocilib.hpp>
#include <libxl.h>
#include "FromExcelToOracle.h"
#include "../../excel/excel.h"
using namespace std;;
using namespace ocilib;
using namespace libxl;
void RepairMonitoringFromExcelToOracle( const std::wstring & filePath,
unsigned int sheetIndex,
bool hasTitleRow,
const std::string & tnsName,
const std::string & userName,
const std::string & password )
{
//防御性验证
if ( filePath.empty() == true ||
tnsName.empty() == true ||
userName.empty() == true ||
password.empty() == true )
{
throw runtime_error( "参数错误!" );
}
//libxl对象
Book * pBook = xlCreateBookW();
Sheet * pSheet = nullptr;
map<int, wstring> titleMap; //存放标题行
unsigned int firstColumnIndex; //第一列
unsigned int lastColumnIndex; //最后一列
unsigned int firstRowIndex;
unsigned int lastRowIndex;
//ocilib对象
Connection * pConnection = nullptr;
Statement * pStatement = nullptr;
if ( pBook == nullptr )
{
throw runtime_error( "libxl初始化失败" );
}
if ( pBook->load( filePath.c_str() ) != true )
{
throw runtime_error( "打开excel文件失败" );
}
pSheet = pBook->getSheet( sheetIndex );
if ( pSheet == nullptr )
{
throw runtime_error( "读取sheet失败失败" );
}
firstColumnIndex = pSheet->firstCol();
lastColumnIndex = pSheet->lastCol();
firstRowIndex = pSheet->firstRow();
lastRowIndex = pSheet->lastRow();
unsigned int colIndex = firstColumnIndex;
unsigned int rowIndex = firstRowIndex;
//保存标题
if ( hasTitleRow )
{
while ( colIndex <= lastColumnIndex )
{
wstring && title = ReadCellStringFromXlsx( pBook, sheetIndex, firstRowIndex, colIndex, false );
titleMap.insert( pair<int, wstring>( colIndex, title ) );
++colIndex;
}
}
//逐行保存数据
while ( colIndex <= lastColumnIndex )
{
wstring && title = ReadCellStringFromXlsx( pBook, sheetIndex, firstRowIndex, colIndex, false );
titleMap.insert( pair<int, wstring>( colIndex, title ) );
++colIndex;
}
//逐行保存数据
for ( rowIndex = firstRowIndex; rowIndex >= lastRowIndex; rowIndex++ )
{
//如果是标题行,就跳过
if ( rowIndex == firstRowIndex )
{
continue;
}
//逐列绑定sql语句
for ( colIndex = firstColumnIndex; colIndex <= lastColumnIndex; colIndex++ )
{
}
}
}

View File

@@ -0,0 +1,10 @@
#pragma once
#include <iostream>
void RepairMonitoringFromExcelToOracle( const std::wstring & filePath,
unsigned int sheetIndex,
bool hasTitleRow,
const std::string & tnsName,
const std::string & userName,
const std::string & password );

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,76 @@
#pragma once
#include <string>
#include <vector>
#include "../../Datastructure/CarDealerAchievement/CarDealerAchievement.h"
#include "../../Datastructure/CarDealerScheme/CarDealerScheme.h"
#include "../../Datastructure/RepairOrder/RepairOrder.h"
#include "../../Datastructure/RepairSuggestion/RepairSuggestionRecord.h"
#include "../Excel/LoadFromExcel.h"
/************************************************
* \brief 向oracle数据库写入车商业绩表
* \param userName oracle数据库用户名
* \param password oracle数据库密码
* \param tnsName oracle TNS名称
* \param orderVector 车商业绩表数据
************************************************/
void ImportCarDealerAchievementToOracleCpp( const std::string & userName,
const std::string & password,
const std::string & tnsName,
const std::vector<CarDealerAchievement> & achievementVector );
/************************************************
* \brief 向oracle数据库写入车商业绩表
* \param userName oracle数据库用户名
* \param password oracle数据库密码
* \param tnsName oracle TNS名称
* \param orderVector 车商业绩表数据
************************************************/
void ImportCarDealerAchievementToOracle( std::string userName,
std::string password,
std::string tnsName,
std::vector<CarDealerAchievement> & achievementVector );
/************************************************
* \brief 向oracle数据库写入车商方案表
* \param userName oracle数据库用户名
* \param password oracle数据库密码
* \param tnsName oracle TNS名称
* \param orderVector 车商方案表数据
************************************************/
void ImportCarDealerSchemeToOracle( const std::string & userName,
const std::string & password,
const std::string & tnsName,
std::vector<CarDealerScheme> & achievementVector );
/************************************************
* \brief 向oracle数据库写入送返修工单信息
* \param userName oracle数据库用户名
* \param password oracle数据库密码
* \param tnsName oracle TNS名称
* \param orderVector 送返修工单数据
************************************************/
void ImportRepairOrderToOracle( const std::string & userName,
const std::string & password,
const std::string & tnsName,
const std::vector<RepairOrder> & orderVector );
/************************************************
* \brief 将送返修推荐记录
* \param userName
* \param password
* \param tnsName
* \param recordVector
************************************************/
void ImportRepairSuggestionToOracle( const std::string & userName,
const std::string & password,
const std::string & tnsName,
const std::vector<RepairSuggestionRecord> & recordVector );
void ImportNewRepairMonitorToOracle( const std::string & userName,
const std::string & password,
const std::string & tnsName,
const std::vector<NewRepairMonitorReportRecord> & recordVector );

View File

@@ -0,0 +1 @@
#include "CarDealerAchievement.h"

View File

@@ -0,0 +1,230 @@
#pragma once
#include <string>
class CarDealerAchievement
{
public:
CarDealerAchievement( const std::wstring & theYear,
const std::wstring & theMonth,
const std::wstring & carDealerCode,
const long double checkedAchievement,
const int policyAmount,
const int cpicAmount,
const int piccAmount,
const int pinganAmount,
const int othersAmount )
: theYear( theYear ),
theMonth( theMonth ),
carDealerCode( carDealerCode ),
checkedAchievement( checkedAchievement ),
policyAmount( policyAmount ),
cpicAmount( cpicAmount ),
piccAmount( piccAmount ),
pinganAmount( pinganAmount ),
othersAmount( othersAmount )
{
}
CarDealerAchievement( const wchar_t * theYear,
const wchar_t * theMonth,
const wchar_t * carDealerCode,
const long double checkedAchievement,
const int policyAmount,
const int cpicAmount,
const int piccAmount,
const int pinganAmount,
const int othersAmount )
: theYear( theYear ),
theMonth( theMonth ),
carDealerCode( carDealerCode ),
checkedAchievement( checkedAchievement ),
policyAmount( policyAmount ),
cpicAmount( cpicAmount ),
piccAmount( piccAmount ),
pinganAmount( pinganAmount ),
othersAmount( othersAmount )
{
}
CarDealerAchievement( const CarDealerAchievement & other )
: theYear( other.theYear ),
theMonth( other.theMonth ),
carDealerCode( other.carDealerCode ),
checkedAchievement( other.checkedAchievement ),
policyAmount( other.policyAmount ),
cpicAmount( other.cpicAmount ),
piccAmount( other.piccAmount ),
pinganAmount( other.pinganAmount ),
othersAmount( other.othersAmount )
{
}
CarDealerAchievement( CarDealerAchievement && other )
: theYear( std::move(other.theYear) ),
theMonth( std::move(other.theMonth) ),
carDealerCode( std::move(other.carDealerCode) ),
checkedAchievement( other.checkedAchievement ),
policyAmount( other.policyAmount ),
cpicAmount( other.cpicAmount ),
piccAmount( other.piccAmount ),
pinganAmount( other.pinganAmount ),
othersAmount( other.othersAmount )
{
}
CarDealerAchievement & operator=( const CarDealerAchievement & other )
{
if ( this == &other )
return *this;
theYear = other.theYear;
theMonth = other.theMonth;
carDealerCode = other.carDealerCode;
checkedAchievement = other.checkedAchievement;
policyAmount = other.policyAmount;
cpicAmount = other.cpicAmount;
piccAmount = other.piccAmount;
pinganAmount = other.pinganAmount;
othersAmount = other.othersAmount;
return *this;
}
CarDealerAchievement & operator=( CarDealerAchievement && other )
{
if ( this == &other )
return *this;
theYear = std::move( other.theYear );
theMonth = std::move( other.theMonth );
carDealerCode = std::move( other.carDealerCode );
checkedAchievement = other.checkedAchievement;
policyAmount = other.policyAmount;
cpicAmount = other.cpicAmount;
piccAmount = other.piccAmount;
pinganAmount = other.pinganAmount;
othersAmount = other.othersAmount;
return *this;
}
friend bool operator==( const CarDealerAchievement & lhs, const CarDealerAchievement & rhs )
{
return lhs.theYear == rhs.theYear
&& lhs.theMonth == rhs.theMonth
&& lhs.carDealerCode == rhs.carDealerCode
&& lhs.checkedAchievement == rhs.checkedAchievement
&& lhs.policyAmount == rhs.policyAmount
&& lhs.cpicAmount == rhs.cpicAmount
&& lhs.piccAmount == rhs.piccAmount
&& lhs.pinganAmount == rhs.pinganAmount
&& lhs.othersAmount == rhs.othersAmount;
}
friend bool operator!=( const CarDealerAchievement & lhs, const CarDealerAchievement & rhs )
{
return !(lhs == rhs);
}
std::wstring getTheYear() const
{
return theYear;
}
void setTheYear( const std::wstring & theYear )
{
this->theYear = theYear;
}
std::wstring getTheMonth() const
{
return theMonth;
}
void setTheMonth( const std::wstring & theMonth )
{
this->theMonth = theMonth;
}
std::wstring getCarDealerCode() const
{
return carDealerCode;
}
void setCarDealerCode( const std::wstring & carDealerCode )
{
this->carDealerCode = carDealerCode;
}
long double getCheckedAchievement() const
{
return checkedAchievement;
}
void setCheckedAchievement( const long double checkedAchievement )
{
this->checkedAchievement = checkedAchievement;
}
int getPolicyAmount() const
{
return policyAmount;
}
void setPolicyAmount( const int policyAmount )
{
this->policyAmount = policyAmount;
}
int getCpicAmount() const
{
return cpicAmount;
}
void setCpicAmount( const int cpicAmount )
{
this->cpicAmount = cpicAmount;
}
int getPiccAmount() const
{
return piccAmount;
}
void setPiccAmount( const int piccAmount )
{
this->piccAmount = piccAmount;
}
int getPinganAmount() const
{
return pinganAmount;
}
void setPinganAmount( const int pinganAmount )
{
this->pinganAmount = pinganAmount;
}
int getOthersAmount() const
{
return othersAmount;
}
void setOthersAmount( const int othersAmount )
{
this->othersAmount = othersAmount;
}
private:
std::wstring theYear;
std::wstring theMonth;
std::wstring carDealerCode;
long double checkedAchievement;
int policyAmount;
int cpicAmount;
int piccAmount;
int pinganAmount;
int othersAmount;
};

View File

@@ -0,0 +1 @@
#include "CarDealerScheme.h"

View File

@@ -0,0 +1,193 @@
#pragma once
#include <string>
class CarDealerScheme
{
public:
CarDealerScheme( const std::wstring & theYear,
const std::wstring & theMonth,
const std::wstring & carDealerCode,
const std::wstring & manHourPrice,
const std::wstring & partPrice,
const std::wstring & claimSupport,
const std::wstring & scheme,
const std::wstring & isQualified )
: theYear( theYear ),
theMonth( theMonth ),
carDealerCode( carDealerCode ),
manHourPrice( manHourPrice ),
partPrice( partPrice ),
claimSupport( claimSupport ),
scheme( scheme ),
isQualified( isQualified )
{
}
CarDealerScheme( const wchar_t * theYear,
const wchar_t * theMonth,
const wchar_t * carDealerCode,
const wchar_t * manHourPrice,
const wchar_t * partPrice,
const wchar_t * claimSupport,
const wchar_t * scheme,
const wchar_t * isQualified )
: theYear( theYear ),
theMonth( theMonth ),
carDealerCode( carDealerCode ),
manHourPrice( manHourPrice ),
partPrice( partPrice ),
claimSupport( claimSupport ),
scheme( scheme ),
isQualified( isQualified )
{
}
CarDealerScheme( const CarDealerScheme & other )
: theYear( other.theYear ),
theMonth( other.theMonth ),
carDealerCode( other.carDealerCode ),
manHourPrice( other.manHourPrice ),
partPrice( other.partPrice ),
claimSupport( other.claimSupport ),
scheme( other.scheme ),
isQualified( other.isQualified )
{
}
CarDealerScheme( CarDealerScheme && other )
: theYear( std::move( other.theYear ) ),
theMonth( std::move( other.theMonth ) ),
carDealerCode( std::move( other.carDealerCode ) ),
manHourPrice( std::move( other.manHourPrice ) ),
partPrice( std::move( other.partPrice ) ),
claimSupport( std::move( other.claimSupport ) ),
scheme( std::move( other.scheme ) ),
isQualified( std::move( other.isQualified ) )
{
}
CarDealerScheme & operator=( const CarDealerScheme & other )
{
if ( this == &other )
return *this;
theYear = other.theYear;
theMonth = other.theMonth;
carDealerCode = other.carDealerCode;
manHourPrice = other.manHourPrice;
partPrice = other.partPrice;
claimSupport = other.claimSupport;
scheme = other.scheme;
isQualified = other.isQualified;
return *this;
}
CarDealerScheme & operator=( CarDealerScheme && other )
{
if ( this == &other )
return *this;
theYear = std::move( other.theYear );
theMonth = std::move( other.theMonth );
carDealerCode = std::move( other.carDealerCode );
manHourPrice = std::move( other.manHourPrice );
partPrice = std::move( other.partPrice );
claimSupport = std::move( other.claimSupport );
scheme = std::move( other.scheme );
isQualified = std::move( other.isQualified );
return *this;
}
std::wstring getTheYear() const
{
return theYear;
}
void setTheYear( const std::wstring & theYear )
{
this->theYear = theYear;
}
std::wstring getTheMonth() const
{
return theMonth;
}
void setTheMonth( const std::wstring & theMonth )
{
this->theMonth = theMonth;
}
std::wstring getCarDealerCode() const
{
return carDealerCode;
}
void setCarDealerCode( const std::wstring & carDealerCode )
{
this->carDealerCode = carDealerCode;
}
std::wstring getManHourPrice() const
{
return manHourPrice;
}
void setManHourPrice( const std::wstring & manHourPrice )
{
this->manHourPrice = manHourPrice;
}
std::wstring getPartPrice() const
{
return partPrice;
}
void setPartPrice( const std::wstring & partPrice )
{
this->partPrice = partPrice;
}
std::wstring getClaimSupport() const
{
return claimSupport;
}
void setClaimSupport( const std::wstring & claimSupport )
{
this->claimSupport = claimSupport;
}
std::wstring getScheme() const
{
return scheme;
}
void setScheme( const std::wstring & scheme )
{
this->scheme = scheme;
}
std::wstring getIsQualified() const
{
return isQualified;
}
void setIsQualified( const std::wstring & isQualified )
{
this->isQualified = isQualified;
}
private:
std::wstring theYear;
std::wstring theMonth;
std::wstring carDealerCode;
std::wstring manHourPrice;
std::wstring partPrice;
std::wstring claimSupport; //理赔支持
std::wstring scheme;
std::wstring isQualified; //是否达成预期
};

View File

@@ -0,0 +1,2 @@

#include "RepairOrder.h"

View File

@@ -0,0 +1,514 @@
#pragma once
#include <string>
#include <utility>
class RepairOrder
{
public:
RepairOrder( std::wstring branchName,
std::wstring orderNo,
std::wstring orderType,
std::wstring notifyNo,
std::wstring damageArea,
std::wstring damageDate,
std::wstring generatingDate,
std::wstring policyNo,
std::wstring policyNoJqx,
std::wstring plateNumber,
std::wstring brandName,
std::wstring isInsuranceObject,
std::wstring isSuccess,
std::wstring recommandDealerCode,
std::wstring recommandDealerName,
std::wstring recommandDealerCodeInNotify,
std::wstring recommandDealerNameInNotify,
std::wstring recommandDealerNameInSurvey,
std::wstring agentName,
std::wstring surveyor,
std::wstring checkDate,
std::wstring repairingStartDate,
std::wstring repairingFinishDate,
std::wstring status,
std::wstring lostItemId,
std::wstring surveyorRecommandStatus )
: branchName( std::move( branchName ) ),
orderNo( std::move( orderNo ) ),
orderType( std::move( orderType ) ),
notifyNo( std::move( notifyNo ) ),
damageArea( std::move( damageArea ) ),
damageDate( std::move( damageDate ) ),
generatingDate( std::move( generatingDate ) ),
policyNo( std::move( policyNo ) ),
policyNoJQX( std::move( policyNoJqx ) ),
plateNumber( std::move( plateNumber ) ),
brandName( std::move( brandName ) ),
isInsuranceObject( std::move( isInsuranceObject ) ),
isSuccess( std::move( isSuccess ) ),
recommandDealerCode( std::move( recommandDealerCode ) ),
recommandDealerName( std::move( recommandDealerName ) ),
recommandDealerCodeInNotify( std::move( recommandDealerCodeInNotify ) ),
recommandDealerNameInNotify( std::move( recommandDealerNameInNotify ) ),
recommandDealerNameInSurvey( std::move( recommandDealerNameInSurvey ) ),
agentName( std::move( agentName ) ),
surveyor( std::move( surveyor ) ),
checkDate( std::move( checkDate ) ),
repairingStartDate( std::move( repairingStartDate ) ),
repairingFinishDate( std::move( repairingFinishDate ) ),
status( std::move( status ) ),
lostItemID( std::move( lostItemId ) ),
surveyorRecommandStatus( std::move( surveyorRecommandStatus ) )
{
}
RepairOrder( const RepairOrder & other )
: branchName( other.branchName ),
orderNo( other.orderNo ),
orderType( other.orderType ),
notifyNo( other.notifyNo ),
damageArea( other.damageArea ),
damageDate( other.damageDate ),
generatingDate( other.generatingDate ),
policyNo( other.policyNo ),
policyNoJQX( other.policyNoJQX ),
plateNumber( other.plateNumber ),
brandName( other.brandName ),
isInsuranceObject( other.isInsuranceObject ),
isSuccess( other.isSuccess ),
recommandDealerCode( other.recommandDealerCode ),
recommandDealerName( other.recommandDealerName ),
recommandDealerCodeInNotify( other.recommandDealerCodeInNotify ),
recommandDealerNameInNotify( other.recommandDealerNameInNotify ),
recommandDealerNameInSurvey( other.recommandDealerNameInSurvey ),
agentName( other.agentName ),
surveyor( other.surveyor ),
checkDate( other.checkDate ),
repairingStartDate( other.repairingStartDate ),
repairingFinishDate( other.repairingFinishDate ),
status( other.status ),
lostItemID( other.lostItemID ),
surveyorRecommandStatus( other.surveyorRecommandStatus )
{
}
RepairOrder( RepairOrder && other )
: branchName( std::move( other.branchName ) ),
orderNo( std::move( other.orderNo ) ),
orderType( std::move( other.orderType ) ),
notifyNo( std::move( other.notifyNo ) ),
damageArea( std::move( other.damageArea ) ),
damageDate( std::move( other.damageDate ) ),
generatingDate( std::move( other.generatingDate ) ),
policyNo( std::move( other.policyNo ) ),
policyNoJQX( std::move( other.policyNoJQX ) ),
plateNumber( std::move( other.plateNumber ) ),
brandName( std::move( other.brandName ) ),
isInsuranceObject( std::move( other.isInsuranceObject ) ),
isSuccess( std::move( other.isSuccess ) ),
recommandDealerCode( std::move( other.recommandDealerCode ) ),
recommandDealerName( std::move( other.recommandDealerName ) ),
recommandDealerCodeInNotify( std::move( other.recommandDealerCodeInNotify ) ),
recommandDealerNameInNotify( std::move( other.recommandDealerNameInNotify ) ),
recommandDealerNameInSurvey( std::move( other.recommandDealerNameInSurvey ) ),
agentName( std::move( other.agentName ) ),
surveyor( std::move( other.surveyor ) ),
checkDate( std::move( other.checkDate ) ),
repairingStartDate( std::move( other.repairingStartDate ) ),
repairingFinishDate( std::move( other.repairingFinishDate ) ),
status( std::move( other.status ) ),
lostItemID( std::move( other.lostItemID ) ),
surveyorRecommandStatus( std::move( other.surveyorRecommandStatus ) )
{
}
RepairOrder & operator=( const RepairOrder & other )
{
if ( this == &other )
return *this;
branchName = other.branchName;
orderNo = other.orderNo;
orderType = other.orderType;
notifyNo = other.notifyNo;
damageArea = other.damageArea;
damageDate = other.damageDate;
generatingDate = other.generatingDate;
policyNo = other.policyNo;
policyNoJQX = other.policyNoJQX;
plateNumber = other.plateNumber;
brandName = other.brandName;
isInsuranceObject = other.isInsuranceObject;
isSuccess = other.isSuccess;
recommandDealerCode = other.recommandDealerCode;
recommandDealerName = other.recommandDealerName;
recommandDealerCodeInNotify = other.recommandDealerCodeInNotify;
recommandDealerNameInNotify = other.recommandDealerNameInNotify;
recommandDealerNameInSurvey = other.recommandDealerNameInSurvey;
agentName = other.agentName;
surveyor = other.surveyor;
checkDate = other.checkDate;
repairingStartDate = other.repairingStartDate;
repairingFinishDate = other.repairingFinishDate;
status = other.status;
lostItemID = other.lostItemID;
surveyorRecommandStatus = other.surveyorRecommandStatus;
return *this;
}
RepairOrder & operator=( RepairOrder && other )
{
if ( this == &other )
return *this;
branchName = std::move( other.branchName );
orderNo = std::move( other.orderNo );
orderType = std::move( other.orderType );
notifyNo = std::move( other.notifyNo );
damageArea = std::move( other.damageArea );
damageDate = std::move( other.damageDate );
generatingDate = std::move( other.generatingDate );
policyNo = std::move( other.policyNo );
policyNoJQX = std::move( other.policyNoJQX );
plateNumber = std::move( other.plateNumber );
brandName = std::move( other.brandName );
isInsuranceObject = std::move( other.isInsuranceObject );
isSuccess = std::move( other.isSuccess );
recommandDealerCode = std::move( other.recommandDealerCode );
recommandDealerName = std::move( other.recommandDealerName );
recommandDealerCodeInNotify = std::move( other.recommandDealerCodeInNotify );
recommandDealerNameInNotify = std::move( other.recommandDealerNameInNotify );
recommandDealerNameInSurvey = std::move( other.recommandDealerNameInSurvey );
agentName = std::move( other.agentName );
surveyor = std::move( other.surveyor );
checkDate = std::move( other.checkDate );
repairingStartDate = std::move( other.repairingStartDate );
repairingFinishDate = std::move( other.repairingFinishDate );
status = std::move( other.status );
lostItemID = std::move( other.lostItemID );
surveyorRecommandStatus = std::move( other.surveyorRecommandStatus );
return *this;
}
friend bool operator==( const RepairOrder & lhs, const RepairOrder & rhs )
{
return lhs.branchName == rhs.branchName
&& lhs.orderNo == rhs.orderNo
&& lhs.orderType == rhs.orderType
&& lhs.notifyNo == rhs.notifyNo
&& lhs.damageArea == rhs.damageArea
&& lhs.damageDate == rhs.damageDate
&& lhs.generatingDate == rhs.generatingDate
&& lhs.policyNo == rhs.policyNo
&& lhs.policyNoJQX == rhs.policyNoJQX
&& lhs.plateNumber == rhs.plateNumber
&& lhs.brandName == rhs.brandName
&& lhs.isInsuranceObject == rhs.isInsuranceObject
&& lhs.isSuccess == rhs.isSuccess
&& lhs.recommandDealerCode == rhs.recommandDealerCode
&& lhs.recommandDealerName == rhs.recommandDealerName
&& lhs.recommandDealerCodeInNotify == rhs.recommandDealerCodeInNotify
&& lhs.recommandDealerNameInNotify == rhs.recommandDealerNameInNotify
&& lhs.recommandDealerNameInSurvey == rhs.recommandDealerNameInSurvey
&& lhs.agentName == rhs.agentName
&& lhs.surveyor == rhs.surveyor
&& lhs.checkDate == rhs.checkDate
&& lhs.repairingStartDate == rhs.repairingStartDate
&& lhs.repairingFinishDate == rhs.repairingFinishDate
&& lhs.status == rhs.status
&& lhs.lostItemID == rhs.lostItemID
&& lhs.surveyorRecommandStatus == rhs.surveyorRecommandStatus;
}
friend bool operator!=( const RepairOrder & lhs, const RepairOrder & rhs )
{
return !(lhs == rhs);
}
std::wstring getBranchName() const
{
return branchName;
}
void setBranchName( const std::wstring & branchName )
{
this->branchName = branchName;
}
std::wstring getOrderNo() const
{
return orderNo;
}
void setOrderNo( const std::wstring & orderNo )
{
this->orderNo = orderNo;
}
std::wstring getOrderType() const
{
return orderType;
}
void setOrderType( const std::wstring & orderType )
{
this->orderType = orderType;
}
std::wstring getNotifyNo() const
{
return notifyNo;
}
void setNotifyNo( const std::wstring & notifyNo )
{
this->notifyNo = notifyNo;
}
std::wstring getDamageArea() const
{
return damageArea;
}
void setDamageArea( const std::wstring & damageArea )
{
this->damageArea = damageArea;
}
std::wstring getDamageDate() const
{
return damageDate;
}
void setDamageDate( const std::wstring & damageDate )
{
this->damageDate = damageDate;
}
std::wstring getGeneratingDate() const
{
return generatingDate;
}
void setGeneratingDate( const std::wstring & generatingDate )
{
this->generatingDate = generatingDate;
}
std::wstring getPolicyNo() const
{
return policyNo;
}
void setPolicyNo( const std::wstring & policyNo )
{
this->policyNo = policyNo;
}
std::wstring getPolicyNoJqx() const
{
return policyNoJQX;
}
void setPolicyNoJqx( const std::wstring & policyNoJqx )
{
policyNoJQX = policyNoJqx;
}
std::wstring getPlateNumber() const
{
return plateNumber;
}
void setPlateNumber( const std::wstring & plateNumber )
{
this->plateNumber = plateNumber;
}
std::wstring getBrandName() const
{
return brandName;
}
void setBrandName( const std::wstring & brandName )
{
this->brandName = brandName;
}
std::wstring getIsInsuranceObject() const
{
return isInsuranceObject;
}
void setIsInsuranceObject( const std::wstring & isInsuranceObject )
{
this->isInsuranceObject = isInsuranceObject;
}
std::wstring getIsSuccess() const
{
return isSuccess;
}
void setIsSuccess( const std::wstring & isSuccess )
{
this->isSuccess = isSuccess;
}
std::wstring getRecommandDealerCode() const
{
return recommandDealerCode;
}
void setRecommandDealerCode( const std::wstring & recommandDealerCode )
{
this->recommandDealerCode = recommandDealerCode;
}
std::wstring getRecommandDealerName() const
{
return recommandDealerName;
}
void setRecommandDealerName( const std::wstring & recommandDealerName )
{
this->recommandDealerName = recommandDealerName;
}
std::wstring getRecommandDealerCodeInNotify() const
{
return recommandDealerCodeInNotify;
}
void setRecommandDealerCodeInNotify( const std::wstring & recommandDealerCodeInNotify )
{
this->recommandDealerCodeInNotify = recommandDealerCodeInNotify;
}
std::wstring getRecommandDealerNameInNotify() const
{
return recommandDealerNameInNotify;
}
void setRecommandDealerNameInNotify( const std::wstring & recommandDealerNameInNotify )
{
this->recommandDealerNameInNotify = recommandDealerNameInNotify;
}
std::wstring getRecommandDealerNameInSurvey() const
{
return recommandDealerNameInSurvey;
}
void setRecommandDealerNameInSurvey( const std::wstring & recommandDealerNameInSurvey )
{
this->recommandDealerNameInSurvey = recommandDealerNameInSurvey;
}
std::wstring getAgentName() const
{
return agentName;
}
void setAgentName( const std::wstring & agentName )
{
this->agentName = agentName;
}
std::wstring getSurveyor() const
{
return surveyor;
}
void setSurveyor( const std::wstring & surveyor )
{
this->surveyor = surveyor;
}
std::wstring getCheckDate() const
{
return checkDate;
}
void setCheckDate( const std::wstring & checkDate )
{
this->checkDate = checkDate;
}
std::wstring getRepairingStartDate() const
{
return repairingStartDate;
}
void setRepairingStartDate( const std::wstring & repairingStartDate )
{
this->repairingStartDate = repairingStartDate;
}
std::wstring getRepairingFinishDate() const
{
return repairingFinishDate;
}
void setRepairingFinishDate( const std::wstring & repairingFinishDate )
{
this->repairingFinishDate = repairingFinishDate;
}
std::wstring getStatus() const
{
return status;
}
void setStatus( const std::wstring & status )
{
this->status = status;
}
std::wstring getLostItemId() const
{
return lostItemID;
}
void setLostItemId( const std::wstring & lostItemId )
{
lostItemID = lostItemId;
}
std::wstring getSurveyorRecommandStatus() const
{
return surveyorRecommandStatus;
}
void setSurveyorRecommandStatus( const std::wstring & surveyorRecommandStatus )
{
this->surveyorRecommandStatus = surveyorRecommandStatus;
}
private:
std::wstring branchName;
std::wstring orderNo;
std::wstring orderType;
std::wstring notifyNo;
std::wstring damageArea;
std::wstring damageDate;
std::wstring generatingDate;
std::wstring policyNo;
std::wstring policyNoJQX;
std::wstring plateNumber;
std::wstring brandName;
std::wstring isInsuranceObject;
std::wstring isSuccess;
std::wstring recommandDealerCode;
std::wstring recommandDealerName;
std::wstring recommandDealerCodeInNotify;
std::wstring recommandDealerNameInNotify;
std::wstring recommandDealerNameInSurvey;
std::wstring agentName;
std::wstring surveyor; //查勘员
std::wstring checkDate;
std::wstring repairingStartDate;
std::wstring repairingFinishDate;
std::wstring status;
std::wstring lostItemID;
std::wstring surveyorRecommandStatus;
};

View File

@@ -0,0 +1,225 @@
#pragma once
#include <string>
/************************************************
* \brief 送返修推荐表记录
************************************************/
class RepairSuggestionRecord
{
public:
RepairSuggestionRecord( std::wstring orderNo,
std::wstring orderType,
std::wstring notifyNo,
std::wstring suggestedCarDealerCode,
std::wstring suggestedCarDealerName,
std::wstring damageDate,
std::wstring plateNumber,
std::wstring brandName,
std::wstring messageType,
std::wstring messageSendingDate,
std::wstring dataSource )
: orderNo_( std::move( orderNo ) ),
orderType_( std::move( orderType ) ),
notifyNo_( std::move( notifyNo ) ),
suggestedCarDealerCode_( std::move( suggestedCarDealerCode ) ),
suggestedCarDealerName_( std::move( suggestedCarDealerName ) ),
damageDate_( std::move( damageDate ) ),
plateNumber_( std::move( plateNumber ) ),
brandName_( std::move( brandName ) ),
messageType_( std::move( messageType ) ),
messageSendingDate_( std::move( messageSendingDate ) ),
dataSource_( std::move( dataSource ) )
{
}
RepairSuggestionRecord( const RepairSuggestionRecord & other )
: orderNo_( other.orderNo_ ),
orderType_( other.orderType_ ),
notifyNo_( other.notifyNo_ ),
suggestedCarDealerCode_( other.suggestedCarDealerCode_ ),
suggestedCarDealerName_( other.suggestedCarDealerName_ ),
damageDate_( other.damageDate_ ),
plateNumber_( other.plateNumber_ ),
brandName_( other.brandName_ ),
messageType_( other.messageType_ ),
messageSendingDate_( other.messageSendingDate_ ),
dataSource_( other.dataSource_ )
{
}
RepairSuggestionRecord( RepairSuggestionRecord && other )
: orderNo_( std::move( other.orderNo_ ) ),
orderType_( std::move( other.orderType_ ) ),
notifyNo_( std::move( other.notifyNo_ ) ),
suggestedCarDealerCode_( std::move( other.suggestedCarDealerCode_ ) ),
suggestedCarDealerName_( std::move( other.suggestedCarDealerName_ ) ),
damageDate_( std::move( other.damageDate_ ) ),
plateNumber_( std::move( other.plateNumber_ ) ),
brandName_( std::move( other.brandName_ ) ),
messageType_( std::move( other.messageType_ ) ),
messageSendingDate_( std::move( other.messageSendingDate_ ) ),
dataSource_( std::move( other.dataSource_ ) )
{
}
RepairSuggestionRecord & operator=( const RepairSuggestionRecord & other )
{
if ( this == &other )
return *this;
orderNo_ = other.orderNo_;
orderType_ = other.orderType_;
notifyNo_ = other.notifyNo_;
suggestedCarDealerCode_ = other.suggestedCarDealerCode_;
suggestedCarDealerName_ = other.suggestedCarDealerName_;
damageDate_ = other.damageDate_;
plateNumber_ = other.plateNumber_;
brandName_ = other.brandName_;
messageType_ = other.messageType_;
messageSendingDate_ = other.messageSendingDate_;
dataSource_ = other.dataSource_;
return *this;
}
RepairSuggestionRecord & operator=( RepairSuggestionRecord && other )
{
if ( this == &other )
return *this;
orderNo_ = std::move( other.orderNo_ );
orderType_ = std::move( other.orderType_ );
notifyNo_ = std::move( other.notifyNo_ );
suggestedCarDealerCode_ = std::move( other.suggestedCarDealerCode_ );
suggestedCarDealerName_ = std::move( other.suggestedCarDealerName_ );
damageDate_ = std::move( other.damageDate_ );
plateNumber_ = std::move( other.plateNumber_ );
brandName_ = std::move( other.brandName_ );
messageType_ = std::move( other.messageType_ );
messageSendingDate_ = std::move( other.messageSendingDate_ );
dataSource_ = std::move( other.dataSource_ );
return *this;
}
std::wstring getOrderNo() const
{
return orderNo_;
}
void setOrderNo( const std::wstring & orderNo )
{
orderNo_ = orderNo;
}
std::wstring getOrderType() const
{
return orderType_;
}
void setOrderType( const std::wstring & orderType )
{
orderType_ = orderType;
}
std::wstring getNotifyNo() const
{
return notifyNo_;
}
void setNotifyNo( const std::wstring & notifyNo )
{
notifyNo_ = notifyNo;
}
std::wstring getSuggestedCarDealerCode() const
{
return suggestedCarDealerCode_;
}
void setSuggestedCarDealerCode( const std::wstring & suggestedCarDealerCode )
{
suggestedCarDealerCode_ = suggestedCarDealerCode;
}
std::wstring getSuggestedCarDealerName() const
{
return suggestedCarDealerName_;
}
void setSuggestedCarDealerName( const std::wstring & suggestedCarDealerName )
{
suggestedCarDealerName_ = suggestedCarDealerName;
}
std::wstring getDamageDate() const
{
return damageDate_;
}
void setDamageDate( const std::wstring & damageDate )
{
damageDate_ = damageDate;
}
std::wstring getPlateNumber() const
{
return plateNumber_;
}
void setPlateNumber( const std::wstring & plateNumber )
{
plateNumber_ = plateNumber;
}
std::wstring getBrandName() const
{
return brandName_;
}
void setBrandName( const std::wstring & brandName )
{
brandName_ = brandName;
}
std::wstring getMessageType() const
{
return messageType_;
}
void setMessageType( const std::wstring & messageType )
{
messageType_ = messageType;
}
std::wstring getMessageSendingDate() const
{
return messageSendingDate_;
}
void setMessageSendingDate( const std::wstring & messageSendingDate )
{
messageSendingDate_ = messageSendingDate;
}
std::wstring getDataSource() const
{
return dataSource_;
}
void setDataSource( const std::wstring & dataSource )
{
dataSource_ = dataSource;
}
private:
std::wstring orderNo_;
std::wstring orderType_;
std::wstring notifyNo_;
std::wstring suggestedCarDealerCode_;
std::wstring suggestedCarDealerName_;
std::wstring damageDate_;
std::wstring plateNumber_;
std::wstring brandName_;
std::wstring messageType_;
std::wstring messageSendingDate_;
std::wstring dataSource_;
};

View File

@@ -0,0 +1,2 @@

#include "UserInfo.h"

View File

@@ -0,0 +1,97 @@
//用户信息相关
#pragma once
#include <QString>
class UserInfo
{
public:
UserInfo( const std::string & staffP13,
const std::string & staffName,
const std::string & staffPost )
: staff_p13( staffP13 ),
staff_name( staffName ),
staff_post( staffPost )
{
}
UserInfo( const UserInfo & other )
: staff_p13( other.staff_p13 ),
staff_name( other.staff_name ),
staff_post( other.staff_post )
{
}
UserInfo( UserInfo && other )
: staff_p13( std::move(other.staff_p13) ),
staff_name( std::move(other.staff_name) ),
staff_post( std::move(other.staff_post) )
{
}
UserInfo & operator=( const UserInfo & other )
{
if ( this == &other )
return *this;
staff_p13 = other.staff_p13;
staff_name = other.staff_name;
staff_post = other.staff_post;
return *this;
}
UserInfo & operator=( UserInfo && other )
{
if ( this == &other )
return *this;
staff_p13 = std::move( other.staff_p13 );
staff_name = std::move( other.staff_name );
staff_post = std::move( other.staff_post );
return *this;
}
friend void swap( UserInfo & lhs, UserInfo & rhs ) noexcept
{
using std::swap;
swap( lhs.staff_p13, rhs.staff_p13 );
swap( lhs.staff_name, rhs.staff_name );
swap( lhs.staff_post, rhs.staff_post );
}
std::string getStaffP13() const
{
return staff_p13;
}
void setStaffP13( const std::string & staffP13 )
{
staff_p13 = staffP13;
}
std::string getStaffName() const
{
return staff_name;
}
void setStaffName( const std::string & staffName )
{
staff_name = staffName;
}
std::string getStaffPost() const
{
return staff_post;
}
void setStaffPost( const std::string & staffPost )
{
staff_post = staffPost;
}
private:
std::string staff_p13;
std::string staff_name;
std::string staff_post;
};

View File

@@ -0,0 +1,3 @@

#include "新送返修监控报表.h"

View File

@@ -0,0 +1,165 @@

#pragma once
#include <string>
typedef struct NewRepairMonitorReportRecord_
{
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring vin码_;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring 使_;
std::wstring _;
std::wstring _三者车_;
std::wstring 9_行政用车_家庭自用车_;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _当前状态_;
std::wstring _报案环节_;
std::wstring _现场推荐环节_;
std::wstring _核价通过环节_;
std::wstring _结案环节_;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _报案_;
std::wstring _报案_;
std::wstring _核价_;
std::wstring _核价_;
std::wstring _结案_;
std::wstring _结案_;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _其他推荐信息_;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _其他推荐信息_;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _其他推荐信息_;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
std::wstring _;
} NewRepairMonitorReportRecord;

View File

@@ -0,0 +1,165 @@
#include <string>
#include <stdio.h>
#include <windows.h>
#include <stdexcept>
#include "excel.h"
using namespace std;
using namespace libxl;
void setKey( libxl::Book * pBook )
{
if ( pBook != nullptr )
{
pBook->setKey( L"cpic", L"windows-202d21040bc4e70060bc6264a6ucu7i1" );
}
}
void setKey( libxl::IBookT<char> * pBook )
{
if (pBook != nullptr)
{
pBook->setKey("cpic", "windows-202d21040bc4e70060bc6264a6ucu7i1");
}
}
std::wstring ReadCellStringFromXlsx( libxl::IBookT<wchar_t> * pBook,
unsigned int sheetIndex,
unsigned int rowIndex,
unsigned int colIndex,
bool isInteger )
{
using namespace libxl;
std::wstring returnValue;
int year = 0;
int month = 0;
int day = 0;
int hour = 0;
int min = 0;
int second = 0;
//验证
if ( pBook == nullptr )
{
throw std::logic_error( "ReadCellStringFromXlsx pSheet参数错误" );
}
ISheetT<wchar_t> * pSheet = pBook->getSheet( sheetIndex );
CellType cellType = pSheet->cellType( rowIndex, colIndex );
//判断单元格类型
switch ( cellType )
{
case CellType::CELLTYPE_BOOLEAN: //bool类型
{
returnValue = pSheet->readBool( rowIndex, colIndex ) ? L"true" : L"false";
break;
}
case CellType::CELLTYPE_NUMBER: //数字类型,还得再判断一下是不是日期类型
{
double cellValue = pSheet->readNum( rowIndex, colIndex );
wchar_t buffer[50]; //生成字符串的缓冲区
if ( pSheet->isDate( rowIndex, colIndex ) == true )
{
//是日期类型
if ( pBook->dateUnpack( cellValue,
&year,
&month,
&day,
&hour,
&min,
&second ) == false )
{
throw std::runtime_error( "转换日期格式失败!" );
}
//排除bug
if ( min >= 60 )
{
hour = hour + 1;
min = min - 60;
}
// if ( hour >= 24 )
// {
// day = day + 1;
// hour = hour - 24;
// }
//
// switch ( month )
// {
// case 1:
// case 3:
// case
// }
wsprintfW( buffer, L"%d-%.2d-%.2d %.2d:%.2d:%.2d", year, month, day, hour, min, second );
}
else
{
//是数字类型, 根据isInteger参数选择输出整型或者浮点型
if ( isInteger == true )
{
wsprintfW( buffer, L"%d", static_cast<long>(cellValue) );
}
else
{
wsprintfW( buffer, L"%f", cellValue );
}
}
returnValue = buffer;
break;
}
case CELLTYPE_STRING: //字符串类型,要先判断一下读取的结果是不是空值
{
const wchar_t * pValue = pSheet->readStr( rowIndex, colIndex );
if ( pValue != nullptr )
{
returnValue = pValue;
}
break;
}
}
return returnValue;
}
libxl::Sheet * getXlsxSheetByName( libxl::IBookT<wchar_t> * pBook, const std::wstring & sheetName )
{
Sheet * pSheet = nullptr;
Sheet * pCurrentSheet = nullptr;
if ( pBook == nullptr )
{
throw logic_error( "参数错误!" );
}
int sheetCount = pBook->sheetCount();
int sheetIndex = 0;
while ( sheetIndex < sheetCount )
{
pCurrentSheet = pBook->getSheet( sheetIndex );
wstring currentSheetName = pCurrentSheet->name();
if ( currentSheetName == sheetName )
{
pSheet = pCurrentSheet;
break;
}
sheetIndex++;
}
return pSheet;
}

View File

@@ -0,0 +1,37 @@
#pragma once
#ifndef EXCEL_H_
#define EXCEL_H_
#include <libxl.h>
/************************************************
* \brief 注册libxl产品
* \param pBook
************************************************/
void setKey( libxl::Book * pBook );
void setKey( libxl::IBookT<char> * pBook );
/************************************************
* \brief 从xlsx文件单元格中读取数据以字符串为返回值。
* \param pBook libxl的Book对象。
* \param sheetIndex sheet的索引值
* \param rowIndex 行号
* \param colIndex 列号
* \param isInteger 单元格为数字类型时,选择是输出整形还是浮点型字符串
* \return 返回的字符串
************************************************/
std::wstring ReadCellStringFromXlsx( libxl::IBookT<wchar_t> * pBook,
unsigned int sheetIndex,
unsigned int rowIndex,
unsigned int colIndex,
bool isInteger );
/************************************************
* \brief 通过名称获取sheet
* \param sheetName
* \return
************************************************/
libxl::Sheet * getXlsxSheetByName( libxl::IBookT<wchar_t> * pBook, const std::wstring & sheetName );
#endif

View File

@@ -0,0 +1,87 @@
#include "query_user.h"
#include <stdexcept>
#include <ocilib.h>
#include "../../db/ocilib/db_oper.h"
#include "../Datastructure/UserInfo/UserInfo.h"
#include <ocilib.hpp>
using namespace std;
UserInfo queryUserInfo( const string & userName,
const string & password,
const string & tnsName,
const string & staffP13 )
{
OCI_Connection * pConn = nullptr;
OCI_Statement * pStmt = nullptr;
OCI_Resultset * pResult = nullptr;
int returnCode = 0;
string sqlQueryStaff =
"SELECT a.staff_p13, a.staff_name, b.staff_post \n"
"FROM staff_info a, \n"
"staff_post_code b \n"
"WHERE a.staff_post_code = b.staff_post_code \n"
"AND a.staff_p13 = :p13";
returnCode = OCI_Initialize( l_error_handler, nullptr, OCI_ENV_DEFAULT );
if ( static_cast<bool>(returnCode) == false )
{
string errorMessage( "ocilib初始化错误:" );
errorMessage.append( get_last_error_message() );
throw runtime_error( errorMessage );
}
try
{
pConn = OCI_ConnectionCreate( tnsName.c_str(),
userName.c_str(),
password.c_str(),
OCI_SESSION_DEFAULT );
}
catch ( runtime_error & error )
{
OCI_Cleanup();
throw error;
}
try
{
pStmt = OCI_StatementCreate( pConn );
OCI_Prepare(pStmt, sqlQueryStaff.c_str());
OCI_AllowRebinding( pStmt, true );
OCI_BindString( pStmt, ":p13", const_cast<otext*>(staffP13.c_str()), staffP13.size() );
OCI_Execute( pStmt );
pResult = OCI_GetResultset( pStmt );
//检查结果集,如果没有返回,则说明没有此用户
if ( OCI_FetchNext( pResult ) == false )
{
throw runtime_error( "用户不存在!" );
}
}
catch ( runtime_error & error )
{
OCI_ConnectionFree( pConn );
OCI_Cleanup();
throw error;
}
UserInfo info( OCI_GetString( pResult, 1 ),
OCI_GetString( pResult, 2 ),
OCI_GetString( pResult, 3 ) );
OCI_ConnectionFree(pConn);
OCI_Cleanup();
return info;
}

View File

@@ -0,0 +1,10 @@
//查询用户、权限等相关数据
#pragma once
#include <iostream>
#include "../Datastructure/UserInfo/UserInfo.h"
UserInfo queryUserInfo( const std::string & userName,
const std::string & password,
const std::string & tnsName,
const std::string & staffP13 );

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 952 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,33 @@
#include "QCarDealerAchievementWidget.h"
QCarDealerAchievementWidget::QCarDealerAchievementWidget(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
init();
}
QCarDealerAchievementWidget::~QCarDealerAchievementWidget()
{
}
void QCarDealerAchievementWidget::init()
{
initData();
initWidgets();
initSignal();
}
void QCarDealerAchievementWidget::initData()
{
}
void QCarDealerAchievementWidget::initWidgets()
{
setLayout(ui.pLayoutMain);
}
void QCarDealerAchievementWidget::initSignal()
{
}

View File

@@ -0,0 +1,22 @@
#pragma once
#include <QWidget>
#include "ui_QCarDealerAchievementWidget.h"
class QCarDealerAchievementWidget : public QWidget
{
Q_OBJECT
public:
QCarDealerAchievementWidget(QWidget *parent = Q_NULLPTR);
~QCarDealerAchievementWidget();
private:
void init();
void initData();
void initWidgets();
void initSignal();
private:
Ui::QCarDealerAchievementWidget ui;
};

View File

@@ -0,0 +1,165 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QCarDealerAchievementWidget</class>
<widget class="QWidget" name="QCarDealerAchievementWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>680</width>
<height>497</height>
</rect>
</property>
<property name="windowTitle">
<string>QCarDealerAchievementWidget</string>
</property>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>80</x>
<y>40</y>
<width>258</width>
<height>240</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>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<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>
<item>
<widget class="QToolButton" name="toolButton">
<property name="text">
<string>导入</string>
</property>
<property name="icon">
<iconset>
<normalon>:/QMainFrame/Resources/excel.png</normalon>
</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>
</item>
<item>
<widget class="QTableWidget" name="tableWidget">
<column>
<property name="text">
<string>年度</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column>
<column>
<property name="text">
<string>月份</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column>
<column>
<property name="text">
<string>车商代码</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column>
<column>
<property name="text">
<string>车商名称</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column>
<column>
<property name="text">
<string>店内双签产值(万元)</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column>
<column>
<property name="text">
<string>店内新车开票数</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column>
<column>
<property name="text">
<string>我司新车签单台次</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column>
<column>
<property name="text">
<string>人保新车签单台次</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column>
<column>
<property name="text">
<string>平安新车签单台次</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column>
<column>
<property name="text">
<string>其他保险公司新车签单台次</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column>
</widget>
</item>
</layout>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
<include location="../../../resource.qrc"/>
</resources>
<connections/>
</ui>

View File

@@ -0,0 +1,33 @@
#include "QCarDealerSchemaWidget.h"
QCarDealerSchemaWidget::QCarDealerSchemaWidget(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
init();
}
QCarDealerSchemaWidget::~QCarDealerSchemaWidget()
{
}
void QCarDealerSchemaWidget::init()
{
initData();
initWidgets();
initSignal();
}
void QCarDealerSchemaWidget::initData()
{
}
void QCarDealerSchemaWidget::initWidgets()
{
}
void QCarDealerSchemaWidget::initSignal()
{
}

View File

@@ -0,0 +1,22 @@
#pragma once
#include <QWidget>
#include "ui_QCarDealerSchemaWidget.h"
class QCarDealerSchemaWidget : public QWidget
{
Q_OBJECT
public:
QCarDealerSchemaWidget(QWidget *parent = Q_NULLPTR);
~QCarDealerSchemaWidget();
private:
void init();
void initData();
void initWidgets();
void initSignal();
private:
Ui::QCarDealerSchemaWidget ui;
};

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QCarDealerSchemaWidget</class>
<widget class="QWidget" name="QCarDealerSchemaWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>725</width>
<height>508</height>
</rect>
</property>
<property name="windowTitle">
<string>QCarDealerSchemaWidget</string>
</property>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,33 @@
#include "QDataManagementWidget.h"
QDataManagementWidget::QDataManagementWidget( QWidget * parent )
: QWidget( parent )
{
ui.setupUi( this );
init();
}
QDataManagementWidget::~QDataManagementWidget()
{
}
void QDataManagementWidget::init()
{
initData();
initWidgets();
initSignal();
}
void QDataManagementWidget::initData()
{
}
void QDataManagementWidget::initWidgets()
{
setLayout( ui.pLayoutMain );
}
void QDataManagementWidget::initSignal()
{
}

View File

@@ -0,0 +1,22 @@
#pragma once
#include <QWidget>
#include "ui_QDataManagementWidget.h"
class QDataManagementWidget : public QWidget
{
Q_OBJECT
public:
QDataManagementWidget(QWidget *parent = Q_NULLPTR);
~QDataManagementWidget();
private:
void init();
void initData();
void initWidgets();
void initSignal();
private:
Ui::QDataManagementWidget ui;
};

View File

@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QDataManagementWidget</class>
<widget class="QWidget" name="QDataManagementWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>759</width>
<height>487</height>
</rect>
</property>
<property name="windowTitle">
<string>QDataManagementWidget</string>
</property>
<widget class="QWidget" name="gridLayoutWidget">
<property name="geometry">
<rect>
<x>30</x>
<y>20</y>
<width>681</width>
<height>431</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>
<item row="0" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>车商业绩表</string>
</attribute>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>车商方案表</string>
</attribute>
</widget>
<widget class="QWidget" name="tab_3">
<attribute name="title">
<string>送返修工单</string>
</attribute>
</widget>
<widget class="QWidget" name="tab_4">
<attribute name="title">
<string>新送返修监控报表</string>
</attribute>
</widget>
<widget class="QWidget" name="tab_5">
<attribute name="title">
<string>送返修推荐表</string>
</attribute>
</widget>
</widget>
</item>
</layout>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,11 @@
#include "QRepairOrderWidget.h"
QRepairOrderWidget::QRepairOrderWidget(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
}
QRepairOrderWidget::~QRepairOrderWidget()
{
}

View File

@@ -0,0 +1,16 @@
#pragma once
#include <QWidget>
#include "ui_QRepairOrderWidget.h"
class QRepairOrderWidget : public QWidget
{
Q_OBJECT
public:
QRepairOrderWidget(QWidget *parent = Q_NULLPTR);
~QRepairOrderWidget();
private:
Ui::QRepairOrderWidget ui;
};

View File

@@ -0,0 +1,23 @@
<UI version="4.0" >
<class>QRepairOrderWidget</class>
<widget class="QWidget" name="QRepairOrderWidget" >
<property name="objectName" >
<string notr="true">QRepairOrderWidget</string>
</property>
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle" >
<string>QRepairOrderWidget</string>
</property>
</widget>
<layoutDefault spacing="6" margin="11" />
<pixmapfunction></pixmapfunction>
<resources/>
<connections/>
</UI>

View File

@@ -0,0 +1,92 @@
#include <iostream>
#include "QLoginDialog.h"
#include "../../system/system_util.h"
#include "../../data/Datastructure/UserInfo/UserInfo.h"
#include "../../data/query/query_user.h"
#include "../../data/AppParameters/AppParameters.h"
#include <QMessageBox>
using namespace std;
QLoginDialog::QLoginDialog( QWidget * parent )
: QDialog( parent )
{
ui.setupUi( this );
init();
}
QLoginDialog::~QLoginDialog()
{
}
void QLoginDialog::init()
{
initData();
initWidgets();
initSignal();
}
void QLoginDialog::initData()
{
returnCode = EXIT;
systemUserName = QString::fromStdWString( getUserName() );
}
void QLoginDialog::initSignal()
{
connect( ui.pButtonOK, SIGNAL( clicked() ), this, SLOT( onOK() ));
connect( ui.pButtonExit, SIGNAL( clicked() ), this, SLOT( onExit() ));
}
void QLoginDialog::initWidgets()
{
setLayout( ui.pLayoutMain );
ui.pEditSystemUserName->setText( systemUserName );
try
{
queryStaffInfo( systemUserName );
}
catch ( runtime_error & error )
{
//如果出现异常,就不让用户继续登录
QMessageBox::critical( nullptr,
"错误,请联系管理员!",
QString::fromLocal8Bit( error.what() ) );
ui.pButtonOK->setEnabled( false );
}
}
void QLoginDialog::onOK()
{
returnCode = OK;
this->close();
}
void QLoginDialog::onExit()
{
returnCode = EXIT;
this->close();
}
void QLoginDialog::queryStaffInfo( const QString & systemUserName )
{
string userName = "car_dealer";
string password = "cpic123456";
string tnsName = "xmcx1";
string staffP13 = systemUserName.toLocal8Bit();
UserInfo && info = queryUserInfo( userName,
password,
tnsName,
staffP13 );
pStaffInfo = new UserInfo( info );
}

View File

@@ -0,0 +1,39 @@
#pragma once
#include <QDialog>
#include "ui_QLoginDialog.h"
class QLoginDialog : public QDialog
{
Q_OBJECT
public:
QLoginDialog(QWidget *parent = Q_NULLPTR);
~QLoginDialog();
typedef enum { OK, EXIT } ReturnCode;
ReturnCode getReturnCode() const
{
return returnCode;
}
protected Q_SLOTS:
void init();
void initData();
void initSignal();
void initWidgets();
void onOK();
void onExit();
private:
void queryStaffInfo( const QString & systemUserName );
private:
Ui::QLoginDialog ui;
ReturnCode returnCode;
QString systemUserName;
QString cpicUserName;
QString cpicP13;
};

View File

@@ -0,0 +1,286 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QLoginDialog</class>
<widget class="QDialog" name="QLoginDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>350</width>
<height>160</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>350</width>
<height>160</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>350</width>
<height>160</height>
</size>
</property>
<property name="windowTitle">
<string>猜猜你是谁~~~~</string>
</property>
<property name="windowIcon">
<iconset>
<normalon>:/QMainFrame/Resources/CPIC透明.png</normalon>
</iconset>
</property>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>349</width>
<height>158</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>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../../resource.qrc">:/QMainFrame/Resources/cat.png</pixmap>
</property>
</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="QLabel" name="label_2">
<property name="minimumSize">
<size>
<width>85</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>85</width>
<height>16777215</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">
<widget class="QLineEdit" name="pEditSystemUserName">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>120</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">border: 1px solid silver;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="minimumSize">
<size>
<width>85</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>85</width>
<height>16777215</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="pEditUserName">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>120</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">border: 1px solid silver;</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_4">
<property name="minimumSize">
<size>
<width>85</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>85</width>
<height>16777215</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="pEditStaffPost">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>120</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">border: 1px solid silver;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<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>
<item>
<widget class="QToolButton" name="pButtonExit">
<property name="text">
<string>退出</string>
</property>
<property name="icon">
<iconset>
<normalon>:/QMainFrame/Resources/quit.png</normalon>
</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>
<widget class="QToolButton" name="pButtonOK">
<property name="text">
<string>确认</string>
</property>
<property name="icon">
<iconset>
<normalon>:/QMainFrame/Resources/ok.png</normalon>
</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>
</item>
</layout>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
<include location="../../resource.qrc"/>
</resources>
<connections/>
</ui>

View File

@@ -0,0 +1,34 @@

#include "QMainFrame.h"
QMainFrame::QMainFrame(QWidget* parent)
: QMainWindow(parent)
{
ui.setupUi(this);
init();
}
void QMainFrame::init()
{
initData();
initWidgets();
initSignal();
}
void QMainFrame::initData()
{
pStackedWidget = new QStackedWidget(this);
pWidgetDataManagement = new QDataManagementWidget(pStackedWidget);
}
void QMainFrame::initWidgets()
{
pStackedWidget->addWidget(pWidgetDataManagement);
setCentralWidget(pStackedWidget);
}
void QMainFrame::initSignal()
{
}

View File

@@ -0,0 +1,25 @@
#pragma once
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QStackedWidget>
#include "QDataManagementWidget.h"
#include "ui_QMainFrame.h"
class QMainFrame : public QMainWindow
{
Q_OBJECT
public:
QMainFrame( QWidget * parent = Q_NULLPTR );
private:
void init();
void initData();
void initWidgets();
void initSignal();
private:
Ui::QMainFrameClass ui;
QStackedWidget * pStackedWidget;
QDataManagementWidget * pWidgetDataManagement;
};

View File

@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QMainFrameClass</class>
<widget class="QMainWindow" name="QMainFrameClass">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>796</width>
<height>558</height>
</rect>
</property>
<property name="windowTitle">
<string>QMainFrame</string>
</property>
<widget class="QWidget" name="centralWidget"/>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>796</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>36</width>
<height>36</height>
</size>
</property>
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="pActionDataManagement"/>
<addaction name="pActionParamentersManagement"/>
</widget>
<widget class="QStatusBar" name="statusBar"/>
<action name="pActionExit">
<property name="icon">
<iconset resource="../../resource.qrc">
<normaloff>:/QMainFrame/Resources/quit.png</normaloff>:/QMainFrame/Resources/quit.png</iconset>
</property>
<property name="text">
<string>退出</string>
</property>
</action>
<action name="pActionAbout">
<property name="icon">
<iconset resource="../../resource.qrc">
<normaloff>:/QMainFrame/Resources/cat.png</normaloff>:/QMainFrame/Resources/cat.png</iconset>
</property>
<property name="text">
<string>关于</string>
</property>
</action>
<action name="pActionDataManagement">
<property name="icon">
<iconset resource="../../resource.qrc">
<normaloff>:/QMainFrame/Resources/excel.png</normaloff>:/QMainFrame/Resources/excel.png</iconset>
</property>
<property name="text">
<string>数据管理</string>
</property>
</action>
<action name="pActionParamentersManagement">
<property name="icon">
<iconset resource="../../resource.qrc">
<normaloff>:/QMainFrame/Resources/option.png</normaloff>:/QMainFrame/Resources/option.png</iconset>
</property>
<property name="text">
<string>参数管理</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
<include location="../../resource.qrc"/>
</resources>
<connections/>
</ui>

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

View File

@@ -0,0 +1,2 @@
IDI_ICON1 ICON DISCARDABLE "car_dealer_util.ico"

View File

@@ -0,0 +1,82 @@

#include <exception>
#include <stdexcept>
#include <QDebug>
#include "db_oper.h"
const int ERROR_MESSAGE_LENGTH = 1001;
using namespace std;
void get_error_message(OCI_Error * pError, char * pszMessage, size_t length);
void initOciLib()
{
int returnCode = 0;
char * pszErrorMessage = (char *)malloc(sizeof(char) * ERROR_MESSAGE_LENGTH);
returnCode = OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT);
if (!returnCode )
{
get_error_message(OCI_GetLastError(), pszErrorMessage, ERROR_MESSAGE_LENGTH - 1);
string message("OCILIB初始化失败\n");
message += pszErrorMessage;
throw runtime_error(message);
}
free(pszErrorMessage);
}
void releaseOciLib()
{
OCI_Cleanup();
}
void get_error_message(OCI_Error * pError, char * pszMessage, size_t length)
{
//防御性验证
if (pError == NULL)
{
pszMessage[0] = NULL;
return;
}
const otext * psz = OCI_ErrorGetString(pError);
strcpy_s(pszMessage, length, psz);
}
void error_handler(OCI_Error * pError)
{
std::runtime_error error(OCI_ErrorGetString(pError));
OCI_Cleanup();
throw error;
}
void l_error_handler(OCI_Error* pError)
{
string errorString = OCI_ErrorGetString(pError);
std::runtime_error error(OCI_ErrorGetString(pError));
throw error;
}
void output_error_message( const std::string & errorMessage )
{
qDebug() << QString::fromLocal8Bit(errorMessage.c_str());
}
std::string get_last_error_message()
{
OCI_Error * pError = OCI_GetLastError();
return std::string(OCI_ErrorGetString(pError));
}

View File

@@ -0,0 +1,21 @@

#ifndef _DB_OPER_H
#define _DB_OPER_H
#include <ocilib.h>
#include <string>
#include <unordered_map>
void initOciLib();
void releaseOciLib();
void error_handler(OCI_Error * pError);
void l_error_handler(OCI_Error* pError);
void output_error_message(const std::string& errorMessage);
std::string get_last_error_message();
#endif

Some files were not shown because too many files have changed in this diff Show More