void Sale_UI_MgtEntry() { int i, id; char choice; schedule_list_t head; //schedule_node_t *p; schedule_node_t *p; Pagination_t paging; List_Init(head, schedule_node_t); //List_Init(head,schedule_node_t); paging.offset = 0; paging.pageSize = SCHEDULE_PAGE_SIZE; //载入数据 paging.totalRecords = Schedule_Srv_FetchAll(head); Paging_Locate_FirstPage(head, paging); do { system("clear"); printf("\n ================================================================="); printf("\n **************************剧目%s的演出计划*************************"); printf("\n ================================================================="); printf("\t\t%5s\t%5s\t%8s\t%10s\t%10s\t%10s\n", "ID", "剧目编号", "演出厅编号", "上映日期","上映时间","票价"); printf("\n -----------------------------------------------------------------"); //显示数据 for (i = 0, p = (schedule_node_t *) (paging.curPos);p != head && i < paging.pageSize; i++){ printf("%5d 『%d』%20s 『%d』%2s ", p->data.id, p->data.play_id, p->data.play_name,p->data.studio_id, p->data.studio_name); printf(" %4d-%02d-%02d",p->data.date.year, p->data.date.month, p->data.date.day); printf("\t%2d:%02d:%02d ", p->data.time.hour, p->data.time.minute, p->data.time.second); printf("\t%5d\n", p->data.price); p=p->next; } printf("\n =================================================================="); printf("\n |----------总数%2d------------------------------%2d/%2d页---------|",paging.totalRecords, Pageing_CurPage(paging),Pageing_TotalPages(paging)); printf("\n ******************************************************************"); printf("\n | [P]revPage | [N]extPage |"); printf("\n -----------------------------------------------------------------"); printf("\n | [I]D List | [R]eturn |"); printf("\n ******************************************************************"); printf("\n =================================================================="); printf("\n Iput Your choice:"); choice=l_getc(); switch (choice) { case 'i': case 'D': printf("\n | 请输入演出计划ID:"); while(1){ if(scanf("%d",&id)==1){ cl_stdin(); break;} else{ cl_stdin(); printf("\n **您的输入有误!**");} } Sale_UI_ShowScheduler(id); break; case 'p': case 'P': system("clear"); if(1<Pageing_CurPage(paging)){ Paging_Locate_OffsetPage(head,paging,-1,schedule_node_t); } break; case 'n': case 'N': system("clear"); if(Pageing_TotalPages(paging)>Pageing_CurPage(paging)){ Paging_Locate_OffsetPage(head,paging,1,schedule_node_t); } } } while (choice != 'r' && choice != 'R'); //释放链表空间 List_Destroy(head, schedule_node_t); }
void Schedule_UI_FetchAll(void) { Schedule_Srv_FetchAll(); }
void Schedule_UI_ListAll(void) { int i, id; char choice; schedule_list_t head; schedule_node_t *p; Pagination_t paging; List_Init(head, schedule_node_t); paging.offset = 0; paging.pageSize = SCHEDULE_PAGE_SIZE; //载入数据 paging.totalRecords = Schedule_Srv_FetchAll(head); Paging_Locate_FirstPage(head, paging); do { system("clear"); printf("\n\n\n\t =================================================================="); printf("\n\t **************************放映计划表********************************"); printf("\n\t =================================================================="); printf("\n\t\t\t%5s\t%5s\t%8s\t%10s\t%10s\t%10s", "ID", "剧目编号","演出厅编号" , "上映日期","上映时间","票价"); printf("\n\t -----------------------------------------------------------------"); //显示数据 for (i = 0, p= (schedule_node_t *) (paging.curPos); p != head && i < paging.pageSize; i++){ printf("\n\t\t\t%5d『%d』『%d』", p->data.id, p->data.play_id,p->data.studio_id); printf("%d-%d-%d",p->data.date.year, p->data.date.month, p->data.date.day); printf("\t%d:%d:00 ", p->data.time.hour, p->data.time.minute); printf("\t%d", p->data.price); p=p->next; } printf("\n\t =================================================================="); printf("\n\t |----------总数%2d------------------------------%2d/%2d页---------|\n",paging.totalRecords, Pageing_CurPage(paging),Pageing_TotalPages(paging)); printf("\n\t =================================================================="); printf("\n\t ******************************************************************"); printf("\n\t | [P]revPage | [N]extPage |"); printf("\n\t -----------------------------------------------------------------"); printf("\n\t [R]eturn "); printf("\n\t ******************************************************************"); printf("\n\t =================================================================="); printf("\n\t Iput Your choice:"); choice=l_getc(); switch (choice) { case 'p' : case 'P': if (1 < Pageing_CurPage(paging)) { Paging_Locate_OffsetPage(head, paging, -1, schedule_node_t); } break; case 'n' : case 'N': if (Pageing_TotalPages(paging) > Pageing_CurPage(paging)) { Paging_Locate_OffsetPage(head, paging, 1, schedule_node_t); } break; } } while (choice != 'r' && choice != 'R'); //释放链表空间 List_Destroy(head, schedule_node_t); }