📄 pctoexcel.pc
字号:
// Pro*c 标准头文件部分
EXEC SQL INCLUDE SQLCA;
// C 的标准头文件部分
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdarg.h>
// EI头文件
#include "EI_TUXClass.h"
typedef char stringnew[128];
int FileExist(char *szFileName);
FILE *OpenFile(char *szFileName, FILE *fpFile);
int PrintRow(char *szFileName, stringnew *pValues, int iNrColumns );
int f_sotaxsend(EIClass *bcls_rec,EIClass *bcls_ret);
stringnew LogValues[21] ={ "" };
#ifdef __cplusplus
extern "C"
#endif
void sotaxsend(TPSVCINFO *rqst)
{
FBFR32 * ret_buf;
if (EP_ENABLE)
{
EI_TUXClass tux;
EIClass bcls_rec;
EIClass bcls_ret;
int doFlag = 0;
//初始化
EILog("begin service:%s", rqst->name);
doFlag=tux.Init(rqst, &bcls_rec);
if (doFlag<0)
{
bcls_ret.SetSYS(s);
goto TUXRET;
}
//调用业务逻辑
EILog("begin logic function");
doFlag = f_sotaxsend(&bcls_rec, &bcls_ret);
EILog("end logic function doFlag = %d ", doFlag);
//返回
EILog("end service:%s", rqst->name);
TUXRET: ret_buf = tux.Close(doFlag, &bcls_ret);
}
tpreturn(TPSUCCESS, 0, (char *)ret_buf, 0L, 0);
}
int f_sotaxsend(EIClass * bcls_rec, EIClass * bcls_ret)
{
//程序用变量
int doFlag = 0;
int fetchRowCount;
int i;
char i_flag[2]=" ";
int count=0;
FILE* fpLogFile = NULL;
char szFileName [128] = "";
char szFileNameNew[128]= "";
bool File_opened = 0;
int tech_file= 0;
char filename [200] = "";
//在SQL语句中使用的变量
EXEC SQL BEGIN DECLARE SECTION;
int i_count;
char START_TIME[20]="";
char i_mat_no_custom[20]=" ";
char i_purchase_batchno[7]=" ";
char i_source_num[20]=" ";
char i_mat_num[4]=" ";
double i_mat_net_wt=0;
double tempsum=0;
double i_mat_act_thick=0;
char i_sg_sign_n[21]=" ";
char i_surface_accuracy_code[21]=" ";
char c_sour_num[20]="";
char c_mat_num[4]="";
double c_mat_net_wt=0;
double i_act_thick=0;
double i_act_weight=0;
double i_chencai=0;
EXEC SQL END DECLARE SECTION;
//使用的表结构变量
//EXEC SQL INCLUDE dtsya1.h;
// EXEC SQL INCLUDE dtsya3.h;
//设置出错处理
EXEC SQL WHENEVER SQLERROR GOTO l_sqlerror;
EXEC SQL
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYYMMDDhh24miss';
//取得前台传入S
bcls_rec->GetSYS(&s);
//系统变量初始化
s.flag = 0;
s.sqlcode = 0;
strcpy(s.msg, " ");
EXEC SQL SELECT TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS') INTO :START_TIME FROM DUAL;
sprintf(szFileName,"/tuxrun/mesware/brooke/TAXC%s.tmp",START_TIME);
EXEC SQL OPEN tbswt_q;
for (fetchRowCount = 0; ;)
{
EXEC SQL FETCH tbswt_q
INTO :c_sour_num,
:c_mat_num,
:c_mat_net_wt;
if (sqlca.sqlcode == 1403) break;
sprintf(LogValues[0], "%s", c_sour_num );
sprintf(LogValues[1], "%s", c_mat_num);
sprintf(LogValues[2], "%f", c_mat_net_wt);
sprintf(LogValues[3], "%s", "3");
PrintRow(szFileName, LogValues, sizeof(LogValues)/sizeof(LogValues[0]));
fetchRowCount ++;
}
EXEC SQL CLOSE tbswt_q ;
sprintf(szFileNameNew,"/tuxrun/mesware/brooke/TAXC%s.csv",START_TIME);
rename(szFileName,szFileNameNew);
goto l_return;
l_sqlerror:
EDLog(1, 1, "database error! sqlcode = %d", sqlca.sqlcode);
s.sqlcode = sqlca.sqlcode;
s.flag = -1;
strcat(s.msg, sqlca.sqlerrm.sqlerrmc);
goto l_return;
l_return:
EDLog(1, 1, "return[%d][%s]", s.flag, s.msg);
//返回系统参数
doFlag = s.flag;
bcls_ret->SetSYS(s);
return doFlag;
}
int PrintRow(char *szFileName, stringnew *pValues, int iNrColumns )
{
int i;
FILE * fpFile = NULL;
if (NULL != (fpFile = OpenFile(szFileName, fpFile)))
{
printf("Print row\n");
for (i=0; i<iNrColumns; i++ )
fprintf(fpFile, "%s,", pValues[i]);
fprintf(fpFile, "\n");
fclose (fpFile);
}
return 0;
}
FILE* OpenFile(char* szFileName, FILE* fpFile)
{
if (0 == FileExist(szFileName))
{
if (NULL != (fpFile = fopen(szFileName, "a")))
{//PrintHeader(fpFile);
}
}
else
{
fpFile = fopen(szFileName, "a");
}
return fpFile;
}
int FileExist(char* szFileName)
{
int iExist = 0;
FILE * fpFile;
fpFile = fopen(szFileName, "r");
if (NULL != fpFile)
{
iExist = 1;
fclose(fpFile);
}
return iExist;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -