⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 moviein.cpp

📁 偶作的毕业设计程序
💻 CPP
字号:
// MovieIn.cpp : implementation file
//

#include "stdafx.h"
#include "SoftDocSystem.h"
#include "MovieIn.h"
#include "LogMngr.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMovieIn dialog


CMovieIn::CMovieIn(CWnd* pParent /*=NULL*/)
	: CDialog(CMovieIn::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMovieIn)
	m_Name = _T("");
	m_Context = _T("");
	m_Number = _T("");
	m_SoftType = _T("");
	m_Xinghao = _T("");
	m_Xitong = _T("");
	m_author = _T("");
	//}}AFX_DATA_INIT
}


void CMovieIn::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMovieIn)
	DDX_Control(pDX, IDC_COMBO4, m_authorCtrl);
	DDX_Control(pDX, IDC_COMBO3, m_XitongCtrl);
	DDX_Control(pDX, IDC_COMBO2, m_XinghaoCtrl);
	DDX_Control(pDX, IDC_COMBO1, m_SoftTypeCtrl);
	DDX_Text(pDX, IDC_EDIT1, m_Name);
	DDX_Text(pDX, IDC_EDIT5, m_Context);
	DDX_Text(pDX, IDC_EDIT7, m_Number);
	DDX_CBString(pDX, IDC_COMBO1, m_SoftType);
	DDX_CBString(pDX, IDC_COMBO2, m_Xinghao);
	DDX_CBString(pDX, IDC_COMBO3, m_Xitong);
	DDX_CBString(pDX, IDC_COMBO4, m_author);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMovieIn, CDialog)
	//{{AFX_MSG_MAP(CMovieIn)
	ON_WM_DESTROY()
	ON_BN_CLICKED(IDC_BUTTON1, OnInput)
	ON_BN_CLICKED(IDC_BUTTON2, OnNext)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMovieIn message handlers

int CMovieIn::DoModal() 
{
	// TODO: Add your specialized code here and/or call the base class
	
	return CDialog::DoModal();
}

BOOL CMovieIn::OnInitDialog() 
{
	CDialog::OnInitDialog();
		// TODO: Add extra initialization here
		((CEdit*)GetDlgItem(IDC_EDIT1))->SetLimitText(30);

	 CSoftDocSystemApp* myApp=(CSoftDocSystemApp*)AfxGetApp();
	 CString source_;
	 source_.Format ("driver={SQL Server};server=%s;database=SoftDocument",myApp->ConnectServer);
	_bstr_t source=source_;
	_bstr_t pwd=myApp->ConnectPwd;
	_bstr_t user=myApp->ConnectUser;
//Databaxe Initialled

	HRESULT hr;
	try{
		hr = m_DBCnt.CreateInstance(_uuidof(Connection));
		m_DBCnt->ConnectionTimeout = 60;
		m_DBCnt->Mode = adModeReadWrite;
		if(SUCCEEDED(hr))
			hr = m_DBCnt->Open(source, user, pwd, 16);
		if(SUCCEEDED(hr))
		{m_fConnected = TRUE;
		}
		else 
		m_fConnected = FALSE;
	}
	catch (_com_error &e){
	   MessageBox(e.ErrorMessage()); 
	   m_fConnected = FALSE;
	}
	if(!m_fConnected) MessageBox("ADO数据源初始化失败!");
	else
		m_strSource = (char * )source;
InputExist();//输入原始数据
	Initiate();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CMovieIn::OnDestroy() 
{
	CDialog::OnDestroy();
	if(m_DBCnt->GetState()==adStateOpen)
		m_DBCnt->Close();

	
}

void CMovieIn::OnInput() 
{
	UpdateData();
	int Geshi[6];
	// TODO: Add your control notification handler code here
    if(m_Name==""){AfxMessageBox("请输入软件名");return;}
	if(m_author==""){AfxMessageBox("请输入作者姓名");return;}
	if(m_Xinghao=="")
	{AfxMessageBox("请输入所属型号名称");return;}
	if(m_Context==""){AfxMessageBox("请输入功能描述");return;}
	if(m_SoftType==""){AfxMessageBox("清输入软件类型");return;}
m_Xitong.TrimRight(" ");
m_author.TrimRight(" ");
m_Name.TrimRight (" ");
m_Xinghao.TrimRight(" ");
m_Context.TrimLeft (" ");
m_Context.TrimRight (" ");
//判断存档格式
  if(((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck())Geshi[1]=1;
  if(((CButton*)GetDlgItem(IDC_CHECK2))->GetCheck())Geshi[2]=1;
  if(((CButton*)GetDlgItem(IDC_CHECK3))->GetCheck())Geshi[3]=1;
  if(((CButton*)GetDlgItem(IDC_CHECK4))->GetCheck())Geshi[4]=1;
  if(((CButton*)GetDlgItem(IDC_CHECK5))->GetCheck())Geshi[5]=1;
//格式是否已经选择
  int IsSelected,i;
  CString g[6]; 
  CString mystr[6];
  	CString Mysql_,str1,str2,str3,str5;
  IsSelected=0;
  	CTime tm=CTime::GetCurrentTime ();
  str1.Format ("%d-%d-%d",tm.GetYear (),tm.GetMonth (),tm.GetDay ());
 
  for(i=1;i<6;i++)
  {if(Geshi[i]==1){IsSelected+=1;
  g[i]="在家";
  mystr[i]=str1;}
  else
	 { g[i]="无";
  mystr[i]=_T("");}
  }
  if(IsSelected==0 ){AfxMessageBox("请输入文档格式");return;}
	//输入软件数据
	CString sql_;
GetDlgItem(IDC_BUTTON1)->EnableWindow(false);
sql_.GetBuffer(500);
sql_.Format("INSERT INTO SoftDocInfo(软件名称,作者,软件类型,所属型号,所属系统,软件编号,软盘,光盘,硬盘,文本,其他,软盘时间,光盘时间,硬盘时间,文本时间,其他时间,软件功能描述) VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",m_Name,m_author,m_SoftType,m_Xinghao,m_Xitong,m_Number,g[1],g[2],g[4],g[3],g[5],mystr[1],mystr[2],mystr[3],mystr[4],mystr[5],m_Context);
_bstr_t sql=sql_;
try{
	m_DBCnt->BeginTrans ();
try{
	//if(m_DBCnt->GetState ()==adStateOpen)
	m_DBCnt->Execute(sql,NULL,adCmdText);}
catch(_com_error &e){
	AfxMessageBox(e.ErrorMessage());return;}
//输入下一个编号信息
	int nRightNum = atoi(m_RightNum)+1;
str1.Format("%d",nRightNum);
sql_.Format("UPDATE SoftDocInfo SET 目前编号 ='%s' WHERE 目前编号 = '%s'",str1,m_RightNum);
_bstr_t sql1=sql_;
try{
	m_DBCnt->Execute(sql1,NULL,adCmdText);}
catch(_com_error &e){
	AfxMessageBox(e.ErrorMessage());return;}
m_DBCnt->CommitTrans ();
}
catch(_com_error &e){
	m_DBCnt->RollbackTrans ();return;}//出错后回滚事务
if(m_Log.Setup (m_DBCnt))
		m_Log.Addlog ("管理员","新文档入库",m_Name);//操作日志

AfxMessageBox("你的信息已成功输入!");
InputShuju();
}

void CMovieIn::OnCancel() 
{
	// TODO: Add extra cleanup here
	
	CDialog::OnCancel();
}

void CMovieIn::Initiate()
{
	CString Mysql_,str1,str2,str3;
	_RecordsetPtr Myset;
	Myset.CreateInstance (__uuidof(Recordset));
Mysql_.Format("SELECT DISTINCT 目前编号 FROM SoftDocInfo");
_bstr_t Mysql=Mysql_;
_bstr_t source=m_strSource;
try{
	Myset->Open (Mysql,source,adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error &e){
	AfxMessageBox(e.ErrorMessage());return;}
str2.Empty();
_variant_t Holder;
while(!Myset->adoEOF ){
	Holder=Myset->GetCollect ("目前编号");
	if(Holder.vt!=VT_NULL)
	str2=(char*)(_bstr_t)Holder;
	Myset->MoveNext ();
}
Myset->Close();
if(str2.IsEmpty())str2="0";
str2.TrimRight(" ");
CTime tm=CTime::GetCurrentTime();
str1="S";
CString mystr1;
mystr1.Format ("%02d%02d",tm.GetMonth (),tm.GetDay());
str1+=mystr1;	
m_RightNum=str2;
int i=str2.GetLength ();
for(int j=0;j<7-i;j++)
str3+="0";
str3=str1+str3+str2;
m_Number=str3;
GetDlgItem(IDC_EDIT7)->SetWindowText(str3);
UpdateData();
}

void CMovieIn::OnNext() 
{
	// TODO: Add your control notification handler code here
Initiate();
GetDlgItem(IDC_BUTTON1)->EnableWindow(true);

}

void CMovieIn::InputShuju()
{
m_author.TrimRight (" ");
m_Xinghao.TrimRight (" ");
m_Xitong.TrimRight (" ");
CString sql1_,sql2_,sql3_,sql_,sql;
sql1_.Format ("select * from Author where 作者名 = '%s'",m_author);
sql2_.Format ("select * from Xinghao where 型号名 = '%s'",m_Xinghao);
sql3_.Format ("select * from SystemName where 系统名 = '%s'",m_Xitong);
_bstr_t sql1=sql1_;
_bstr_t sql2=sql2_;
_bstr_t sql3=sql3_;
	_RecordsetPtr Myset;
	int HaveNo=0;
	_variant_t Holder;
//判断作者名是否已存入
	Myset.CreateInstance (__uuidof(Recordset));
_bstr_t source=m_strSource;
try{
	Myset->Open (sql1,source,adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error &e){
	AfxMessageBox(e.ErrorMessage());return;}

while(!Myset->adoEOF ){
HaveNo+=1;
	Myset->MoveNext ();
}
Myset->Close();
if(HaveNo==0){
	//输入作者名
	m_authorCtrl.AddString(m_author);
sql_.Format ("insert into Author(作者名) values('%s')",m_author);
_bstr_t sql4=sql_;
try{
	m_DBCnt->Execute(sql4,NULL,adCmdText);}
catch(_com_error &e){
	AfxMessageBox("作者名存入错误!");}}
//判断型号名是否存入表中	
HaveNo=0;
try{
	Myset->Open (sql2,source,adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error &e){
	AfxMessageBox(e.ErrorMessage());return;}

while(!Myset->adoEOF ){
Holder=Myset->GetCollect ("型号名");
	if(Holder.vt!=VT_NULL)
HaveNo+=1;
	Myset->MoveNext ();
}
Myset->Close();
if(HaveNo==0){
	//输入型号名
	m_XinghaoCtrl.AddString(m_Xinghao);
sql_.Format ("insert into Xinghao(型号名) values('%s')",m_Xinghao);
_bstr_t sql5=sql_;
try{
	m_DBCnt->Execute(sql5,NULL,adCmdText);}
catch(_com_error &e){
	AfxMessageBox("型号名存入错误");}
}
//判断系统名是否存入表中
 HaveNo=0;
	Myset.CreateInstance (__uuidof(Recordset));
try{
	Myset->Open (sql3,source,adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error &e){
	AfxMessageBox(e.ErrorMessage());return;}

while(!Myset->adoEOF ){
	Holder=Myset->GetCollect ("系统名");
	if(Holder.vt!=VT_NULL)
HaveNo+=1;
	Myset->MoveNext ();
}
Myset->Close();
if(HaveNo==0){
	//输入系统名
m_XitongCtrl.AddString(m_Xitong);
sql_.Format ("insert into SystemName(系统名) values('%s')",m_Xitong);
_bstr_t sql6=sql_;
try{
	m_DBCnt->Execute(sql6,NULL,adCmdText);}
catch(_com_error &e){
	AfxMessageBox("系统名存入错误");}}

}

void CMovieIn::InputExist()
{
	CString Mysql_,str1,str2,str3;
	_RecordsetPtr Myset;
	Myset.CreateInstance (__uuidof(Recordset));
    Mysql_.Format("SELECT DISTINCT 作者名 FROM Author");
    _bstr_t Mysql=Mysql_;
    _bstr_t source=m_strSource;
try{
	Myset->Open (Mysql,source,adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error &e){
	AfxMessageBox(e.ErrorMessage());return;}
    _variant_t Holder;
    while(!Myset->adoEOF ){
	Holder=Myset->GetCollect ("作者名");
	if(Holder.vt!=VT_NULL)
	str2=(char*)(_bstr_t)Holder;
	str2.TrimRight (" ");
	m_authorCtrl.AddString(str2);
	Myset->MoveNext ();
	}
Myset->Close();
((CComboBox*)GetDlgItem(IDC_COMBO4))->SetCurSel(0);
 Mysql_.Format("SELECT DISTINCT 系统名 FROM SystemName");
    _bstr_t Mysql3=Mysql_;
try{
	Myset->Open (Mysql3,source,adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error &e){
	AfxMessageBox(e.ErrorMessage());return;}
    while(!Myset->adoEOF ){
	Holder=Myset->GetCollect ("系统名");
	if(Holder.vt!=VT_NULL)
	str2=(char*)(_bstr_t)Holder;
	str2.TrimRight (" ");
	m_XitongCtrl.AddString(str2);
	Myset->MoveNext ();
	}
Myset->Close();
((CComboBox*)GetDlgItem(IDC_COMBO3))->SetCurSel(0);
 Mysql_.Format("SELECT DISTINCT 型号名 FROM Xinghao");
    _bstr_t Mysql2=Mysql_;
try{
	Myset->Open (Mysql2,source,adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error &e){
	AfxMessageBox(e.ErrorMessage());return;}
    while(!Myset->adoEOF ){
	Holder=Myset->GetCollect ("型号名");
	if(Holder.vt!=VT_NULL)
	str2=(char*)(_bstr_t)Holder;
	str2.TrimRight (" ");
	m_XinghaoCtrl.AddString(str2);
	Myset->MoveNext ();
	}
Myset->Close();
((CComboBox*)GetDlgItem(IDC_COMBO2))->SetCurSel(0);
((CComboBox*)GetDlgItem(IDC_COMBO1))->SetCurSel(0);
//UpdateData(false);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -