Advertisement
niks32

test2.3

Jan 26th, 2023
1,017
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.73 KB | None | 0 0
  1. #include "fmin.h"
  2.  
  3. void findById (int32 id)
  4. {
  5.     if ( id )
  6.     {
  7.         STUDENT buf;
  8.         memset( &buf, 0, sizeof( STUDENT ));
  9.  
  10.         if(!FindSTUDENT(id, &buf))
  11.         {
  12.             char tFio[153];
  13.             sprintf (tFio, "%s %s %s", (char*)buf.FirstName, (char*)buf.SecondName, (char*)buf.LastName);
  14.  
  15.             meswin(tFio);
  16.         }
  17.         else
  18.         {
  19.             meswin("Студент с заданным ID не найден");
  20.         }
  21.     }
  22. }
  23.  
  24. static int L_Handler(PANEL *p, int key)
  25. {
  26.     BSCROL     *Bs     = (BSCROL *)p->Parm ;
  27.     //TDATARACE  *Data   = (TDATARACE *)Bs->Mp.Parm;
  28.     STUDENT *recBuf = (STUDENT*)FileSTUDENT->RecBuf;
  29.  
  30.     p->St = 0;
  31.    
  32.     switch( key )
  33.     {
  34.     case K_ENTER    : //передачеа id
  35.         recBuf->StudentID;
  36.         key = -key;
  37.     }
  38.    
  39.     return scrlrec( p, key );
  40. }
  41.  
  42. static int E_Handler(PANEL *p, int key)
  43. {
  44.     BSCROL     *Bs     = (BSCROL *)p->Parm ;
  45.     //TDATARACE  *Data   = (TDATARACE *)Bs->Mp.Parm;
  46.     //TWldRace   *recBuf = (TWldRace*)FileWldRace->RecBuf;
  47.    
  48.     /*switch( key )
  49.     {
  50.     case K_ENTER    : //пустышка
  51.         key = 0;
  52.         break;
  53.     }*/
  54.    
  55.     return scrlrec( p, key );
  56. }
  57.  
  58. void studentScrol()
  59. {
  60.     int stat = 0;
  61.     char isOpenFileStudent = 0;
  62.  
  63.     if ( !FileSTUDENT )
  64.     {
  65.         isOpenFileStudent = 1;
  66.         stat = iOpenSTUDENT( 1 );
  67.     }
  68.  
  69.     BSCROL *Bs = CrBs( &AppRes, "S_STUD" );
  70.  
  71.     if ( !stat )
  72.     {
  73.         STUDENT *recBuf = (STUDENT*)FileSTUDENT->RecBuf;
  74.         BSetFlds(Bs, E_Handler, NULL, "ESC - выход  F8 - Удалить  F9 - Добавить", NULL, FileSTUDENT, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  75.             recBuf->FirstName,
  76.             recBuf->SecondName,
  77.             recBuf->LastName,
  78.             &recBuf->Birthday
  79.             );
  80.     }
  81.  
  82.     BRunScrol(Bs); //Редактирование
  83.  
  84.     FreeBScrol(Bs);
  85.     if ( FileSTUDENT && isOpenFileStudent )
  86.     {
  87.        bfClose( &FileSTUDENT );
  88.     }
  89. }
  90.  
  91. int ListStudent()
  92. {
  93.     int stat = 0;
  94.     char isOpenFileStudent = 0;
  95.     int key = 0;
  96.  
  97.     if ( !FileSTUDENT )
  98.     {
  99.         isOpenFileStudent = 1;
  100.         stat = iOpenSTUDENT( 1 );
  101.     }
  102.  
  103.     BSCROL *Bs = CrBs( &AppRes, "S_STUD" );
  104.  
  105.     STUDENT *recBuf = (STUDENT*)FileSTUDENT->RecBuf;
  106.     if ( !stat )
  107.     {
  108.         BSetFlds(Bs, L_Handler, NULL, "ESC - выход Enter - Выбрать", NULL, FileSTUDENT, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  109.             recBuf->FirstName,
  110.             recBuf->SecondName,
  111.             recBuf->LastName,
  112.             &recBuf->Birthday
  113.             );
  114.     }
  115.        
  116.     key = -BLoopScrol(Bs); //Только просмотр
  117.     int32 id = recBuf->StudentID;
  118.  
  119.     if (key == K_ESC)
  120.     {
  121.         id = 0;
  122.     }
  123.    
  124.     FreeBScrol(Bs);
  125.     if ( FileSTUDENT && isOpenFileStudent )
  126.     {
  127.        bfClose( &FileSTUDENT );
  128.     }
  129.    
  130.     return id;
  131. }
  132.  
  133.  
  134. void FM_Student (unsigned int workMode)
  135. {
  136.     /*
  137.     0 - read only
  138.     1 - scrol with edit
  139.     */
  140.  
  141.     if (!workMode)
  142.     {
  143.         int currentId = ListStudent();
  144.         if (currentId)
  145.         {
  146.             findById(currentId);
  147.         }
  148.  
  149.     }
  150.     if (workMode)
  151.     {
  152.         studentScrol();
  153.     }
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement