GridCtrl控件FAQ

GridCtrl控件FAQ
GridCtrl控件FAQ

GridCtrlEx控件FAQ

目录

GridCtrlEx控件FAQ (1)

1. 一个固定用法 (1)

2. 可以控制单元格是否可以编辑 (3)

3. 在选定一个单元格时,选择整行 (4)

4. 说明添加固定列头和固定行头的方法 (4)

5. 说明填写表格内容的方法 (5)

6. 在选定一行时有响应函数 (6)

7. 由双击的响应函数 (6)

8. 由响应右键点击的函数 (6)

9. 可以方便的删除和添加固定列头 (8)

10.可以设置、删除、添加固定行头 (8)

11.可以在第一个单元格中加入Check控件 (8)

12.可设表格的背景和字体,可设单元格的颜色和字体 (8)

13.可以方便的添加或者删除一行 (9)

14.可以由程序选定某一行 (10)

15.可以由程序自动滚动到某一行,显示在用户面前 (10)

16.说明添加排序功能的方法 (11)

17.说明在单元格中添加或者改变图形的方法 (12)

18.遍历所有的选中行的方法 (12)

19.设置控件允许单选或者多选的方法 (13)

20.设置不要焦点和焦点外框的方法 (13)

21.CGridCtrl的扩展 (14)

1. 一个固定用法

一个常用的用法是将CridCtrl当做ListCtrl那样的用,同时又增加了即时编辑的功能:

以下假设在一个Dlg增加一个GridCtrl的控件:

我们可以按以下步骤进行:

第一步:表格控件加到工程中去

可以有两种方法:

可以使用controls panel中的custom control添加,添加后如下设置:

也可以用菜单View-Resource Symbol添加一个ID号(适用于Create出来的GridCtrl)

controls panel中的custom control添加的可以跳过)

在Dlg的OnCreate函数中添加

m_Grid.Create(……)代码

第四步:创始化控件

在DoDataExchange中添加

DDX_GridControl(pDX, IDC_GRID, m_Grid);

在Dlg的OnInitialDialog中添加如下代码:

//设置控件类似于ListCtrl的表现

m_Grid.SetListMode(TRUE);

//设置控件颜色,这里GetDefaultCell的两个参数分别表示是否是固定行或者是固定列。如果不设定,缺省的颜色为白色。

m_Grid.GetDefaultCell(FALSE, FALSE)->SetBackClr(Color);

//设置控件的固定行为一行,一般是必须的

m_Grid.SetFixedRowCount(1);

//设置控件的固定行或者固定列不能被选中

m_Grid.SetFixedColumnSelection(FALSE);

m_Grid.SetFixedRowSelection(FALSE);

//设置控件是否允许隐藏行或者列

m_Grid.EnableColumnHide(FALSE);

m_Grid.EnableRowHide(FALSE);

//设置控件是否允许编辑

m_Grid.SetEditable(FALSE);

//设置控件是否允许选择

m_Grid.EnableSelection(TRUE);

//设置控件是否允许点击表头排序

m_Grid.SetHeaderSort(TRUE);

//设置控件是否允许多选或者单选

m_Grid.SetSingleRowSelection(TRUE);

m_Grid.SetSingleColSelection(TRUE);

//设置控件的初始行数和列数

m_Grid.SetRowCount(1);

m_Grid.SetColumnCount(4);

//设置控件是否允许自动调整行列大小

m_Grid.SetRowResize(FALSE);

m_Grid.SetColumnResize(FALSE);

//设置控件不要焦点和焦点外框

m_Grid.SetTrackFocusCell(FALSE);

m_Grid.SetFrameFocusCell(FALSE);

第五步:设置控件的内容

强烈建议添加以下Dlg的两个成员函数:

void FillColumn(); //具体内容见4

void FillItem(); //具体内容见5

第六步:设置控件的响应

具体可见6、7、8

其它

在使用过程中经常需要由程式设定选中行,请始终连续使用以下两个语句:m_Grid.SetSelectedRange(nRow,0,

nRow,m_Grid.GetColumnCount()-1)

m_Grid.EnsureVisible(nRow, 0);

其中nRow为要选中的那一行,强烈建议不要将这两句语句放在FillItem()中,这样会导致不灵活

2. 可以控制单元格是否可以编辑

可以设定整张表格为只读

void CGridCtrl::SetEditable(BOOL bEditable = TRUE)

参数设为FALSE,则整张表格为只读。

也可以设定某个单元格为只读

BOOL CGridCtrl::SetItemState(int nRow, int nCol, UINT state)

一般需配合使用UINT CGridCtrl::GetItemState(int nRow, int nCol)

const

比如将单元格(1,1)设为只读

CGridCtrlObject.SetItemState(1,1, m_Grid.GetItemState(1,1) | GVIS_READONLY);

将单元格(1,1)设为正常

CGridCtrlObject.SetItemState(1,1, m_Grid.GetItemState(1,1) & ~GVIS_READONLY);

单元格可用的状态常量

GVIS_FOCUSED // Cell has focus

GVIS_SELECTED // Cell is selected

GVIS_DROPHILITED // Cell is drop highlighted

GVIS_READONLY // Cell is read-only and cannot be edited

GVIS_FIXED // Cell is fixed

GVIS_FIXEDROW // Cell is part of a fixed row

GVIS_FIXEDCOL // Cell is part of a fixed column

GVIS_MODIFIED // Cell has been modified

3. 在选定一个单元格时,选择整行

void CGridCtrl::SetListMode(BOOL bEnableListMode = TRUE)

先设定表格为ListMode

4. 说明添加固定列头和固定行头的方法

CGridCtrlObject.SetFixedColumnCount(NumberFixCol);

CGridCtrlObject.SetFixedRowCount(NumberFixRow);

CGridCtrlObject.SetFixedColumnSelection(FALSE);

CGridCtrlObject.SetFixedRowSelection(FALSE);

添加固定表头的方法如下:

m_Grid.SetFixedRowCount(1); //设定固定行数为1行

const int nColumnNum=3;

m_Grid.SetColumnCount(nColumnNum);

int nWidth[nColumnNum];

nWidth[0]=60;

nWidth[1]=120;

nWidth[2]=120;

for(int i=0; i

m_Grid.SetColumnWidth(i, nWidth[i]);

i=0;

m_Grid.SetItemText(0,i++,"第一列");

m_Grid.SetItemText(0,i++,"第二列");

m_Grid.SetItemText(0,i++,"第三列");

5. 说明填写表格内容的方法

●简单的方法是调用

BOOL CGridCtrl::SetItemText(int nRow, int nCol, LPCTSTR str) 例如CGridCtrlObject.SetItemText(1,1, _T("12345"));

●复杂但更灵活的方法是采用如下的方法:

GV_ITEM Item;//一个结构

设定这个结构的成员参数,然后将这个结构传递给表格,

CGridCtrlObject.SetItem(&Item);

注:

typedef struct _GV_ITEM {

int row,col; // Row and Column of item

UINT mask; // Mask for use in getting/setting cell data

UINT state; // cell state (focus/hilighted etc) UINT nFormat; // Format of cell. Default imaplentation

// used CDC::DrawText formats

CString szText; // Text in cell

int iImage; // index of the list view item’s icon

COLORREF crBkClr; // Background colour (or

CLR_DEFAULT)

COLORREF crFgClr; // Forground colour (or

CLR_DEFAULT)

LPARAM lParam; // 32-bit value to associate with item

LOGFONT lfFont; // cell font

} GV_ITEM;

例如以下代码可以设置表格内容:

m_GridCtrl.SetRowCount(3);

m_GridCtrl.SetItemText(1, 0, "第一格");

m_GridCtrl.SetItemText(1, 1, "第二格");

m_GridCtrl.SetItemText(1, 2, "第三格");

m_GridCtrl.SetItemText(2, 0, "第四格");

m_GridCtrl.SetItemText(2, 1, "第五格");

m_GridCtrl.SetItemText(2, 2, "第六格");

m_GridCtrl.ExpandColumnsToFit();

6. 在选定一行时有响应函数

7. 由双击的响应函数

8. 由响应右键点击的函数

A:

当进行单击,双击或右击单元格等操作时,表格会发送响应的消息,可以在父窗口添加处理消息的函数,做法如下:

GVN_BEGINDRAG // Sent when dragging starts

GVN_BEGINLABELEDIT // Sent when inplace editing starts

GVN_ENDLABELEDIT // Sent when inplace editing stops

GVN_SELCHANGING // Sent just before cell selection changes GVN_SELCHANGED // Sent after cell selection changes

GVN_GETDISPINFO // A request for cell information when the grid is

// in virtual mode

GVN_ODCACHEHINT // Cache hint when in virtual mode

右键点击,按键盘响应消息在扩展中实现了,可参见条款21

以下需要手工添加

H文件中:

// Generated message map functions

//{{AFX_MSG(CDlgSectionLib)

//}}AFX_MSG

afx_msg void OnGridDblClick(NMHDR *pNotifyStruct, LRESULT* pResult);

afx_msg void OnGridClick(NMHDR *pNotifyStruct, LRESULT* pResult);

afx_msg void OnGridEndSelChange(NMHDR *pNotifyStruct, LRESULT*

pResult);

DECLARE_MESSAGE_MAP()

CPP文件中:

BEGIN_MESSAGE_MAP(CDlgSectionLib, CDialog)

//{{AFX_MSG_MAP(CDlgSectionLib)

//}}AFX_MSG_MAP

ON_NOTIFY(NM_DBLCLK, IDC_GRID, OnGridDblClick)

ON_NOTIFY(NM_CLICK, IDC_GRID, OnGridClick)

ON_NOTIFY(GVN_SELCHANGED, IDC_GRID, OnGridEndSelChange)

END_MESSAGE_MAP()

然后自定义响应函数

void CDlgSectionLib::OnGridDblClick(NMHDR *pNotifyStruct, LRESULT* pResult)

{

NM_GRIDVIEW* pItem = (NM_GRIDVIEW*) pNotifyStruct;

pItem->iRow, pItem->iColumn;//得到当前行、列

}

// This structure sent to Grid's parent in a WM_NOTIFY message

typedef struct tagNM_GRIDVIEW {

NMHDR hdr;

int iRow;

int iColumn;

} NM_GRIDVIEW;

typedef struct tagNMHDR {

HWND hwndFrom; // handle of control sending message

UINT idFrom;// identifier of control sending message

UINT code; // notification code; see below

} NMHDR;

NM_CLICK The user has clicked the left mouse button within the control.

NM_DBLCLK The user has double-clicked the left mouse button within the control.

NM_KILLFOCUS The control has lost the input focus.

NM_OUTOFMEMORY The control could not complete an operation because there is not enough memory available.

NM_RCLICK The user has clicked the right mouse button within the control.

NM_RDBLCLK The user has double-clicked the right mouse button within the control.

NM_RETURN The control has the input focus, and the user has pressed the ENTER key.

NM_SETFOCUS The control has received the input focus.

9. 可以方便的删除和添加固定列头

10.可以设置、删除、添加固定行头

A:

参考(4)&(5)

删除可以用以下一些函数

BOOL DeleteColumn(int nColumn);

BOOL DeleteRow(int nRow);

BOOL DeleteNonFixedRows();

BOOL DeleteAllItems();

11.可以在第一个单元格中加入Check控件

A:

#include "NewCellTypes/GridCellCheck.h"//包含头文件

BOOL CGridCtrl::SetCellType(int nRow, int nCol, CRuntimeClass* pRuntimeClass);

比如:CGridCtrlObject.SetCellType(1,1, RUNTIME_CLASS(CGridCellCheck));

12.可设表格的背景和字体,可设单元格的颜色和字体

设置表格的颜色CGridCtrlObject.GetDefaultCell(FALSE,

ALSE)->SetBackClr(RGB(xxx,xxx,xxx));

下面的函数均可以调用:

virtual void CGridCtrl::SetTextClr(COLORREF clr);

virtual void CGridCtrl::SetBackClr(COLORREF clr);

virtual void CGridCtrl::SetFont(const LOGFONT* plf);

设置单元格的背景颜色和前景颜色

BOOL CGridCtrl::SetItemBkColour(int nRow, int nCol, COLORREF cr = CLR_DEFAULT)

BOOL CGridCtrl::SetItemFgColour(int nRow, int nCol, COLORREF cr = CLR_DEFAULT)

BOOL CGridCtrl::SetItemFont(int nRow, int nCol, LOGFONT*lf)

颜色:

COLORREF clr = RGB(xxx,xxx,xxx);

字体:

CFont* pFont = m_Grid.GetFont();

LOGFONT lf;

pFont->GetLogFont(&lf);

memcpy(lf.lfFaceName, _T("Arial"), 6);

lf.lfEscapement = 900;

lf.lfOrientation = 900;

关于单元格的格式都可以通过下述方法设定,同前面关于设置单元格内容(4)的方法

GV_ITEM Item

设置单元格格式

Item.crBkClr = ?;

Item.crFgClr = ?;

Item.mask |= (GVIF_BKCLR|GVIF_FGCLR);

Item.lfFont=?;

SetItem(&Item);

13.可以方便的添加或者删除一行

int CGridCtrl::InsertColumn(LPCTSTR strHeading,UINT nFormat, int nColumn = -1)

int CGridCtrl::InsertRow(LPCTSTR strHeading, int nRow = -1) BOOL DeleteColumn(int nColumn)

BOOL DeleteRow(int nRow)

例如:

CGridCtrlObject.InsertRow(_T("Newest Row"), nRow);

CGridCtrlObject.DeleteRow(nRow);

CGridCtrlObject.Invalidate();//这句是必需的。

14.可以由程序选定某一行

可以调用以下函数:

void SelectRow(int row) //该函数在扩展中实现了,具体可参见条款21

也可以调用以下函数:

void SetSelectedRange(const CCellRange& Range, BOOL bForceRepaint = FALSE);

void SetSelectedRange(int nMinRow, int nMinCol, int nMaxRow, int nMaxCol, BOOL bForceRepaint = FALSE);

CCellID SetFocusCell(CCellID cell);

CCellID SetFocusCell(int nRow, int nCol);

class CCellID

{

public:

int row, col; // The zero based row and column of the cell. CCellID(int nRow = -1, int nCol = -1)

int IsValid();

int operator==(const CCellID& rhs);

int operator!=(const CCellID& rhs);

}

也可以调用BOOL CGridCtrl::SetRowFocusAndSelection(int nRow,int nCol=0)

这个函数选中第nRow行,同时将焦点置于第nRow行0,第nCol列。成功则返回TRUE,失败则返回FALSE.

15.可以由程序自动滚动到某一行,显示在用户面前

调用void CGridCtrl::AutoScrollToRow(int nRow)

也可以使用

void EnsureVisible(CCellID &cell)

void EnsureVisible(int nRow, int nCol);

16.说明添加排序功能的方法

调用如下函数:

void CGridCtrl::SetListMode(BOOL bEnableListMode = TRUE)

void CGridCtrl::SetHeaderSort(BOOL bSortOnClick = TRUE)

void CGridCtrl::SetCompareFunction(PFNLVCOMPARE pfnCompare)

如果想实现排序,必须先调用

CGridCtrlObject.SetListMode(TRUE);

CGridCtrlObject.SetHeaderSort(TRUE);

然后设置比较函数:

CGridCtrlObject.SetCompareFunction(CGridCtrl::pfnCellNumericCompare);//数值排序

CGridCtrlObject.SetCompareFunction(CGridCtrl:: pfnCellTextCompare);//字符排序CGridCtrlObject.SetCompareFunction(NULL);//调用缺省的排序模式,即字符排序字符排序和数值排序是控件已提供的排序模式,也可以自定义排序函数,例子如下:

int CALLBACK pfnCellCompare(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)

比较函数必须是全局的或是静态的。

int CALLBACK MyClass::pfnCellNumericCompare(LPARAM lParam1, LPARAM lParam2,

LPARAM lParamSort) {

CGridCellBase* pCell1 = (CGridCellBase*) lParam1;

CGridCellBase* pCell2 = (CGridCellBase*) lParam2;

if (!pCell1 || !pCell2) return 0;

int nValue1 = _ttol(pCell1->GetText());

int nValue2 = _ttol(pCell2->GetText());

if (nValue1 < nValue2)

return -1;

else if (nValue1 == nValue2)

return 0;

else

return 1;

}

17.说明在单元格中添加或者改变图形的方法

也可以这样实现

头文件

的ID如:IDB_IMAGES), 16, 1,

然后调用

BOOL CGridCtrl::SetItemImage(int nRow, int nCol, int iImage) 也可以采用(4)中设置单元格的文字内容的方法:

GV_ITEM Item;

Item.iImage =index;

Item.mask |= (GVIF_IMAGE);

CGridCtrlObject.SetItem(&Item);

18.遍历所有的选中行的方法

GVNI_FOCUSED // Search for focus cell

GVNI_SELECTED // Search for selected cells

GVNI_DROPHILITED // Search for drop highlighted cells

GVNI_READONLY // Search for read-only cells

GVNI_FIXED // Search for fixed cells

GVNI_MODIFIED // Search for modified cells

GVNI_ABOVE // Search above initial cell

GVNI_BELOW // Search below initial cell

GVNI_TOLEFT // Search to the left of the initial cell GVNI_TORIGHT // Search to the right of the initial cell GVNI_ALL // Search all cells in the grid starting from

// the given cell

GVNI_AREA // Search all cells below and to the right of // the given cell

CellID GetNextItem(CCellID& cell, int nFlags) const,使用方

法参见CListCtrl::GetNextItem(MSDN)

下面两个函数也值得注意:

BOOL IsCellSelected(CCellID &cell) const

BOOL IsCellSelected(CCellID cell) const

因为遍历同时要进行的具体操作不尽相同,所以我们要在使用时结合GetNextItem函数自己设计函数,这样就可以实现遍历操作了。

推荐使用以下用法:

int sel=m_Grid.GetNextRow(-1, GVNI_SELECTED);

while(sel!=-1)

{

//做一些事情

sel=m_Grid.GetNextRow(sel, 2);

//那个GVNI_SELECTED的值是2,其中GetNextRow是扩展定义的函数,

见21款

}

我们也可以设计一个函数,对所有单元便历,找到选中的单元

std::list BeSelectedList;

for(int i=0;i

for(int j=0;j

CCellID unit(i,j);

if(IsCellSelected(unit))

BeSelectedList.push_back(unit);

}

}

19.设置控件允许单选或者多选的方法

m_Grid. SendMessageToParent (TRUE);

m_Grid.SetSingleColSelection(TRUE);

20.设置不要焦点和焦点外框的方法

m_Grid.SetTrackFocusCell(FALSE);

m_Grid.SetFrameFocusCell(FALSE);

21.CGridCtrl的扩展

为了方便使用,我们对CGridCtrl控件进行了扩展,涉及到以下一些方面:

●添加了void CGridCtrl::SelectRow(int row)函数,可以方面的选

中一行。

●添加了int CGridCtrl::GetNextRow(int nRow, int nFlags)

const函数,可以快速的找到选中行、有焦点的行等等。

●添加了LRESULT CGridCtrl::SendKeyMessage(WORD wVKey, UINT

flags) const函数,用于向父窗口发送键盘消息,在父窗口中用ON_NOTIFY(WM_KEYDOWN, , <响应函数>)即可接受。

●扩展了SendMessageToParent函数,在向父窗口发送的信息中携带了鼠

标位置信息。

●添加了向父窗口发送鼠标右键点击消息。

●添加了向父窗口发送点击表头的信息(原来只定义了常量,没有发送该消

息)。

MFC 中使用GRIDCONTROL第三方表格控件的方法(用custom control控件)2010-07-11 10:40

1.在GridCtrl.h文件中注册类

BOOL CGridCtrl::RegisterWindowClass()

{

WNDCLASS wndcls;

//HINSTANCE hInst = AfxGetInstanceHandle();

HINSTANCE hInst = AfxGetResourceHandle();

if (!(::GetClassInfo(hInst, _T("MyCon"), &wndcls)))

{

// otherwise we need to register a new class

wndcls.style = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;

wndcls.lpfnWndProc = ::DefWindowProc;

wndcls.cbClsExtra = wndcls.cbWndExtra = 0;

wndcls.hInstance = hInst;

wndcls.hIcon = NULL;

#ifndef _WIN32_WCE_NO_CURSOR

wndcls.hCursor =

AfxGetApp()->LoadStandardCursor(IDC_ARROW);

#else

wndcls.hCursor = 0;

#endif

wndcls.hbrBackground = (HBRUSH) (COLOR_3DFACE + 1); wndcls.lpszMenuName = NULL;

wndcls.lpszClassName = _T("MyCon");

if (!AfxRegisterClass(&wndcls))

{

AfxThrowResourceException();

return FALSE;

}

}

return TRUE;

}

2.在GridCtrl.h 文件中

CGridCtrl::CGridCtrl(int nRows, int nCols, int nFixedRows, int nFixedCols)

{

RegisterWindowClass(); //调用上述类MyCon

//后续处理

}

3.定义相关变量

int m_nFixCols;

int m_nFixRows;

int m_nCols;

int m_nRows;

CSize m_OldSize;

CGridCtrl m_Grid; //表格类变量

DDX_Control(pDX, IDC_GRID, m_Grid);//custom control控件变量将该控件的Class属性设置为MyCon

4.使用:

void CZServerView::OnInitialUpdate()

{

CFormView::OnInitialUpdate();

GetParentFrame()->RecalcLayout();

ResizeParentToFit();

UINT_PTR iInstallresult;

iInstallresult=SetTimer(1,1000,NULL);

CRect rect;

GetClientRect(rect);

m_OldSize = CSize(rect.Width(), rect.Height());

m_Grid.EnableDragAndDrop(TRUE);

m_Grid.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF,

0xE0));

m_nFixCols = 1;

m_nFixRows = 1;

m_nCols = 13;

m_nRows = 0;

m_Grid.SetAutoSizeStyle();

TRY {

m_Grid.SetRowCount(m_nRows);

m_Grid.SetColumnCount(m_nCols);

m_Grid.SetFixedRowCount(m_nFixRows);

m_Grid.SetFixedColumnCount(m_nFixCols);

}

CATCH (CMemoryException, e)

{

e->ReportError();

//return TRUE;

}

END_CATCH

char colname[12][50]={"设备编号","卡口地点","行驶方向","号牌号码","号牌种类","经过时间","车辆速度","车长","号牌颜色","车辆类型","报警类型","车道"};

for (int col = 1; col < m_Grid.GetColumnCount(); col++)

{

CString str;

GV_ITEM Item;

Item.mask = GVIF_TEXT;

Item.row = 0;

Item.col = col;

str=colname[col-1];

Item.strText = str;

m_Grid.SetItem(&Item);

}

m_Grid.SetFixedColumnCount(1);

m_Grid.SetEditable(false);

m_Grid.EnableDragAndDrop(FALSE);

m_Grid.AutoSizeRows();

m_Grid.AutoSizeColumns(GVS_BOTH); ////让列宽度自动适合控件(同时适应数据和值)

m_Grid.ExpandLastColumn(); ////让最后一列宽度自适应控件的剩余部分

GridCtrl函数详解

CGridCtrl控件

控件的特点:

●使用鼠标可以进行单元格的选择,还可以辅助ctrl和shift的组合键进行选

择。也可以取消选择。

● 行和列可以按照大小进行重排,还可以取消对行、列或两者的排序。

● 双击区分点,行或者列可以按照大小自动排序

● 可以对任何列或行固定

● 单元格可以有不同文本和背景颜色的个性化设置

● 单元格可以有字体的个性化设置

● 单元格可以标注"只读"或者其他的状态设置及检测

● OLE的拖放动作

● Ctrl-C, Ctrl-X和Ctrl-V执行拷贝、剪切、粘贴操作,Ctrl-A全选

● 当单元格成为焦点,并且在单元格的编辑区域按下字符键,就意味着在

那个单元格进行编辑了

● 支持微软的智能鼠标

● 可以在单元格中加入图片

● 对大型数据可以使用"虚拟"模式

● 充分的打印支持,支持文档/浏览环境(包括打印预览)或是基于会话的应用(不支持打印预览)

● 可选的"列表模式",包括对行的全选或单选,还有单击列标题提示进行插入的操作。

● 众多的虚函数可以很容易对控件进行功能扩充

● 支持UNICODE

● 支持WinCE

● 单元格的标题提示太小不能显示数据

● 可以隐藏行和列

● 在VC4.2、5.0、6.0和CE工具箱2.0、3.0下编译通过

示例中示范了grid控件中大部分特征

文档

如果想在你的工程中使用这个Grid控件的话,你还得在你的工程中添加一些文件:

gridctrl.cpp, gridctrl.h Grid控件资源文件和头文件

gridcellbase.cpp, gridcellbase.h 单元格的基础类

gridcell.cpp, gridcell.h 单元格的默认执行文件

CellRange.h CcellID和CcellRange类的定义

MemDC.h Keith Rule's的直接存储类

InPlaceEdit.cpp, InPlaceEdit.h 定位编辑窗口的源文件和头文件

GridDropTarget.cpp, GridDropTarget.h Grid容器的drag和drop对象只有在gridctrl.h中没有定义GRIDCONTROL_NO_DRAGDROP的时候才有必要使用。

Titletip.cpp, Titletip.h 从Zafir Anjum那里的到的单元格标题提示. 只有在gridctrl.h中没有定义GRIDCONTROL_NO_TITLETIPS 的时候才有必要使用结构

这个Grid是基于一种框架(CgridCtrl工程),这种框架组织和控制那些容纳数据、执行某些操作如画图、句柄方法如按钮的点击事件的单元格的动作。Grid 工程本身的句柄事件如点击是在单元格之前响应,如果它认为有必要的话,它还会发送某种鼠标信息。它还包含一个拖曳对象(CGridDropTarget)和一个标题提示对象(CTitleTip),前者处理拖曳操作,后者在单元格物理空间在最大限度内不足以显示其内容时可以显示出其内容。Grid单元格可以是任何类型,其长度与源自CgridBaseCell的类的长度一样。包含这个包的是一个CgridCell类,它能处理基本的数据存储和编辑操作。扩充的两个类CgridCellCombo和CGridURLCell示范了如何创建自己的单元格类。

单元格有两种主要状态即固定和非固定。固定的单元格通常在Grid的左上方,并且不会随着Grid的卷动而移动。通常这些单元格包含列和行的标题部分,并且不能进行编辑。而非固定的单元格构成了Grid的内部,你可以对它进行编辑和选择。

Grid的各种不同属性的默认值存放在CgridDefaultCell中。每个Grid中通常有四种属性--每个Grid中含有非固定、列固定、行固定以及行列同时固定的单

元格的默认值。因此,为了实现设置Grid的默认属性,首先得使用CGridCtrL::GetDefaultCell来取得单元格的默认实现,然后你就可以直接设置了

单元格的属性除字体属性外都很明确。每一个单元格都有一个指向字体结构体的指针,这个指针只有当你的自行设置单元格的字体属性时才会被分配和使用。

Grid还有一种虚拟模式阻止Grid创建实际的格子,每当它需要单元格的信息时,允许你的指定一种回收函数或者消息机制来获得。这样当工作轻微减少时可以节省大量的内存费用。发送给Grid父类的消息GVN_ODCACHEHINT可以帮助你的在Grid的单元格发送信息请求时预先进行数据缓冲。

Grid的数据是以行为单位进行存储的,所以,对于大量单元格而言,所有的操作都必须以行为单位进行的

解说

好了--那么,现在如何使用它呢?

Grid的基本类是源于CWnd的CgridCtrl。为了使用它,你可以使用微软的VC++的对话框编辑器,把一个普通的控件放在对话框上,并且输入"MFCGridCtrl"(不包括引号)作为类名。Grid的子类使用DDX机制(可以通过ClassWizard来进行默认设置),使用DDX_GridControl函数代替DDX_Control (可以通过手动设置ClassWizard的输入来实现)。这些保证你的控件作为一个注册对象而不会产生一些莫名其妙的WIN95问题。

你也可以选择使用CGridCtrl::Create

CGridCtrl grid;

grid.Create(rect, pParentWnd, nID);

其中的rect是大小,pParentWnd是父窗口,nID是标志符

列和行的数目

int GetRowCount() const 返回行(包括固定行)的数目

int GetColumnCount() const 返回列(包括固定列)的数目

int GetFixedRowCount() const 返回固定行的数目

int GetFixedColumnCount() const 返回固定行的数目

BOOL SetRowCount(int nRows) 设置行的数目(包括固定行),如果成功,返回TRUE

BOOL SetColumnCount(int nCols) 设置列的数目(包括固定列),如果成功,返回TRUE

BOOL SetFixedRowCount(int nFixedRows = 1) 设置固定行的数目,如果成功,返回TRUE

BOOL SetFixedColumnCount(int nFixedCols = 1) 设置固定列的数目,如果成功,返回TRUE

信息系统开发实训报告

目录 一、实践目的 (3) 二、实践任务 (3) 三、解决方案 (4) 1.开发环境 (4) 2.运行所需软件安装与配置 (4) 3.技术方案 (4) 4.解决步骤 (5) 四、实践过程 (5) 1.环境搭建 (5) 2.导入案例 (11) 3.系统分析 (14) 4.编码实现 (15) 5.界面美化 (18) 6.测试调试 (18) 7.运行结果 (18) 五、实训总结 (23) 1.Web应用的建立过程 (24) 2.Web应用的调试步骤与技巧 (25) 3.项目部署与项目拷贝的异同 (27) 4. MySQL 软件、SQLyog 软件、jdbc 连接 jar 包、数据库、表之间的关系 (28) 5. JDK、Tomcat、MyEclipse 之间的关系 (28) 6. severlet、服务类、JSP、JS 之间的配合关系 (28) 7. JSP 页面间的信息传递方式 (29) 六、实践体会与建议 (29) 1.实训日志 (29) 2.实践体会 (30) 3.改进建议 (30)

一、实践目的 本次实践具体目的是通过使用MyEclipse和Sublime Text编辑器,编写代码,使用Java构建系统的后端、HTML\CSS\JavaScript搭建网页、连接MySQL数据库实现挂账信息的增删改查。利用Tomcat应用服务器响应访问请求,搭建一个挂账信息系统,使我们初步熟悉相关软件的操作以及MySQL语句的调用,增强我们对编程的认知,提高我们的兴趣,有利于我们之后的编程语言及数据库学习。 二、实践任务 从表库中选择第14张表挂账单表,开发一个操作挂账单表的 java Web 应用程序,实现所选表信息的增删改查,在 Web Form 中动态显示表或视图中的数据。

信息系统开发实验报告:大学生创新创业项目管理系统地数据库设计

WORD格式 课程实验报告 专业年级 课程名称信息系统开发 指导教师 学生姓名 学号 实验日期2016年11月22日 实验地点 实验成绩 教务处制 2016年11月27日

WORD格式 实验项目大学生创新创业项目管理系统的数据库设计 名称 1、了解数据库的设计步骤; 实验 2、熟练掌握MicrosoftVisio;目 的及要求 3、熟练掌握E-R图的绘制; 4、掌握将数据库概念结构转化为逻辑结构的步骤。 1、采用MicrosoftVisio完成大学生创新创业项目管理系统的数据库的所有实 验 E-R图的绘制; 内容 2、根据E-R图,使用SQLServer2000作为DBM,S完成数据库的设计。 一.设置数据库实体及其属性 1、学生 属性:略 2、指导教师 属性:工号、姓名、学历、学位、专业、职称、职务、QQ、WX、手机号码、密码 3、工作人员 属性:工号、姓名、职务、QQ、WX、手机号码、密码 4、项目 属性:项目编号、项目名称、项目类型、申请人、申请时间、申请书、指导教师、指导 意见、审核意见、审核人、审核时间、是否立项 5、开题报告 实验步骤属性:报告编号、所属项目、摘要、报告附件、上传时间、指导教师意见、审核意见、审核人、审核时间、审核结果 6、实践学习 属性:编号、所属项目、类型、内容、附件 7、结项申请 属性:申请编号、所属项目、内容摘要、附件、指导教师意见、审核意见、审核人、审 核时间、审核结果 8、项目成果 属性:成果编号,所属项目、成果内容、附件、指导教师意见、审核意见、审核人、审 核时间、审核结果 二.绘制总体的E-R图

三.绘制各个实体的E-R图1.学生实体E-R图 2.指导教师实体E-R图

信息系统项目开发实训报告模板

烟台南山学院 管理科学与工程系 实训报告 项目:高校教材管理系统 姓名:杨小辉 专业:信息管理与信息系统 班级: 学号: 指导教师: 完成时间:

摘要 UML是当前面向对象分析和设计过程中使用的一种建模语言,是重要的图形化建模工具。UML能让系统开发者用标准的、易于理解的方式表达出对系统正确、完整的认识,并有利于在开发团队中进行有效地沟通和共享。本文以高校教材管理系统的开发为背景,使用UML进行高校教材管理系统的建模,进行软件开发,以缩短项目开发周期,降低了代码数量,提高了系统的可维护性,以摆脱传统的手工管理模式,从而便于管理决策人员迅速掌握情况,加快教务管理工作的现代化进程。

目录 一、引言 (1) 1.1 背景 (1) 1.2 UML工具简介 (1) 二、系统概述 (2) 2.1 项目说明 (2) 2.2系统的分析与设计 (2) 三、创建系统模型 (5) 3.1系统建模过程 (5) 3.2建立用例图 (5) 3.3 创建系统静态模型 (7) 3.4 系统的动态模型 (8) 四、建立实现模型 (16) 五、结束语 (17) 参考文献 (18)

一、引言 1.1 背景 随着高等学校扩大招生情况的出现,每一个高校需要处理的各种教材的数量逐年倍增。如何改变低效率的原始教材管理方式,成为摆在高校管理人员面前的一个重要课题。作为教务管理工作的一个组成部分.教材管理工作要处理的数据量非常巨大,涉及各院系的师生以及个部门的校务人员。为提高工作效率和工作质量,通过计算机系统对其进行管理。以摆脱传统的人工操作.显得非常重要。而建立高效的教材管理系统就是一个解决此根本问题的思路这里将介绍一个高校教材管理系统的建模实例。 1.2 UML工具简介 统一建模语言 (UML)是非专利的第三代建模和规范语言。UML 可以贯穿软件开发周期中的每一个阶段,因此被 OMG采纳作为行业标准。UML 最适于数据建模,业务建模,对象建模,组件建模等,并同时可以对任何具有静态结构和动态行为的系统进行建模。UML 作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。当模型建立之后,模型可以被 UML 工具转化成指定的程序语言代码。 IBM 的 Rational Rose 和 MS 的 Visio 都是 UML 工具软件。标准建模语言 UML 的重要内容可以由五类图(十种图形)来定义,如表所示:

管理信息系统企业分析与设计报告模板

管理信息系统企业分析与设计报告

企业信息系统分析与设计 院系:数信分院 专业:信息管理与信息系统班级: .11 姓名:刘鑫 学号: 08341117

摘要 酒店管理系统是典型的信息管理系统的一部份,而且是必不可少的一部份。其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起简洁且资料一致性和完整性强、资料安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。 建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。现代化的酒店组织庞大、服务项目多、信息量大,要想提高劳动生产、降低成本、提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理。酒店管理系统正是为此而设计的。优秀的酒店客房管理系统操作方便,灵活性好,系统安全性高,运行稳定。

第一章、酒店管理系统分析 1、企业现状分析 当前大多数酒店提供的服务多种多样,规模大小也各不相同,但稍具规模的酒店必含下面三类服务:饮食、住宿和娱乐。随着市场的进一步开放,酒店行业竞争日趋白热化。酒店管理水平和服务质量的高低是能否赢得顾客、稳定客源的决定因素,而采用信息化网络是提高管理水平的重要手段。如何借助IT技术,提供更为有效的网络信息共享,内部精细化管理,为客户提供良好安全的上网环境,已是酒店企业的信息化发展必须面正确问题。现代酒店信息化管理走向开放的方向是酒店办公自动化。经过在酒店内实现办公自动化,方便、快捷、准确地传递信息,这也是现代酒店管理者非常重视的问题之一。 当前市面上的酒店计算机管理软件,已经覆盖了酒店的大部分业务。同时由于近几年酒店计算机硬件的大量更新与购入,在酒店内使用NOVELL和Windows NT等网络操作系统平台的也越来越多,使得在酒店内实现办公自动化的硬件平台基本成熟,而酒店业管理在日常业务中实现办公自动化的需求也与日俱增。 1.1酒店管理目标 酒店管理的侧重面在于酒店内部,针对酒店具体的业务活动,即酒店管理者经过计划、组织、督导、沟通、协调、控制、预算、激励等管理手段使酒店人、财、物等投入最小,但又能完成酒店的预定目标。其所包含的主要内容是:按科学管理的要求组

信息系统开发实验报告

信息系统开发实验概 通过一系列实验完成一个实例员工管理系统的开发过程,将系统开发各个阶段的基本活动贯穿起来,从而对管理信息系统的开发形成一个全面、整体的理解和认识。 ㈠员工管理系统的开发背景 绿油油公司为了便于掌握和了解员工的基本情况,需要建立一个能够储存员工各种信息,对员工可以进行信息的浏览、添加、删除、保存的操作。 ㈡员工管理系统实验内容 通过实际建立一个完整的信息系统来加深对信息系统开发理论知识的理解与认识,掌握使用PowerBuilder数据库画板完成在Sql Anywhere 中创建后台数据库、数据表,以及定义各表的主键及外部键等各种操作。建立MDI风格的应用程序框架,并与数据库建立连接,使用 PowerBuilder中提供的菜单编辑画板创建一个菜单对象。使用 PowerBuilder中提供的各种类型的窗体和基本控件创建各个功能模块的相应窗体对象。使用 PowerBuilder中提供的数据窗口对象和数据窗口控件完成对数据库中各类数据的增加、修改、删除操作等操作。

实验Ⅰ数据库设计 实验内容: ㈠在D盘的“实验报告”目录下创建名为YGGL的数据库。 实验步骤: ①单击工具栏上的Database图标,打开数据库画板,在其工作窗口中弹出一个Select Tables对话框,如图1所示。单击其中的 ②从File菜单中单击Create Database...菜单项,打开Create Local Database对话框。 ③在Database Name文本框中输入要创建数据库的路径和文件。 ④在UerID文本框中输入数据库用户名,默认值为DBA。 ⑤在Password文本框中输入密码,默认值为SQL。 ⑥在Start Command文本框中输入启动数据库系统的程序名称,一般使用系统的默认值dbeng50。此时,操作结果如图2所示。 ⑦单击OK按钮完成数据库的创建,并连接到新建数据库上。 ㈡在刚建立的MISYGGL库中创建一个员工卡片表YGKP和一个部门卡片表BMKP以及用户表YH,其结构如表1和表2 、表3所示。 表1员工卡片表YGKP

学生信息管理系统项目开发总结报告

项目开发总结报告 1引言 1、1编写目的 为了总结报告在工作过程中产生的问题、获得的经验, 并且总结报告设计与制作者过程中的逻辑与想法,以便在以后的生产与学习过程中得到进一步提高。 1、2背景 说明: a.本项目名称:学生信息管理系统; b.此软件的任务提出者:小组; 开发者:全体小组成员。 1、3定义 服务器端API :服务器端设计者通过规范的API文档,提供给客户端,以方便客户端的开发,使得同时进行,提高效率,节约时间。两端通过protocol(协议类)进行通信; 用户:用户代指学生用户以及任课教师用户; 管理员:负责程序后台管理的工作人员。 1、4参考资料 《项目需求说明书》 《项目详细设计说明书》 《项目概要设计说明书》 参考资料: 《软件工程导论》 《软件文档编写》 2实际开发结果 2、1产品 产品名称:学生成绩管理系统

产品功能: 软件部分:能够管理与统计表学生成绩,支持老师输入,修改以及查询学生成绩,支持学生查询号自己的成绩与相关资料,支持管理员对学生信息的相关操作。 数据库部分:支持管理员将学生的相关信息在数据库中进行增加,删除与修改。 2、2主要功能与性能 功能: 2、2、1管理员功能 2、2、1、1学籍管理 (1)学生注册: 新学年一到,新生到学生注册出去注册,那么注册员可以接受新生的注册信息,那么信息就包括学生的基本信息以及简历: (2)学生信息查询: 用户可以根据学生的姓名、学号、班级、专业对学生的学籍信息进行查询 (3)学生毕业 可以成批地处理学生毕业,当然也可以设置学生毕业后学校对她们的资料保存期限 (4)修改学籍号 用户可以对学生的学号进行更改 (5)学籍变动 学籍变动包括学生学生换班、退学、插班、结业、休学等操作 2、1、1、2收费管理 (1)学生缴费标准 根据国家收费标准设置各个系各个专业的每年的学费、书费、住宿费等。 (2)学生缴费 该接口可实现学生的缴费操作。 (3)学生缴费查询 该接口能够以多个关键字对学生学费情况、以及各专业的收费标准进行查询。 (4)学生欠费统计 能够十分方便地统计每个班的缴费情况,以催促欠费学生尽快缴清 2、1、1、3班级管理 (1)班级添加 能够十分方便地添加班级,其中包括班级所在专业、班主任、班干部信息等。 (2)班级修改 修改班级情况,如辅导员、教室等 (3)班级拆、合 可以方便地实现班级的拆、合。 2、1、2教师功能 2、1、2、1成绩管理 (1)成绩录入

管理信息系统可行性分析报告

研究生管理信息系统可行性分析报告 一系统建立的背景及意义 1.系统建立的背景 随着学校校研究生招生人数的不断增长,研究生的管理工作以日趋繁重,由于研究生培养方式灵活,更给管理工作带来了难度。为学校研究生管理部门建立一套网络化的研究生管理信息系统已经迫在眉睫。学校研发的研究生管理信息系统通过对学生选课、课表编排、成绩查询和分析等管理事务的网络化和自动化,减少了研究生管理工作中大量烦杂的工作。 2.现在系统存在的问题分析 (1)网络环境的可扩展性不够大 (2)选课管理、排课管理功能不够简便 (3)教学计划的制定、选课管理、课表的编排、考试的安排、成绩的录入查询信息不便 二系统的可行性研究 1.系统的开发方式和目标 学校需要一套管理信息系统,能够通过对学生选课、课表编排、成绩查询和分析等管理事务的网络化和自动化,减少了研究生管理工作中大量烦杂的工作。 根据学校的状况,迫切需要一套管理系统: (1)购置商品化的系统 (2)根据自身实际情况,自行开发系统 通过管理部门讨论,认为购买商品化的系统软件有以下弊端(1)经费支出大 (2)功能难以适合学校的实际情况 鉴于此,最好的方法就是自行组织开发系统 2.系统的可行性分析 (1)系统实施运行的可行性 各部门人员都已经熟练掌握计算机的基本实用方法和操作技能,对新系统的开发表达出极大的热情,提出了很多好的建议和要求 (2)技术上的可行性

本系统在网络环境下,采用客户机/服务器形式利用最先进的开发工具和开发平台(服务器操作系统:Miorosoft中文Windows NT 4. 0;数据库系统: MSSQL Server 6.5For Windows NT.客户机操作系统: Microsoft中文 Windows 95;软件开发工具为: Power Builder 5 0 F0r Windows 95)系统在数据库设计方面,完全依据国家教委、国务院学位委员会最新颁布的‘高等学校和科研机构研究生管理基本信息集”规定的标准来设计的,确保了研究生管理工作的标准化和代码规范化。 系统采用模块化结构和规范化的代码结构,使得系统具有通用性、可扩充性及良好的可维护性。 系统现阶段的发展过程中,利用现有人力和物力是完全具备的能力开发出来的,作为阶段性产品,日后的发展空间大,实现方法逐步简单容易,所以学籍管理系统的技术上是完全可行的。 (3)经济上的可行性 1、投资预算满足硬环境的,软件费(包括服务和安装):2万元;没有硬环 境的,可帮助设计、购置、安装硬件,硬件安装费及软件费共25万元。 2、效益估计如果系统运行良好,提高工作效率5倍多。 本系统开发人员少,投资少,技术含量高,但是它带来了无形的不可估量的收益,因次产品在经济上是可行的。 综上所述,我们有理由相信本系统产品的开发、生产是完全可行的!

信息系统开发方法实验报告(包括数据流程图业务流程图例图)

《信息系统开发与管理》实验报告 ——借还书管理子系统的分析与设计 院别经贸学院 专业信息管理与信息系统 学号 姓名 成绩 2014 年10 月24 日

一、实验名称 图书馆借还书管理子系统的分析与设计 二、实验目的和任务 《信息系统开发与管理》实验作为课程实践性环节之一,是教学过程中必不可少的重要内容。通过计算机实验和案例分析,使学生加深理解、验证巩固课堂教学内容;增强系统分析设计的感性认识;掌握信息系统总体规划、分析、设计的基本方法;培养学生理论与实践相结合的能力。 三、实验要求 用信息系统分析与设计工具(例如visio、RationalRose等)分析和设计一个实用的中小型信息系统----图书馆借还书管理系统。根据合理的进度安排,按照系统分析设计的流程及方法,踏实地开展实验活动。 四、实验内容及步骤 1.图书馆管理系统业务描述 1.1图书馆管理系统总体业务描述 过去对信息管理的主要方式是基于文本、表哥核实等网站等纸介质的手工处理,而用手工进行图书借阅管理存在的多种弊端,其中包括图书过于繁多,饱含很多的信息数据的管理对于图书的借阅情况(如借阅天数、超过限定借阅时间的天数)的统计和核实等往往采用对借阅卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统的规范的信息管理收到。尽管有的图书馆部门有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是图书借阅管理系统开发多要解决的问题。现今,依然有很多的图书借阅管理部门都是初步开始使用电子化管理,甚至尚未使用电子化进行信息管理。而采用电子化管理将使上述大部分问题引刃而解,建立数据库系统图将使所有图书信息能被统一而整齐的管理,方便的调用和查阅,使用电子化管理也方便进行更加人性化而简单的操作,省区大量的时间和精力,将使图书借阅和管理更加轻松。 一次,使用电子化的管理手段将是大势所趋,建立一个图书借阅管理系统也是图书管理部门提高工作效率的有效手段,使图书借阅管理工作规范化、系统化、程序化,避免图书借阅管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的进行查询和修改图书情况等图书管理操作。本系统即是为图书管理系统开发,属于中小规模的图书管理系统,为其读者提高图书的查询和借阅以及对图书的管理。 在设计图书管理系统的过程中,此系统可分为以下几个方面: 1:读者信息管理 2:图书信息管理 3:图书馆工作人员管理

物流管理信息系统开发报告

物流管理信息系统开发报告

物流管理信息系统 开发报告 班级: 08物金专01 姓名:郭蕊 学号: 0813*******

目录 一、物流管理信息系统的开发目的 (5) 二、物流管理信息系统开发的过程 (5) 1、总体规划 6 2、需求分析 6 3、软件设计 6 4、程序编写 7 5、系统测试 7 6、系统运行于维护 7 三、物流管理信息系统特点 (7) 四、物流管理信息系统的基本功能 (8) 1、数据收集和录入功能 (8) 2、信息的处理功能 (8) 3、信息存储功能 (8) 4、数据传输功能 (9) 5、信息检索查询和输出功能 (9)

五、物流管理信息系统结构 (9) 1、外部信息源 (9) 2、信息通信通道 (9) 3、内部信息系统 (10) 六、要建立的物流管理信息系统构成 (10) 1、仓库管理系统 11 2、财务会计系统 12 3、货物动态跟踪系统 (13) 4、配送中心信息系统 (14) 七、物流管理信息系统的开发方式 (16) 1、委托开发方式 (16) 2、合作开发方式 (16) 3、自行开发方式 (16) 4、全部购买方式 (17) 八、物流管理信息系统应用技术 (17) 九、案例——沃尔玛的物流管理系统 (17) 附件 (22)

一、物流管理信息系统的开发目的 现代物流的重要特征是物流的信息化,现代物流业可以看做是实物流和信息流的结合。在现代物流运作过程中,通过使用计算机技术、通信技术、网络技术等手段,大大加快了物流信息的处理和传递速度,从而使物流活动的效率和快速反应能力得到提高。建立和晚上物流信息系统对于构成物流系统、开展现代物流活动是极其重要的一项工作内容。 物流信息管理的目的就是在信息系统的支撑下,利用信息将物流企业的各种运营和决策综合起来,提高其市场竞争力。物流的信息管理就是对物流信息的收集、整理、存储传播和利用的过程。 二、物流管理信息系统开发的过程

信息系统设计报告

信息系统设计报告 (以婚礼系统为例) 一、系统设计的背景与意义 中国的婚庆消费激增,婚庆市场空间日趋扩大,婚庆产业逐渐成为充满商机、前景看好的朝阳产业。目前我国的婚庆产业链发展尚不成熟,服务诚信、品牌竞争市场等方面都存在着问题。与其巨大的商机和市场需求相比,婚庆行业无论在产业规模还是服务水平上,还远远不能达到消费者的要求。设计出一个完善并具有创新性的婚礼流程管理系统可以帮助现行的婚庆行业更好地发展,对社会也有着重大的意义。 二、初步调查 我国目前婚庆公司策划婚礼流程还普遍采用手工方式,走流程化模式。其所谓创新大多数是婚礼形式,主题上的花样多变。并没有真正建立起智能化符合年轻新人要求的创新系统。形式结构比较单一,走流程比较缓慢,效率普遍有待提升。 图1 流程图 国内由于婚庆公司的服务是一次性服务,也是新人的一次性消费婚礼的过程具有不可逆转性,婚庆服务的质量就更显重要,婚庆业的“红色投诉”逐渐攀升,许多新人对新婚消费充满不信任,综合分析婚庆市场得出以下几点症结: 1.产品服务同质化,不能满足个性化需求; 2.高端消费市场不成熟,缺乏为高收入新婚人群量身定做的产品和服务; 3.缺乏符合产业发展的企业营销模式;资源配置效率低下; 4.行业混乱无序,服务规范缺失;行业标准欠缺,行业管理力不从心;

5.缺乏创新的理念和服务,导致低价低质的恶性竞争。 三、详细调查(组织结构调查、管理功能调查、业务流程调查和数据流程调查) 1、组织结构调查 组织结构图 2、管理功能调查 根据以上的分析,本系统应包含以下几大功能: (1)公司信息管理: 主要包括该公司的基本信息,如公司概况、员工信息、库存设备信息等。 (2)策划信息管理:主要管理该公司创意设计书的书写,调配人员及时和新人客户进行沟通交流;通知各部门准备婚礼所需物品,查明是否有遗漏;管理现场督导名单信息,将信息录入系统 (3)客户信息管理:主要管理客户联系咨询和客户需求,当业务部与客户进行联系的时候,需要及时采集客户的联系咨询以供后期对接婚礼策划流程等一系列“一条龙”服务的开展,同时需要管理客户的需求进行需求分析,将其与创意设计书进行匹配。 (4)反馈信息管理:主要负责智能婚礼后期信息的管理,如直播间情况的反馈,客户体验数据分析,售后服务评价,综合所有反馈信息得出公司下一步发展规划。

信息系统开发的可行性分析报告

校园超市信息系统开发的 可行性分析报告 1140930223 王婉丽 1. 背景 我国人口众多,拥有一支庞大的消费队伍,日常消费在人们生活中占据了相当一部分的比例,近几年,随着市场经济的不断发展,国家产业政策鼓励校园超市的发展,超市在大家日常生活中的地位也已经越来越明显,在加上国家的进步,读书的孩子越来越多,就说现在的大学,每一年都在扩招,学校的专业也更加的丰富,读大学的孩子也相对剧增,校园超市主要经营食品,副食及日用百货,当然如今的消费者们需求更加明确,所以超市为了满足顾客月越来越细化的需求,也应该不断进行商品扩充及业务调整,为了彻底改善学院超市各方面落后局面,特提出开发新的信息系统。对提高超市服务质量、提高工作效率、加快信息反馈、增强竞争实力有着重大意义。相信校园超市市场是很有潜力的。 2. 校园超市信息系统开发的必要性 1)进一步扩大我国校园超市供应,提升物流水平。 2)进一步提升我国校园超市工业技术水平,加快学校发展。 3)进一步优化我国校园超市产品质量,让学校师生及领导吃的放 心,用的安心。 4)进一步降低我国校园超市产品价格,提升竞争力。

5)进一步优化我国校园超市信息系统,实现学校统一的管理。 6)进一步优化我国校园超市服务水平,让大家愿意并开心的购 买。 7)进一步提升校园超市管理水平,减少学生购买时间。 8)进一步减少校园超市人员的浪费,充分利用资源。 9)进一步增加校园超市的收益。 3. 校园超市的市场需求预测与政策环境分析 1)市场需求分析:随着社会的不断进步,经济的日益发展和消费水 平的逐渐提高,人们的健康意识和营养意识以及消费水平都发生了很大的变化,对进口食品的需求越来越强烈。当然,大学校园里的学生也是如此。到目前为止,几乎每所大学里都会有一家甚至几家校园超市,能够基本满足学生的要求,但规模较小,由于学生数量较多,经常会排很长的队等待付款,大量浪费学生时间。 因此可以扩大超市规模,进行系统开发,提升管理水平,顾客减少购买时间,这样就更能方便学生。 2)顾客需求调查:根据调查,在校大学生每月用于购买基本生活用 品与学习用品的消费大概是:50元以下占33.3%;50-100元占 36.6%;100-200元占21.1%;200元以上占8.8%;平均消费大约 是100元/月·人。就我们成都学校来说,本校学生人数约为1.7万人,那么,每月的基本购物消费大概是100万元,这是一个潜在的巨大市场,最需要的商品是学习用品,其次是生活用品和饮料食品等。

学生信息管理系统项目开发总结报告

项目开发总结报告 1引言 1.1编写目的 为了总结报告在工作过程中产生的问题、获得的经验, 并且总结报告设计和制作者过程中的逻辑和想法,以便在以后的生产和学习过程中得到进一步提高。 1.2背景 说明: a.本项目名称:学生信息管理系统; b.此软件的任务提出者:小组; 开发者:全体小组成员。 1.3定义 服务器端API:服务器端设计者通过规范的API文档,提供给客户端,以方便客户端的开发,使得同时进行,提高效率,节约时间。两端通过protocol(协议类)进行通信; 用户:用户代指学生用户以及任课教师用户; 管理员:负责程序后台管理的工作人员。 1.4参考资料 《项目需求说明书》 《项目详细设计说明书》 《项目概要设计说明书》 参考资料: 《软件工程导论》 《软件文档编写》 2实际开发结果 2.1产品 产品名称:学生成绩管理系统

产品功能: 软件部分:能够管理和统计表学生成绩,支持老师输入,修改以及查询学生成绩,支持学生查询号自己的成绩和相关资料,支持管理员对学生信息的相关操作。 数据库部分:支持管理员将学生的相关信息在数据库中进行增加,删除和修改。 2.2主要功能和性能 功能: 2.2.1管理员功能 2.2.1.1学籍管理 (1)学生注册: 新学年一到,新生到学生注册出去注册,那么注册员可以接受新生的注册信息,那么信息就包括学生的基本信息以及简历: (2)学生信息查询: 用户可以根据学生的姓名、学号、班级、专业对学生的学籍信息进行查询 (3)学生毕业 可以成批地处理学生毕业,当然也可以设置学生毕业后学校对他们的资料保存期限 (4)修改学籍号 用户可以对学生的学号进行更改 (5)学籍变动 学籍变动包括学生学生换班、退学、插班、结业、休学等操作 2.1.1.2收费管理 (1)学生缴费标准 根据国家收费标准设置各个系各个专业的每年的学费、书费、住宿费等。 (2)学生缴费 该接口可实现学生的缴费操作。 (3)学生缴费查询 该接口能够以多个关键字对学生学费情况、以及各专业的收费标准进行查询。 (4)学生欠费统计 能够十分方便地统计每个班的缴费情况,以催促欠费学生尽快缴清 2.1.1.3班级管理 (1)班级添加 能够十分方便地添加班级,其中包括班级所在专业、班主任、班干部信息等。 (2)班级修改 修改班级情况,如辅导员、教室等 (3)班级拆、合 可以方便地实现班级的拆、合。

XX企业管理信息系统开发报告

1 大连中龙物流公司管理信息系统开发报告专业:xxxxx 班级:xxxxxx 学号:xxx 姓名:xxxx 指导教师:xxx 201x4年x月x日 1 2 前言物流信息管理系统是典型的信息管理系统的一部份,而且是必不可少的一部份。其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起简洁且资料一致性和完整性强、资料安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。现代化的物流企业组织庞大、服务项目多、信息量大,要想提高劳动生产、降低成本、提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理。物流信息管理系统正是为此而设计的。优秀的生产管理系统操作方便,灵活性好,系统安全性高,运行稳定。本次教学任务要求调研一所公司或企业,依照其现有的管理模式与组织结构,业务流程,为其开发一套管理信息系统,而我选择的物流类企业是我专业知识比较全面的一块,所以我选择了大连中龙物流公司,经过与其客服的沟通,了解到了很多有用的材

料,对我的课程项目起到了很好的推进作用,当然,由于时间比较仓促,所以内容与构思不甚详细,如有纰漏之处,请予以批评指正。 xxx 201x年x月x1日 2 3 目录第一章企业调研 4 1.1企业介绍 4 1.1.1简介 4 1.1.2 组织结构 5 1.1.3各部门组要业务流程及分析 6 1.1.4 弊端不足与解决方法 9 第二章管理信息系统规划与开发 10 2.1管理信息系统分析 10 2.2管理信息系统设计 12 2.3管理信息系统实施与维护 15 第三章开发方法与参考资料 16 第四章总结 17 第五章致谢18 3 4 第一章企业调研 1.1.1简介大连xx货运服务有限公司交通局批准审核的具有合法经营资格的运输企业,经大连市工商行政管理部门于2000年批准登记注册,是大连最早从事物流行业的企业之一,是中国物流

学生信息管理系统项目开发总结报告

学生信息管理系统项目 开发总结报告 Company number:【WTUT-WT88Y-W8BBGB-BWYTT-19998】

项目开发总结报告 1引言 编写目的 为了总结报告在工作过程中产生的问题、获得的经验,并且总结报告设计和制作者过程中的逻辑和想法,以便在以后的生产和学习过程中得到进一步提高。 背景 说明: a.本项目名称:学生信息管理系统; b.此软件的任务提出者:小组; 开发者:全体小组成员。 定义 服务器端API :服务器端设计者通过规范的API文档,提供给客户端,以方便客户端的开发,使得同时进行,提高效率,节约时间。两端通过protocol (协议类)进行通信; 用户:用户代指学生用户以及任课教师用户; 管理员:负责程序后台管理的工作人员。

参考资料 《项目需求说明书》 《项目详细设计说明书》 《项目概要设计说明书》 参考资料: 《软件工程导论》 《软件文档编写》 2实际开发结果 产品 产品名称:学生成绩管理系统 产品功能: 软件部分:能够管理和统计表学生成绩,支持老师输入,修改以及查询学生成绩,支持学生查询号自己的成绩和相关资料,支持管理员对学生信息的相关操作。 数据库部分:支持管理员将学生的相关信息在数据库中进行增加,删除和修改。 主要功能和性能 功能: (1)学生注册:

新学年一到,新生到学生注册出去注册,那么注册员可以接受新生的注册信息,那么信息就包括学生的基本信息以及简历: (2)学生信息查询: 用户可以根据学生的姓名、学号、班级、专业对学生的学籍信息进行查询 (3)学生毕业 可以成批地处理学生毕业,当然也可以设置学生毕业后学校对他们的资料保存期限(4)修改学籍号 用户可以对学生的学号进行更改 (5)学籍变动 学籍变动包括学生学生换班、退学、插班、结业、休学等操作 2 (1)学生缴费标准 根据国家收费标准设置各个系各个专业的每年的学费、书费、住宿费等。 (2)学生缴费 该接口可实现学生的缴费操作。 (3)学生缴费查询 该接口能够以多个关键字对学生学费情况、以及各专业的收费标准进行查询。 (4)学生欠费统计 能够十分方便地统计每个班的缴费情况,以催促欠费学生尽快缴清 2 (1)班级添加 能够十分方便地添加班级,其中包括班级所在专业、班主任、班干部信息等。 (2)班级修改 修改班级情况,如辅导员、教室等 (3)班级拆、合 可以方便地实现班级的拆、合。 教师功能 2 (1)成绩录入 每次考试后,各个任课老师可以把该科成绩列表交给辅导员以进行成绩的录入工作,录入信息包括学生姓名、学号、科目、专业、录入日期。 (2)成绩查询 可以根据多个关键字对学生的成绩进行查询,另外,还可以产生一个班的平均成绩报表、所有学生的排名以及该专业该年级的班级排名。 (3)成绩修改 如在审卷过程中发现有成绩错误,可以对学生的成绩进行修改 (4)课表查询 任课教师可以查询所带班级的课程表

管理信息系统可行性分析总结报告内容模版

管理系统可行性分析报告内容模版 1.引言 1.1 编写目的 描述编写本可行性分析报告的目的,指出读者对象。 1.2 项目背景 应包括: ?所建议开发软件的名称; ?本项目的任务提出者、开发者、用户及实现软件的单位; ?本项目与其他软件或其他系统的关系。 1.3 定义 列出本文档中用到的专门术语的定义和缩写词的原文。 1.4 参考资料 列出有关资料的作者、标题、编号、发表日期、出版单位或资源来源,可包括以下资料: ?本项目经核准的计划任务书、合同或上级机关的批文; ?本项目有关的已发表的资料; ?本文档中所引用的资料,所采用的软件标准或规范。 2. 可行性研究的前提 2.1 要求 要求列出并说明建议开发软件的基本要求,可包括: ?功能; ?性能; ?输出; ?输入; ?基本的数据流程和处理流程; ?安全与保密要求; ?与本软件相关的其他系统; ?完成期限。 2.2 目标 可包括: ?人力与设备费用的节省; ?处理速度的提高; ?控制精度或生产能力的提高; ?管理信息服务的改进; ?决策系统的改进; ?人员工作效率的提高等。 2.3 条件、假定和限制 可包括: ?建议开发软件运行的最短寿命; ?进行系统方案选择比较的期限; ?经费来源和使用限制; ?法律和政策方面的限制;

?硬件、软件、运行环境和开发环境的条件和限制; ?可利用的信息和资源; ?建议开发软件投入使用的最迟时间。 2.4 可行性研究方法 2.5 决定可行性的因素 3. 对现有系统的分析 3. 1 处理流程和数据流程 3. 2 工作负荷 3. 3 费用开支 例如人力、设备、空间、支持服务以及材料等项开支。 3. 4 人员 列出所需人员的专业技术类别和数量。 3. 5 设备 3. 6 局限性 说明现有系统存在的问题以及为什么需要开发新的系统。 4. 所建议技术可行性研究 4.1对系统的简要描述 4.2处理流程和数据流程 4.3与现有系统比较的优越性 4.4未用建议系统可能带来的影响 可包括: ?对设备的影响; ?对现有软件的影响; ?对用户的影响; ?对系统运行的影响; ?对开发环境的影响; ?对运行环境的影响; ?对经费支出的影响。 4.5技术可行性评价 可包括: ?在限制条件下功能目标是否能达到; ?利用现有技术功能目标能否达到; ?对开发人员数量和质量的要求,并说明能否满足; ?在规定的期限内,开发能否完成。 5.所建议系统经济可行性研究 5.1 支出 基建投资 其他一次性支出 经常性支出

管理信息系统开发报告 模板

管理信息系统开发报告 系统名称:辽宁升华保健食品工业公 司销售部管理信息系统开发报告 专业:网络营销 学生学号: 12207139 学生姓名:郑兴旺 指导教师:袁娜 2014年5月

1 系统调查 1.1 企业简介 企业是一家采用金字塔式组织结构、内部分工简单、业务流程短促的中小型食品。长期以来专各种健品知名营养品保健品和供应。随着企业的不断发展,不仅经营国内品牌产品的销售,而且为国际上知名品牌代理其产品的销售。企业经过近几年的奋斗,在保健专营方面已具有较大规模,业务的范围已突破原有的地域范围,形成以总部所在地为中心的省际辐射,业务量和顾客数都扩大到以前的数倍。企业在快速成长的同时,对企业组织结构设计、业务流程的规划、各种数据存储和应用提出了新的要求,旧有的模式已不能再适应企业迅速发展的需要。随着业务的开展和市场竞争的加剧,企业的高层领导也意识到企业内部管理存在一些问题,信息技术的发展和普及应用给管理者带来了希望。他们希望通过信息化的建设改变企业的现状,能对市场机遇做出快速反应,给企业带来更多的利润。管理信息系统成功应用的案例使得管理者有信心通过管理信息系统的开发和利用改变企业的管理现状,使企业得到更好的发展。 1.2企业组织结构 通过对企业现行系统的调查分析,了解到该企业的组织结构设置为:总经理下设开票室、结算室、财务室、仓库管理室 4 个部门。明确分工,各行其职,各用其权,各尽其责,把责、权、利相结合,4 个部门既相互独立又相互联系。总体目标分解到 4 个部门后,相互协调把单个目标串联起来,共同实现。图 1 给出了该企业的组织结构情况。

总经理:对企业具有最高决策权和领导权,总览企业的整个业务流程生产部:主要负责企业产品的生产 库管部:主要负责企业的库存管理计划部:主要负责产品的投入前的市场分析,以及市场调查资料的统计分析工作 研发部:主要负责新品的设计、研发工作 销售部:主要负责产品的销售工作 财务科:主要负责企业的财务管理 人力科:主要负责企业人才的招聘、培训、管理、调拨等工作 1.3企业业务流程 (1) 经理:主要负责销售计划的制定和计划的落实。他们需要经常了解和掌握销售情况,为他们指导销售工作和制定新的销售计划提供依据。 (2) 票务部:主要负责开发票。顾客购买产品首先到票务部去开票,开票人员根据顾客所有的购货单(包括商品名称、规格及数量等)开票。所开票据至少四

学生信息管理系统项目开发总结报告范本.doc

项目开发总结报告 1引言 1.1编写目的 为了总结报告在工作过程中产生的问题、获得的经验,并且总结报告设计和制作者过程中的逻辑和想法,以便在以后的生产和学习过程中得到进一步提高。 1.2背景 说明: a.本项目名称:学生信息管理系统; b.此软件的任务提出者:小组; 开发者:全体小组成员。 1.3定义 服务器端API :服务器端设计者通过规范的API文档,提供给客户端,以方便客户端的开发,使得同时进行,提高效率,节约时间。两端通过protocol(协议类)进行通信; 用户:用户代指学生用户以及任课教师用户; 管理员:负责程序后台管理的工作人员。 1.4参考资料 《项目需求说明书》 《项目详细设计说明书》 《项目概要设计说明书》 参考资料: 《软件工程导论》 《软件文档编写》 2实际开发结果 2.1产品 产品名称:学生成绩管理系统

产品功能: 软件部分:能够管理和统计表学生成绩,支持老师输入,修改以及查询学生成绩,支持学生查询号自己的成绩和相关资料,支持管理员对学生信息的相关操作。 数据库部分:支持管理员将学生的相关信息在数据库中进行增加,删除和修改。2.2主要功能和性能 功能: 2.2.1管理员功能 2.2.1.1学籍管理 (1)学生注册: 新学年一到,新生到学生注册出去注册,那么注册员可以接受新生的注册信息,那么信息就包括学生的基本信息以及简历: (2)学生信息查询: 用户可以根据学生的姓名、学号、班级、专业对学生的学籍信息进行查询 (3)学生毕业 可以成批地处理学生毕业,当然也可以设置学生毕业后学校对他们的资料保存期限(4)修改学籍号 用户可以对学生的学号进行更改 (5)学籍变动 学籍变动包括学生学生换班、退学、插班、结业、休学等操作 2.1.1.2收费管理 (1)学生缴费标准 根据国家收费标准设置各个系各个专业的每年的学费、书费、住宿费等。 (2)学生缴费 该接口可实现学生的缴费操作。 (3)学生缴费查询 该接口能够以多个关键字对学生学费情况、以及各专业的收费标准进行查询。 (4)学生欠费统计 能够十分方便地统计每个班的缴费情况,以催促欠费学生尽快缴清 2.1.1.3班级管理 (1)班级添加 能够十分方便地添加班级,其中包括班级所在专业、班主任、班干部信息等。 (2)班级修改 修改班级情况,如辅导员、教室等 (3)班级拆、合 可以方便地实现班级的拆、合。

管理信息系统分析报告要点

编号: MIS分析报告 教学课程名称管理信息系统 专业班级_______________________________ 生姓号________________________________ 学生姓名___________________________ 实验指导教师_______________________ 学生教务管理信息系统需求分析报告 第一章学生教务管理信息系统开发项目介绍 一、新系统的目标和功能 1.新系统的名称:安徽工程大学建工学院学生教务管理信息系统 2.新系统的总体目标:采用本方案建议的新的教务管理信息系统后,可以期望实现的 目标: (1)在原先系统的功能基础上,提高性能,加以完善。 (2)实现教务管理工作信息化、模块化、便捷化。 3.新系统的主要功能: 教务管理系统是典型的信息管理系统(MIS),它能够实现整体规划教学资源,评估教学质量,制定教学计划,检查教学进度,给学校的教务人员管理教务工作提供了极大的方便,使教务管理工作变得更加快捷和高效。新系统功能全面,中心数据库提供了高性能Web页信息访问机制,是比较优秀的一套教务管理信息系统。 4.新系统开发背景介绍 (1)开发背景环境介绍: 由于信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技 术上已逐步成熟。任何一个单位要生存、要发展、要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统

这对于正在迅速发展的各大高校而言,同样有着重要意义。作为高校日常教学主要管理工作之一的教务管理,它涉及到院校、专业、师生等诸多方面。特别是目前国家的教育体制也正处在不断改革、创新的阶段,教育部门充分吸取国外优秀的教学模式,结合国内多年的办学经验,逐步探索出了适合中国特色的教学形式,国家教育部面向各级各类学校开展了全面学分制改革。同时,随着选课制的展开和深入,教务日常管理工作也日趋繁重、复杂,如何把教务工作信息化、模块化、便捷化便成为了现代高校发展的重点。 总而言之,教务管理软件应实现教务信息的集中管理,使传统的教务管理朝数字化、无纸化、智能化、综合化的方向发展,并为进一步实现完善的计算机教务管理系统和全校信息系统打下良好的基础。在高校中,教务管理工作具有举足轻重的地位,教学质量直接取决十教务管理水平。现如今教务管理信息系统的开发与实施可谓日新月异。 根据实际,本系统决定采用原型法进行系统开发。即通过确定基本需求、构建初始原型、验正评价原型、修改完善原型最终完成此次系统设计。 (2)开发者介绍: XX 软件公司是一家专业从事软件技术开发、软件产品生产、网站运营、电子商务、网络工程的高科技公司,是国家级高新技术企业、软件企业。公司拥有一支富有创新、开拓精神的高素质的战斗团队,具备国内一流的软件开发技术和大型工程实施功能。 第二章安徽工程大学“教务系统”的初步调查 一、教务系统的初步调查 1.组织结构图:

相关文档
最新文档