📄 shift.cpp
字号:
#if !defined( __STRING_H )
#include <String.h>
#endif // __STRING_H
#if !defined( __STDLIB_H )
#include <StdLib.h>
#endif // __STDLIB_H
#define Uses_DBase
#define Uses_Window
#define Uses_Button
#include <ly.h>
#include "sj.h"
#include "sjdbf.h"
const
winWidth = 50 * 8 + 24,
winHeight = 14 * 16 + 29 + 36 + 12,
winLeft = 320 - winWidth / 2,
winTop = 240 - winHeight / 2 + 5,
tableLeft = winLeft + 12,
tableTop = winTop + 20 + 6,
btnTop = winTop + winHeight - 12 - 36,
btnWidth = 66,
btnHeight = 36,
btnOkLeft = winLeft + 12,
btnOkTop = btnTop,
btnPrintLeft = btnOkLeft + 70 + 40,
btnPrintTop = btnTop,
btnExitLeft = btnPrintLeft + btnWidth + 40,
btnExitTop = btnTop,
btnHelpLeft = winLeft + winWidth - 13 - 70,
btnHelpTop = btnTop;
static char *szTable[] =
{
//0 1 2 3 4
//012345678901234567890123456789012345679012345679012
/*00*/"┏━━━━━━┯━━━━━━━━━━━━━━━━┓",
/*01*/"┃ 收 款 员 │ 123456 ┃",
/*02*/"┠──────┼────────────────┨",
/*03*/"┃ 日 期 │ 1996年12月30日 ┃",
/*04*/"┠──────┼────────────────┨",
/*05*/"┃ 共收用户 │ 9999个 ┃",
/*06*/"┠──────┼────────────────┨",
/*07*/"┃ 共 收 款 │ 1234567.12元 ┃",
/*08*/"┠──────┼────────────────┨",
/*09*/"┃ 滞 纳 金 │ 1234567.12元 ┃",
/*10*/"┗━━━━━━┷━━━━━━━━━━━━━━━━┛",
/*11*/" 共有用户99999个,应收款1234567.12 + 欠费1234567.12",
/*12*/" 共收用户99999个,共收款1234567.12 + 欠费1234567.12",
/*13*/" 未收用户99999个,未收款1234567.12 + 欠费1234567.12",
};
static char *szHelp[] =
{
"■按Enter或选择〔对〕交班 ",
"■按<F2>或选择〔打印〕打印交班统计",
"■按Esc或选择〔退出〕放弃交班 ",
"■您可以随时看到交班统计,然后退出",
NULL
};
void SJ::Shift()
{
Window *win = new Window( winTop, winWidth, winHeight, "交班" );
Button *btnOk = new Button( btnOkLeft, btnOkTop, tpOkButton );
Button *btnPrint = new Button( btnPrintLeft, btnPrintTop, szBtnPrint, cmPrint, btnWidth, btnHeight );
Button *btnExit = new Button( btnExitLeft, btnExitTop, szBtnExit, cmExit, btnWidth, btnHeight );
Button *btnHelp = new Button( btnHelpLeft, btnHelpTop, tpHelpButton );
win->Insert( btnOk, btnPrint, btnExit, btnHelp, NULL );
memcpy( szTable[ 1 ] + 25, szDutyNum, flDuty ); // DutyNum
char str[ 81 ]; // Date
::GetDate( str, TRUE );
memcpy( szTable[ 3 ] + 19, str, 14 );
int nClient = 0;
double dMoney = 0.0,
dAChg = 0.0;
char szDate[ 9 ];
::GetDate( szDate );
long lRec = dbfLog->Search( szDate, fdLogDate );
if( lRec >= 0 )
{
while( lRec < dbfLog->GetRecordNum() )
{
dbfLog->GetField( lRec, fdLogDuty, str );
if( memcmp( szDutyNum, str, flLogDuty ) == 0 )
{
nClient ++;
dMoney += dbfLog->GetDouble( lRec, fdLogRChg );
dAChg += dbfLog->GetDouble( lRec, fdLogAChg );
}
lRec ++;
dbfLog->GetField( lRec, fdLogDate, str );
if( memcmp( szDate, str, flLogDate ) != 0 ) break;
}
}
FormatNumber( nClient, szTable[ 5 ] + 27, 4 ); // Client
FormatMoney( dMoney, szTable[ 7 ] + 21, flTotChg ); // Money
FormatMoney( dAChg, szTable[ 9 ] + 21, flTotChg ); // AChg
TotalCurMonth( szTable, 11 );
HideCursor();
setcolor( 2, 15 );
int y = tableTop;
for( int i = 0; i < 14 ; i ++, y += 16 )
showhz( tableLeft, y, szTable[ i ] );
ShowCursor();
::ShowStatus( "~CF1~0帮助 ~CF2~0打印 ~CESC~0退出" );
Event event;
BOOL bResult = FALSE;
for(;;)
{
while( !GetEvent( event ) );
win->HandleEvent( event );
if( event.what == evKeyboard && event.key == kbF2 )
{
event.what = evCommand;
event.command = cmPrint;
}
if( event.what == evCommand )
{
if( event.command == cmOk )
{
bResult = TRUE;
break;
}
else if( event.command == cmPrint )
{
if( PrnReady() )
{
for( i = 0; i < 14 ; i ++ )
fprintf( stdprn, "%s\n", szTable[ i ] );
NewPage();
}
win->Reselect( btnOk );
}
else if( event.command == cmExit ||
event.command == cmCancel ||
event.command == cmClose ) break;
else if( event.command == cmHelp )
{
ShowHelp( szHelp );
win->Reselect( btnOk );
}
}
}
delete win;
if( bResult ) CheckIn();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -