📄 report.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Report.h"
#include "print.h"
#include "datetool.h"
#include "inqdate.h"
#include "bdbf.h"
#include "option.h"
#include "editDlg.h"
//获取设置统计日期
static int GetSetTotalDate(DWORD pDate1,DWORD pDate2,int nMode);
static int GetTotalDate(DWORD *pDate1,DWORD *pDate2);
static int SetTotalDate(DWORD nDate1,DWORD nDate2);
//设置日期范围
static int SelectRecordWithDate(void);
#pragma package(smart_init)
//获取设置分析统计类型
int GetSetTotalMode(int nKind)
{
static BYTE nMode=0;
int n;
n = nMode;
if(nKind>0)nMode=nKind;
return(n);
}
//获取设置统计日期
int GetSetTotalDate(DWORD &pDate1,DWORD &pDate2,int nMode)
{
static DWORD nInqDate1,nInqDate2;
if(nMode)
{ nInqDate1 = pDate1; nInqDate2=pDate2;}
else {
pDate1 = nInqDate1;
pDate2 = nInqDate2;
}
return(nInqDate1);
}
//获取统计日期
int GetSetTotalDate(DWORD *pDate1,DWORD *pDate2)
{
DWORD m,n;
GetSetTotalDate(m,n,0);//获取设置统计日期
if(pDate1!=NULL)pDate1=m;
if(pDate2!=NULL)pDate2=n;
return(m);
}
//设置统计日期
int SetTotalDate(DWORD nDate1,DWORD nDate2)
{
GetSetTotalDate(nDate1,nDate2,TRUE);//获取设置统计日期
return(nDate1);
}
//统计分析数据库
int Menu_TotalTable(void)
{
int rc;
SelectRecordWithDate();
rc=TotalRecordTable();
return(rc);
}
//获取统计条件
char *GetTotalText(char *pszBuf)
{
static char *pszTitle[]={
"统计日期 %s-%s","%04d年%1d月份 %s-%s",
"%04d年第%1d季度 %s-%s","%04d年度 %s-%s"
};
DWORD nDate1,nDate2;
char szDate1[15],szDate2[15];
int nMode,nYear,nMonth,nDay;
GetTotalDate(&nDate1,&nDate2);
nMode = GetTotalMode();
DWORDToDateStr(szDate1,nDate1);
DWORDToDateStr(szDate2,nDate2);
GetDateOnDWORD(nDate1,&nYear,&nMonth,&nDay);
if(nMode==TOTAL_DAY) //日统计
wsprintf(pszBuf,pszTitle[0],szDate1,szDate2);
else if(nMode==TOTAL_MONTH) //月统计
wsprintf(pszBuf,pszTitle[1],nYear,nMonth,szDate1,szDate2);
else if(nMode==TOTAL_QUARTER){ //季统计
nMonth = (nMonth-1)/3+1;
wsprintf(pszBuf,pszTitle[2],nYear,nMonth,szDate1,szDate2);
}
else if(nMode==TOTAL_YEAR) //年统计
wsprintf(pszBuf,pszTitle[3],nYear,szDate1,szDate2);
else pszBuf[0];
return(pszBuf);
}
//设置统计日期
int SetDayToTotal(TComponent* Owner)
{
int rc;
DWORD nDate1,nDate2;
GetTotalDate(&nDate1,&nDate2);
rc=ReworkDate(Owner,&nDate1,&nDate2);
if(rc){ //设置日期范围
SetTotalDate(nDate1,nDate2);
SetTotalMode(TOTAL_DAY);
}
return(rc);
}
//设置统计月份
int SetMonthToTotal(TComponent* Owner)
{
static char pszText[]="请选择统计年月份";
int rc;
EDITPARAM pe;
DWORD nDate1,nDate2;
GetTotalDate(&nDate1,&nDate2);
ZeroMemory(&pe,sizeof(pe));
pe.pszTitle=GetMainTitle();
pe.pszText=pszText;
pe.pszBuf=(char *)&nDate1;
pe.cbSize=sizeof(nDate1);
pe.nFlag=10; //日期
rc=EditTextStr(Owner,&pe);
if(rc){ //设置日期范围
GetMonthDate(nDate1,&nDate1,&nDate2);
SetTotalDate(nDate1,nDate2);
SetTotalMode(TOTAL_MONTH);
}
return(rc);
}
//设置统计季度
int SetQuarterToTotal(TComponent* Owner)
{
static char pszText[]="请选择统计季度所在的日期";
int rc;
EDITPARAM pe;
DWORD nDate1,nDate2;
GetTotalDate(&nDate1,&nDate2);
ZeroMemory(&pe,sizeof(pe));
pe.pszTitle=GetMainTitle();
pe.pszText=pszText;
pe.pszBuf=(char *)&nDate1;
pe.cbSize=sizeof(nDate1);
pe.nFlag=10; //日期
rc=EditTextStr(Owner,&pe);
if(rc){ //设置日期范围
GetQuarterDate(nDate1,&nDate1,&nDate2);
SetTotalDate(nDate1,nDate2);
SetTotalMode(TOTAL_QUARTER);
}
return(rc);
}
//设置统计年度
int SetYearToTotal(TComponent* Owner)
{
static char pszText[]="请选择统计年份";
int rc;
EDITPARAM pe;
DWORD nDate1,nDate2;
GetTotalDate(&nDate1,&nDate2);
ZeroMemory(&pe,sizeof(pe));
pe.pszTitle=GetMainTitle();
pe.pszText=pszText;
pe.pszBuf=(char *)&nDate1;
pe.cbSize=sizeof(nDate1);
pe.nFlag=10; //日期
rc=EditTextStr(Owner,&pe);
if(rc){ //设置日期范围
GetYearDate(nDate1,&nDate1,&nDate2);
SetTotalDate(nDate1,nDate2);
SetTotalMode(TOTAL_YEAR);
}
return(rc);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -