|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
- 花键轴设计的主程序 Database_main.cpp : implementation file
& q8 m' U' z% }( m$ ?
& M$ a3 M* @. }( x" [# \6 n& G- ( D7 i& e6 d1 S% P* \8 B
4 ^0 R d# u* d3 D- w8 I- #include "stdafx.h"9 y: j3 |) K: n; S' U& y& N5 r
2 }8 G1 [" l1 z' E: @' B8 H- #include "app_data.h"
& W9 X& t# y. ` - $ ]+ [# X* A* c' _
- #include "Database_main.h"
; B, U3 x0 k. `* p+ s+ w - 9 {. v; @2 j: f. n4 k" e9 b
- . Y0 f; B a* N. d Z# L
- & Q+ v5 g0 f- }9 ]- n# J! a
- #ifdef _DEBUG+ ~9 z" f$ D$ s7 }
- 5 G! C1 K& _0 h/ V! G) [$ E' ?
- #define new DEBUG_NEW
6 D1 `$ U7 p( A( a3 v2 P - - ~% Z; c d( x+ K" ^
- #undef THIS_FILE
& ~. `4 b# J! u7 f+ b: m# p6 v - , |/ F4 h Q0 N9 ^3 ~4 a! O
- static char THIS_FILE[] = __FILE__;/ K. I+ g1 [+ T- B/ j$ o
* K# Q& g$ C o$ U- #endif
: r( Y0 G6 T: u! j4 Y - 1 F8 s9 A* @4 M6 c4 @' N; r/ P
-
* g% G4 I# e( o. T - ( k- v# u& u1 J& j' ^8 J9 t/ U
- CDatabase_main::CDatabase_main(CWnd* pParent /*=NULL*/)
; t3 M7 B8 W6 j6 A$ r
$ |2 G- U% a! b. h" b( E1 d- : CDialog(CDatabase_main::IDD, pParent)3 P! y) Y2 b# `4 X6 u3 l
* C1 o4 ?9 z8 b# U$ ^- {
, L3 \* Q4 ]6 q# d7 D1 Y
) `* v' z! I+ l4 y9 d- //{{AFX_DATA_INIT(CDatabase_main)
8 F6 o9 c2 ~) B( q2 e# h% K) q' N
7 \1 X- I( E( v' Z& g2 U: e$ a- // NOTE: the ClassWizard will add member initialization here' e: _& ~3 e4 T) u9 I3 X- t/ `
- 8 C* X& t2 E4 `$ ~- ~
- //}}AFX_DATA_INIT
1 O* g8 k; W9 m - 1 G% m' L0 L( S7 X) w9 D
- }
+ T' _5 Y/ |6 z1 o+ ^/ O
- S* Q/ @ H" [; y-
) D6 W2 ^) C9 M6 K, P7 C6 ~( m - : `3 \. E7 ?- ^! `3 J
-
7 A/ w) }% \, {, ~4 u+ H
8 {( S! j& ?1 w- v) Q- void CDatabase_main::DoDataExchange(CDataExchange* pDX)
$ k. P# p+ [# u4 v- Q# u* B2 g - ; [* H5 O4 q7 Y/ U
- {
; s& H+ v2 W/ \- [2 Q @, r
' @( `# h T9 q( C* ]- CDialog::DoDataExchange(pDX);
8 [* d8 t& }" e$ X
- Z6 @! r# m! l; e5 |5 ~/ `% P- //{{AFX_DATA_MAP(CDatabase_main)4 o( r: ]( O0 s) T: n+ u
- ! u$ d: V, n5 h) f7 M' J2 w7 I
- DDX_Control(pDX, IDC_LIST_PARA, m_list_control);. D$ U5 w" u1 U3 m: b# I2 ]
/ `$ P/ Z% [6 @- b: A. M1 N- //}}AFX_DATA_MAP
. \2 }/ p/ g5 ^4 P( H - , I3 k- o1 O0 n0 V; z5 k. i% d
- }
! F: S# Q( Z; x* ^, X" U0 ~
& l: \! l/ B# N/ E' M. p* H b- BEGIN_MESSAGE_MAP(CDatabase_main, CDialog)
' E6 `( y+ G: q! L. b6 l" m" J - % K, L2 S$ c) @6 c4 k1 k
- //{{AFX_MSG_MAP(CDatabase_main); F3 ~- c/ [/ [0 a* h
# B' b- k5 j) J$ X0 P& |! ^- ON_WM_DESTROY()& g* u6 ^" ^6 P& m
9 u2 h6 ~6 y B" L- //}}AFX_MSG_MAP2 m x4 `/ z$ k. s$ q& s6 @, V* D
' a: n, P" |: N* ^- END_MESSAGE_MAP()
- T6 S1 K+ P& T# d# D
' Q B. F3 N5 D* y+ l0 [: f- ) [3 B0 m. @7 ^7 e6 @" i* v
- / m; A$ }9 F% D A1 T+ P' z* d/ u
- BOOL CDatabase_main::OnInitDialog()6 h3 E, {" V, W
- 0 y& |8 u9 t. ^' ~" E; ?
- {
3 ?; j; w S j1 j/ H - . c2 |: p/ ?# W6 V* s; D0 `+ g! ~
- CDialog::OnInitDialog();- E3 Z _# k2 f# Y
- ( |6 i' O4 N' S" q8 N. p6 i$ q
- + f8 \. {: r* K6 u
- : \% O+ l5 e5 f# U3 z
- // TODO: Add extra initialization here% G9 U3 N1 y0 F& l
) w5 I1 F' j( A: E- try{# I! I, i, e; D$ K: d
5 n. w5 C2 k% f' M- m_pdatabase=new CDatabase();
3 o4 l# C3 q/ x8 B
0 p- R+ f7 J) x+ X4 S- m_pset=new CRecordset();9 A9 T d2 v* A' K: L% P2 ]) D
- 5 p3 @3 O6 v1 V4 x
- m_pdatabase->Open(_T("data"),FALSE,FALSE,_T("ODBC;DSN=data"),FALSE); d& u! p0 |2 n9 [4 v: I2 V
- * L+ | K+ j2 K6 p4 j
- m_pset->m_pDatabase=m_pdatabase; 0 d1 Y9 \+ T g* h) P( v9 s) u5 v
- W% C, w8 F' T- z, m8 m* N- }. l( |/ }9 u3 j+ l" B9 e+ \& A
- / o, k P; w" M
- caTCh(CDBException* e){
4 o* C) n3 L4 R. ?, [+ b" m
R( D4 O& s+ _! F2 E- e->ReportError();
$ H+ ]/ U) Z( i7 i! X D6 Q) Y - ) l/ e2 A$ z% n' H2 x6 ^' U
- e->Delete();; c% c9 }8 F4 |; M
" k- H0 I: t5 X; {7 Q, Q- delete m_pset;, E) }8 k& c& p
' R0 x9 C4 | F: C! H- delete m_pdatabase;9 r% T6 T1 s0 w1 A: m, b
- ! g# K4 p4 \3 c
- return TRUE;}
& Y% b5 @ v0 a. n - $ l1 D S5 d- h+ N0 u
- DataShow("data");
8 w J3 v* ?0 P7 f" {3 l g
* t* R9 x! X( X2 l5 g7 h- return TRUE; // return TRUE unless you set the focus to a control
2 }2 I6 N9 k& Q
/ u. T5 U7 \- N1 m! e- // EXCEPTION: OCX Property Pages should return FALSE
7 V, z! q$ E% _1 O$ s4 K2 ` - * ]$ c/ g# H1 S: x& B) ?
- }& O* q' l. C9 `2 l; i7 e0 h) P. P
- . M+ V: O8 N+ i- L; x& P
- void CDatabase_main::ClearList()8 q9 B% [, U1 d( ]# I% T- j
- ) }. F. Y4 ^3 x2 }8 w9 p- ^; S
- {' F% U3 Y2 H4 S; ~
- : S% Q4 e& ^5 g. H6 X' i
- //m_list_control.SetExtendedStyle(LVS_EX_FULLROWSELECT);+ e8 N7 [; _# k: F* l( a
- 1 R) `& @. }) d) X
- //m_list_control.SetExtendedStyle(LVS_EX_GRIDLINES);
( m- S* s2 L# M# }! l9 R
$ u6 L- A7 m* p! T' Q$ l5 c- m_list_control.DeleteAllItems();/ e5 y' w; g7 `. f0 @. j9 V
5 m' W0 h( y% @+ S! T8 r- while(m_list_control.DeleteColumn(0));
( ?5 x# T; K/ Y
/ [& @" H- M4 ~4 A- UpdateWindow();
5 b9 n7 s6 T& m5 n9 H! ?
0 g+ L9 ^* I& m( K- }; ]: C. V) F/ K* v
- . ]' a# a5 n3 s; g5 ?( I! H' p
- void CDatabase_main::DataShow(CString table_name)
1 I8 N! F# u9 F- Z/ [$ [
; B; v9 a, L& _# c- {) ~7 U, N# q: {; d
! {; L7 H0 K* G4 k l# @: j* O- ClearList();
% [, i6 ?' M& j0 r) N4 V
2 Z* V" {2 Z9 g/ H O/ _- CString strSQL;
: q7 s+ [0 Y4 O3 V( V
; E/ q- c! I: M- strSQL="select * from "+table_name;
0 A; C" D# R/ l( i5 P - - A A9 C! H" q7 S$ L7 `& w
- ShowInformation(strSQL);
/ |7 l6 q* F. ~
* B" Z9 B! x3 y9 J# F, L- }4 N! |8 k9 n9 N6 p& \; l+ H
- . [3 p7 H. Y! R/ l- q y+ B
- 4 @* S( H8 e; }; g7 s1 t- N
1 P5 F e. ^# L4 P4 r3 Y- BOOL CDatabase_main::ShowInformation(CString strSQL)
/ [+ L# d2 M. l, u$ V' d9 Y( f
$ U1 j& P: r6 G! t- {
7 F, s. Z4 Z' r7 i. {2 O I# M - , H, t0 {! }6 q; U. M% y: G
- if(!m_pdatabase->IsOpen()) return FALSE;" n( ?0 e+ [4 n
- 7 o) ^ E* |: a. n! Y
- if(!m_pset) return FALSE;
" }' f# x& U. I' B5 c - ' @: f8 R: f0 U4 l# k
- try{
: N0 I( X; W ` T2 o1 V6 } - ! u( C4 w) Q; `6 K, G" @( k
- BeginWaitCursor();
& S- G. R- k u- E, h# R
. B8 O+ z% G6 A) z# h- if(m_pset->IsOpen()) m_pset->Close();6 t% a0 _4 ?% ^
6 Q4 K4 \) }- c( w- m_pset->Open(CRecordset::dynaset,strSQL);
" v/ ]4 U: O8 z2 y9 E! w1 @
2 N6 \# G. `* i+ c- if(!m_pset->IsEOF())' L J" v# _7 p/ F5 o
+ y5 G' E: \: s& N: d- j- {m_pset->MoveLast();
: f: U, V0 V( \0 q" E+ [ - 2 Z0 {7 p0 X# A! K6 J3 r! f
- m_pset->MoveFirst();}4 f$ [; y. M1 u% K) x6 |
# J' k% \% {* o4 N1 |- nFieldCount=m_pset->GetODBCFieldCount();8 e- K8 g' N3 d3 i2 Y
. T6 t) ]3 s7 ?. J% s- CODBCFieldInfo fieldinfo;: j& V) M: l0 b" F1 ]$ a# B8 [ h
- M( |4 `- ] k3 X0 _- for(int n=0;n<nFieldCount;n++){
% Y6 f- E1 c9 W3 I# f, v/ _
+ b, v& n. q6 [/ |$ `$ F- m_pset->GetODBCFieldInfo(n,fieldinfo);% n6 x5 p* e7 k; R5 l
- ( D7 B9 ~/ |6 J) t% b$ @0 H
- int nWidth=m_list_control.GetStringWidth(fieldinfo.m_strName)+35;% S. ]! Q7 u/ v& @* b
- c# G/ l# \% F) B- m_list_control.InsertColumn(n,fieldinfo.m_strName,LVCFMT_RIGHT,nWidth);2 X5 \8 p0 _ T1 i9 Q
& |; |7 y/ ~. U" ? _- }: L5 k/ N& j; x1 X4 o! d% Y& D; T
- 5 G# y7 ]/ o; t/ |5 E+ N7 V9 M
- CString strValue;
" ^5 J+ B; x& h - * \8 ~& X/ @$ j B
- m_pset->MoveFirst();. v7 H- G3 E! x
7 p# H- ?3 k9 L( G- int nCount=0;1 ^5 a; t0 S d; d, K0 Z
' Y9 G8 O8 S7 ^3 w- while(!m_pset->IsEOF()){5 j' m: I4 t7 b: J. N
- 5 l) U+ H& \ h! o
- m_list_control.InsertItem(nCount,strValue);4 H5 `4 a, O- b: y. n- w
- 6 w7 R2 C2 v. `+ g5 h( m
- for(int j=0;j<nFieldCount;j++){
F. @+ `4 Q3 W* J3 \0 K
, k' w- C) S& F- m_pset->GetFieldValue(j,strValue);
' J1 }5 U* K* N+ s" w
% ` T4 K( ?6 R) n- m_list_control.SetItemText(nCount,j,strValue);
9 w. |- I1 b, c0 _ ?) l1 q
8 V' e3 \1 F( ` ~2 |- }% S) @/ K7 H$ a! T4 F4 m
- - I9 j/ A" [' R. c
- m_pset->MoveNext();
. r; q/ w) D N - ' v- |4 U1 N( X8 e0 G
- nCount++;
& q% @( N B2 z4 ?( R$ b. ]! u+ C& R
i; w: [7 H" J {% N- }
8 t; L' z, O7 L
4 J3 s/ {* c# s+ ~% C# s- EndWaitCursor();$ R* X3 U; l5 u; p
+ F; {% O' y# x# H/ c8 k8 r( P; r k- }
$ K8 {2 n- r p E# A" E4 ?0 A; v
; _) t9 `: J7 X+ K4 v" e& ^- catch(CDBException *e){
9 |, {% j* O' Q# @1 Z$ V - ! v% R, c, t# _& r1 J$ B- [' L
- e->Delete();
) G0 d1 E/ u! ^* I$ n" D% ^
" \: z2 W- w$ M" k( C' _- EndWaitCursor();/ G- e( N. A/ g. _
- 1 g+ _* ]5 o, @ S
- return FALSE;
" S# s% b) X% [ x- u3 {
/ m3 A# C3 i5 T( u: Z8 j- }' G* @6 V, }2 \ G( c% Z. n
- ! T2 H o+ Q. I$ j! s( d/ ]0 ]' _
- return TRUE;" r* G5 N% G( z! D# W- b4 Z6 O
- 8 b" F& m% U! W6 T( g" X: \4 G/ h
- }: w5 ~2 ^# z a2 U% v+ N& \) A
- 2 L$ J7 m0 k3 L; y
- 1 u' o' r. d o
- 5 T# U. ]2 {9 S7 w# y J& d4 D5 u
- void CDatabase_main::OnDestroy()
% H' t: J+ u5 m- |. E% ` - 0 P7 b* L' d# W& C. W; \; Y
- {
6 R. w7 O5 ^8 i4 o& K% g+ u0 n4 b
9 \1 g) a% T% }( \9 f; B- CDialog::OnDestroy();" `4 L( e9 u6 G) u0 c
- ' u: y! J7 B0 d# c2 n; \
- + n; ]4 P, v' c3 e/ w
3 R6 a$ M( f/ i7 @9 E7 D- // TODO: Add your message handler code here5 ~: O4 Y; @" s8 ]# G
& z, E' F$ d3 D8 \0 W- delete m_pset;
$ w1 B; j( u W$ f7 I
- E+ e5 y+ Y& z- delete m_pdatabase;
, j% ~! H% k$ f( y. o+ k9 ? - , t. E* H' t: N# Y1 M
- }$ z( S/ X' O4 T. c
0 Z+ \7 j# j! r9 M- extern CString str[8];8 @! |9 A5 n2 Z; }9 ?( K1 G* ?8 x
% ~$ }7 x8 ~9 ^& u2 X- void CDatabase_main::OnOK()) H' ^9 Q( ~6 d
8 T h0 v8 |% P+ `7 A5 k0 m- P: n- {
2 \! C0 U: F6 x* n3 G
2 A2 l% \; x6 C$ D a: W6 T: h7 O- // TODO: Add extra validation here
1 y. e& }- B: D# {, O2 `+ h, u - M- Q/ e, f" z) w1 N( U: L
- UINT uSelectedCount=m_list_control.GetSelectedCount();. \) t# Y7 i2 O& s- f8 d; b
- 5 k. l" l% _5 I( c' V
- if(uSelectedCount>1||uSelectedCount==0)% W% x# c( C; _
1 c' |' V p$ R& [; g* L- {
! p8 A0 m* l: R9 U. b: k+ c% V( f
! C( z, `; q) E2 ?) r! l- if(uSelectedCount==0). o6 p; A6 E; o* {/ Q- T
- 3 Y, X" [6 k8 Z r
- {
! ^$ a3 U& [- O
; Q% p; }2 \# v; J- MessageBox("要选择一条参数!","提示",MB_ICONWARNING+MB_OK);5 k6 w9 q) M6 p/ ^- @7 ]8 |1 w3 `
0 [) K. z/ H9 l; N @- return;( D5 j( ?; k9 T9 m
- 2 X3 N3 J4 r, C P2 F
- }' V; N$ u5 h0 c8 ?' w8 ~: P P
- ' S5 i( n5 D% g" o
- if(uSelectedCount>1)- h: |% h7 B# O
/ @6 F' Y( ?; x3 \- { ; f$ d+ S" K% n
2 }& V4 t8 s* ~, a \7 V- MessageBox("只能选择一条参数!","提示",MB_ICONWARNING+MB_OK);
' g2 q7 E3 `' H$ K& p - 6 C/ ?* z4 T/ t4 ~1 L
- return;4 B0 Y$ c7 ~- F! c, W
- . X" B( {& }+ U1 o1 Z0 i% A
- }
+ M3 D% k7 |# S1 b8 @
) Z; a' }! F- S4 D: x# |- }; |; K. O* b4 D4 a( x/ _% y
- - f( h( `4 n: g
- else6 }5 U X# S/ D0 E; i
6 F/ ~8 z m8 x" j) @5 q# p- m- {
" v: J1 S( N7 G* B: s: T4 g t& q - ! A# j, T7 O8 j% S: S; ^1 A
- int nItemSel=0;# t) g" ~9 w8 G+ u$ x2 A8 c& d
- e$ n* g* u* W2 J- g. Y9 a
- nItemSel=m_list_control.GetNextItem(nItemSel-1,LVNI_SELECTED);
+ U" X+ V* b1 B# i - 9 z, A N9 h k
- for(int j=0;j<nFieldCount;j++)
8 T: y6 ^5 x& C - / @- a- A9 T% C
- str[j]=m_list_control.GetItemText(nItemSel,j);
, i% A: D4 N$ B" J$ d7 P7 q: w
0 t. f3 F4 P z- }
2 w: l2 M! B# ]+ M/ K# ]1 K - % ] _( c& Q0 A$ @; x q
- CDialog::OnOK();
" R, f. B: S, d2 S! P, B# t! Z - * Z5 G |/ s; Q" H3 L+ M
- }
( J8 m! L" w5 k. u( ` - }- }& T2 x" a5 F
- 4 _7 V: {5 _# F2 p+ S3 r
7 @$ j! o$ @2 ]* \! H: F1 H% X- " O$ n; a3 w% N
' G* \! ^. W8 t9 r9 Z- 圆头直杆圆凸模的主程序:
8 W4 }: x6 C- ~; B# z3 @' i - 1 j' P3 K2 r$ O/ u0 B
-
@7 {* E/ f7 f7 n' [, ` - % h/ D- d1 ]5 c; [4 g
- Database_main.cpp : implementation file; `1 g% N: J1 o: f9 }; G1 L+ F u
- , L/ q) r- [$ s% T4 d
- #include "stdafx.h"" X) M5 D" s8 x7 Y) v
! A- v; C( \- e2 s# {- #include "tumo_data.h"* W5 B9 c5 t }' t1 F
- ! B% T t/ v- ~
- #include "Database_main.h"
" G% Q' U( R( b5 [4 D# ~3 x8 g2 X2 q
2 G8 _0 K; M: D-
, e1 g# Q [# b
& Y- }7 J% u5 d5 Q" u# a- #ifdef _DEBUG
" `& L) Z" O, u# U& {
% d9 l- D2 J* F8 H4 |* L6 j5 R' Q- #define new DEBUG_NEW8 Y0 a+ b6 ^) b# [" T3 ?$ V
- 8 e0 _ s [4 g5 v
- #undef THIS_FILE
/ _0 d+ C6 z% e- n - ' d0 A# n7 a% g9 Q
- static char THIS_FILE[] = __FILE__;
$ I" ^5 _+ p9 T( g4 @
. I9 V) J/ z2 j) p- #endif
4 S5 Q2 x0 z3 X( X# \
$ P# V/ R% n0 ~-
; l, I1 u) C( w
6 t5 ^% h4 e2 t6 x1 M% N- // CDatabase_main dialog
) E0 d3 I# w$ ^8 z: R2 c
% G2 ]9 b8 }( b- CDatabase_main::CDatabase_main(CWnd* pParent /*=NULL*/)6 Z' x, R$ e. {, V; s5 {
- ( v1 f9 n- ^7 r) C* |. Z6 d4 v
- : CDialog(CDatabase_main::IDD, pParent)9 l# D* ^4 [& M
4 x6 f7 Z* w [) x& T- {
/ @1 o: p" h5 w7 H1 ^ - 1 ~+ y9 O6 Q* K, b7 U
- //{{AFX_DATA_INIT(CDatabase_main)
' L) T8 X+ J# v" e: O& U- W
, A2 @2 Q- M0 j( H8 d7 [- // NOTE: the ClassWizard will add member initialization here% T X4 W. {$ e4 o
6 \7 I- [7 g. C: T- R' [: i- //}}AFX_DATA_INIT
6 Y9 C( b3 j; t - / I# C) a. S! e1 Y4 O+ O! L- `
- }! v8 `; A, U3 G! T3 j3 r2 j' C
- 9 ~ ~ S3 D% F
- void CDatabase_main::DoDataExchange(CDataExchange* pDX) I8 N% R) d% Y! ^
- 8 _: t) o7 A& m! \5 a8 ]7 g
- {
^; l8 N2 E G# w9 Y
% s" M9 S9 e& i3 R9 v: E" n- CDialog::DoDataExchange(pDX);5 n m) v5 S; B
- " `* i- ]* K& m; _ Z1 Q! C1 T
- //{{AFX_DATA_MAP(CDatabase_main)
7 c' Q; k5 b9 T - 5 {: O% [& c$ h9 R& X+ g
- DDX_Control(pDX, IDC_LIST_PARA, m_list_control);: v' }* o4 @4 w0 |
- + M7 t+ _- D1 ~3 o# `4 D
- //}}AFX_DATA_MAP8 n% Y. B# I6 q" l7 l* r
- 5 e" |0 h: c _
- }: `+ B: d+ E0 v
- 5 K# w) T. k! Y/ p- N$ P) ]8 X
- BEGIN_MESSAGE_MAP(CDatabase_main, CDialog)+ G/ n# R1 ~2 d2 H1 |$ j
- ! K5 P9 ~4 ?' r
- //{{AFX_MSG_MAP(CDatabase_main)1 T* b) M6 G8 t" E
- ^# v& h% @# N! R6 a- ON_WM_DESTROY()
0 A( f: _, Q; n! o. b, q# z2 H
# |$ e- A; u7 J5 A1 n6 @! k- //}}AFX_MSG_MAP
6 ]6 b% @3 o: J0 H; ]# A - . o* @8 ^9 `* n9 S# Z+ `
- END_MESSAGE_MAP(): U+ {- \! J; u. {! E+ E
# n( b9 s4 A' E9 l5 m" m-
c& o- R6 m1 ~( X - ! M$ V5 P2 b" x% y6 Q! X
- // CDatabase_main message handlers
8 @$ ^; e. e* ~+ W- c8 l8 u - * ]3 v/ i: T3 d" z( N6 ~$ W9 u" v- C
- BOOL CDatabase_main::OnInitDialog()
3 Y0 |1 {3 |9 R. u+ Z - 2 g0 l7 Q6 r5 Z+ _: F
- {
" M8 W5 |7 h* ~8 C7 b
3 [! P- n" g# O8 r- CDialog::OnInitDialog();
4 p2 z! Y' S6 }2 L; L
' D8 {* Z5 i5 J( A4 N$ A-
5 x- h) ]) H' w% j - # r4 x+ r) g% G8 Y% a9 p- y5 N
- // TODO: Add extra initialization here
, i# k1 X% O m
% |1 N, V1 i# _; V1 y+ }" ~9 O% a4 x- try{
; [3 ~9 p5 V& w1 G
5 O4 Z1 u$ h# J1 r& l- m_pdatabase=new CDatabase();) U' K9 t0 R4 W8 X# k+ N2 I
- , u/ \. ]- N4 [" s. f
- m_pset=new CRecordset();
/ |4 n+ f& `" o+ Y
3 O7 m: w) }! z p% s- m_pdatabase->Open(_T("data"),FALSE,FALSE,_T("ODBC;DSN=data"),FALSE);$ g" x4 g& @1 E. E. C
$ E7 T3 J: V, \0 f8 P- m_pset->m_pDatabase=m_pdatabase; + s; C* e. u: q
- 2 P+ W0 D, c) F( V! c) c' u/ v
- }& T/ d: ?, a4 j) D/ F) s
- 7 l4 ]+ I; F9 w; ? p
- catch(CDBException* e){* S( L1 n3 {" {; H% b. P* X2 E
- 3 T8 N* G/ M$ D$ M K
- e->ReportError();
3 y. g" t8 V" S, L1 u+ e
% W& }0 k: ^# o' Z) w: K- e->Delete();
/ X, G/ X! \, ?5 [" e - & g7 t/ K+ d+ o/ r
- delete m_pset;5 \ X9 D: B0 f
- - W* D8 I; O6 u, x
- delete m_pdatabase;
0 \" H; N1 m) F* q( [* f - 7 P4 b2 m! w8 ?. X, G7 N
- return TRUE;}
4 p! `- k( b8 w4 w
8 Y2 V9 |- I% A1 i- DataShow("data1"); N% H& G) V+ e9 v: q: o
- ( G \* w7 k+ w1 V) k0 `$ m) T
- return TRUE; // return TRUE unless you set the focus to a control- p6 W; m' u. b! Q. {, I4 Z
- ; D# K( p$ X' l) A/ \
- // EXCEPTION: OCX Property Pages should return FALSE1 a; K6 e) X$ p; q+ Y
: O& ], ]% X4 \" H4 n0 V- I. r- }
* P, R9 d9 S |/ b7 m6 ?. N" q - 2 T6 @( T) `. O: O7 {4 R
- void CDatabase_main::ClearList()" a9 X d# K6 W1 U
- & z; c# ^2 f0 _/ M; O' [, G+ N
- {6 B5 }; S+ _0 a" X' s' L
- 6 ?- k5 @+ y4 X
- //m_list_control.SetExtendedStyle(LVS_EX_FULLROWSELECT);
+ V4 R, G) g6 r- N* ^/ ^
. z7 B) D- |* r& `9 \- //m_list_control.SetExtendedStyle(LVS_EX_GRIDLINES);
1 {7 a1 [8 S2 k) { - 0 c" B9 ?4 |4 p! S' h- c
- m_list_control.DeleteAllItems();
L% m+ v S# m! ]5 {6 P, A - 1 K! M1 i2 g$ X
- while(m_list_control.DeleteColumn(0));
/ s: |% B2 c/ l* e6 x/ T& C. R - / F& G) h, y0 c8 O5 o0 `
- UpdateWindow();
! _: f: j6 [- S1 Z - ; |, M; P G& q/ r' t
- }
3 p: \ r1 r- ]: A8 n) K
+ f6 G4 j# c6 P% ?& A- void CDatabase_main::DataShow(CString table_name)
4 N$ J1 H$ a1 F& t1 t3 ?9 R - 1 l& E6 [ M/ h. y0 r2 \; Z; ?" m' a
- {
e9 C5 p2 m% o1 R - E: |( a2 W% v" X2 [
- ClearList();
3 i- T% R0 O3 H; s8 O: n# \% t
9 f8 h$ O* q& P2 X4 K9 g( {) H- CString strSQL;: R# N$ R# h: y; ?
- ]% ?9 C, }: w$ P: n$ x7 @
- strSQL="select * from "+table_name;
2 i Z% B* H: ^ - . K# w2 W& L! [) |$ m, G
- ShowInformation(strSQL);
0 h2 |8 {# Q5 B - 2 q2 i) h; e+ D% |: [* C9 O, S
- }( F: d3 ~ t. D% U7 Q& w
- : V( `, d; Y! Q' g: q+ c; I+ O. G9 x
-
7 p( N) L3 y. {0 `$ k$ M - 7 m3 o9 U; f" B. K! D1 x
- BOOL CDatabase_main::ShowInformation(CString strSQL)( W j" H, [0 o3 E7 k8 j% a
, S$ d" b/ n/ F5 O- {4 E3 ` `7 {2 c6 i, S, l J# B5 x
1 t2 N) Z0 l9 A- if(!m_pdatabase->IsOpen()) return FALSE;
% S8 e* T/ V! Y
: d. M! r2 M2 r& B- if(!m_pset) return FALSE;) g& K3 U" p$ b/ }. N" U. D
- & q7 h$ i' T' X" n
- try{
( y3 b) O& W( @! }! M - 4 Q$ G1 M0 S" J6 R' N
- BeginWaitCursor();8 I* S3 G! V3 g5 D6 U- y9 Q; J$ \9 C
- " m; W, c( m$ {
- if(m_pset->IsOpen()) m_pset->Close();
3 M* ^, q& E; a3 b3 [9 _, ?
% L' o6 M$ R. G+ {+ `. h5 o, r- m_pset->Open(CRecordset::dynaset,strSQL);1 N0 W: n7 d7 O/ [6 E' \: E
- ' E, M/ {" E' ~+ j" Y
- if(!m_pset->IsEOF())- J( ^2 ?: x6 b! k
- 9 z' y I5 t# h4 ^
- {m_pset->MoveLast();
( @/ a4 e" c. v6 f1 S0 R - 0 f. P6 i, f% n2 S4 D1 ]
- m_pset->MoveFirst();}7 g+ `5 y* n9 b. I7 @9 G% ]+ `6 Q1 V
1 w4 u' L K/ m3 U. x7 U1 ^+ U! x+ W- nFieldCount=m_pset->GetODBCFieldCount();! b# k0 \! o; I7 U
- 0 d2 I1 R! @% E; g" D4 K5 Z8 _- r6 O
- CODBCFieldInfo fieldinfo;
1 i# y" H& O, G K - 9 R* G$ z# u3 @% F# ~0 ] S% \
- for(int n=0;n<nFieldCount;n++){
* _) O2 P u1 N& ` z9 L2 G - * U# F4 K5 j+ w
- m_pset->GetODBCFieldInfo(n,fieldinfo);6 r# }$ Y/ j& m' W6 f( ~0 k
- 2 P u9 U4 \5 l1 V7 p0 E
- int nWidth=m_list_control.GetStringWidth(fieldinfo.m_strName)+35; p5 t# I2 x% f
- ! j4 i' _& p, g6 a
- m_list_control.InsertColumn(n,fieldinfo.m_strName,LVCFMT_RIGHT,nWidth);. y) u! x/ \ z
( u' x: W3 e Z- }0 z! P/ o* m c# \6 `5 u
% p& c `( g' I# Q- d; f- CString strValue;
' j' X4 j* \& d3 Q; M2 h1 d4 x/ I - , h Y! X! x% g Z+ [3 ~ V- m
- m_pset->MoveFirst();! j0 n& ]4 G o/ P
; F- @5 r3 S6 y3 q7 H( I8 }7 W- int nCount=0;( z& S3 b1 y$ T7 E( L" f8 M
- 8 K" S' G5 Q1 H9 R* f8 \: g
- while(!m_pset->IsEOF()){3 a1 ]2 |7 P( E2 `" G/ D: p6 x- c u
y. T9 I+ p! `$ U6 `& {- m_list_control.InsertItem(nCount,strValue);$ D- x5 h. T8 @: I8 U( e
2 [& Z. I- Z7 V! n: g5 S- for(int j=0;j<nFieldCount;j++){8 K1 b# t4 U# t" w! `4 C
* l9 V& r4 r& H& [6 y& `- m_pset->GetFieldValue(j,strValue);
; C0 K/ L7 f+ z( N. ]# T) W) G; U - * v' O4 [. o$ a( Q
- m_list_control.SetItemText(nCount,j,strValue);
. `* u& U7 x. v' e6 i0 J* {
- t( d l" m1 r$ N, S( D1 X# C; i- }: a+ M" R, `/ U' `, V
( F) S5 R4 }/ Y4 v, G6 J; M9 P- m_pset->MoveNext();1 @+ Z9 r# `8 ? S- T
- 3 x1 [- f' U/ ]& X+ ?
- nCount++;
# F, o3 h8 l5 h4 W& o S8 f2 h
& G9 x9 X& M G8 z- R; F+ X- }
) P+ d) v# T6 _ - $ T7 J F! T0 i& }. d# T5 S" v
- EndWaitCursor();
" `1 u! {2 @5 v- Q/ e - - l5 { z6 k4 r& O4 U8 l0 {
- }% j' x1 r. h0 M9 }: u# f; V
1 \6 [9 X! P% j. {2 A- catch(CDBException *e){; E* n+ P" O3 T+ b( m% _. S5 t
; ^2 j+ i- a8 Z7 ]; y6 ^+ w9 e- e->Delete();
8 f. C! Z; X% b0 G" K0 D
5 S* [7 Z1 x0 ~$ [# @( G# \- EndWaitCursor();
$ p) W% C8 R: B+ c+ h3 L: e - 5 g. @; E* P$ u9 D
- return FALSE;7 g7 V! ?' {: x" B6 E4 Q
- q, j2 ?: C0 d0 r U8 K& O
- }0 N& r5 v3 k8 v, p
- Y+ D( I' t+ o3 h* b0 b
- return TRUE;
$ F& P/ n% U. @, `. S* ^# a2 f
4 ?) b4 m1 C# w& _: T& E5 R# g- }
8 E, M" d9 T- W( |9 r0 Y: U - ! }3 Y. b1 e! A
- 9 \; }& J4 Y" c" N ]
- : _: ?+ I3 k3 v: z9 g
- void CDatabase_main::OnDestroy()
+ e3 N6 j# g8 u% p$ ~
% G" o, X* @: ]8 O' X- {# Q# w! \. A K. ^! }1 A
8 {2 ^& h7 b! t- S# D- CDialog::OnDestroy();* @# S( J( `$ c9 u9 T
h3 C+ k/ `9 n; {" {- S- 0 E1 z3 ^- G/ E5 ^+ e+ r
- # d# S' ` h( ]' Q5 `" w
- // TODO: Add your message handler code here0 y& L |6 D" i4 T! w
, L4 t K. B/ `; p: \: x- delete m_pset;
8 H' l( r7 l0 }2 a2 ^
: z, b) [9 l% f% h& E1 w- delete m_pdatabase;
2 x" p8 ~8 b! R' g: Y& Q3 W
% y1 b: M7 R |) C7 o7 B- }8 s4 C/ ]! `4 M/ [5 B8 F
- 0 D" V, r+ {# ]' G& ^" v
- ; Q3 w7 o4 H. `+ D0 q; F
- + E w" ]$ n! p, ^- J
- extern CString str[6];" H1 \- E% u& w2 P5 @; B
$ P$ @! a9 p: y$ Z4 m- void CDatabase_main::OnOK()
! \/ }% @: Q m8 \' L3 u
' [9 G. r# Q* y- {
3 I: x1 A: N. p/ Y+ I" X0 m
( l: G5 {, D" ]5 J% c" w! q- // TODO: Add extra validation here
& c9 y6 O' d2 x8 L k
5 T* f5 q$ F5 E- UINT uSelectedCount=m_list_control.GetSelectedCount();
9 O2 m3 g" {8 F4 y! `8 |
7 M1 X# y2 @- y: m- if(uSelectedCount>1||uSelectedCount==0)- t& D7 d0 [( E* P# p" r" {- P
- 4 e3 R/ K4 B! ^
- {$ I6 J; @8 l( t9 F4 G
2 ~+ w# D" ]- a4 L+ j/ K; g- if(uSelectedCount==0)2 q3 d! Z9 ^: H R* t' C* L$ ^
- % a; k% G0 g# ^1 f$ T& z
- {
: G7 Y6 A9 Z! t& i# M' n! m - 4 r5 i* O5 z3 m9 m; |
- MessageBox("要选择一条参数!","提示",MB_ICONWARNING+MB_OK);
* ]6 ]0 F& b/ J3 w( [# k$ G7 K a2 ? - $ V/ R9 ]; G* T' m1 j' j: V, U
- return;
# L- m/ x: P) B( h+ t
) p/ P( n5 X& G8 Y- }: l0 D7 e3 K! Y, V, v2 a
! v+ y: J! b* N( p! w" v% G- if(uSelectedCount>1)
: A. _! j8 _6 z; ^0 O* L9 q - ) h& d$ E$ s/ q Q" _
- { 5 E. ^8 ]7 ]# u$ M1 e) ^# c. s
- / f q/ t) l0 O$ o1 O
- MessageBox("只能选择一条参数!","提示",MB_ICONWARNING+MB_OK);
8 l1 b( R+ E5 w! R4 A; J- h
+ \9 [' W$ E" y6 w: x- }- return;' c8 P4 M: F% p+ e) Z, F6 z
- 5 `4 V! S2 x% {' G7 k; V: e
- }
. [; t' m" Y0 s6 t) v+ ^
5 b9 r' ?$ S* k; O, F5 b- }4 L+ \! [- F$ C7 C
" S/ G' o- ` x7 c- else
3 x$ g' J& `& q- M - 8 B2 ~0 |. t1 K9 e' Z/ [9 \
- { $ P8 L+ E3 `4 u5 @+ _
- 2 I7 A& B4 N6 u& B; a/ D
- int nItemSel=0;2 V: S# u( Y5 _
- 8 g& X1 m# z! ^* W$ a
- nItemSel=m_list_control.GetNextItem(nItemSel-1,LVNI_SELECTED);
8 i% b% _4 G& f, |1 U - M9 z" C8 l4 W. y* V$ A- U% L g
- for(int j=0;j<nFieldCount;j++)% A, G1 r1 f, [/ n+ k4 Y
- 7 S) w4 r* ?, `2 d$ I
- str[j]=m_list_control.GetItemText(nItemSel,j);
2 o p6 @3 C# `, o. P ^& ?1 E - k" ?" ~( ?! b7 i, N3 v+ X
- }8 j) A. y$ V& L4 r5 k. t
- " h2 D/ f! B/ Q. f2 h+ i) g( B- c
- CDialog::OnOK();8 w" c! u; c0 r
- 8 f/ u/ f- C+ v7 O/ X n
- }1 u5 s. F7 o1 Q' w! _" J0 ^
4 H, m! P4 `' Y/ \& a& H- % j9 ~: A9 I" r: ~ g: j
- 0 M% e5 Z9 q" \4 w/ Z
-
C {7 ^. w$ _9 V6 I' v
" _" C1 V! c- Z-
3 M! s/ |1 m1 H% D1 C5 ~% p! X% P2 B - v9 R) ?$ Z, W) G3 _6 I
- 花键轴数据库的连接程序app.cpp3 Z$ o3 {; }7 d2 ^5 B {* d
- X0 I: z1 e, G: W4 Y, x i0 [
- $ W: \0 A: J# G, h( ]7 d) E) u
- ! l$ A$ `. v6 E- z l$ n+ E$ J+ R0 k
- #include <stdio.h># @: }0 p6 N' Q, G
7 O! V/ l4 H4 o: S- #include <uf.h>
5 g6 E( a( H* [' d0 @- v
1 ]1 L. @) {4 w7 l9 B. l8 }- #include <uf_defs.h>: u+ ?+ s8 H& o2 K
3 g, z, Q3 Q! k& E- #include <uf_exit.h>
7 F) @8 |4 |9 _. l8 g9 Q - 2 X( y8 V4 a2 F, S( u
- #include <uf_ui.h>
( R$ W$ g: g- p# e - 0 W4 H! m& A" w
- #include <uf_styler.h>, H+ X3 K4 O) c; h
9 ?5 ~/ k8 Y8 k9 K& n! K- #include <uf_mb.h>
3 m6 m: v9 \% |, f7 ^; y0 a. v
$ u" [! A6 J$ L; @- #include <stdlib.h>& a6 U e4 o0 V( f b
3 n4 {( {9 `. ^1 h$ Z( L7 m- S7 m- #include <uf_modl_expressions.h>
3 p5 t5 I0 w% v/ p9 l, R
# B2 z* j N; L! \- #include <uf_part.h>* B' g8 K; g3 F0 V9 J% h
- 7 d: |* ]4 L* @- `0 o" R
- #include <uf_modl.h>
/ Y1 ^ w. i. L( m7 K( R8 F - 5 ~3 w8 w5 J8 V, y3 `! v4 o- t
- #include <uf_assem.h># {4 A# I4 N+ ^2 z1 B; @) q
: n5 l6 u; M0 e5 }% z; P+ J- #include <math.h>7 T t' G* |1 f' f, U& n! A5 S
( `: i8 y2 l2 J: e0 w- #include "app.h"
" V; M6 \; A+ d8 u8 B - 0 _) ?; _5 w; ?' O/ ~8 E8 W
- /* The following definition defines the number of callback entries */
$ E) p; r: ^/ k# R. h
" R4 K; o8 A' Y1 O- /* in the callback structure: */% a- f% T! g3 `' X- k6 Z
- * N" f6 @6 K, Q! K. U( N$ d3 F! D
- /* UF_STYLER_callback_info_t APP_cbs */
% g% `% p) C. K$ W- D
2 e1 h% j1 t) e2 h* p% v0 ]- #define APP_CB_COUNT ( 6 + 1 ) /* Add 1 for the terminator */1 q& X3 a7 C' v& _! t
- $ M3 t+ b+ U' c4 F' J
- extern "C" DllExport bool para_database_func(void *str_mid);
& V8 Q" V) q, u: {% n( S - 3 F) R2 A& x* T0 j5 U6 [4 P/ }
- UF_STYLER_item_value_type_t data[7];5 L' q! a1 }/ x, T, `" ^
- , G* P( [8 o" i4 ~" M
- static UF_STYLER_callback_info_t APP_cbs[APP_CB_COUNT] =
: @$ s8 p( d- V+ t8 W. m+ u' p& N
9 g% i- m$ M( C# R9 {- J8 V- {2 U+ A+ C8 Q2 I% R2 }! n
# e9 N# c6 W8 O, E- {UF_STYLER_DIALOG_INDEX, UF_STYLER_CONSTRUCTOR_CB , 0, APP_constructor_cb},
* k; i: P" ^/ g8 E6 o
4 `, z+ c6 e$ e9 u( d4 i- {UF_STYLER_DIALOG_INDEX, UF_STYLER_DESTRUCTOR_CB , 0, APP_destructor_cb},
/ @1 ~5 c" _4 ~( [; M
/ ~6 ^/ ?* S3 g1 O- {UF_STYLER_DIALOG_INDEX, UF_STYLER_OK_CB , 0, APP_ok_cb},! y2 n) w) G! `- A
- " m# R$ |" T9 F! ^) ]
- {UF_STYLER_DIALOG_INDEX, UF_STYLER_APPLY_CB , 0, APP_apply_cb},. C# q! m/ w% n* Z
- # `% S8 k/ n/ [) a
- {UF_STYLER_DIALOG_INDEX, UF_STYLER_CANCEL_CB , 0, APP_cancel_cb},
0 r% @+ g0 U% ^4 U
0 I# C1 q( n; o) ~) {5 G- Y- {APP_ACTION_DATA , UF_STYLER_ACTIVATE_CB , 0, APP_action_database},! Y7 Q" S9 u6 [. K9 S
- - }, G8 q/ @' n+ ?0 @
- {UF_STYLER_NULL_OBJECT, UF_STYLER_NO_CB, 0, 0 }. c) W; o q9 m+ x
- 5 G# r/ y1 Z+ B/ f; F
- };
% o o4 F. ^( h2 @. s2 U5 u/ q - 9 Z! j @ q2 a- I* M3 [
-
1 }. {7 [: [4 X) ?
2 I' L" V$ j v: O0 ~- static UF_MB_styler_actions_t actions[] = {) F s% K, h* a j
- # E8 ^! e. M& H( u1 [
- { "app.dlg", NULL, APP_cbs, UF_MB_STYLER_IS_NOT_TOP },4 S! }" `6 H; q% R4 g/ u8 Y3 g
4 w: |! ~ V, n" p* {# F- { NULL, NULL, NULL, 0 } /* This is a NULL terminated list */
- i+ u6 H1 d' X. c9 J. B - ; r3 T Z, S$ _! @$ o" U: [# A
- };# L! N/ q9 V& e/ Y' n
! V: m, B& l* {; I4 S0 W x- //#ifdef MENUBAR_COMMENTED_OUT
$ w J) t1 S9 E5 {; R; F" S
! `2 K/ G5 _4 S l! T1 _- extern void ufsta (char *param, int *retcode, int rlen). }; m1 b* d) x$ d9 {$ S; M1 o9 c$ {
- / Q; h; |% D' P, Z% g0 a
- {/ V! O J# Q) n) ~/ f
- ! I" \ u+ ^3 _1 e- b% K8 [
- int error_code;$ K+ y) r+ Y1 U# v3 L" O
7 {* `: `. V8 s- * r$ M' `8 E5 I$ K
- 6 Q+ m5 ` `( o8 W6 ]
- if ( (UF_initialize()) != 0)$ W- O v' R) x* r [5 ~2 I
- ! [/ o: R* A. X- ^4 l( |8 a' N
- return;
0 S: ]. {- s0 A - - | M6 l: n( f* x2 o `
- 0 v. K7 J+ J1 M8 _
- ! ?6 T3 S. }8 K3 O) t- j
- if ( (error_code = UF_MB_add_styler_actions ( actions ) ) != 0 )
. }% X. s8 J) D, X# X5 B, E! A0 `
8 t! j4 I. \5 e- {
% d0 ~9 e7 N1 u/ l P; g( b$ O6 @ - 8 `# a8 @4 s" Y7 m; a) S
- char fail_message[133];: r8 G* ?& U0 g) G+ K) t, A
- . ~) r0 Y# H" O/ G6 p
-
) w; Z- A2 E% g% P, l4 Z$ q" z' e - ! [! }! x* e' h/ d% o& M c' Y& I
- UF_get_fail_message(error_code, fail_message);) b) m" L( M5 h. ]6 l/ Z
- 1 E. Y. S: u# [% T: b
- printf ( "%s\n", fail_message );2 I( k* F/ `- [0 _" m3 C' [
: B Y6 b/ K. ~# D: p& }- }. [+ O8 k0 P; E/ A! @% O# f
" [; _9 k9 s2 D5 K# D: |9 v-
2 c. X# I/ V5 H
% o0 H! e) c3 O5 C8 p) S9 h4 P! L- UF_terminate(); & e# L; I G) P5 W$ s7 n# ~
- % x. n. C* ~# g8 l
- return;
" @" M/ S; b) z; {+ |1 F# s - & p* w8 {$ h5 @1 |; Y
- }& x. l( y1 d' ~( W2 ]9 Z
2 |% r( Q' J/ Q) E; R4 n0 q- //#endif /*MENUBAR_COMMENTED_OUT*/
* b: C7 |( `% L/ ` - ! K; r% z5 s2 b* p7 B( r9 d
-
0 ?9 w1 ]* v- P+ t
2 w: k+ w' d* s, t9 A, I Q- #ifdef DISPLAY_FROM_CALLBACK. \ Z. F* e' j7 m6 Z
O7 N4 b8 Q& d# r6 _# H0 o& @" Y- extern int <enter the name of your function> ( int *response )7 V9 e( m1 Q- K D- l; I3 {+ ^
6 V& H B- p0 ?6 P. F% [5 @. B( h0 |- {$ I: {+ `' u4 T$ K
- 3 N/ x' ?" R# C) c
- int error_code = 0;" F4 ^- \2 x* E. |% e
" L- L) K9 s- G+ X4 t1 F- ! ~7 r4 F, a( R. T# q0 L
1 q7 h/ T A4 T) U, R3 k k" P; a* Z, M- e- if ( ( error_code = UF_initialize() ) != 0 )& n* \# K8 [+ d* F
+ `0 J b9 A2 O+ q- return (0) ;
% I7 K K& A! t* |3 v' A3 f - - e3 w1 r( e* s. l* k8 [- u1 h* `
-
" a- X- f9 y: ?, F9 L/ @8 K" i) s - $ g5 ]: t. c; l, v/ _, L
- if ( ( error_code = UF_STYLER_create_dialog ( "app.dlg",
* D# D- N3 {) Z7 g, z - 9 M$ Z7 E6 N# a4 ]3 x
- APP_cbs, /* Callbacks from dialog */
* N) y4 J* ?8 B& {- |3 o
1 t. h# E- e6 S% E8 y. t( L3 ^9 t' V- APP_CB_COUNT, /* number of callbacks*/) ^% S8 G5 O8 \8 R8 A- Y
/ j! u# w2 d% a6 e2 r- NULL, /* This is your client data */
" b8 Y/ Q& W' b7 t! i0 f - , r& j3 S; i! H; ?! ]& a$ U! R X
- response ) ) != 0 )% d- y7 t0 w. F
- + l& q. [" Y1 j7 K9 @0 u0 _' v( A
- {
' v) U2 G! F' \" M; I9 R. o- ?
+ Y8 x" N! t2 y4 ?' p1 Y# n- char fail_message[133];
6 ~% q; m( X* ]9 ? F# K# O% [
m! C$ C7 }" L/ R8 M2 r+ s; i-
- z/ S/ |+ [# p/ ~4 E
/ ]2 m3 U0 q, d+ U2 j, [- /* Get the user function fail message based on the fail code.*/
# g- a7 ]2 B5 Q) ~
/ M8 Z8 H' @# X/ q u8 m. ~- UF_get_fail_message(error_code, fail_message);
?9 h5 {1 i: \$ c2 R- R$ d, d' z2 C - 3 X4 a1 g/ U/ }8 C# F$ B; W2 \7 V {7 s
- UF_UI_set_status (fail_message);* X% O# l9 _2 a3 I3 m0 j+ U3 a
- : _' ~# v0 }4 d7 j) w0 d
- printf ( "%s\n", fail_message );
( y5 U: S0 _; H1 [# ]: ~; z- S
( x% @3 h: F1 G9 L, f4 b# N9 @' [1 ~$ q- }
4 ?8 D4 S% @6 E0 d - 2 P7 B" T4 F. \% ]. }. P
-
3 h3 y; k; t7 d: i, ]$ z n; y% v
d6 C2 ]1 z5 Q7 V8 ?7 ]% X' P- : @1 n3 T- e+ A% @
- : {" L% z9 W) k7 V$ g/ |! Z
- UF_terminate(); 0 [: d' j6 z7 Z4 m; L
- + N" J9 }7 q8 T+ f) |/ K
- return (error_code);
) ~" O3 R" k( {! ~
. D7 _# Y: G* K- }
' C% f% U2 z7 \7 S3 a - 2 Y- S; p2 e# g) m
- #endif /* DISPLAY_FROM_CALLBACK */
& M9 F# D0 q0 Q* f6 `+ |( @ - / f$ y3 Q1 k" V% n2 w: \5 R
- #ifdef DISPLAY_FROM_USER_EXIT
) f- U' ^1 P% Q! B; L0 L8 G2 x2 s/ \ - ' Z& ~/ H, q5 V$ ^$ b+ c
- extern void <enter a valid user exit here> (char *param, int *retcode, int rlen)
1 @3 b! E2 e0 z - ) u* x. {8 }$ o# O1 f
- {
- e- e2 F: ~1 H' Y - 4 x- \1 g4 z- ^
- int response = 0;
- q# u% I/ r2 D" I( x- z0 A2 u8 Q
9 s* D2 b; A9 u6 }! y0 Z- int error_code = 0;! d" u @. O$ m1 X6 z" Y% X3 ^
- 8 t9 h1 x" P% _- t
-
6 J- n* Y: f$ F1 d5 Y# n3 ]. e- ? - : o- S+ e. R8 T9 k" b6 D# N& m1 H
- if ( ( UF_initialize() ) != 0 )9 Q8 B0 O ?- C7 c& A1 @2 b5 B: K* n
, R+ z6 t) I t: V; u6 O+ T2 N- return;
: G4 N" U- O9 I/ G% @3 h! y& ^$ j - i5 Y! Q# y+ R) }/ P4 @+ w
- ; S% P3 s5 ]. V8 c6 `4 W
' l* ^7 B" ~2 U, P- if ( ( error_code = UF_STYLER_create_dialog ( "app.dlg",3 {' i) }3 s' L
- u: M/ r, i7 f/ I: m8 S- APP_cbs, /* Callbacks from dialog */
" s1 g2 i3 v5 W$ F& N - - t- t2 c; q1 Y9 |+ z
- APP_CB_COUNT, /* number of callbacks*/; J) Q0 O# p1 P ]) d
- 4 M; h. J l8 A. `$ @8 J* ~' p; J
- NULL, /* This is your client data */
: C; q% s; F7 l% V# p7 `* i - ' {5 x+ F/ ]' C n- w$ v
- &response ) ) != 0 )5 v1 V( l8 k$ I) s* m0 M
R/ f: N% t/ [; l+ U' P0 H- {
' ^; R) c: u( l3 T. b
8 Z. U3 B2 m; Q3 h2 Q @- char fail_message[133];" s* X6 s% [: e6 Y: r, a, W9 |
" S- a: i y8 T5 I) j- ! ? H: K2 ~' z1 H5 i2 }
, a1 n, [) X8 B; l& O- /* Get the user function fail message based on the fail code.*/
; N( ?/ [& o! A" v3 t- V# m - 1 e9 q/ n7 Q& t4 F4 h2 a& y" G0 B
- UF_get_fail_message(error_code, fail_message);7 B. c9 b3 E- z& x+ Y9 C/ h8 z
3 W% T. A6 B0 D5 O# B- UF_UI_set_status (fail_message);
! y& \8 g8 o' E( x. w8 o6 M - 3 ^" F! W F7 d
- printf ( "%s\n", fail_message );' _, K/ p7 x8 f, b
8 N7 G2 E% M A! x: h+ s- }5 l, {2 p+ ?2 W
( e7 T# p- R: ]2 b# ?# R9 {0 j V- 0 S! w, ^% Z8 }% m! _& q
- 5 b% D/ S+ U& s& M
- % c' [, k/ W5 O
- / c" e6 C* I, ]; Y3 s
- UF_terminate();
5 Q: q# c8 z0 D D' H D" r+ ^6 f
0 `1 \/ m( ~. u3 ?- return;
% _6 G+ t0 x; t- s - - c: B7 [! E' T
- }
' r& Q- [' C C$ N d0 A5 S/ y# Q( ]
. D4 G2 s2 {5 Q. H: u% @- 3 g1 n( X' ]+ P$ F5 u' s: L$ ~
- ) y7 V G9 z4 r$ B& D
- extern int ufusr_ask_unload (void)3 c8 o5 C9 D* E
- % b* c! X; Y" J1 x! C) | G. e
- {
[; F6 N K/ w. t8 i+ j# ~. ^
, h: D! J3 J& P- /* unload immediately after application exits*/
% Y: K7 s2 ?) b5 U5 n - 0 j/ N8 E* D& ]
- return ( UF_UNLOAD_IMMEDIATELY );( @0 G2 Z' {& C) a1 @; l9 |0 B2 E5 n
- $ P$ w" S9 C; }7 K* h9 U
-
) ? U, s; A/ o1 D1 J - 0 M- c1 t0 n5 E. R' q6 I
- /*via the unload selection dialog... */- c! d; r) x9 N- R0 G/ v
- " H7 H( K; |5 b1 e3 l3 ^( r
- /*return ( UF_UNLOAD_SEL_DIALOG ); */
, |# x0 a5 \6 E& w! O) F& N6 [ - " t/ d) K$ ]8 ^% s+ \# M+ q/ i
- /*when UG terminates... */
/ N/ X$ G# {6 t- v/ s$ G! D% [
2 U7 M& P( i3 ^( `9 v* N$ p" L$ g- /*return ( UF_UNLOAD_UG_TERMINATE ); */
- ^$ ]% l: i: j0 Y# _3 K
; E& j% a3 I' l% i5 h! z- }4 c1 [# R0 E" e, K
- @2 _5 Y/ I% k' X) |$ I$ d- K( Z
- extern void ufusr_cleanup (void)6 m9 u: u5 h( H
- L2 o( s F! i7 C- \$ B% m7 t- {
1 ~! c. U) J- U0 r. [
6 w; C1 @6 n4 q7 }' x7 i0 m' \- return;' J% ?& I4 G4 D7 h" N. ]3 \7 {
! b( q L# X" \ @' g" L- j- }6 G& o& @' O& k9 {2 }) t% I
" v) u9 X0 W8 q2 ]3 \- #endif /* DISPLAY_FROM_USER_EXIT *// c @# M3 e% B
- 3 |% Z+ j1 U; H
- int APP_constructor_cb ( int dialog_id,/ F9 w' D0 n7 P c
- ; n( ]1 v5 ?* N8 h3 }+ k8 c" E
- void * client_data,, q2 H+ [* ~4 u6 u( }
- * p* r) L/ ?0 X
- UF_STYLER_item_value_type_p_t callback_data)
; f0 T' s O2 r, P V - 5 @% E' l1 l0 V8 B2 K3 q! f
- {
+ {! o( a$ {4 S& J - * J& d4 [6 q2 i$ C( N- m4 m' T
- if ( UF_initialize() != 0)0 {- _& p% \( |. L/ g" O
( B: ]$ [- n0 y+ Z- return ( UF_UI_CB_CONTINUE_DIALOG );/ K) w+ z: @1 V
- & O: Q+ }* C1 Q, v1 {% e/ g1 y% R" P
-
& P6 K: d6 K5 z& g9 X" B7 }% y - ( |; s$ k: M; C2 |! T. F& _
-
* ~. G N0 m1 k* S
9 l) T$ H" J, |6 d4 A) c- UF_terminate ();- N% S2 D- B! u& v# k* J5 s! N
! s0 T6 B" _* o* T5 P/ ~' y" a, w* ]- 3 Y3 }8 g2 i0 I/ Y
- , D9 O$ K1 r* C% L2 z' G
- /* Callback acknowledged, do not terminate dialog */
- D$ R. _! x2 o1 G0 V& Q# |' N - 4 L, t9 L: A; Y, m. E+ g
- return (UF_UI_CB_CONTINUE_DIALOG);0 u. B- i0 w, y0 e6 b' ~& f9 I4 d# g2 C
3 P' g2 e% G6 T: {- /* A return value of UF_UI_CB_EXIT_DIALOG will not be accepted */
, Y, s( ~) i& M) \
# m& o& O5 `" B* f) ^7 N$ ]* z- /* for this callback type. You must continue dialog construction.*/# n) ~! v; d4 W" F! m" F
- 0 I3 ]" [6 E. P2 g3 e5 `
-
) C% i; t3 V1 a" D. i
+ f O# B$ c, ^3 r- }
! F# k2 J! M, m - - _- I+ g, \: t
- ) k; f3 L$ L9 X8 _( Y- }( W2 d) Z
- ! G! D' f0 \+ h+ w$ V
- Y; ^9 f) n3 h2 y0 `
- * n/ J- j4 V M6 S& c
- /*# l7 o) l# n0 C( K% y
: r: h: ]+ B6 l8 g; u* z$ M- K9 V- int APP_destructor_cb ( int dialog_id,
! b7 p7 v; Q: Z6 |9 r% u0 r% h' D - 2 v: ^/ s3 U9 j, X0 U0 M$ R. j
- void * client_data,# Q# c$ M/ }, M$ @1 c) ~- r/ i9 u
- 1 |% T6 ~8 }' }2 s
- UF_STYLER_item_value_type_p_t callback_data)
4 [" |. X) U3 u
5 H4 u. R! t# A# T, j& Y- {! h2 z2 Q2 L& r' Z2 q, R
! n# s$ q' S) W+ p; Y- /* Make sure User Function is available. */
) N2 @& T, e2 H2 w7 p# ^ - 2 R9 ^: i2 Q% t: e
- if ( UF_initialize() != 0)
# {3 |4 E' u$ y - , v% m5 o1 l8 r; t8 a6 k
- return ( UF_UI_CB_CONTINUE_DIALOG );
7 H/ p U1 q& p4 W2 n5 R
4 q8 v2 k) O4 U1 V# C-
2 j7 Z0 X! L" s, w4 R
9 q) W( D. X$ i! o+ \- /* ---- Enter your callback code here ----- */
! N4 t, u7 D3 r5 U) E$ W9 x
. r/ D/ A- X% U0 s \% Y) C-
, | [2 z! R- y1 e - $ E+ L+ a) j, o5 z
- UF_terminate ();6 w b+ G2 l# t# _! z# Q' A
; }5 r0 G* I7 |+ K3 f7 B2 O1 w- 1 o0 s- ^/ d( ^9 Y9 }4 ~
- ( x+ n, c7 O- g
- /* Callback acknowledged, do not terminate dialog. */9 w+ u3 f) X0 T _, q
- 1 L, d0 ^7 Y0 v! h: r+ {+ b
- /* A return value of UF_UI_CB_EXIT_DIALOG will not be accepted */3 U0 k7 j% F7 X& ]- |- {1 f
- 2 g, Q4 J' K: {: G7 Y# Q! d
- /* for this callback type. You must continue dialog destruction*/
: j! l0 w3 z' B# j
8 k3 g& z9 C* T- return (UF_UI_CB_CONTINUE_DIALOG);
; o- s3 {. C+ S9 r. ~ - # a& J/ G" R0 t# e! ?1 t
-
9 W5 U+ l7 N8 S9 c4 I" V; T1 H
/ g& [0 B5 }, M+ t# K, F8 |' ~& v- }1 l) E0 W, _& r% u
- 0 b; u1 E# U; G# v
- * Z8 m' h) q1 O
3 ~+ F; L5 o% H# k) R' ?/ I7 e, o- $ m3 q% U- j: o4 }
- 7 f! z3 m( i O9 A
- int APP_ok_cb ( int dialog_id,
. k4 W: E" K0 g/ H% M/ G2 x& i$ D - " @& s& a8 z$ O1 R9 K) a% p6 ?
- void * client_data," w6 i! u/ r" ]4 a2 H
- " c# B. Y; v8 A8 r( B9 w2 F
- UF_STYLER_item_value_type_p_t callback_data)* A5 g9 a; l/ G; V- f
0 `8 n; X/ p1 |# `# a- {& E. d" s9 {- H' q: g; }7 C5 v
- # Y I$ X8 z9 X& N l
- /* Make sure User Function is available. */
. ]* w' a3 O: t6 a' @; P- p: M - . ^& P- E. F3 u/ Y+ j+ X, W( b
- if ( UF_initialize() != 0)0 s* P6 b/ I' N* L$ S
' K4 P: g G' n2 w% c- return ( UF_UI_CB_CONTINUE_DIALOG );
" Q( Q: z T7 \$ z
6 c* ]! S8 y' e% i* L7 Y-
2 h& A( R P- g K" j7 H/ |5 a
- X* T0 a. B" E+ r, u9 `- /* ---- Enter your callback code here ----- */
: D: y5 u/ ^, ^/ Y - - ^4 v7 x) \2 [1 T, _" P6 L9 u
-
6 V, r1 y( L$ }' S5 T
& y2 A+ n& q9 ?! m) b$ s- `- int i;
9 e+ A0 c4 y$ t+ d5 L - ' Q: g, `% C \8 a
- write_para(dialog_id);
( B1 U7 l# |' ?' `
j/ N3 E1 I8 J, C' D) f- const char env[255]="UGII_USER_DIR";1 l: p' h+ g+ Z6 ]6 W. Q9 ^% t4 P
1 ?2 H+ j' f, G2 m4 \& Y+ \; B- char *basedir=NULL;
" ?. U; r4 g8 t1 R
; H( u0 W/ b: d# m! @) H1 C* M- basedir=getenv(env);) k4 B; V$ F; U) B* M- {
* i1 `+ p" [: [3 g1 x/ s; P0 p3 `-
# g4 I; R/ A$ M. A7 a) X4 h
# ?' r; ^3 h" I" s2 L. p- char dir[100];3 ~% ?# K6 \, Q6 [
3 A0 Q- B+ Z" k* ~# z, ^- strcpy(dir,basedir);: c$ c2 Q* y! V2 j+ k3 S( w
B& H2 j6 a7 c. }: D- strcat(dir,"\\grip\\huajianzhou.grx");
: e' W, W5 A) J: S8 l8 `* X, V1 ^
* a# P' T- I) L) ]6 U- $ z* u" `. C$ e$ X' q# S: E5 O& |- A
4 q2 H$ s: z L: A* U( ~- char *grip_exe=dir;' W R" E O9 W4 _: G7 v5 J5 }
- ' c7 ?- d& ?, @. f. K# _8 D1 a
- int status;
2 l8 K+ b: u/ M/ e4 G - H: l0 C2 C$ k* z4 z
- int grip_arg_count=7; //参数个数% d# a+ H) @' J
' a$ s7 I$ V9 z4 D- UF_args_t grip_arg_list[7];# M/ g. c- [2 f! T
- ; w( s0 V. U7 N- z) k7 q
- : |/ [9 M. X* J8 l s! S
0 t5 E3 z8 n/ R8 B# Z- grip_arg_list[0].type=UF_TYPE_DOUBLE;
" r* F2 ~- e# |4 l1 J; w - 6 Q2 P4 B& H) b9 T D
- grip_arg_list[0].length=0;8 Z& M) F" S% Q( Z1 n; _" w0 c
- % H# l9 t; Z7 ?2 E) m% L
- double fdat=data[0].value.integer;
# }* V/ h o% z
( c) \: y7 C: i& J' C- grip_arg_list[0].address=&fdat;: J) ~! u7 k9 _8 l: o
- 2 b: j$ {7 m% p6 i. Z
-
2 v% |! d# A8 q w# f1 v
, {7 m- Y4 ^# M/ A3 L-
7 v/ G& g4 l4 p5 C9 P
+ U( v' [5 i& ]( e* g1 K- for(i=1;i<7;i++)! A9 M. Z7 D% K7 }
- 5 T' [, g2 K8 ?% }9 r3 F1 I6 @
- {& y1 o; H* Z9 b- x6 n9 E. j
/ p" W3 H$ _' L2 D/ Q: C0 B* Q- grip_arg_list[i].type=UF_TYPE_DOUBLE;
$ [/ T- y2 O% T
% a5 G o h# z; `7 A1 p3 ~+ [- grip_arg_list[i].length=0;
% ?: J1 M! A9 o6 Q* N - $ L& l) a! x9 j' s" T. Q
- grip_arg_list[i].address=&data[i].value.real;: P' R" I$ Q6 d5 e
* b2 o5 r. i6 i' V" L/ F! Z- }) D$ {8 f3 R4 v
- }7 y+ Q% t' ], u7 o/ l e-
' v6 I0 d, Q, j# S9 C: ^
/ P" G) w9 @! ?# R8 y+ Q- status=UF_call_grip(grip_exe,grip_arg_count,grip_arg_list);
' U, h( M. l' K2 @1 y
- K9 D$ d. B7 y) Y/ j/ p& r-
6 p6 y: R" G( q! [- e
; b0 f0 {) p) e2 D2 I- UF_terminate ();
e8 V2 R9 ?& i7 _/ C - 9 J' `. ?+ H' e/ _
-
( T/ u0 g( S$ v4 O
$ K( ?; H: o# d) V" P- /* Callback acknowledged, terminate dialog */
; Z" O6 a& Y+ r( K0 l( N - # b0 |6 D& w& \7 K
- /* It is STRONGLY recommended that you exit your */0 ]6 R# b# a- B$ B/ Z
7 m2 Q% u0 Z' Y+ g3 o" O0 [: n- /* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/
" f' P7 B O, g& a0 c. H
7 W! \6 @. a1 g' F9 H- /* return ( UF_UI_CB_EXIT_DIALOG ); */
j# f9 I, v# A( J: f$ F* ^, U
+ _( `) G t5 M5 o5 z- return (UF_UI_CB_EXIT_DIALOG); : G' g0 T# D* q2 \5 a4 J
- 6 D& X( N! F) V; g$ \
-
! ^+ s0 Y8 c* ]& a - 9 `, Z1 s& I4 d4 d. u
- }
' c/ Q: T0 x/ j0 [' I( |" x, d
' Z# T; E/ H) [$ C- y: p( H- 9 @- G5 Y: o# K
- 5 z( w. g/ a4 s/ l0 l1 [
- 8 e* A, b0 x- V7 N0 Z) S) \
+ m1 Y; Z, B. T- q+ [* e! d6 F- int APP_apply_cb ( int dialog_id,1 `* P) S: F2 T+ X9 k# b
- % f( }, a$ n8 Y) a
- void * client_data,1 q# o d& l$ ?& z: k3 w m7 Z" d
2 L8 \; k7 R: E4 N$ H6 Y) {- UF_STYLER_item_value_type_p_t callback_data)& s" u5 c/ z3 Y7 j% U R' f; n
- 7 `, `8 j" H% x% S$ c1 G n
- {
$ j9 ^9 F8 X y3 l
$ d4 O. E/ H+ S# W) s* d" A- /* Make sure User Function is available. */ 7 R6 d" R; A2 R
- # ?" x9 A7 @+ e$ g$ t
- if ( UF_initialize() != 0)6 w4 a5 J- T' z' M1 c5 l9 [$ P
# x- ^! |# u" |5 U4 I- return ( UF_UI_CB_CONTINUE_DIALOG );" ~( ^# D' f1 R; h
. V8 ?! {2 K' R! G% N! u3 ^-
# y6 W/ N7 k0 Y - . ^' h" k& [, l/ L' D- i
- /* ---- Enter your callback code here ----- */4 [3 M; X% |0 }# d# O8 \
" ^% H/ s: c+ X" ^* q" J3 _- l- int i;) l) `8 K* x0 R7 P6 d( D
- 2 \% _5 `( r( Z3 y* T" }
- write_para(dialog_id);! ~! {- N8 A- |, j
1 Q# A2 G: u7 {! q/ v- const char env[255]="UGII_USER_DIR";
! W# w) b! ~3 D% M8 V - ) r; l: o, M4 h, D9 a! N
- char *basedir=NULL;8 [' }0 w: O5 {" E6 E5 J& S- E, ?) n
- 4 |# ~, C, \$ v/ @ ^: }9 w3 Y
- basedir=getenv(env);5 U# T$ o% r7 R5 j& s6 r
- & G3 s- E3 U' v* Q& S) y
- 2 g V5 m& m* D- q6 i3 O
- 2 D4 }6 Z4 X6 e1 W6 f' o4 R% C
- char dir[100];5 j0 b& j, v+ t5 k; r2 A3 D0 @
4 A% y3 v- g) {4 |$ n9 {: J/ q% Z- strcpy(dir,basedir);' j( D: o/ K! S2 Y3 F9 m
- * C0 H& b) t2 s( Z
- strcat(dir,"\\grip\\huajianzhou.grx");) V6 a. V( N" j+ S+ ~3 n
" M1 r' a$ R0 F3 l- $ Y! X9 I0 w+ n: W( \- A
8 s5 L4 E/ h& p9 {9 r% c& T( C- char *grip_exe=dir;; u% V4 W: j" \) b2 o5 W) \
2 Z* Q$ Z4 Y1 V2 ]6 w, I! I) d% S% L- int status;& c: ^1 N9 V$ J0 i, d& |
- & f/ h# e. S* D) \, N
- int grip_arg_count=7; //参数个数5 L( {4 l8 R- K' X4 v
J( l8 u. b' h9 D4 ^3 d- UF_args_t grip_arg_list[7];8 Q6 B) X, a6 W$ B& }8 h3 N
- 3 y4 ~) q$ J- F! I0 O/ f
-
% _5 s; h. Z6 w/ g; ^8 k4 f - 7 D$ \9 N0 s/ _: X3 [3 y) [
- grip_arg_list[0].type=UF_TYPE_DOUBLE;
* _) [1 f/ |9 W& }5 |; o8 C7 K
7 V& x! \) p3 {3 Y9 r( D8 ?- grip_arg_list[0].length=0; w" X5 ^; ?7 L- b3 T( w
- 4 G3 t5 u6 n1 y; x' E T
- double fdat=data[0].value.integer;3 n `0 T4 N/ l o* H
# B/ a" n, R5 g! o& | n# @1 i7 k- grip_arg_list[0].address=&fdat;
6 m: P: H5 G1 }; Q3 W l+ C
" v R, e2 h5 x0 |-
2 p5 k7 ~* E9 p, W - ; ]: o& a Q+ C& }+ w
-
1 \3 H1 m8 W9 x/ ]9 ~$ d# N - * L2 G* ]7 v6 w; j6 v
- for(i=1;i<7;i++)
& e- O$ H4 Z, [ \ - " D/ F( {! U {, B
- {
" R* Y7 L5 r0 B: u7 y
, b1 X: v1 l$ w/ k- grip_arg_list[i].type=UF_TYPE_DOUBLE;+ ?( G+ C, c3 f( b( J
8 I7 Y" }7 f7 I- grip_arg_list[i].length=0;0 P* c4 A: @. w7 l7 t( W
1 G) c5 ^) G! q: m- grip_arg_list[i].address=&data[i].value.real;
: k: `0 T3 {$ S& t
5 g: ?* v/ c6 f. _" {1 i- }
# @" S8 v% S/ l - 8 \# O% p/ {0 k
-
; M2 r2 O% ]$ }
2 @6 v" {! V. H2 z# s- status=UF_call_grip(grip_exe,grip_arg_count,grip_arg_list);
6 c( w) X L' h6 i7 o7 ^. Z - % D9 |: b k9 ?* W( b' i
- ! e7 t9 x+ T7 r6 U
- ' e& b4 `) F6 V' m" y* {; q
- UF_terminate ();
0 E: Q! h2 V Y2 z! u' X J/ U* j - 5 O# y- n5 h ]1 e
- 9 l5 B3 F- R1 l8 b4 U* u; u
- 3 H' u; ?9 E$ I: }7 b- h' I9 l
- /* Callback acknowledged, do not terminate dialog */
3 B. r' j* K& b6 \9 g1 @
Q: I, j" ]. S$ z6 D8 b- /* A return value of UF_UI_CB_EXIT_DIALOG will not be accepted */
- i6 r) J/ j) F. a8 M - ) m: G9 C( b# \
- /* for this callback type. You must respond to your apply button.*/
# i' o) |* Y0 Q6 |7 z, _' M6 K1 p
8 E2 v: [$ A$ p/ e9 D D0 Z- return (UF_UI_CB_CONTINUE_DIALOG);
, L- a1 z. n$ i* S( [
5 E0 o, }0 D% \, A7 Z# ^-
' Q8 s" G! R: g( g% s
( s7 E1 b X! @9 R' G- }1 A3 A4 L6 c( M) L7 M& p
% N5 B% l, ?$ G4 q% W' d4 u- void write_para(int dialog_id)
9 r0 g8 E b$ [+ n7 ]- y - # C; }1 j& ]: h% v* i! ~
- {
1 X% f/ _9 S/ p - + X* X; s* a/ R; b
- data[0].item_attr=UF_STYLER_VALUE;2 {* K- s! y9 o% s9 {$ ]+ z
- 1 C/ v3 I, a8 E) q6 D$ V; N& h
- data[0].item_id=APP_INT_N;' k- _! }* W# c3 e
- ! z5 }$ i) C; u. ^6 m, }* x1 k8 A
- UF_STYLER_ask_value(dialog_id,&data[0]);
/ F0 X# g' e3 K1 G* s9 A8 E
3 P2 P% V9 \) a4 d& e0 V4 K* E-
9 S* T' Z+ [) S, R( P0 r l - % B, Q0 B: }( `- Q
- data[1].item_attr=UF_STYLER_VALUE;
. s" F4 Z: T: o. O - . P, x3 }" R& ^# \: l
- data[1].item_id=APP_REAL_D1;
: r# k2 B6 m0 f* K5 g; _3 j/ N - 5 V! M% W8 o8 e" T" v8 ~
- UF_STYLER_ask_value(dialog_id,&data[1]);
! a- d- f( o$ B
/ v' P+ H: G8 H2 V5 |/ t4 t! g- + s: g8 r0 K T* t$ D+ ^8 R
- ( n7 |& y$ W9 y! s" G4 x# u
- i: \/ O% ?: ?; V
' y! \& x0 U7 s0 _$ {9 a1 C/ {- data[2].item_attr=UF_STYLER_VALUE;! E5 U! Q- A; t: V1 I3 x Z
, x6 C6 o3 N' g' [- data[2].item_id=APP_REAL_D2;
' H/ k- Z: y0 X/ n5 [' J - $ [. `8 O; H# R$ N. y! f. G
- UF_STYLER_ask_value(dialog_id,&data[2]);. h1 b9 |; _" ] l- l/ \3 U
: ?+ B4 U) O+ `- S5 V0 x- + j; F R& c3 \4 f( ?% L2 e
+ M* a/ w1 B( M s6 }% N- data[3].item_attr=UF_STYLER_VALUE;4 X0 [# e+ a- a8 N, @
- 7 _9 g& x0 z; x$ J1 @
- data[3].item_id=APP_REAL_W;
5 f& N6 m$ j2 ?9 T" V4 N; H% ` - ! p* A/ U: w# O, _& W
- UF_STYLER_ask_value(dialog_id,&data[3]);) ?# m; s* f1 K3 i. H" R5 H6 S$ G
. [* D5 W1 r9 J- v! Q& W-
- B# b$ o! J. v8 u$ |
2 b! X Q0 e8 U% K* @3 f% Y8 ~- data[4].item_attr=UF_STYLER_VALUE;% r' B# F Y- k
- P) f; F! K' u' ?; m- data[4].item_id=APP_REAL_K;) O3 |) C' ^6 c& C- ^
- # z; O( R% N+ t9 G
- UF_STYLER_ask_value(dialog_id,&data[4]);
( L; _ j: f7 E: Y4 ^* G# q - . k# c& e# Z- _5 w1 a% V% h
- data[5].item_attr=UF_STYLER_VALUE;
9 d7 V3 w7 ]) T) R8 I - " G5 b. C1 H9 \! ]
- data[5].item_id=APP_REAL_L;
7 `" l0 Y& S) A4 |+ t
# Q. o+ F9 | c- UF_STYLER_ask_value(dialog_id,&data[5]);
5 N0 _& J, ^$ V9 a) ~ \* D9 b( R - $ _& Y- |# y ^
-
7 z, O5 Q# z) R - - @9 a8 m; J: n# G- `, {
- data[6].item_attr=UF_STYLER_VALUE;" i. G2 z# |+ I$ ?
0 `2 K* T5 j6 _) l7 U" `- data[6].item_id=APP_REAL_LL;
3 k1 q8 `2 j; ~% d! [7 a - 4 w% v" ~9 O1 x8 b7 R, X/ y/ v
- UF_STYLER_ask_value(dialog_id,&data[6]);
: r/ s/ p" t/ D8 w1 H6 ^& w/ e$ y/ ?
. z6 l2 K4 |) H/ x' W$ p3 A- }
) j( m" m6 I$ _1 I* I% P- Q
" H, a2 M/ v( ^. F! g" R1 E-
) _5 V6 S% @. F0 P - & Y. B( B2 p4 h) h/ D1 L& p
- /*
. e8 C+ N1 H0 M. S6 }7 }
" L R A, I4 N6 o2 S# s. ?- int APP_cancel_cb ( int dialog_id,8 \9 G$ f% p) g9 J: \
- / R2 X1 \: D2 q5 o
- void * client_data,
+ S- |& z5 h, }# ~# Z) c
# p' y9 v7 i% f% P! G; ~- UF_STYLER_item_value_type_p_t callback_data)# |4 X! p' T& [- \# h* z% v
) ]! z4 I5 J) T$ I$ p$ V- {. G+ S: p' j. b% c
. M: Z% W8 n n3 j: {. q- /* Make sure User Function is available. */ 6 L( E ?. w! N( c( A
- . p& D, @0 [1 _7 Y( C
- if ( UF_initialize() != 0)
( D$ n/ _) N% e/ @ - % n# X8 Y* F" C& O5 T# U
- return ( UF_UI_CB_CONTINUE_DIALOG );9 F) n# p; Y3 u0 p7 y0 K; I
: ^, F1 f' R* d( u0 l' L6 @- & |6 s- x t% F+ R8 y3 c2 `
7 g/ {) X/ X* W2 F; U* l- /* ---- Enter your callback code here ----- */
3 C8 M0 Q5 A) x' V" L8 _) h- { - $ m1 @ f/ }9 B
- & n, a" T6 q. n. y/ O+ X7 l
% Y! R# E) q, f( G& M0 \% ^$ Y- UF_terminate ();
2 C% K" d; y- \# a, {, Z5 O8 _0 l - : O, u& S* c) {2 G+ u6 D% A7 v, {, ]
-
! z- B4 K0 i9 |- T$ k
& M8 w2 R. W5 v6 d3 s- /* Callback acknowledged, terminate dialog */6 n' F0 q! J3 ~- M4 e! j9 D7 v
- 0 d3 @2 n, i& {* `$ y" [1 F6 E: V/ B
- /* It is STRONGLY recommended that you exit your */0 t3 {! E: b4 V+ U% ?6 ]4 i7 G
Z, A% ^" j+ f3 n# }% x9 U7 E- /* callback with UF_UI_CB_EXIT_DIALOG in a cancel call */
2 x( N" j4 _0 b5 \4 d6 `3 G) q - 1 e# B* ?. Y7 \7 a+ t
- /* back rather than UF_UI_CB_CONTINUE_DIALOG. */) m- }# _1 [4 D( S
- & i' Z1 J. M) m5 `6 ]5 ^
- return ( UF_UI_CB_EXIT_DIALOG ); " \: ~( w* r) |2 H4 w
- ) V$ y( K2 L" }; k
-
4 V* @( F* P9 l: b& J
8 t9 A" {/ b& V9 n& |1 z- } G7 S! @7 Q! y+ k; r, h
. w# d, @$ U) l5 a( s. C- 5 P' r4 W$ G. b, z, @2 m8 W
- & X* r# J' u! e: \
-
* o' u, _* U8 `$ Y
; D# ~5 q6 {& p- {$ A- /*
$ E0 Y0 d# v# U: b8 I: |9 J, k' q% \
+ u( l y% ]) P- void read_para_from_database(int dialog_id,void *str_mid)
/ r% {1 z3 ~/ S9 h - 9 \& B" Y% b& t; g. U
- {/ h% w) b+ t4 @8 t! P, e# w% z
' r( O% z9 u: S) Y& u" g9 D- /* Make sure User Function is available. */2 z" @! T8 j/ C: F, a( O# t7 }
- ; \: u* v' e. u) a# ?$ S
- /* ---- Enter your callback code here ----- */ L( A1 P, @, t5 _* S& O
- " X0 ?6 F+ \2 ]: q
- UF_STYLER_item_value_type_t data;% B" x6 s# ]4 i p
4 ?- `# l- _9 [5 r9 S0 o- ) o! l) y' t( Y0 }! W: l3 b
- 4 ?* o* S$ [& V0 F1 b; I; F: i" i
- data.item_attr=UF_STYLER_VALUE;* D5 k0 y! C3 ]1 t8 d1 x$ |& v8 |4 r+ w
- 2 _( b0 m$ @% U" t9 f2 _
- data.item_id=APP_REAL_D1;: o. f, o! h+ S# Y) |" _
- ( ?4 T2 U# {; m, \* }
- data.value.real=atof(((char **)str_mid)[1]);
* L" Y! h0 w5 }! @+ T' @. K1 P
/ R8 b/ W( y9 C. C! s- UF_STYLER_set_value(dialog_id,&data);) r4 g2 o! s! |. `0 F
- % k! T- j7 e; L$ t- V3 z
- UF_STYLER_free_value(&data); $ V! Z3 i% m" E. l3 N! O, n
- ! |. v+ Q2 t+ I1 ?
- data.item_attr=UF_STYLER_VALUE;
% G' P: q* F6 ~6 i& ^7 P& C: v - / n8 Z& a; S4 y2 O
- data.item_id=APP_REAL_D2;3 B" q! ^1 b, { j
- 0 X5 [) c$ f0 L# u: G
- data.value.real=atof(((char **)str_mid)[2]);
8 {. G- \) F+ r7 ~; ^, N3 Z - * Z& h/ {) P, q0 T1 k i. h
- UF_STYLER_set_value(dialog_id,&data);
# S# ]: l+ ?0 c* [7 j
( j# g! ~8 i F) u- UF_STYLER_free_value(&data); , p3 i% d, K, [& w. V
0 j1 [1 ]0 `+ q+ e% J6 m- data.item_attr=UF_STYLER_VALUE;* z, j; a- u: a/ X; n
- 5 W2 f& \. `. y; L
- data.item_id=APP_REAL_W;1 p, J- L3 F* k( ~. a( h5 L- a
- . Q# ^. A9 @3 P9 u( i+ h7 ~: `6 S
- data.value.real=atof(((char **)str_mid)[3]);) _. q; V& f9 y K. J$ ]" v& j( f7 V
) Z+ o% Y: E4 i* C* r& q2 _- UF_STYLER_set_value(dialog_id,&data);
5 `3 ?" _0 J! N; _! P8 L3 O
! H8 w4 o3 D% ]5 Y! I2 {$ @- UF_STYLER_free_value(&data); 6 `7 d) E8 d- T2 L* T
# d" _! ~/ @0 [2 X% G- data.item_attr=UF_STYLER_VALUE;, U9 m) J5 u2 B* b0 M7 x1 z
# {: K2 r; [9 N) @# C- data.item_id=APP_INT_N;
' A4 G9 p+ K8 B/ h9 f - . {4 V5 ?* w, k) z$ @0 M9 x2 ?
- data.value.integer=atof(((char **)str_mid)[4]);: K: K3 W: z' u0 f: U% w
- & H3 _- T% r2 N5 S9 H" \
- UF_STYLER_set_value(dialog_id,&data);2 j8 g8 H8 W0 [7 }( f
& v) ^ F, I2 }6 C$ G1 h6 {- UF_STYLER_free_value(&data);
5 ~4 ^( k5 d& {& X5 `1 h7 K
' o1 m8 c* W& O' t6 V- data.item_attr=UF_STYLER_VALUE;7 j& u1 h) r5 ?6 m* l- d
" ~9 y; }' p( h- U( K4 e) \- data.item_id=APP_REAL_L;* j4 g, @- y8 t0 Z' S
- Q; K4 C7 n, H
- data.value.real=atof(((char **)str_mid)[5]);4 V' T, F& d0 h
- , o4 \% a7 u$ P/ y) o4 C
- UF_STYLER_set_value(dialog_id,&data);
9 O9 A0 c [$ A! c5 B/ \! n9 ^9 l
! n* y8 g/ h" d3 C1 I- UF_STYLER_free_value(&data); ' C; l- E8 M7 N% t9 `3 N4 f
- - Q% ~) R: w: v6 n4 N
- data.item_attr=UF_STYLER_VALUE;
3 ^2 t6 o8 v3 Q+ t! o
) R$ F; X) R+ A( p, Q H- data.item_id=APP_REAL_K;: w/ A' b8 v. |
8 {/ f* z+ V& |* W2 s- data.value.real=atof(((char **)str_mid)[6]);
$ B3 q: Q# J. c% y1 k - , v0 N) F& ^1 L; Y" t
- UF_STYLER_set_value(dialog_id,&data);( ]$ N, p4 D7 W: S7 ~* t, e
- % m8 N2 A" r8 t2 _$ t% d6 p& i
- UF_STYLER_free_value(&data); 1 \$ G/ S( f% q* t
- . b3 q" |' \) ?
- data.item_attr=UF_STYLER_VALUE;
; B2 x1 Z0 b- j" [ - 1 r* K( _" m3 W
- data.item_id=APP_REAL_LL;
, n- Y& {* r. L1 H
3 F- R2 T; B0 f- data.value.real=atof(((char **)str_mid)[7]);
0 ~# V- R4 \' h" `! P3 ~5 m - ; u4 U; l; W* Z) W! V5 Q: E
- UF_STYLER_set_value(dialog_id,&data);
1 W2 ]8 y$ s3 M
W+ i( z% [- |7 l5 c, A- UF_STYLER_free_value(&data);
% N- y \$ L4 J/ o0 Y - 8 P/ I7 ?$ ^6 a% ]9 E
- }) T8 I" X/ f. e3 b' ]! E6 I( O$ H
- 6 Z* m; V& x2 U: f3 C j
-
. ~- S4 [" Q5 T, z$ [0 ` R
% i1 n3 \( T8 K- g; S( q- int APP_action_database ( int dialog_id,
: h4 y( Q3 P% r! Y M - 7 \9 O+ L0 o' R6 e0 }! E, ?' Q1 d; y- T! {% A
- void * client_data,
2 I, y) ?/ G8 `
% x0 M$ Z+ G9 d# _: L0 r; Y( s- UF_STYLER_item_value_type_p_t callback_data)- p" y( Q- Y) G7 A/ u3 K3 J! i& G' {
6 v7 _: v+ j& k; ^8 g) M- {
2 h) n( w8 n; c9 A - 6 \1 z5 N4 ?8 m
- /* Make sure User Function is available. */ . H' b7 N+ T+ ~; a
- * } r; w/ j7 e: u) v) E
- if ( UF_initialize() != 0) u' U8 y% E/ C$ I
$ X3 ~( i' J! s8 ~- return ( UF_UI_CB_CONTINUE_DIALOG );
; [: a _3 e7 W: h/ v - : e% [0 m9 D7 V" \& ?' E+ z/ e
- + f: |# }' Y3 J
) D' B+ b$ B: y* l: b9 z- /* ---- Enter your callback code here ----- */
, f4 A" w% K8 H' U1 Y' c. x - ) v- I7 h5 f! t) y
- char *str_mid[8];3 _3 m5 _1 z1 d8 L3 U
- 5 X3 a, M+ E9 Q- F J& M& k
- if(para_database_func(str_mid)==true), Z, k( t( J0 x4 c. l8 C4 e, G
- # _. }" l- X E: s! A/ i
- read_para_from_database(dialog_id,str_mid);
9 D% A! I- G9 d, g( Z
2 S9 S- G7 F4 n3 x/ i, ]- for(int i=0;i<8;i++)3 `0 i: }: z% m q
- 8 q4 X9 @; f7 P/ o: h5 I# q1 Y ]
- {
" N* [, x+ w2 }/ i! Z @. r0 t
: I7 O& V s5 {- k* [- delete [] str_mid[i];
% f2 t0 p2 u+ h
; u- @* `5 v5 \! k' n9 ?! u- }% e: w3 @8 X, W% m1 g' v
- , ^7 Q N1 T( E$ I" K3 k# _$ |
- 2 B0 K8 y- H0 l6 |7 E% k
- + A$ t3 A" z8 p) T
- ! p' _$ b/ J6 ^$ t! }# Z9 B' w
S6 s1 ~! O/ b- r3 s2 U$ R- UF_terminate ();0 \: a2 ^) A f3 Z7 K: S3 d' ~
* N2 I r3 o( P8 }; Z3 c-
$ E7 q# ]( k) X4 v1 v, `! S - 3 a3 Y: f. }% }
- /* Callback acknowledged, do not terminate dialog */$ f( s) _% Y2 M; C
3 b# V$ ]1 ]" u- return (UF_UI_CB_CONTINUE_DIALOG);) E( E7 z. a; X; l
- 2 y" U- L. q6 L. j: [8 b
- 4 j/ M. u( L& O( x, \: J9 b, m
! u5 O& a2 Y; l9 r8 J: S- /* or Callback acknowledged, terminate dialog. */
+ _3 H( R0 x3 i
; U0 P) B" T2 I% l+ R- /* return ( UF_UI_CB_EXIT_DIALOG ); */
0 m9 h1 ~* p& M6 F# k
1 D; M y% C) I3 }* B-
. U ?: z' Z5 N' y- C: O& n8 R; x - 0 @6 i* a; S; F
- }
复制代码 , n4 v" i7 \2 k. m) @" k) [
- b- N/ o( j5 i8 {' [6 r; A
|
|