📄 flowchrt.c
字号:
/*----------------------------------------------------------------------------*/
/* Flow Chart Sample Program */
/*----------------------------------------------------------------------------*/
/* define CVICALLBACK so example programs work under CVI 3.1*/
#if !defined(_NI_mswin32_) && !defined(_WIN32)
#if (!defined(_CVI_)) || (defined(_CVI_) && ((_CVI_==1) || (_CVI_==301) || (_CVI_==310)))
#ifndef CVICALLBACK
#define CVICALLBACK
#endif
#endif
#endif
#include "cvi_db.h"
#include <utility.h>
#include <userint.h>
#include <ansi_c.h>
#include <formatio.h>
#include "flowchrt.h"
#include "flowsql.h"
#define ONCOLOR 0xFFFF00 /* Yellow */
#define OFFCOLOR 0x00FFBF /* Lt Green */
int mainPnl = 0;
static resCode, hmap, hdbc, hstmt;
static status, getcolor;
int CheckColor (int panel, int control, int color);
int DisplayHelpSection(char *title);
void EraseIfTableExists(int hdbc, char *tableNamePassed);
void InitializeDB(void);
int flagMapUsed = 0;
/*----------------------------------------------------------------------------*/
/* Load panel and RunUserInterface */
/*----------------------------------------------------------------------------*/
void main ()
{
/* Create and Add a few records to database table */
InitializeDB();
mainPnl = LoadPanel (0, "flowchrt.uir", PANEL);
status = SetCtrlAttribute (mainPnl, PANEL_DBConnect, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
DisplayPanel (mainPnl);
RunUserInterface ();
}
/*----------------------------------------------------------------------------*/
/* Connect Button button pressed */
/*----------------------------------------------------------------------------*/
int CVICALLBACK ConnectCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
/* If Button not color active, return */
if (CheckColor(panel, control, ONCOLOR)==0) return 0;
/* Connect to the database */
DBFunc_Connect();
/* Goto Next State in the Flowchart */
status = SetCtrlAttribute (mainPnl, PANEL_DBConnect, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBImmediateSQL, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBActivateSQL, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBBeginMap, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBDisconnect, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
break;
case EVENT_RIGHT_CLICK:
DisplayHelpSection("Connect");
break;
}
return 0;
}
/*----------------------------------------------------------------------------*/
/* Immediate SQL button pressed */
/*----------------------------------------------------------------------------*/
int CVICALLBACK ImmediateCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
/* If Button not color active, return */
if (CheckColor(panel, control, ONCOLOR)==0) return 0;
/* Issue Immediate SQL */
DBFunc_ImmediateSQL();
/* Goto Next State in the Flowchart. */
/* Once Immediate SQL is complete, you return as if you just */
/* issued a DBConnect */
break;
case EVENT_RIGHT_CLICK:
DisplayHelpSection("ImmediateSQL");
break;
}
return 0;
}
/*----------------------------------------------------------------------------*/
/* Begin Map Button button pressed */
/*----------------------------------------------------------------------------*/
int CVICALLBACK MapCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
/* If Button not color active, return */
if (CheckColor(panel, control, ONCOLOR)==0) return 0;
/* Set Map/SQL flags for Deactivate Callback */
flagMapUsed = 1;
/* Restrict other paths for Activate and Immediate SQL */
status = SetCtrlAttribute (mainPnl, PANEL_DBImmediateSQL, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBActivateSQL, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = ProcessDrawEvents ();
/* Issue BeginMap */
DBFunc_BeginMap();
status = SetCtrlAttribute (mainPnl, PANEL_DBBeginMap, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBMapColumnTo, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = ProcessDrawEvents ();
/* Issue MapColumnTo */
DBFunc_MapColumnTo();
status = SetCtrlAttribute (mainPnl, PANEL_DBMapColumnTo, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBActivateMap, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = ProcessDrawEvents ();
/* Issue ActivateMap */
DBFunc_ActivateMap();
status = SetCtrlAttribute (mainPnl, PANEL_DBActivateMap, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
/* Goto Next State in the Flowchart */
status = SetCtrlAttribute (mainPnl, PANEL_DBFetch, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBCreateRecord, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
/* Now that Mapping is done, force user to use DeactivateMap and not Disconnect */
status = SetCtrlAttribute (mainPnl, PANEL_DBDeactivateMap, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBDisconnect, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
break;
case EVENT_RIGHT_CLICK:
DisplayHelpSection("BeginMap");
break;
}
return 0;
}
/*----------------------------------------------------------------------------*/
/* Activate SQL Button button pressed */
/*----------------------------------------------------------------------------*/
int CVICALLBACK BindCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
/* If Button not color active, return */
if (CheckColor(panel, control, ONCOLOR)==0) return 0;
/* Set Map/SQL flags for Deactivate Callback */
flagMapUsed = 0;
/* Restrict other paths for BeginMap and Immediate SQL */
status = SetCtrlAttribute (mainPnl, PANEL_DBImmediateSQL, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBBeginMap, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = ProcessDrawEvents ();
/* Issue ActivateSQL */
DBFunc_ActivateSQL();
status = SetCtrlAttribute (mainPnl, PANEL_DBActivateSQL, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBBindCol, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = ProcessDrawEvents ();
/* Issue BindCol */
DBFunc_BindCol();
status = SetCtrlAttribute (mainPnl, PANEL_DBBindCol, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
/* Goto Next State in the Flowchart */
status = SetCtrlAttribute (mainPnl, PANEL_DBFetch, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBCreateRecord, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
/* Now that Mapping is done, force user to use DeactivateMap and not Disconnect */
status = SetCtrlAttribute (mainPnl, PANEL_DBDeactivateMap, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBDisconnect, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
break;
case EVENT_RIGHT_CLICK:
DisplayHelpSection("ActivateSQL");
break;
}
return 0;
}
/*----------------------------------------------------------------------------*/
/* Fetch Button pressed */
/*----------------------------------------------------------------------------*/
int CVICALLBACK FetchCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
/* If Button not color active, return */
if (CheckColor(panel, control, ONCOLOR)==0) return 0;
/* Restrict other paths for CreateRecord */
status = SetCtrlAttribute (mainPnl, PANEL_DBDeactivateMap, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBCreateRecord, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = ProcessDrawEvents ();
/* Issue Fetch */
DBFunc_Fetch();
Delay(0.5);
status = SetCtrlAttribute (mainPnl, PANEL_DBFetch, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_UseValuesFetch, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
/* Issue Use Values */
status = ProcessDrawEvents ();
Delay(0.5);
status = SetCtrlAttribute (mainPnl, PANEL_UseValuesFetch, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_AssignValues2, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
/* Issue Assign */
status = ProcessDrawEvents ();
Delay(0.5);
status = SetCtrlAttribute (mainPnl, PANEL_AssignValues2, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBPutRecord2, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = ProcessDrawEvents ();
/* Issue PutRecord */
DBFunc_PutRecord2();
status = SetCtrlAttribute (mainPnl, PANEL_DBPutRecord2, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
/* Goto Next State in the Flowchart */
status = SetCtrlAttribute (mainPnl, PANEL_DBFetch, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBCreateRecord, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBDeactivateMap, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
break;
case EVENT_RIGHT_CLICK:
DisplayHelpSection("Fetch");
break;
}
return 0;
}
/*----------------------------------------------------------------------------*/
/* Create Record Button button pressed */
/*----------------------------------------------------------------------------*/
int CVICALLBACK CreateCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
/* If Button not color active, return */
if (CheckColor(panel, control, ONCOLOR)==0) return 0;
/* Restrict other paths for CreateRecord */
status = SetCtrlAttribute (mainPnl, PANEL_DBDeactivateMap, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBFetch, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = ProcessDrawEvents ();
/* Issue CreateRecord */
DBFunc_CreateRecord();
status = SetCtrlAttribute (mainPnl, PANEL_DBCreateRecord, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_AssignValues1, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = ProcessDrawEvents ();
/* Issue Assign */
Delay(0.5);
status = SetCtrlAttribute (mainPnl, PANEL_AssignValues1, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBPutRecord1, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = ProcessDrawEvents ();
/* Issue PutRecord */
DBFunc_PutRecord1();
status = SetCtrlAttribute (mainPnl, PANEL_DBPutRecord1, ATTR_CMD_BUTTON_COLOR, OFFCOLOR);
/* Goto Next State in the Flowchart */
status = SetCtrlAttribute (mainPnl, PANEL_DBFetch, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBCreateRecord, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
status = SetCtrlAttribute (mainPnl, PANEL_DBDeactivateMap, ATTR_CMD_BUTTON_COLOR, ONCOLOR);
break;
case EVENT_RIGHT_CLICK:
DisplayHelpSection("CreateRecord");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -