나는 상태 기준에 따라 다른 종류의 보상 범위를 사용하여 보험 견적을 생성하는 프로그램을 개발했습니다. 이제 '규칙'을 지정하는 기능을 추가하고 싶습니다. 예를 들어 우리는 3 가지 유형의 범위 (UM, BI 및 PD라고 부름)를 가질 수 있습니다. 일부 주에서는 PD가 BI보다 크지 않고 다른 주에서는 BI가 없으면 UM이 존재하지 않도록합니다. 따라서 사용자가이 규칙을 작성할 수있는 기능을 추가하여 견적을 생성 할 때 규칙을 따르고 프로그램이 견적을 생성 할 때 어떠한 주 규정도 위반하지 않도록해야합니다.VB6에서 상충되는 수학 연산자를 감지하는 기능
문제는
나는 사용자가 충돌하는 규칙을 선택할 수 싶지 않아요. 사용자는 VB 수학 연산자 (>, <,> =, < =, =, <>) 중 하나를 선택하고 양쪽에 적용 범위를 설정할 수 있습니다. >은
- A> B
- B> C
- C : 그들은 (한 번에 오직 하나)이 여러 번 할 수있는 그래서 그들은이 같은 규칙의 목록을 끝낼 수 있습니다
마지막으로 본 규칙은 이전에 설정된 규칙과 충돌합니다. 내 솔루션은 사용자가 '목록에 규칙 추가'를 클릭 할 때마다 목록의 유효성을 검사하는 것이 었습니다.
세 번째 목록 항목이 아직 목록에없는 것처럼 가장했으나 사용자가 '규칙 추가'를 클릭하여 목록에 추가했습니다. 유효성 검사 프로세스는 먼저 들어오는 변수가 이미 같은 줄에서 사용되었는지 확인합니다. 그렇지 않은 경우 이미 생성 된 목록에서 들어오는 왼쪽 변수 (이 경우 'C') 만 검색합니다. 발견되면 tmp1을 일치 항목 (tmp1 = 'B') 건너편의 변수와 동일하게 설정합니다. 그런 다음 오른쪽에있는 들어오는 변수 (이 경우 'A')에 대해 동일한 작업을 수행합니다. 그런 다음 tmp2는 A (tmp2 = 'B')에서 가로 지르는 변수와 동일하게 설정됩니다. tmp1과 tmp2가 같으면 들어오는 규칙은 충돌하는 OR이거나 사용 된 연산자와 상관없이 무관합니다. 나는 이것이 3 개의 변수를 가진 확실한 논리라고 확신한다. 그러나 추가 변수를 추가하면 쉽게 유효성 검사를 건너 뛸 수 있다는 것을 알았습니다. 주어진 주마다 10 가지 이상의 보험 보상 유형이있을 수 있습니다. 따라서 3 가지 이상의 변수를 검증 할 수있는 것이 중요합니다.
변수가 여러 개인 경우 음성 검증을 수행하는 통일 된 방법이 있습니까? 어떤 아이디어 나 생각도 환영합니다. 제 설명이 의미가 있기를 바랍니다. 감사합니다.
VB6과 같이 표현의 힘이 제한적이기 때문에 뭔가 모델링하는 것이 고통 스러울 것입니다. 몇 가지 팁. 평등 (= 및 <>)과 상대 연산자 사이에서 규칙을 나눕니다. 관계가 재 배열되기 때문에 오직 하나의 연산자 만이 사용된다. <그 시점에서 주문 B
이것은 내 첫 번째 생각 이었지만 그때 나는 규칙이 주어진 순서를 항상 알지 못한다는 것을 깨달았다. 나는 C와 A가 둘 다 B보다 크지 만 A와 관련된 C의 값은 여전히 모호 할 수 있음을 알 수 있습니다. 이것은 실제로 3 개 이상의 변수를 도입 할 때만 문제가됩니다. – user1457296
다른 규칙 목록을 가지고있는 것과는 별도로 할 수있는 일은 없습니다. –