Esempio n. 1
0
Field_Info __fastcall TSaveObj::AssignFieldVal(TDataSet* ADS,AnsiString FieldName)
{
     Variant V;
     Field_Info tmp;
     //{todo xieren}日志型的未考虑,或其没考虑的请在此修改
     for (int i=0;i<ADS->FieldCount ;i++)
     {  
        if (CompareText(ADS->Fields->Fields[i]->FieldName,FieldName) ==0)
        {
             V = ADS->Fields->Fields[i]->Value;
             if ((! VarIsNull(V)) &&
                (!VarIsEmpty(V)))
             {                  
                  tmp.FieldName = FieldName;
                  tmp.FieldValue = V;
                  if ((ADS->Fields->Fields[i]->DataType == ftFMTBcd) ||
                     (ADS->Fields->Fields[i]->DataType == ftFloat) ||
                     (ADS->Fields->Fields[i]->DataType == ftBCD) )
                       tmp.FieldType = ftFloat;
                  else if (ADS->Fields->Fields[i]->DataType == ftDateTime)
                       tmp.FieldType = ftDateTime;
                  else
                       tmp.FieldType = ftString;  
                  break;
             }
        }

     }
     return tmp;
}
double VarToDoubleEx(Variant AValue)
{
  if (!VarIsNull(AValue)) {
    return ((double)AValue);
  }
  else {
    return 0;
  }
}
void __fastcall TCustomerDataSource::SetValue(void * ARecordHandle, void * AItemHandle, const Variant &AValue)
{
  int AColumnId = GetDefaultItemID((int)AItemHandle);
  TCustomer* ACustomer = FCustomers->Customers[(int)ARecordHandle];
  switch (AColumnId) {
    case IndexOfID:
      if (VarIsNull(AValue))
        ACustomer->ID = 0;
      else
	ACustomer->ID = AValue; 
      break;
    case IndexOfName:
      ACustomer->Name = VarToStr(AValue); break;
    case IndexOfDescription:
      ACustomer->Description = VarToStr(AValue); break;
  }
  if (!Modified)
    FModified = true;
}
//---------------------------------------------------------------------------
bool UNODispatch(Variant Document, String ooCommand, Variant ooParams)
{
//Создание Dispatcher с пустыми ooParams для ОО
//используется для PrintPreview
    bool RetVal=true;
    int Bounds[2] = {0,-1};
    try{
      Variant ooDispatcher, ooFrame, CurrentController, ServiceManager;
      ServiceManager = Variant::CreateObject("com.sun.star.ServiceManager");
      if ((VarIsEmpty(ooParams)==true) || (VarIsNull(ooParams)==true))
              ooParams= VarArrayCreate(Bounds,1, varVariant);
      CurrentController = Document.OleFunction("getCurrentController");
      ooFrame = CurrentController.OleFunction("getFrame");
      ooDispatcher= ServiceManager.OleFunction("createInstance", "com.sun.star.frame.DispatchHelper");
      ooDispatcher.OleFunction("executeDispatch",ooFrame, ooCommand, "", 0, ooParams);
    }
     catch (Exception &E)
       {    RetVal=false;    }
    return RetVal;
};
//---------------------------------------------------------------------------
void __fastcall TIssueListGridForm::tvItemsStylesGetContentStyle(
      TcxCustomGridTableView *Sender, TcxCustomGridRecord *ARecord,
      TcxCustomGridTableItem *AItem, TcxStyle *&AStyle)
{
 if (!IsDependsOnData)
   return;

  int AStatus = -1;
  if (ARecord && AItem)
    if (!VarIsNull(((TcxCustomGridRecord*)ARecord)->Values[tvItemsSTATUS->Index]))
     AStatus = VarAsType(((TcxCustomGridRecord*)ARecord)->Values[tvItemsSTATUS->Index], varInteger);

  switch (AStatus) {
    case 1: AStyle = dmMain->stNew;
            break;
    case 2: AStyle = dmMain->stPostponed;
            break;
    case 3: AStyle = dmMain->stFixed;
            break;
    case 4: AStyle = dmMain->stRejected;
  }
}
void __fastcall TGridModeDemoMainForm::tvDataControllerFilterGetValueList(
    TcxFilterCriteria *Sender, int AItemIndex,
    TcxDataFilterValueList *AValueList)
{
  TDataSet *ADataSet = ((TcxGridDBTableView*)Grid->FocusedView)->DataController->DataSet;
  TcxGridDBColumn *AColumn = ((TcxGridDBTableView*)Grid->FocusedView)->Columns[AItemIndex];
  bool AIsLookupColumn = (AColumn->PropertiesClass == __classid(TcxLookupComboBoxProperties));
  try{
    Screen->Cursor = crHourGlass;
    GridModeDemoDataDM->qryHelper->SQL->Clear();
    GridModeDemoDataDM->qryHelper->SQL->Add(
      "Select DISTINCT " + AColumn->DataBinding->FieldName + " From " +
      GridModeDemoDataDM->GetTableNameByDataSet(ADataSet));
    GridModeDemoDataDM->qryHelper->SQL->Add(
      GetSQLCondition((TcxGridDBTableView*)Grid->FocusedView, false));
    GridModeDemoDataDM->qryHelper->Open();
    GridModeDemoDataDM->qryHelper->First();
    while (!GridModeDemoDataDM->qryHelper->Eof){
      Variant ADisplayValue = GridModeDemoDataDM->qryHelper->Fields->Fields[0]->Value;
      if (AIsLookupColumn){
        TcxLookupComboBoxProperties *AProperties =
          (TcxLookupComboBoxProperties*)AColumn->GetProperties();
        ADataSet = AProperties->ListSource->DataSet;
        ADisplayValue = ADataSet->Lookup(
          AProperties->KeyFieldNames,ADisplayValue, AProperties->ListFieldNames);
      }
      if (VarIsNull(ADisplayValue)) return;
      AValueList->Add(fviValue, GridModeDemoDataDM->qryHelper->Fields->Fields[0]->Value,
        ADisplayValue, false);
      GridModeDemoDataDM->qryHelper->Next();
    }
    GridModeDemoDataDM->qryHelper->Close();
  }
  __finally{
    Screen->Cursor = crDefault;
  }
}