⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pctoexcel.pc

📁 Pro*c生成EXCEL文件
💻 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 + -